Flox 1.19.4 is Released!

Flox 1.19.4 is Released!

Important

If Flox reached 1.19.1 or 1.19.2 on your Mac through brew upgrade, a plain brew upgrade flox to 1.19.4 will still fail, because Homebrew runs the old release’s uninstall script first. Run the recovery script included below instead; it repairs the installation and upgrades Flox to the latest release available through Homebrew. The script uses sudo but shouldn’t be run as root, since brew refuses to run as root.

curl -fsSL https://github.com/flox/flox/releases/download/v1.19.4/recover-brew-upgrade.sh | sh

Important

If you build or publish packages with Nix expressions, this release changes two things. An existing v1 .flox/catalog.lock must be regenerated with flox build update-catalogs, and flox publish refuses shallow checkouts, so GitHub Actions using actions/checkout must set fetch-depth: 0.

Features

  • flox publish asks you to confirm a source lineage change before building, rather than after building and uploading.
  • Custom builds can select a default FloxHub authentication mode with defaultAuthnMode. Builds without this option continue to default to token authentication.
  • Base catalog source builds use the nixpkgs host recorded in the lockfile. Public GitHub fetching remains compatible with existing cache entries.
  • nix profile install github:flox/flox and local nix develop can now substitute paths built by Flox CI from cache.floxsdlc.com, tried after cache.nixos.org and cache.flox.dev. It uses the same trusted key as cache.flox.dev.

Changes

  • .flox/catalog.lock now uses format version 2. Nix expression operations that use an existing v1 lock require flox build update-catalogs, and no automatic migration occurs.
  • flox publish requires a checked-out branch with an upstream, complete history and a revision contained in that upstream’s advertised tip. Shallow checkouts are refused, so GitHub Actions using actions/checkout must set fetch-depth: 0.
  • If the remote branch has advanced and its tip is not in the local clone, flox publish stops and asks you to run git fetch <remote> <branch>, then retry.
  • Zsh and tcsh no longer auto-activate an environment for a cd inside a subshell, such as (cd project && make), which matches bash. To run one command in another project’s environment, use flox activate -d project -- make.

Fixes

  • Zsh and tcsh shells no longer lose their attachment to an auto-activated environment when a subshell changes directory, most commonly after tab-completing cd ../… in zsh. This caused PID … is not attached to the activation errors and could stop an environment’s services while the shell was still using it.
  • flox containerize now honours [options] cuda-detection. Previously CUDA detection was disabled in every containerized environment regardless of the manifest, so GPU workloads silently fell back to CPU.
  • Container images now contain real /etc/passwd and /etc/group files instead of symlinks into the Nix store. Images built previously could fail to start on containerd 2.2.0–2.2.7, and on 2.3.0–2.3.4 outside the overlay/bind fast path, with open etc/passwd: path escapes from parent.

Thank you to our community contributions this release

  • hook.on-deactivate no longer runs when hook.on-activate failed. (@fzakaria)

Download Links

Note

You can find the SHA256 checksums for Flox 1.19.4 and SHA512 checksums for Flox 1.19.4 online.