Releases: flox/flox
v1.8.0
Changes for using FloxHub environments
Environments on FloxHub could previously be referred to using -r | --remote <owner/name>, but using environments with --remote was often too slow due to the fact that it always required a network call.
--remote is being deprecated, and a new option -r | --reference <owner/name> is being introduced to allow using FloxHub environments without a network call or having to manually run a flox pull. When the first command using --reference is used, the environment will be fetched from FloxHub and cached locally. We'll refer to that copy of the environment as the local FloxHub environment, and the copy on FloxHub as the upstream FloxHub environment.
Subsequent commands using --reference will use the local FloxHub environment, which means that for example repeat activations of flox activate -r owner/name will be much faster without requiring network access.
If changes are made to the local FloxHub environment (e.g. using flox edit -r owner/name), those changes can be pushed to FloxHub with flox push --reference owner/name. To get the latest upstream changes before activating, run flox pull -r owner/name before flox activate -r owner/name.
Previously flox pull --remote owner/name would create a .flox directory in the current directory. Using the new option flox pull --reference owner/name now instead updates the local FloxHub environment. To pull an environment and create a .flox directory, use flox pull owner/name without --reference.
Other features and fixes
- Added a
--labeloption toflox containerizefor specifying custom OCI image labels on both Linux and macOS. Labels are applied to the generated container image on both Linux and macOS. Labels specified with--labelare merged with any labels defined in the environment's[containerize.config]section in the manifest# Single label flox containerize --label app=myapp # Multiple labels flox containerize --label app=myapp --label version=1.0 --label env=production - Fixed a bug where metrics buffer would grow indefinitely, causing continual network traffic. Thanks to @HuaDeity
Download Links
v1.7.8
Fixes
This release fixes a bug where programs would fail with Cannot allocate memory in static TLS block due to new nixpkgs PIE defaults. This fixes issues with rustfmt on aarch64-linux and improves overall stability of dev-mode activations.
Download Links
v1.7.7
Notable features and fixes
This release addresses several bugs and adds new improvements, including:
- Leading slashes are now removed from install IDs generated by
flox installso that the fullpkg-path(including custom catalog names) don't clutter the manifest. The fullpkg-pathis still shown byflox list. - Changes to Flakes are now correctly applied when using
flox installandflox upgrade. - Disabled
.envsupport in services (process-compose) so that environment variables defined in[vars]and[services.*.vars]aren't shadowed. Users can still source.envfiles fromhook.on-activatefor the correct precedence. Thanks to @ryansch for the report and diagnosis. - Fixed an issue where
flox pushincorrectly reported that the environment had been published when no changes were present. Thanks to @fleat for the report.
Maintenance
- Nix has been upgraded internally from 2.28.4 to 2.31.2
- process-compose has been upgraded internally from 1.73.0 to 1.75.2
Download Links
v1.7.6
Notable features and fixes
This release addresses several bugs and adds new improvements, including:
- Added
flox auth tokencommand to display your current floxhub token (useful for automation) - Don't print upgrade notification when running
flox activate -- <cmd> - Add
flox pull --copy --generationoption to pull-copy a specific generation from an environment hosted on https://hub.flox.dev - Fixed garbling of escape codes in bare
floxcommand output - The latest stable release of Flox is now tracked by the
flox/flox:latestbranch (formally a tag). This is because tags have a bit more permanence and a branch is expected to move over time. This is primarily useful for flake-based installations.
Thank you to our community contributions this release
- Better error handling in
flox pushwhen no changes are present (@mrswastik-robot) - Added trailing newlines in manifest and lockfile (@mrswastik-robot)
- Nicer alignment in
flox showoutput (@mrswastik-robot) flox listnow includes the catalog in the package path (@mrswastik-robot)
Download Links
v1.7.5
Notable features and fixes
This release addresses several bugs and adds new improvements, including:
Features:
- The
flox activatecommand now accepts a--generationflag to activate a specific generation of a FloxHub environment. This is useful to inspect a generation before switching to it. Other sub-commands likeflox listwill operate within the context of that activated generation and modifications to the generation with sub-commands likeflox installare prevented. - The
flox generations listandflox generations historycommands now paginate output when exceeding the size of the terminal. Pagination can be disabled with a--no-pagerflag. Most recent items are now shown first. - The
flox generations listandflox generations historycommands now accept a--jsonflag to produce machine readable output. Note the structure of the output may change in future releases. - The
flox pushandflox pullcommands now provide more information in errors when the local and remote generations of a FloxHub environment have diverged and require manual intervention. - The
flox configcommand no longer accepts--set-booland--set-numberflags. These have been deprecated in favor of the simpler type-agnosticflox config --setsince v1.4.0 - All commands now support a
NO_COLORenvironment variable to disable ANSI color codes in output.
Fixes:
- Fixed
flox services startfrom failing for environments activated in run mode (flox activate --mode runas used for default environments). - Fixed
flox activate -- commandfrom incorrectly printing instructions about how to exit when the activation has already completed, including integrations withdirenv. - Fixed
flox config --setfrom causing an error when the Flox config file and the Flox temporary directory were on separate filesystems. - Bash users with default environments will no longer see that their
.bashrcfile is sourced twice. - Fixed
flox push --ownerfrom incorrectly indicating that an already pushed environment could be renamed. This now returns an error and instructions to useflox pull --copy. - Fixed ANSI code escaping in
flox searchoutput. - Improved errors when attempting to switch to an already live generation with
flox generations switch.
Download Links
v1.7.4
Notable features and fixes
This release addresses several bugs and adds new improvements, including:
Features:
- Adds a
--treeflag toflox generations listto render generations as a tree - Adds ability to import a nixpkgs package definition as a Nix expression build in a single command using
flox build import-nixpkgs <package-name>
Fixes:
- Publish for the correct system when using
flox publish --system <override> - Nested in-place activations will now restore environment variables that were modified in
hook.on-activate - For zsh, modifications to PATH in profile scripts now take precedence over other modifications to PATH made by
flox activate. This fixes Python auto setup hooks when used with default environments. Note that the precedence has not yet been fixed for fish or tcsh.
Download Links
v1.7.3
Notable features and fixes
This release addresses several bugs and adds new improvements, including:
- Tab completion on the command line is fixed for file and directory arguments
flox auth statusnow returns an exit code of 1 if not logged in, allowing better use in automation- Fixed handling of additional Cuda libraries that could affect accelerated packages and Cuda detection
- Improved error handling when working with generations
- Updated Nix, process-compose, and rust tool chain dependencies
- Early access to pre-built Cuda accelerated packages is now available
Download Links
v1.7.2
This release addresses several bugs and adds new improvements, including:
- Added a
--bareflag forflox initthat creates a minimal manifest without boilerplate comments - Added a
--no-auto-setupflag forflox initthat skips generating Flox suggestions for an initial manifest - Added the overlooked short option
-ffor--followinflox services logs - The flox-watchdog daemon, which is responsible for determining when activations and services should be cleaned up, no longer polls processes that have already exited in order to reduce CPU usage. We previously thought that this was fixed in v1.6.1 but noticed another issue. In order to benefit from this you will need to exit all activations of an environment.
- Fixed bug where flox build and flox publish would fail in certain git repos with
comm: file 1 is not in sorted order comm: input is not in sorted order
Download Links
v1.7.1
Features
This release introduces a suite of flox generations commands, which allows lightweight version control of environments that are pushed to FloxHub. Every change to a FloxHub environment creates a new generation. Changes can be very quickly undone with flox generations rollback or you can choose a specific generation with flox generations switch. To learn more, consult the documentation at https://flox.dev/docs/concepts/generations/
Unfortunately, due to an unavoidable schema change, FloxHub environments that are created or modified with Flox >= v1.7.0 will no longer be usable with older versions of Flox. Other users of that environment will need to upgrade Flox if they receive the following error:
Invalid version at line 1 column 12
Improvements
- The
flox activatecommand now cacheszshcompletions in$FLOX_ENV_CACHE/.zcompdumpto speed up the repeat activation of environments. The cache is rebuilt when environments are activated in a different order or combination, which can be debugged withflox activate -v. - Fixed a bug in
flox init --auto-setupfor Yarn projects that now ensures a compatible version of NodeJS will be installed. - Fixed a bug with the handling of invalid characters (e.g.
=) in package paths. - Fixed a compatibility bug that was introduced in Flox v1.5.0 which caused environments that were locked with much older Flox v1.3.x versions to no longer build.
Note: Flox v1.7.0 contained an installation bug that caused failures with install-flox-action. This was caught during release testing, and v1.7.0 was never announced.