All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Other improvements:
- builds with Cabal successfully
- update to latest
versions
dependency: https://hackage.haskell.org/package/versions-6.0.1/changelog - Fix output truncation with
--json-errors
, many warnings and build failure (#1199) - Update README with info about depending on a freshly added library
- Fixed globbing issue where
/.spago
behaves differently than.spago
in.gitignore
- Fixed empty output for
--verbose-stats
when there are no errors or warnings. - Added support for
--package-set
options forspago upgrade
. spago repl
now writes a.purs-repl
file, unless already there, containingimport Prelude
.- Added typo suggestions upon failing to find a package by name.
spago publish
now checks that the publish location matches one of the remotes in the current Git repository.- Emoji β
β
βΌοΈ replaced with β β βΌ respectively, and are not printed at all with--no-color
. spago bundle
now writes a special marker into the bundle and will refuse to overwrite the file if the marker isn't present, assuming that the file was manually created or edited, not generated by Spago itself.- migrated tests to the
spec-node
runner. - when multiple dependencies share a monorepo, that repo is cloned only once and cached locally.
spago publish
now allows to publish a package with some test (but only test!) dependencies not present in the registry.- errors and warnings are now explicitly labeled as "ERROR" and "WARNING" in Spago build output.
- always using forward slash as path separator in lockfile, regardless of the platform, so that the lockfile doesn't keep changing when team members run Spago on different platforms.
- when encountering a mistyped option for a command, Spago will show help for that command, not root help.
- a new
spago init --subpackage foo
option to initialize a sub-project in the current workspace. - #1110:
spago publish
will now install packages returned by the registry solver before trying to build with them. - Spago no longer ignores config fields that it doesn't recognize. This should help catch typos in field names.
- When the
publish.location
field is missing,spago publish
will attempt to figure out the location from Git remotes and write it back tospago.yaml
.
Features:
- Add
spago migrate
command to port aspago.dhall
configuration to the new-stylespago.yaml
(#901)
Bugfixes:
- Windows: forward the proper exit code when running spago via NPM (#883, #884)
Other improvements:
- CI: cleanup CI for 0.15.0 PureScript updates (#879)
Bugfixes:
- Use
iife
format when bundling browser apps (#880)
Features:
- Make
spago bundle-app
andspago bundle-module
use esbuild and es modules for projects >= v0.15 (#862) - Make
spago run
use es modules for projects >= v0.15 (#858)
Bugfixes:
- Fix
spago run
andspago test
to accept command line arguments correctly, by writing a JS file to run (#865, #866) - Remove support for node versions older than 12.0.0 as they do not work with es modules (#866)
- Retry git clone up to two times (#834, #873)
Other improvements:
- Docs: update README with documentation for PureScript v0.15 (#867)
- Linux: support Glibc versions >=
2.24
Bugfixes:
- Make
spago run
work whennode-args
includes flag-like value (#856)
Bugfixes:
- Oh no, not libtinfo again (#853, #854)
Features:
- Drop need for
psci-support
to be defined independencies
field (#817)
Other improvements:
- Upgrade to latest Dhall version (#848, #851)
Bugfixes:
- Don't warn on unused deps when building with
--deps-only
(#794) - Add line buffering for console output when doing parallel work (#800, #729)
- Avoid writing a JS file when executing
spago run
(#845, #846, #822)
Other improvements:
- CI: Add sha256 checksum generation on the release workflow (#816)
- CI: Update the Ubuntu runner to a non-deprecated version (#826)
- Install: replace deprecated
request
bymake-fetch-happen
for NPM installation (#840) - Error messages: output additional info when failing to access cache directory (#799)
- Deps: add compatibility with versions-5.0.0 (#798)
- Internals: convert deps and source paths from List to Set (#818)
- Docs: various improvements (#802, #803, #806, #809, #823, #824)
Bugfixes:
- Fix
docs
command error due to bad templates (#792)
Bugfixes:
- Remove
npm install
from release CI to prevent overwriting the install script with the Linux binary (#783, #786) - Use spago.cabal instead of package.yaml to get version number (#787, #788)
- Assume compatibility with newer minor versions of
purs
(#782, #777) - Fix
test
command not working onpurs
older thanv0.14.0
(#790, #789)
Other improvements:
- Docs: add more useful comments in spago.dhall (#778, 708)
- Dev: remove package.yaml, use only cabal file (#780)
- Dev: use make to orchestrate builds (#781)
- Deps: upgrade to GHC8.10 and lts-17 (#743)
Bugfixes:
- Color output now works correctly or is disabled on Windows (#768, #749)
- Fix
spago docs
for PureScript 0.14, by updatingdocs-search
to0.0.11
(#775, #752)
Other improvements:
- Color output is now automatically disabled when output is redirected to a file.
Also respects a
NO_COLOR
environment variable (#768) - Fixes tests failing if the test platform has
psa
installed (#772) - Print
spago install
command to fix missing transitive dependencies (#770, #769, #776) - Refactor the graph support to remove the custom module name parser (#773)
Breaking changes (π±!!!):
spago build
fails when source files directly import transitive dependencies (#730, #598)
Bugfixes:
- Properly call
psa
to avoid warnings (#730)
Other improvements:
spago build
now detects and warns about unused dependencies (#730, #598)
New features:
- Allow
verify
andverify-set
to work with alternate backends, when run in the context of aspago.dhall
withbackend
set (#754)
Bugfixes:
- Don't fail
bump-version
if the packages don't exist in the Bower registry (#682)
Other improvements:
- CI: bump
purescript
version to 0.14.0 (#759) - Docs: add FreeBSD installation instructions (#760)
- Docs: clarify description for
--path
flag (#762, #761)
Bugfixes:
- Fix
psa
not being found on Windows (#740, #693) - Use the correct path when erroring out about alternate configurations missing (#746, #747)
Other improvements:
- Bump
dhall
dependency from 1.37.1 to 1.38.0 (#739) - Fix caching on Windows CI (#728, #741)
Breaking changes (π±!!!):
- Deprecate
-d
flag fordeps-only
(#712) - instead only support the--deps-only
long form - Switch from
-D
to-d
as shorthand for specifying dependencies withinspago repl
(#712)
New features:
- Add
spago script
command. It can be used to run standalone PureScript files as scripts (#712, #724, #683)
Other improvements:
spago repl
will no longer create a (mostly unused) full project skeleton in a temporary directory when a config is not found (#712)spago init
andspago upgrade-set
will now pick the latest set for the available compiler, rathen than just the latest (#721, #687, #657, #666)
Breaking changes (π±!!!):
-
Remove
login
command (#705)It was introduced in preparation for a
publish
command that would require a GitHub token to be provided, but it is obsolete now, as the new Registry workflow will not require it. While it's technically a breaking change, it should be of very low impact since no one should be using this anyways. -
Upgrade to Dhall 20.0.0 and GHC 8.6.5 (#695, #685)
The upgrade fixes several bugs related to the upstream dhall-haskell implementation, but introduces a breaking change in the parser, as reserved words are not accepted anymore in certain positions. While the upstream package sets have been patched to be compatible with the change, this is a breaking change for all the existing configurations that make use of Dhall reserved words (such as
assert
,let
, etc).
New features:
- Add
exec-args
as alias tonode-args
, to clarify that the args are forwarded to whichever backend is being targeted (go, js, etc), not exclusively NodeJS (#710, #709)
Bugfixes:
- Don't create the global cache folder at all if the user specifies
--global-cache=skip
(#705, 704) - Don't require a
spago.dhall
anymore when the--no-build
flag is passed (#705, 634)
Other improvements:
- CI: switch from Travis to GitHub Actions (#695)
Breaking changes (π±!!!):
-
Specify the package set version via
--tag
(#680)Example usage:
spago init --tag psc-0.13.2-20190725
andspago upgrade-set --tag psc-0.13.2-20190725
. This is a breaking change because we are removing support for the old spacchetti/spacchetti-style location (i.e. in the src/packages.dhall) for the upgrade-set command.
Bugfixes:
- Remove dependency on
libtinfo
, removing the biggest cause of friction for using the precompiled binary on various Linux distros (#684) - Correctly parse flags to be passed to the compiler (#688)
Breaking changes (π±!!!):
-
Remove shorthands for
color
,before
,then
, andelse
flags (#670, #664)Both
then
andtarget
had the shorthandt
, so the shorthand forthen
was removed. Sincethen
,before
, andelse
are all shared between several commands, it seemed natural to remove the shorthands for the other shared commands too, so as to not cause future shorthand name conflicts. A similar collision problem happened with thecolor
flag, so its shorthand was removed. -
Pass main function argument to
--run
for alternate backends (#668)This is a braking change because now alternate backends are expected to accept an argument to their
run
flag. This change was coordinated among various backends so the migration should be relatively smooth, but you should check if your backend it able to support this.
New features:
- Upgrade to
docs-search@v0.0.10
, that introduces grouping by package in local docs (#679) - Ignore
.gitignore
d files in--watch
by default - you can disable this with--allow-ignored
(#665) - Support
upgrade-set
for alternative package-set repositories (#671)
Bugfixes:
- Make the output of
spago --version
the same withspago version
(#675) - Ensure the existence of the global cache directory (#672, #667)
Other improvements:
- Docs: updated package addition/overriding syntax to use
with
syntax (#661, #663) - Docs: fix Webpack template (#653)
- Docs: document how to pass arguments to
main
(#655) - Error messages: do not print "Installation complete" if nothing was installed (#676)
New features:
- Add
--version
flag to print the version (in addition to theversion
command) (#628)
Bugfixes:
- Actually run
else
commands whenspago run
fails (#632) - Don't use absolute paths for executables in Windows (#639)
Other improvements:
- Docs: note that
build
also runsinstall
(#624) - Docs: document how to install all the packages in the set (#625)
- Docs: stop suggesting using Parcel and Spago at the same time (#626)
- Docs: document how to install bash and zsh autocompletions (#627)
- Docs: fix explanation in monorepo example (#631)
- Docs: add note about using single quotes for
purs-args
(#637) - Docs: add quotes for all OSes with
purs-args
(#638) - Docs: fix typos in
spago bundle-app
help message (#641) - Deps: upgrade
rio
to0.1.13.0
(#616) - CI: upgrade to
purs
v.13.8 (#642) - CI: stop upgrading broken static binary on release (#620)
Breaking changes (π±!!!):
-
Remove the deprecated
--no-share-output
flag (#610)It has been disabled since some time now, so you can just remove it from your build commands.
New features:
- Add the
spago path global-cache
subcommand to output the location of the global cache (#613, #591)
Bugfixes:
- Fix encoding issues causing crashes when running in various locales (#595, #533, #507, #576)
- Respect TERM=dumb by disabling colors when set (#581, #579)
- Run package set commands without a project config being present (#393, #610)
- Fail as soon as possible when not finding a necessary executable (#578, #610)
- Don't exclude the
metadata
package from the set (#609, #610) - Ensure
psci-support
is installed when starting the repl (#612, #550) - Ensure dependencies are installed before starting the repl (#611, #610)
Other improvements:
- Errors: make the "dropping the 'purescript-' prefix" warning milder (#571, #570)
- Docs: update README example to include source files (#574)
- Docs: add info about SPDX license for publishing (#606)
- CI: update Travis deployment to
dpl-v2
(#569, #617) - Deps: upgrade
dhall
to1.31.1
(#600) - Curator: move to its own repo (#586)
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)
New features:
- Add
--before
,--then
and--else
flags to specify commands to run before and after a build (#532, #410)
Other improvements:
- Docs: fix npm command line argument in README (#597)
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:
- Enable HTTP(S) proxies on the NPM installation (#460, #522)
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)
Bugfixes:
- Fix macOS release artifact (#503, #504)
- Complete parser implementation for module declarations, for
spago test
(#499)
Other improvements:
- Docs: fix typo in README (#498)
- Errors: use
logWarn
for all warnings (#501)
Breaking changes (π±!!!):
-
Revert back to dynamically linked binary on Linux (#502, #500, #497)
The static binary was still dynamically linking to
glibc
, causing it to be broken on some distros. So for now we're back on a dynamically-linked executable.
This is identical to 0.11.0
, but published under a new version number due to mishaps in the publishing CI process.
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)
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)
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
(#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)
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:
- Docs: add visual overview of what Spago does "under the hood" in typical project workflow (#211)
- Docs: fix outdated references in README (#266)
- Tests: untangle testcases environments (#265, #214)
- Tests: improve packages test by checking for missing and circular dependencies (#270)
New features:
- Add option to clear the screen to spago build/run (#209)
- Add option to pass args to node when doing spago test/run (#267)
Bugfixes:
- Produce an error message when asserting directory permissions (#250)
- Read purs version from inside the set instead of its GitHub tag (#253, #225)
- Skip copy to global cache when encountering a permissions problem (#220, #260)
Other improvements:
- Errors: add many debug logs (#251)
- CI: rewrite Curator in Haskell (#239)
- CI: build only
master
and tags on Travis (#247) - Dev: add Nix section to stack.yaml (#248)
- Dev: tidy up the various executables, sources and dependencies (#251)
Bugfixes:
- Fix
spago psc-package-clean
on Windows (#224) - Fix
spago repl
starting on Windows where PureScript was installed with NPM (#235, #227) - Fix missing filenames when encountering parse errors in Dhall files (#241, #222)
- Download packages in local repo instead of global tempdir (#243, #220)
Other improvements:
- Tests: test suite now works fully on Windows (#224)
- CI: parametrize LTS version (#236)
- CI: get PureScript binary for Travis from GitHub releases (#234)
- Error messages: fix whitespace (#221)
New features:
- Add global cache to avoid redownloading dependencies (#188, #133)
- Add ability to pin a version to a commit hash in addition to branches and tags (#188, #200)
Bugfixes:
- Another attempt to fix NPM and Yarn installations on Windows (#215, #187)
Other improvements:
- The test suite is now written in Haskell rather than Python (#212, #177)
- Add
spago-curator
tool to generate metadata from the package set (#202) - Improve docs (#208, #207, #218, #217)
Breaking changes:
- Rename "bundle" to "bundle-app" and "make-module" to "bundle-module" for consistency (#175, #147)
Bugfixes:
- Don't fail
init
if apackages.dhall
is already there, as it's the case of psc-package projects with local spacchetti (#180)
Other improvements:
- Remove CI check for package-sets version, add cron script to update it instead (#185)
- Fill in CHANGELOG from release notes (#186)
- Fix LICENSE file so GitHub recognizes it (#197)
- Add a CONTRIBUTING file (#198, #189)
- Improve README (#199, #194, #196, #201, #193, #192, #187, #178, #191, #150, #142)
New features:
- Install "psci-support" on project init (#174)
Bugfixes:
- Fix NPM and Yarn installations on Linux and Windows (#157, #167, #166)
Bugfixes:
- correctly parse package-set release tag to avoid generating unnecessary warnings (#160, #161)
- skip 0.7.3.0 as I forgot to update the version field (#164)
New features:
- introduce a
--verbose
flag to print debug information - e.g.purs
commands being called by Spago (#154, #155)
New features:
- Add
--watch
flag tobuild
,test
,run
,bundle
andmake-module
commands (#65, #126, #153) - Add
spago docs
command, to generate documentation from the project and all dependencies (#127) - Add
spago run
command, to run your project (#131, #137)
Other fixes and improvements:
- Automatically build in commands that require the project to be built (#146, #149)
- Don't automatically create a configuration if not found (#139, #144)
- Always ensure that the package-set has a hash on it, for speed and security reasons (#128)
- Improvements to documentation and FAQ (#132, #125, #119, #123, #104, #135)
- Improvements to errors, messages and logging (#143, #145, #133, #151, #148, #129, #130, #136)
- Improvements to tests (#95, #91, #138, #141, #140)
- Format Dhall files with ASCII instead of Unicode (#124)
Breaking changes:
-
The NPM package
purescript-spago
is now deprecated. New releases will be published only to the packagespago
(#115, #44) -
Spacchetti has been merged in the official package-set: this means that
spago
will now use that as the reference package-set. (#120)As a result of this, the command
spago spacchetti-upgrade
has been renamed tospago package-set-upgrade
.
New features:
- Support Windows in NPM install (#121, #109)
- Add
spago freeze
command to recompute hashes of the package-set (#113) - Add
spago verify
andspago verify-set
commands (#108, #14) - Add the
--filter
flag tospago list-packages
, to filter by direct and transitive deps (#106, #108) - Check that the version of the installed compiler is at least what the package-set requires (#101, #107, #117, #116)
Other improvements:
- Improve the installation: do less work and print less useless stuff (#110, #112, #114)
- Skip the copy of template files if the source directories exist (#102, #105)
New features:
spago init
will search for apsc-package.json
, and try to port it to your newspago.dhall
config (#76)- Add the
spacchetti-upgrade
command, to automatically upgrade to the latest Package Set (#93, #73) - You can now add local packages to the Package Set π (#96, #88)
- Now it's possible to run
spago install foo bar
to add new dependencies to your project (#74) - Now every time you try to build, Spago will also check that dependencies are installed (#75, #82)
Bugfixes:
- Spago would crash if
$HOME
was not set, now it doesn't anymore (#85, #90) spago test
now actually works on Windows (#79)
Other improvements:
- Maany docs improvements (#83, #76, #93, #96, #99, #100)
- From this release we are publishing an experimental Windows build (#81)
- Add a PR checklista, so we don't forgetti (#86)
New features:
spago repl
will now spawn a PureScript repl in your project (#46, #62)spago list-packages
will list all the packages available in your package-set (#71)
New features:
spago build
andspago test
now have the--path
option to specify custom source paths to include (#68, #69)spago build
andspago test
can now pass options straight topurs compile
(#66, #49)
New features:
- Add initial windows support (#47, #48, #58): now
spago
should run fine on Windows. Unfortunately we're not distributing binaries yet, but the only installation method available is from source (with e.g.stack install
)
Bugfixes:
- Don't overwrite files when doing
init
, just skip the copy if some file exists (#56) - Print
git
output in case of failure when doinginstall
(#54, #59) - Include building
src/*
when runningtest
(#50, #53) - Make file embedding indipendent of the locale when compiling; now we just use Unicode
First release under the name "spago".
Main changes from the previous "spacchetti-cli" incarnation:
- Rename
spacchetti-cli
βspago
(#23) - Publish on NPM under the new name
purescript-spago
(#35) - Add some commands from
psc-package
:init
(#12): initialize a new sample project with aspago.dhall
and apackages.dhall
config filesinstall
(#11, #32): concurrently fetch dependencies declared inspago.dhall
filesources
(#13): print source globsbuild
: compile the project withpurs
- Migrate old commands from
spacchetti-cli
that are specific to local psc-package projects:local-setup
is nowpsc-package-local-setup
insdhall
is nowpsc-package-insdhall
clean
is nowpsc-package-clean
- Add some commands from
purp
(#26):test
: compile and run a module from thetest/
folderbundle
: bundle all sources in a single filemake-module
: export the above bundle so it can berequire
d from js
- Stop depending on
dhall
anddhall-to-json
commands and instead depend ondhall
anddhall-json
libraries - Freeze
spacchetti
package-set import inpackages.dhall
, sodhall
caching works for subsequent executions - Move to v4.0.0 of
dhall
- Add integration tests for most of the commands (#31, #30)