Skip to content

Release and version management

Trong-Nghia Nguyen edited this page Dec 15, 2017 · 5 revisions

SMC

Branches

  • master: master branch is the default branch of this repository. It's should be the source code of the main stable release.
  • R/x.x (for example: 0.0): branches for main versions, these branches should be protected and merged at every releases. Tagging should also be done in these branches.
  • R/x.x.x (for example: 0.0.3): branches for the sub release versions. Develop branches should be merged into these kind of branches. Sub release branches will be deleted at the end of the sub release.
  • D/x.x.x/{issue_number}_{suffix}: every develop branches should be indicated to one issue. Suffix should be added if you want to test with 3rd services (ex: Travis). Develop branches should only be created at your forked repos.

Commits

  • Every commits should have follow the following format (except merge commits)
[R/{milestone_version}/#{issue_number}] commit's contents

Release checklist

  • Ensure that the release source code passed all the tests
  • Pylint check should return more than 9.0/10
  • Update version number in imagebutler/__init__.py
  • Ensure all necessary dependencies are list in setup.py file
  • Update release note in HISTORY.rst file
  • Update README.rst and other files if there are changes
  • Run RST format check (any of below commands)
python setup.py check -r -s
python setup.py checkdocs
python setup.py check --restructuredtext
  • Packaging
python setup.py sdist bdist_wheel
  • Upload to test pypi repo
twine upload -r test dist/ImageButler-0.0.4.tar.gz dist/ImageButler-0.0.4-py3-none-any.whl
  • Upload to pypi
twine upload dist/ImageButler-0.0.4.tar.gz dist/ImageButler-0.0.4-py3-none-any.whl
  • Commit changes to git repo and add a new release tag
Clone this wiki locally