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 remote
for 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-histories
Most likely this will result in some merge conflicts which will need to be resolved. At the very least the
Dockerfile
and GitHub workflows should be taken from "theirs":git checkout --theirs Dockerfile git checkout --theirs .github/workflows/docker-publish.yml
You can choose to keep your
docker-compose.yaml
:git checkout --ours docker-compose.yaml
You can choose whether to keep your
README.md
but we recommend updating it as it contains the updated instructions for how to use the distribution repository:git checkout --theirs README.md
The plugins are now listed in the
pyproject.toml
instead of theplugins.txt
and can be added there withuv
and theplugins.txt
removed:uv add --optional plugins -r plugins.txt --no-sync rm plugins.txt
Finally, the new recommendation is to either
git clone
the distribution repository or tocurl
the whole repository so thenomad-oasis.zip
can also be removed:rm nomad-oasis.zip
Once 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.yaml
in theconfigs
directory. We have added the newly generated jupyter image to thenorth
config there. If you have an existing jupyter config you can choose to change theimage
to the one listed in the newnomad.yaml
in theconfigs
directory. If you don't have an existingnorth
config you can copy the whole config block.
After you have updated thenorth
config in your existingnomad.yaml
you can copy it into theconfigs
directory: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