modelmesh-serving icon indicating copy to clipboard operation
modelmesh-serving copied to clipboard

Update Release Doc

Open rafvasq opened this issue 1 year ago • 2 comments

Update the release doc to include instructions for the following:

  • [ ] Cherry-picking when necessary
  • [x] Updating FVT pre-pull image tags for version instead of latest see: https://github.com/kserve/modelmesh-serving/pull/406/commits/439b03a750bc99338b0b5623c158dc1a40c14d8c done in #414

Originally posted by @ckadner in https://github.com/kserve/modelmesh-serving/pull/406#issuecomment-1649496677

rafvasq avatar Jul 25 '23 13:07 rafvasq

A few quick notes:

  • set the the git committer to "GitHub" before doing any cherry-picking or re-basing:
    export GIT_COMMITTER_NAME="GitHub"
    export GIT_COMMITTER_EMAIL="[email protected]"
    
  • do cherry-pick any new commits from main onto the release-* when creating new release candidates (rc1, rc2, ...) on the modelmesh-serving repo (only). Use the -x option to append the commit messages with the line "(cherry picked from commit …)":
    git checkout release-0.11
    git cherry-pick -x ..main
    git push
    
  • for the other repos (modelmesh, modelmesh-runtime-adapter, ...), if there are no divergent commits on the release-* branch, use git rebase from master
    git checkout release-0.11
    git rebase main
    git push
    
  • don't rebase the release-* branches after a ...-rc0 tag had been created, it would remove the commit that was used for the previous rc tag

ckadner avatar Jul 27 '23 02:07 ckadner

We should also add a bit of text to describe the chicken-and-egg problem with kserve/kserve requiring the new ModelMesh release before creating it's new release (https://github.com/kserve/kserve/pull/3059), but modelmesh-serving depending on the new KServe release so that it can create a new release (https://github.com/kserve/modelmesh-serving/pull/413).

On the kserve/kserve side, the requirement is for the tagged Docker images to be available. To get those ModelMesh images before ModelMesh creates a new tagged release, the existing RC images can be retagged, assuming there were no (major) code changes since the last release candidate.

old_tag="v0.11.0-rc1"
new_tag="v0.11.0"

images=(
   modelmesh
   modelmesh-controller
   modelmesh-minio-dev-examples
   modelmesh-minio-examples
   modelmesh-runtime-adapter
   rest-proxy
)

for img in ${images[*]}; do
  # use `buildx imagetools` instead of `docker manifest` to maintain multi-arch manifests
  docker buildx imagetools create \
    "kserve/${img}:${old_tag}" --tag \
    "kserve/${img}:${new_tag}";
done

ckadner avatar Aug 02 '23 23:08 ckadner