-
Create a doc-refresh branch. Add the logs of changes under changelog. The logs can be reused later for drafting release notes. Rerun notebooks under docs/tutorails for defined readthedocs triggered job.
-
Submit a PR to dev branch for any changes of any documentation.
-
After the approval and merge from previous PR, create a release branch from
dev
- e.g.
release-v1.0.15
- e.g.
-
Update the version number in
orbit/__init__.py
. This version number will be propagated todocs/conf.py
,setup.cfg
, andsetup.py
. -
Commit changes
-
Test PyPI deployment locally by running [Optional]
python3 setup.py sdist bdist_wheel
python3 -m twine check dist/*
-
If necessary, additional PRs may be merged to the release branch directly, but this should be for bug fixes only.
-
Rebase and merge the release branch to
master
by runninggit checkout master
git rebase --no-ff release-v1.0.15
git tag -a v1.0.15
git push origin master
-
Rebase and merge the release branch to
dev
by runninggit checkout dev
git rebase --no-ff release-v1.0.15
git push origin dev
here option
--no-ff
is important to have same commit ids betweenmaster
anddev
;git rebase
instead ofgit merge
is to avoid the additional merge commit. -
Draft a new release: https://github.com/uber/orbit/releases/new
- Select the
master
as the target branch - Use version number for both the tag and title e.g.
v1.0.15
- Add a bulleted list of changes in the description; this can be similar to change logs from step 1.
- Select the
-
Click
Publish Release
once all changes are finalized and description is updated -
All the documentation should be refreshed and can be found in https://orbit-ml.readthedocs.io/en/stable/
Sometimes we just want to release a patch, and no subsequent commits are needed on the release branch. In this case, we can avoid creating the branch and create a release directly from dev.
- From
dev
, update the version number inorbit/__init__.py
. - Commit changes
- Merge to
master
- Draft a new release: https://github.com/uber/orbit/releases/new
- Select the master branch as the target branch
- Use version number for both the tag and title
- Add a bulleted list of changes in the description as well as changelog.
Sometimes we may need to address a bug fix directly from master after a release, but dev
may have moved on with new commits.
- Create a hotfix branch from master and update the version number
- Make fix
- Merge changes into
master
- Draft a new release: https://github.com/uber/orbit/releases/new
- Select the master branch as the target branch
- Use version number for both the tag and title
- Add a bulleted list of changes in the description as well as changelog.
- Merge changes into
dev