git checkout v0.22-branch
(or git pull upstream v0.22-branch --rebase
if you've cut a release before)git cherry-pick [COMMIT FROM MASTER]
git push upstream v0.22-branch
to commit changes to the release branchNote: if you're handling a maintenance release (i.e. an older version), semantic release may complain at you. See Sample PR to enable an older branch to cut releases.
git tag v0.22.0
.git push --tags
to push the tag to your forks master branch.This is important. If you don't have a tag, then the wheels you build will be dev wheels, which we can't push. The release process will automatically produce a tag for you via Semantic Release.
Actions
tab on your GitHub UI on your fork and click the build_wheels
action. This workflow will build the python sdk wheels for Python 3.8-3.10 on MacOS 10.15 and Linux and verify that these wheels are correct. The publish workflow uses this action to publish the python wheels for a new release to PyPI.This workflow has a workflow_dispatch event trigger
and click Run Workflow
on the right.v0.22.0
in this case, not the master branch) and verify that the workflow worked (i.e ensure that all jobs are green).v0.22-branch
).git push -u origin <branch>
).v0.22.1
) by running git tag <tag>
.This is important. If you don't have a tag, then the wheels you build will be dev wheels, which we can't push. The release process will automatically produce a tag for you via Semantic Release.
git push origin <tag>
.build_wheels
workflow in your fork in the same way as is detailed in the last section, running the workflow from this tag you just pushed up.repo
checkbox.Actions
tab on the main feast-dev/feast
repo and find the release
action.This workflow has a workflow_dispatch event trigger
again and click Run Workflow
on the right.Dry Run
and run the release workflow.release
workflow will kick off. This publishes an NPM package for the Web UI (NPM package), bumps files versions (e.g. helm chart, UI, Java pom.xml files), and generate a changelog using Semantic Release. All jobs should succeed.publish
workflow will kick off. This builds all the Python wheels (PyPI link, publishes helm charts, publishes the Python and Java feature servers to Docker (DockerHub images), publishes the Java Serving Client + Datatypes libraries to Maven (Maven repo)feast init
-> feast apply
workflow to verify as a sanity check that the release worked correctly.