Releases: flox/flox
v1.0.5
Notable features and fixes
This release addresses several bugs and adds new improvements, including:
- ✨ New
flox envs
command allows you to list all environments you have activated on your machine. For upgrading users: you'll need to activate each existing environment at least once after upgrading to show up on theflox envs
list. (#1264) flox activate
has been improved to make way for, among other things, better support for additional shells! (#1299)- As before, the manifest
[hook.on-activate]
script is invoked usingbash
shell but it is now 1. invoked only with the firstflox activate
invocation and 2. invoked before the[profile]
scripts. The[hook.on-activate]
is now able to start daemons which export process/socket information. This is a small breaking change if you wrote ahook.on-activate
after version 1.0.2 when it was first released. - Flox environments can be activated by invoking
/path/to/environment/.flox/run/{sytem-type}/activate
directly. flox activate
will default to using your$SHELL
variable to detect the shell to be invoked in the "interactive" mode. You can set$FLOX_SHELL
to override this behavior.
- As before, the manifest
flox init
can now detect Python projects with unconventionalrequirements.txt
names following this pattern:requirements*.txt
.(#1336)- Resolve an error with
flox init -d
where the final part of the path is a.
or..
. (#1425) flox pull
now has spinners and a message. (#1337) 🤓flox show
results are listed vertically. Deprecated unused--all
option. (#1444)
Thank you to our community contributions this release
Download Links
v1.0.4
Notable features and fixes
Environments
- Paths with spaces are now supported in general. (#1277)
- Flox will now notify the user on stdout if a new version is available. (#1310)
- Check for a new flox version on https://downloads.flox.dev, and if one is available, print a notification to the user.
- Only print this notification once every 24 hours.
- Activate can now allow activation without prompt (#1144)
- Adds a new config option
shell_prompt
with the possible valuesshow-all
,hide-all
andhide-default
. flox activate
respects this config and will disable the prompt modifications if the value ishide-all
.- With
hide-default
it filters out alldefault
environments, entirely disabling the prompt if all active envs were filtered.
- Adds a new config option
Go envs
- Now detect Go Projects during initialization. Thanks to Óscar Carrasco for the contribution. (#1227)
Pull/Push Improvements
flox pull --force
now acceptsowner/name
as a parameter. Previously, force didn't allow for other parameters. (#1300)
Packaging
- Flox RPMs and Debs now signed with a more compatible GPG key to allow for verification on a wider selection of Linux systems. (flox/flox-installers#229 and flox/flox-installers#232)
- Flox is now available as a homebrew cask. If you're a homebrew user, you can install via
brew install flox
. (Homebrew/homebrew-cask#170971)
Thank you to our community contributions this release
- Minh Luu - fix typo in README.md (#1221)
- Óscar Carrasco - feat(commands): create Go init hook (#1227)
- Óscar Carrasco - refactor: reimplement
InitHook
trait to avoid invalid states caused byshould_run
(#1313)
Download Links
v1.0.3
This release addresses several bugs and adds new improvements, including:
- Search output now shows bold search term hits in
flox search
. - Fixed a bug that could cause Flox to hang.
flox pull --force
will now overwrite any existing.flox
- Omit the "Version:" prefix when printing version.
We especially want to thank all our github.com/flox/flox contributors and
slack community members for all your valuable feedback!
Download Links
v1.0.2
This release addresses several bugs and adds new improvements, including:
- Flox handles expired FloxHub tokens more gracefully and prompts you to login again.
- We've improved how shell hooks work in Flox--giving you more precise control and making hooks work more consistently across platforms: There is now a
[profile]
section of the manifest.toml that is sourced directly into your shell and enables the use of shell aliases (among other things!). Theprofile.common
script is sourced into every shell (good for writing scripts that work in every target environment) as well as shell specific profiles (profile.zsh
andprofile.bash
) for handling shell-specific behavior. In addition, there is a newhook.on-activate
script that runs in a non-interactive Bash sub-shell after sourcing the profile scripts. This allows you to run a script in a consistent environment where you don't have to worry about shell compatibility. Read more inman manifest.toml
or our documentation. Existinghook.script
from 1.0.1 and prior will continue to work but we recommend updating them toprofile.common
at your earliest convenience. flox init
now detects Python requirements and suggests an initial environment with installed software and aprofile.common
script. This will happen when using a requirements.txt in your project directory or a pyproject.toml with poetry.- Error messages improved: Added the
pull --force
suggestion to diverging branch error and improved theflox activate
error when there is no environment. - Made several long messages from Flox shorter, making them easier to read. Along the same lines, as an homage to the punch card (and default terminal window sizes),
--help
commands wrap to 80 characters. - Removed a not-yet-functional
--file
option hint from the default manifest template and also removed unimplemented commands. - We began to implement additional anonymous tracing telemetry to better support Flox without having to rely on our users manually opening issues. You can always opt out of any telemetry by setting
disable_metrics
in yourflox config
(but we hope you keep it on so we can make Flox better!).
We especially want to thank all our github.com/flox/flox contributors and slack community members for all your valuable feedback!
Download Links
v1.0.1
This release fixes SSL issues on MacOS when running remote commands such as e.g. flox pull
, flox push
or flox activate -r
.
Download Links
v1.0.0
This release addresses several bugs and adds new improvements, including:
flox init
will detect existing project package managers and suggest packages and shell hook configuration. This works for some Python (pip, poetry) and Node (npm, yarn, nvm) projects.- You can now set
FLOX_SHELL
to control the sub-shell Flox launches when usingflox activate
. - The Flox Catalog now contains
nodePackages
from Nixpkgs for searching and installation. - You can now search and install unfree packages in Flox. Flox will print a warning when installing a package that does not have open licensing.
- Improved performance with better use of cache on subsequent environment activations.
- In situations where there are multiple environments active, Flox will ignore the default environment and not prompt for 'which environment' when a user is elsewhere on their machine. This makes it easier to use the default environment in your RC files. You can still update your default environment by running commands using the explicit
--dir
and--remote
options or by being in the directory containing your default environment. - Improved error message when an environment is not found during install and uninstall.
- This release is compatible with https://auth.flox.dev and 0.9.0 users must upgrade to it to continue to
flox auth login
from the CLI.
We especially want to thank all our github.com/flox/flox contributors and discourse community members for all your valuable feedback!
Download Links
v0.9.0
Release 0.9.0 (2024-02-15)
This release contains breaking changes in the Flox CLI and FloxHub service. You are responsible for recreating environments created in 0.3.6 and prior versions. If you rely on a command that has been removed, we recommend that you wait to upgrade until support is added. We'd love to hear from you on our discourse forum if you have questions.
- Combined 'project environments' and 'managed environments' into a single 'environments' concept.
- Flox now stores environment definition in a
.flox
folder in the current working directory by default. - Flox environments support multiple architectures without having to create multiple environments.
- The
--environment
or-e
option for managed environments on many commands has been replaced with-r
or--remote
for FloxHub managed environments and--dir
or-d
to refer to local directory path environments. - Environments are now declared in a
manifest.toml
file located inside the.flox
folder.flox edit
will allow edits and validate changes made. - The FloxHub service and its associated commands are now available to anyone with a valid GitHub account. These commands will direct you to sign up:
flox push
,flox pull
,flox auth login
. - Several deprecated subcommands were removed. Notably the
build
andpublish
commands are no longer available in Flox CLI. We have plans to return the build and publish features to Flox in the future. Consult the--help
orman flox
for a full list of supported commands. - The Flox catalog that powers search and install is now tied to the NixPkgs
23.11
stable branch. We have short term plans to expand the library of software in the Flox Catalog. Currentlyupdate
andupgrade
will advance metadata index and software versions along the stable23.11
branch.
We especially want to thank all our github.com/flox/flox contributors and
discourse community members for all your valuable feedback!
Download Links
release: v0.3.6
Release 0.3.6 (2023-10-26)
This release addresses several changes, bugs and improvements, including:
- Updated flox CLI prompts to remove mention of GitHub.
- Updated flox CLI so new environments will now
- use newer nixpkgs for inline packages, and
- emit fewer warnings regarding unrelated inputs.
- Created
flox show
(currently feature-flagged) and its manpage;flox search
will now include a hint to
useflox show
for detailed information for a package(s). - Worked on lots of changes to the flox CLI as we aim for our general availability (1.0) release. As we move
move forward we are more aggressively making changes to our CLI including:- those using the
flox/prerelease
to get upgrades may stop finding upgrades auto install. This is because we are
changing core architecture. Please fall back to the installer on our documentation page. - we are deprecating the following from the CLI. We need to do this to unblock some dependencies and we also are
taking a more holistic design pass based on existing usage. We fully plan on bringing these features
back–incorporating feedback. If you depend on them please stop upgrading flox for now and stay on
version 0.3.6 or older.build
subscribe
unsubscribe
channels
print-dev-env
shell
bundle
flake
eval
develop
publish
init-package
bash-passthru
run
list
nix
import
export
envs
gh
git
- those using the
- Removed the flag
--long
fromflox search
.
We especially want to thank all our github.com/flox/flox contributors and discourse community members for all your valuable feedback!
v0.3.5
release v0.3.5 (#299)
v0.3.4
release v0.3.4 (#269)