Declarative Project Environments
This release introduces the ability to have a declarative environment included with a project.
This means you can
flox editin a project directory, and have the ability to specify an environment that is not part of the package build expression. This environment will be activated and layered into your development environment whenever you run
flox developin the project directory.
Note that the package builds use a fixed version of Nixpkgs by default, while environments use the flox Catalog.
Previously, one could only create a new environment via an install, for example:
flox install -e myNewEnv mypackage, which both creates the env and installs
mypackageto it. Now you can instantiate a new, empty environment with
flox create -e myNewEnv.
The environment will be returned by
flox listwith a generation status of “unknown” if no packages have been installed to it. Accordingly, a
flox list -e myNewEnvwill return an error.
include packages that are updated in commit messages
The commit log for an environment upgrade now includes package names and versions.
add system to environments
Previously, the layout of envs on disk did not include the system path.
After you upgrade, you will notice the system path for the environment will have changed to include the system. For example, the new format will be something like
This work is being done in support of being able to manage environments for other system types than the current machine. Stay tuned!
- Installation via Nix
The installation method for Nix has changed (see here under Nix/Generic and Nix/NixOS). As such, the upgrade mechanism specified there will not work if you’re upgrading from an older install. To upgrade, first uninstall flox as specified here. Then install a fresh version of flox as indicated in the install section linked above. Two commands and you’re all set–thanks Nix!
Apple’s path helper fix: MacOS overwrites your PATH in a unique way that is now properly handled.
bash color prompt: the color escapes in a bash terminal are now properly handled.
update flake: the format of flake.nix and flake.lock will change upon upgrading to this version. This change means a better handling of upgrades in the future, and does not affect user-facing functionality.