Skip to content

Notes on Releasing Upstream, Midstream model‐registry

Matteo Mortari edited this page Oct 22, 2024 · 21 revisions

These are just some companion notes on the procedure currently used to release Upstream, Midstream model-registry.

Model Registry itself

At the time of writing, both repos are releasing from tags since there is no requirement for backporting. Eventually it should be switched to release from a branch (instead of tag).

Assuming:

odh	git@github.com:opendatahub-io/model-registry.git (fetch)
odh	git@github.com:opendatahub-io/model-registry.git (push)
origin	git@github.com:<your username>/model-registry.git (fetch)
origin	git@github.com:<your username>/model-registry.git (push)
upstream	git@github.com:kubeflow/model-registry.git (fetch)
upstream	git@github.com:kubeflow/model-registry.git (push)

and assuming local branch odh-main tracks on odh remote the main branch.

Prerequisites:

git checkout main
git pull upstream main

Example for 0.2.9, where Upstream no longer explicits the -alpha suffix (see here).

  • create the release branch upstream
git checkout -b release/v0.2.9
git push upstream release/v0.2.9

this creates the release branch upstream.

Create a PR to update what's needed on the release branch, i.e. the manifest images.

git checkout -b tarilabs-20241005-upstreamSync
pushd manifests/kustomize/base && kustomize edit set image kubeflow/model-registry=kubeflow/model-registry:v0.2.9 && popd
pushd manifests/kustomize/options/csi && kustomize edit set image kubeflow/model-registry-storage-initializer=kubeflow/model-registry-storage-initializer:v0.2.9 && popd
git add .
git commit -s
# using `git push origin`
# will give back convenient command on the screen for copy/paste:
git push --set-upstream origin tarilabs-20241005-upstreamSync
  • create PR ⚠️ targeting the release branch ⚠️ specifically

  • merge the PR

  • optional. if you create the tag from local git (see point below); await GHA complete that push Container images to docker.io or any other KF registry: https://github.com/kubeflow/model-registry/actions

  • create the Release from GitHub, ⚠️ select the release branch ⚠️ , input the new tag
    (in this example the tag is created from GitHub; alternatively, you could just do the tag manually by checking out the release branch locally--remember to pull!!--and issuing the tag from local machine). Encouraging in upstream to mark it as a non-production release (in the github screen). Encouraging to use the "alpha" version policy of KF in the beginning of the release markdown (see previous pre-releases).

  • before creating locally the release branch for midstream, you'll need to remove the previously created local branch

git branch -D release/v0.2.9
  • create the release branch midstream
git checkout odh-main
git pull odh main
git checkout -b release/v0.2.9
git push odh release/v0.2.9

this creates the release branch Midstream.

Create a PR to update what's needed on the release branch, i.e. the manifest images (although, these are not used in Midstream)

git checkout -b tarilabs-20241005-release-odh
pushd manifests/kustomize/base && kustomize edit set image kubeflow/model-registry=quay.io/opendatahub/model-registry:v0.2.9 && popd
pushd manifests/kustomize/options/csi && kustomize edit set image kubeflow/model-registry-storage-initializer=quay.io/opendatahub/model-registry-storage-initializer:v0.2.9 && popd
git add .
git commit -s
# using `git push origin`
# will give back convenient command on the screen for copy/paste:
git push --set-upstream origin tarilabs-20241005-release-odh
  • create PR ⚠️ targeting opendatahub-io organization and the release branch ⚠️ specifically

  • merge the PR

  • optional. if you create the tag from local git (see point below); await GHA complete that push Container images to docker.io or any other KF registry: https://github.com/opendatahub-io/model-registry/actions

  • create the Release from GitHub, ⚠️ select the release branch ⚠️ , input the new tag
    (in this example the tag is created from GitHub; alternatively, you could just do the tag manually by checking out the release branch locally--remember to pull!!--and issuing the tag from local machine)

  • release the MR Python client

git checkout release/v0.2.8
git pull odh release/v0.2.8
git tag py-v0.2.8a1
git push odh py-v0.2.8a1

At this point, Midstream is released, both the container image and the Python client on pypi.

Model Registry Operator

Assuming:

origin	git@github.com:<your username>/model-registry-operator.git (fetch)
origin	git@github.com:<your username>/model-registry-operator.git (push)
upstream	git@github.com:opendatahub-io/model-registry-operator.git (fetch)
upstream	git@github.com:opendatahub-io/model-registry-operator.git (push)
  • create release branch, example:
git checkout main
git pull upstream main
git checkout -b release/v0.2.3
git push upstream release/v0.2.3
  • create PR ⚠️ targeting the release branch ⚠️ specifically you can follow this example: https://github.com/opendatahub-io/model-registry-operator/pull/116

  • merge the PR

  • create the Release from GitHub, ⚠️ select the release branch ⚠️ , input the new tag (in this example the tag is created from GitHub; alternatively, you could just do the tag manually by checking out the release branch locally--remember to pull!!--and issuing the tag from local machine)

Wiring to opendatahub-community

You can use this as example: https://github.com/opendatahub-io/opendatahub-community/issues/154#issuecomment-2226812326