Version 2.0.0
What's Changed
1. Dependency Management Overhaul:
- In v2, all dependencies are resolved upfront and installed in a single step. This prevents overwriting existing versions or installing conflicting packages with the original nomad installation.
- You now have full control over plugins by inspecting and managing them through the pyproject.toml file, making it easier to disable or exclude specific plugins that were previously part of the original setup.
2. Jupyter Image Integration:
- We now build a Jupyter image alongside the Nomad Oasis image. This means that all your plugins and the Nomad package are available in the Jupyter environment, offering a unified experience across both images.
3. Breaking Change, Transitioning from plugins.txt to pyproject.toml:
-
In v2, we've moved away from using the plugins.txt file. All plugin dependencies are now listed in the pyproject.toml file for better control and flexibility.
-
To migrate from version 1 to version 2 you can add a new
git remotefor the template and merge with that one while allowing for unrelated histories:git remote add template https://github.com/FAIRmat-NFDI/nomad-distro-template git fetch template git merge template/main --allow-unrelated-historiesMost likely this will result in some merge conflicts which will need to be resolved. At the very least the
Dockerfileand GitHub workflows should be taken from "theirs":git checkout --theirs Dockerfile git checkout --theirs .github/workflows/docker-publish.ymlYou can choose to keep your
docker-compose.yaml:git checkout --ours docker-compose.yamlYou can choose whether to keep your
README.mdbut we recommend updating it as it contains the updated instructions for how to use the distribution repository:git checkout --theirs README.mdThe plugins are now listed in the
pyproject.tomlinstead of theplugins.txtand can be added there withuvand theplugins.txtremoved:uv add --optional plugins -r plugins.txt --no-sync rm plugins.txtFinally, the new recommendation is to either
git clonethe distribution repository or tocurlthe whole repository so thenomad-oasis.zipcan also be removed:rm nomad-oasis.zipOnce the merge conflicts are resolved you should add the changes and commit them
git add -A git commit -m "Updated to new distribution version"Ideally all workflows should be triggered automatically but you might need to run the initialization one manually by navigating to the "Actions" tab at the top, clicking "Template Repository Initialization" on the left side, and triggering it by clicking "Run workflow" under the "Run workflow" button on the right.
Once the "Template Repository Initialization" workflow has completed you will find a new updated
nomad.yamlin theconfigsdirectory. We have added the newly generated jupyter image to thenorthconfig there. If you have an existing jupyter config you can choose to change theimageto the one listed in the newnomad.yamlin theconfigsdirectory. If you don't have an existingnorthconfig you can copy the whole config block.
After you have updated thenorthconfig in your existingnomad.yamlyou can copy it into theconfigsdirectory:mv nomad.yaml configs/nomad.yaml
Pull Requests
- Added instructions for if initialize workflow fails to run by @hampusnasstrom in #18
- Update to the new distro mechanism by @blueraft in #23
- Revert image name change by @blueraft in #26
- Disable prerelease by @blueraft in #27
- Combine READMEs and add migration instructions by @hampusnasstrom in #29
- Install using apt get by @blueraft in #32
- 33 add jupyter dependencies by @hampusnasstrom in #34
New Contributors
Full Changelog: v1.0.3...v2.0.0