hatross
hatross on Hacker News
You can definitely pin down the specific versions of all your dependencies per environment. And, you can for sure build one environment on top of another, you just have to activate them all (or include them in your project if you take a project based approach)
The simplest way to get started is to choose the python dependency manager of your choice (could be pip, poetry, etc). You can install this with flox, and then `flox develop` and these dependencies will just be available on your path. You can then launch pycharm from this context, check "which python" in the shell where you ran `flox develop` and add that to your python evaluator in your IDE.
There are more advanced methods to work with python (that will also still work with pycharm, vscode etc) that are discussed in our docs.
Do you think it would be beneficial if we created some guides to configuring common IDE to work with flox environments?
Which dependencies are you usually combining when you are developing?
I think you may really like flox, because flox will "lock in" the exact cryptographic hashes of the items you have installed and configured. So with flox, it becomes completely reproducible. Yet, you can still use the basic tools that you typically use to develop software (IDE, build tools, makefiles etc).
Hi there! You'll see a number of announcements and releases over the next 3-8 months, as we continue to develop and evolve our open source release, and build tools for enterprise. flox is deeply integrated and committed to the open source nix community. The CEO of flox, Ron Efroni is on the nixos foundation board. Our work intends to be compatible with nix, and so we think this foundation will help people have some long term security if they invest in adopting flox.
flox will continue to be active in contributing to, and supporting and growing the nix community, while also growing a complimentary open source flox community.
I think you are right. Plus it's a great way to integrate needed dependencies in other languages, and pin them to the exact version you need. When you need to deploy, you can actually use flox on the production machine, and "flox install", or you can load the flox package into a docker container image and deploy that way too. I developed a Django app for about 2 months with flox, which included postgresql,redis, and several python3 pypi package deps. It was one of the best and most coherent experiences I have had. I also used nix (which flox is based on) to do elixir and phoenix development for several years. flox has taken away many of the pain points (disclaimer, I am employed at flox)>
Nix and flox will give you:
1. A more reproducible environment thanks to nix determinism
2. A more widely re-usable base approach in the form of environments vs containers
with flox, you can develop software in a development environment that matches the way the software will be packaged. Then, you can distribute this software so that someone can just run "flox install" on Mac, Linux, Windos WSL2, or it can be loaded into a docker container image and deployed that way.