Replies: 2 comments 1 reply
-
Actually, this is not difficult. E.g. |
Beta Was this translation helpful? Give feedback.
-
Simplified checklist, as of #11 and 0.1.2rc1:
|
Beta Was this translation helpful? Give feedback.
-
Actually, this is not difficult. E.g. |
Beta Was this translation helpful? Give feedback.
-
Simplified checklist, as of #11 and 0.1.2rc1:
|
Beta Was this translation helpful? Give feedback.
-
@SpheMakh @Athanaseus see also #8.
By necessity, we have a somewhat parallel release process. The
cult-cargo
package is uploaded to PyPI, and a corresponding set of images needs to be pushed toquay.io/stimela2
.Checklist for a new release:
start a branch on cult-cargo for the release.
update version number in https://github.com/caracal-pipeline/cult-cargo/blob/master/pyproject.toml. This is the PyPI release version.
update version number in https://github.com/caracal-pipeline/cult-cargo/blob/master/cultcargo/genesis/cult-cargo-base.yml. This is the version that stimela will look for when downloading images.
update version number in https://github.com/caracal-pipeline/cult-cargo/blob/master/cultcargo/builder/cargo-manifest.yml. This is the version number that the
build-cargo.py
script will use to tag images.check stimela version in https://github.com/caracal-pipeline/cult-cargo/blob/master/cultcargo/images/python-astro/Dockerfile. The only real reason to install stimela in this image is to provide
scabha.schema_utils
to interested packages (which usepython-astro
as a base image). So I think this should be the same version as listed in thepyproject.toml
dependency.run
build-cargo.py -a
to rebuild and push all images with the new image version tags, and make sure this completes successfully.open a PR and ask for a review.
It's a bit of a hassle having to update the version number in three places, but I haven't figured out an elegant way to automate this.
Also note that the image versions do not necessarily have to match the PyPI package version. We could still choose to follow a scheme (see #8) where image versions are only bumped when existing images change. So we could, for example, carry on using images versioned
cc-0.2.0
(or even justcc-0.2
) with patch releases 0.2.0, 0.2.1, etc. I am undecided.Pros of decoupling image versions from PyPI package version:
Cons of decoupling:
Also, once a release of cult-cargo is on PyPI, one thing we should NEVER do is push out new images under the same image version tag. That will definitely mess with reproducibility. As long as the release is still in "candidate" stage (i.e. lives on a branch and hasn't been pushed to PyPI), we can build and rebuild and push images to our heart's content, but once the release is public, those images mustn't change again. The current workflow has no provisions to protect against this apart from self-discipline. I wonder if we can't build in protections into the
build-cargo.py
script? I see quay.io provides an option to make an image tag immutable, but this has to be done via the web interface, image by image, which is obviously not practical. I don't see a standard API for doing this programmatically -- seems to be registry-specific, anyway, and there's nothing obvious on the quay.io API docs.Beta Was this translation helpful? Give feedback.
All reactions