anaconda-project
for basic reproducibility:anaconda-project lock
command to create a fully specified environment; one that has all packages used in the project and their dependencies locked to a specific version. This ensures that your project will be reproduced exactly as it was initially configured, because there will never be an unexpected update or change if new package dependencies are released. For more information about the anaconda-project-lock.yml
file, see the official Anaconda Project documentation.
Project locking is not automatically enforced because it is a time-consuming process and isn’t necessary when running development instances of the deployment. Therefore, it is up to the user to perform the locking procedure.
anaconda-project lock
command when you have finalized work on a project, or if you are ready to move a specific version of your project to a production environment (that is, you are ready for your project to be interacted with or used publicly).anaconda-project
will run a “solve” (that is, a resolution of dependencies) every time the project deploys, which can introduce potential issues for project reproducibility if the conda solver version has changed.
With Workbench versions 5.5 and newer, administrators can create and distribute pre-solved “persistent environments” to their users. These environments are like preconfigured workspaces set up by an administrator that have all the necessary tools and software already in place so their team can work without needing to make changes to the environment.
Because these environments are pre-solved and fixed, they don’t require a new solve with each deployment. This means deployments from these environments are created more quickly, and guarantee that your project will run as expected every time, regardless of any external changes such as updates to the conda resolver itself.
For instructions on configuring persistent environments and supplying them to your users, see Configuring persistent environments and sample projects.
anaconda-project.yml
file of persistent environments that are provided by administrators. This practice helps maintain the integrity and reproducibility of the environment.
Promote project locking if modifications are required - If users must make changes, they should use the anaconda-project lock
command to lock the environment afterwards, ensuring it can be precisely recreated later. They must also inform the administrator of these changes, so future environments can be adjusted to incorporate these needs without further modifications. For step-by-step instructions on locking your project, see Locking project configurations.
anaconda-project lock
command when you move to production, even if you created your project using a persistent environment with no configuration modifications!<GROUP>_<YYYY><MM>
(where <GROUP>
denotes the intended users for the environment and <YYYY><MM>
is the year and month).