Skip to content

Releases: flox/flox

v1.8.0

17 Dec 03:38

Choose a tag to compare

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 --label option to flox containerize for 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 --label are 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

03 Dec 19:27

Choose a tag to compare

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

18 Nov 15:36

Choose a tag to compare

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 install so that the full pkg-path (including custom catalog names) don't clutter the manifest. The full pkg-path is still shown by flox list.
  • Changes to Flakes are now correctly applied when using flox install and flox upgrade.
  • Disabled .env support in services (process-compose) so that environment variables defined in [vars] and [services.*.vars] aren't shadowed. Users can still source .env files from hook.on-activate for the correct precedence. Thanks to @ryansch for the report and diagnosis.
  • Fixed an issue where flox push incorrectly 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

04 Nov 21:40

Choose a tag to compare

Notable features and fixes

This release addresses several bugs and adds new improvements, including:

  • Added flox auth token command to display your current floxhub token (useful for automation)
  • Don't print upgrade notification when running flox activate -- <cmd>
  • Add flox pull --copy --generation option to pull-copy a specific generation from an environment hosted on https://hub.flox.dev
  • Fixed garbling of escape codes in bare flox command output
  • The latest stable release of Flox is now tracked by the flox/flox:latest branch (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

Download Links

v1.7.5

21 Oct 21:22

Choose a tag to compare

Notable features and fixes

This release addresses several bugs and adds new improvements, including:

Features:

  • The flox activate command now accepts a --generation flag to activate a specific generation of a FloxHub environment. This is useful to inspect a generation before switching to it. Other sub-commands like flox list will operate within the context of that activated generation and modifications to the generation with sub-commands like flox install are prevented.
  • The flox generations list and flox generations history commands now paginate output when exceeding the size of the terminal. Pagination can be disabled with a --no-pager flag. Most recent items are now shown first.
  • The flox generations list and flox generations history commands now accept a --json flag to produce machine readable output. Note the structure of the output may change in future releases.
  • The flox push and flox pull commands now provide more information in errors when the local and remote generations of a FloxHub environment have diverged and require manual intervention.
  • The flox config command no longer accepts --set-bool and --set-number flags. These have been deprecated in favor of the simpler type-agnostic flox config --set since v1.4.0
  • All commands now support a NO_COLOR environment variable to disable ANSI color codes in output.

Fixes:

  • Fixed flox services start from failing for environments activated in run mode (flox activate --mode run as used for default environments).
  • Fixed flox activate -- command from incorrectly printing instructions about how to exit when the activation has already completed, including integrations with direnv.
  • Fixed flox config --set from 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 .bashrc file is sourced twice.
  • Fixed flox push --owner from incorrectly indicating that an already pushed environment could be renamed. This now returns an error and instructions to use flox pull --copy.
  • Fixed ANSI code escaping in flox search output.
  • Improved errors when attempting to switch to an already live generation with flox generations switch.

Download Links

v1.7.4

30 Sep 21:35
v1.7.4
328d210

Choose a tag to compare

Notable features and fixes

This release addresses several bugs and adds new improvements, including:

Features:

  • Adds a --tree flag to flox generations list to 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

16 Sep 21:23

Choose a tag to compare

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 status now 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

03 Sep 20:02
bc0dec6

Choose a tag to compare

This release addresses several bugs and adds new improvements, including:

  • Added a --bare flag for flox init that creates a minimal manifest without boilerplate comments
  • Added a --no-auto-setup flag for flox init that skips generating Flox suggestions for an initial manifest
  • Added the overlooked short option -f for --follow in flox 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

20 Aug 00:20
e291538

Choose a tag to compare

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 activate command now caches zsh completions in $FLOX_ENV_CACHE/.zcompdump to 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 with flox activate -v.
  • Fixed a bug in flox init --auto-setup for 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.

Download Links

v1.7.0

20 Aug 00:20

Choose a tag to compare

This release contained an installation bug that caused failures with install-flox-action. This was caught during release testing, and we have now released a fix in v1.7.1. Please use v1.7.1 instead.