Releases: purescript/spago
0.14.0
Breaking changes (😱!!!):
-
Replace
list-packages
command withls packages
andls deps
(#563)This is happening for future extensibility, i.e. so that we can add any
spago ls $whatever
subcommand in a non-breaking way whenever we'll want to
list more things.How things got renamed:
spago list-packages
→spago ls packages
spago list-packages -f direct
→spago ls deps
spago list-packages -f transitive
→spago ls deps -t
Note: the
list-packages
command is still there to provide a semi-gracious transition path for folks, and will be removed in a future release.
New features:
- Allow
verify-set
to work with either aspago.dhall
or apackages.dhall
(#515) - Create
.purs-repl
file when runningspago init
(#555, #558) - Add
--source-maps
flag to build commands (#545, #562) - Add
--quiet
and--no-color
global flags to better control logging (#548)
Bugfixes:
- Fix a few watch-mode buffering and concurrency issues (#549)
- Fix watching relative paths in sources config (e.g.
../src/**/*.purs
) (#556) - Make the
ensureConfig
function safe (#561, #531) - Retry downloading packages on network errors (#557, #565)
Other improvements:
- Docs: fix misc typos in README (#566)
- Docs: fix typo in
packages.dhall
template (#539) - Docs: remove mention of shared output folder in README (#559, #552)
- Docs: update links: spacchetti/spago → purescript/spago
- CI: update to
purs-0.13.6
(#542) - CI: update CI to the new location of the repo (#560)
- Deps: update to
purescript-docs-search-0.0.8
(#543) - Deps: update to
dhall-1.29
andgithub-0.24
(#553)
0.13.1
0.13.0
Breaking changes (😱!!!):
-
Disable
output
folder sharing (#526)This reverts an (accidentally) breaking changes introduced in
0.11.0
, for which
Spago would take decisions on where theoutput
folder should be in order to
share some compilation results. This turned out to break some other things, so
we'll stop trying to be smart about it here.
New features:
Other improvements:
- Log backend build command when building (#521)
- Deps: update
purescript-docs-search
version to0.0.6
(#525) - CI: update
purs
version to0.13.5
(#513) - CI: fix Haddocks and start testing them in CI (#511, #516)
- Curator: automate updating
purs
version (#514) - Curator: automate updating the
purescript-docs-search
version (#519)
0.12.1.0
0.12.0.0
0.11.1.0
0.11.0.0
Breaking changes (😱!!!):
-
Remove
psc-package
-related commands (#423, #425)Since we are approaching a stable release and
spago
feature set is a superset ofpsc-package
ones,
from this release we do not support the commands to interop withpsc-package
:
psc-package-local-setup
,psc-package-insdhall
andpsc-package-clean
commands. -
Start sharing the
output
folder in monorepos, to reduce build duplication (#377, #422)This is a breaking change because your build might stop working if you were relying on the
output
folder being in a certain place, and if you were passing--output
as an option topurs
.
However, you can pass the--no-share-output
flag to disable this behavior -
Build static binaries for Linux (#437, 427)
This should fix the dynamic-library-compatibility problems on some distributions.
It should work as well as the old dynamic binary, but it's theoretically a breaking change since
some behaviours might be different. -
Move all logging to
stderr
(#256, #475, #476, #486)All "business output" (e.g.
spago sources
) will stay onstdout
, so in practice everything
should be fine, but this is theoretically a breaking change since someone might be depending
on the output we had so far.
New features:
-
add support for
spago build
andspago run
with alternate backends (#355, #426, #452, #435)E.g: add the key
backend = "psgo"
inspago.dhall
to compile/run withpsgo
-
add new command
spago path
that returns the paths used in the project.E.g.
spago path output
returns the output path so that it can be shared with tools such aspurs-loader
. (#463) -
spago docs
now displays a link to the generated docs'index.html
, and opens them in the browser when passed the--open
flag (#379, #421) -
spago init
has new--no-comments
flag which skips adding tutorial comments to the generatedspago.dhall
andpackages.dhall
files (#417, #428) -
spago verify-set
now compiles everything, to detect duplicate module names. This can be disabled with--no-check-modules-unique
(#438) -
spago install purescript-XYZ
will now strippurescript-
prefix and install XYZ (if it exists in package set) instead of just failing with a warning (#367, #443) -
spago run
now allows to pipestdin
to your running project (#488, #490)
Bugfixes:
- Fix Ctrl-C handling in REPL when using NPM installation on Windows (#493, #483)
- Fix confusing warning when trying to
spago install
a package already present in project dependencies list (#436, #439) - Warn (but don't error) when trying to
--watch
missing directories (#406, #420, #447, #448) - Do not watch files in
.spago
folder when running with--watch
(#430, #446) - The
--clear-screen
flag (usable e.g. withspago build --watch
) now also resets cursor position, so the rebuild message always appears at top left of the screen (#465, #466) - Allow additional fields in the config for local packages (#470)
- Fix
--config
option: get the correct paths when config file is in another directory (#478, #484)
Other improvements:
- Tests: speed up test suite by replacing some end-to-end tests with unit/property tests (#445, #440)
- Tests: update instructions to run tests (#449)
- Tests: always run test suites with UTF8 encoding (#482)
- Docs: various improvements to README (#432, #457, #464, #487)
- Docs: add "getting started" guides for Parcel, Webpack and Nodemon (#456, #461, #473)
- Errors: improve cache skipping error (#453, #480, #481)
- Errors: add a nice error message when trying to run
spago test
with no test modules (#489, #383, #492) - Refactor: fix
hlint
warnings (#450) - Refactor: rewrite Curator for moar maintainability (#458, #419)
- Deps: update to Dhall 1.27 and Purs 0.13.4 (#469)
- Deps: revert to GHC 8.4.4 and LTS-12 (#479)
- CI: fix release code (#494, #495)
0.10.0.0
Breaking changes (!!!):
-
Flags and arguments that you want to give to
purs
are now passed with--purs-args
(#353, #366)The previous behaviour in which all arguments that could not parse as
spago
arguments
were passed along topurs
was sometimes confusing (e.g. when using--path
and multiple
arguments).
New features:
- Support watching js files (#407, #205)
- New
--no-search
flag forspago docs
to skip patching the documentation usingpurescript-docs-search
(#400) - New
-x
flag for specifying the config path location (#357, #329) - New
spago login
command, to save a GitHub token to the cache so it can be used for various operations hitting GitHub (#391, #403)
Bugfixes:
- "Quit" command in watch mode now actually quits (#390, #389)
- Do not compile files twice when using
--watch
and Vim (#346, #371) - Use
git clone
instead ofgit fetch
when fetching a package, so all tags can be installed (#373, #374) - Fix Windows global cache location; now uses
LocalAppData
as default (#384, #380) - Fix naming clash in short flag for repl dependencies (#352, #350)
- Fix failure to copy to global cache on a different filesystem (#385, #386)
- Fix watch function on Windows (issue with paths) (#387, #380, #401)
- Look up remote imports dynamically when doing frozen check, to always find the right
packages.dhall
(#349, #402)
Other Improvements:
- Performance: make no-op
spago install
faster (#409, #412) - CI: remove reviews limitation on mergify (#354)
- CI: various fixes (#362, #368, #382, #388, #418)
- Docs: fix syntax errors in template comment (#369, #413, #408)
- Docs: fix link for package-set from commit (#405)
- Docs: keep README up to date with new features (#398, #347)
- Deps: upgrade to lts-14 and GHC-8.6 (#395)
- Deps: upgrade to dhall-1.26.0, v10 of the standard (#411, #358)
0.9.0.0
Breaking changes (!!!):
-
Rename
package-set-upgrade
toupgrade-set
(#336)You now have to call
spago upgrade-set
if you wish to upgrade your package-sets version -
Move the
--jobs
flag to be global (#338)If you were invoking spago in this way:
spago install -j 10
, you now have to usespago -j 10 install
instead -
Import local packages
as Location
(#301, #244)Before you'd import a local package in this way:
let additions = { foobar = mkPackage (../foobar/spago.dhall).dependencies "../foobar" "local-fix-whatever" }
..but now you'll have to import it using
as Location
instead:let additions = { foobar = ../foobar/spago.dhall as Location }
New features:
- Add searchbar to docs generated with
spago docs
, and asearch
command to get a search REPL (#340, #333, #89) - Add automatic migration of Bower projects when doing
spago init
(#159, #272, #342) - Add
bump-version
command, for generatingbower.json
files and making version tags in Git (#203, #289, #324) - Use
psa
for compiling if installed; you can avoid this with the new--no-psa
flag (#305, #283, #252, #327) - Add support for starting a repl within a folder which has not been setup as a spago project (#168, #280)
- Add
--format
flag tospago docs
(#294, #299) - Add project sources to
spago sources
output (#276, #287, #308) - Watch all sources, including dependencies, when building with filewatch (#172, #309)
- Add
--deps-only
flag to build dependencies alone (#330, #331)
Bugfixes:
- Fix
spago install
failing when version branch names differ only by case on case-insensitive filesystems (#285) - Change
--node-args
shortcut to-a
to avoid clash (#292, #293) - Stop reformatting config files if not necessary (#300, #302, #339)
- Make
spago run
write a file and execute it so that args are passed correctly (#297, #295) - Add fallback for global cache directory (#314, #312)
- Do not overwrite
spago.dhall
when doingspago init
twice (#318, #321) - Catch exceptions when trying to fetch metadata (#325)
- Generate hashes when doing
psc-package-insdhall
(#337, #240)
Other Improvements:
- Curator: log exceptions to file to monitor eventual issues (#284)
- Docs: update README with newest features (#286)
- Docs: add docs about switching from Bower (#317)
- Errors: improve error message for overriding compiler version (#345, #343)
- Tests: improve failure messages (#298)
- Tests: fix
packages.dhall
fixtures manipulation (#307) - Tests: add tests for the
list-packages
command (#304) - Tests: add tests for local dependencies (#310)
- Config: remove
mkPackage
function in Dhall configs, and switch to package-sets releases for upstream (#322, #320, #319) - Config: update test template to use
Effect.Class.Console
(#328, #334) - CI: fix missing "commit since last release" message (#326)
- CI: add configuration for Mergify (#332)
0.8.5.0
ZuriHac edition 🎉
New features:
- Add
sources
key to config to customize the sources used in the build (#273, #173) - Add
--json
flag to thelist-packages
command to optionally output JSON (#263) - Add
--clear-screen
flag to to clear the screen when watching (#271, #209) - Add
--no-install
flag for build to prevent automatic installation (#274, #269) - Add
--node-args
flag to pass arguments to Node inrun/test
commands (#267, #275)
Bugfixes:
- Fix
spago install
failing when version branch name contains/
's (#257, #258) - Report all missing packages together when it's not possible to build an install plan (#264, #223)
- Pull the latest package-sets version when doing
init
(#254, #279) - Fix
spago install
not adding new dependencies when list is empty (#282, #281)
Other Improvements: