We went quite again for a while with the blog - between the last post, we released 0.5.* and now 0.6.0.
This time received contributions from 28 contributors! Thank you everyone! Let's take a quick look at what new in 0.6.0.
We added a sub-command
cleanup to reclaim disk space by purging
unused builds. Over time, cached builds would just accumulate in
~/.esy and the only way to reclaim space was to delete it
entirely. Users had no way of knowing which cached builds were in use
by projects and would end up seeing long build times again after deleting the the cached directory.
esy cleanup takes in a list of projects in use as arguments and
removes all cached builds not needed by any of them:
$ esy cleanup ./project/in/use ./another/project
See docs for more information.
Improved solver performance with better CUDF encoding
Recursive fetching of submodules, when building packages from source
As a move towards ensuring better compatibility with opam, we recursively fetch submodules when fetching from git sources.
Now esy can install and build packages from git/github even if they depend on submodules.
Long paths on Windows
We were earlier constrained to only use 33 characters in the artifact paths in our binaries on Windows - this caused relocatability issues and delayed our plans of fetching prebuilts for esy sandbox. With this release, esy now enables long paths on supported Windows machines and brings back relocatability (and there shorted build times with prebuilts) back on the table.
Other Notable fixes
Besides that 0.6.0 contains fixes for not a small number of bugs, many doc updates and small quality-of-life improvements. Some things worth mentioning:
- More robust project discovery
- Improved git source parsing
- Test suite improvements
- New command esy run-script SCRIPTNAME which provides a future proof way of running package.json scripts
The entire changelog can be found here.