Releases: nix-community/lorri
Release 1.7.1
Release 1.7.0
Added
- Add support for Nix Flakes. Lorri will still prefer a shell.nix by default, but if overridden or only a flake.nix is available, Lorri will build a flake and use its default devShell.
- Delegate adding roots to the nix-daemon. This improves a number of use cases, especially for new users.
- Improvements to the watcher code, including smoother debounce of filesystem events. This provides more reliable builds, and fewer unneeded ones.
- Better output from
lorri info
, including information about the project, and details about how lorri is running.
Fixed
- Always log to stderr.
- Fix systemd configuration: replace ProjectHome with ProjectSystem.
Release 1.6.0
Added
- Add a
lorri gc
command to allow the gc to operate on old or removed projects.
Fixed
- Fix another file descriptor leak in the daemon.
- Fix the behaviour of the
--verbose
flag’s logging output. Some messages were logged but not printed. - Fix default
.envrc
generated bylorri init
. Add a fallback to direnv’suse nix
in case lorri is not installed. - Provide a better error message when the user tries to use flakes, which we don’t support yet.
Release 1.5.0
Add support for builtins.filterSource, refine builtins.readDir
The filter of filterSource is only respected for direct children of
the source root. For example, if you use nix-gitignore, .git is not
watched.
builtins.readDir’ed paths are now not watched recursively, which should
greatly reduce inotiy resource consumption.
Fix watcher not starting if the first nix build fails.
We were not actually watching the nix file, only indirectly picking
it up from the first nix build; so if that failed, we’d not watch any file.
Now lorri will always add the shell.nix
to the watchlist,
ensuring it triggers a rebuild as soon as it is fixed again.
Various fixes to lorri internal stream-events after daemon socket
protocol rewrite. It would hang and leak file descriptors in the
daemon.
Release 1.4.0
Rewrite the internal daemon socket protocol.
This should be a purely internal change, but if you have been using
lorri internal stream-events
in your scripts, the json output might
have changed. Since the command is internal and not yet stable,
not much time was spent keeping it compatible, so beware.
The --socket-address
command to lorri ping
was removed for now,
since only having it for this command doesn’t make much sense, it
looks like it was originally introduced for debugging purposes.
In the long run we could add a LORRI_SOCKET
environment variable.
Release 1.3.1
Fix lorri direnv
triggering an unconditional rebuild every time it is run.
After fixing up the build loop people suddenly started noticing that
lorri was evaluating every time something ran lorri direnv
, which
could potentially be every time the user switched between buffers in
the editor.
This is not the intended behaviour, since we should run an
unconditional build only the first time the project is added to the
watcher, and after rely on the watcher to notify us of any file
changes (or the user running lorri internal ping
to force a
rebuild).
Release 1.3.0
Fix the build loop.
Previously, any change (for example a direnv ping or a change in the nix files)
would add a new build invocation to the queue, and the builds would all be done
one after the other.
However, a new build will always use the newest state of the files anyway,
so the CPU time spent on all the other builds will be wasted (and hog your processor).
Now lorri will only
- finish the current build (if running)
- schedule at maximum one additional build if requested
This should improve the resource use drastically in some situations.
Make lorri daemon
exit with exit code 0 instead of 130/143 on
SIGINT or SIGTERM.
Add lorri self-upgrade branch
sub-subcommand.
This enables us to point users to a branch name,
in order to test out fixes from repository branches.