From ec9e0a0c117d6b373aab5db270e3f065d281b610 Mon Sep 17 00:00:00 2001 From: epiphyte Date: Thu, 10 Aug 2017 11:09:57 -0400 Subject: [PATCH 1/3] Add bumpversion config --- .bumpversion.cfg | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .bumpversion.cfg diff --git a/.bumpversion.cfg b/.bumpversion.cfg new file mode 100644 index 0000000000..22458fdb7c --- /dev/null +++ b/.bumpversion.cfg @@ -0,0 +1,11 @@ +[bumpversion] +current_version = 0.0.20 +commit = True +tag = True + +[bumpversion:file:setup.py] + +[bumpversion:file:synapse/__init__.py] +serialize = {major}, {minor}, {patch} +parse = (?P\d+),\s(?P\d+),\s(?P\d+) + From 09edd7db8f5e37ffacd0fd54583ccbf5a6d2c0e7 Mon Sep 17 00:00:00 2001 From: epiphyte Date: Thu, 10 Aug 2017 12:00:17 -0400 Subject: [PATCH 2/3] remove comment --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 46d3d5d5ca..c952279b41 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name='synapse', - version='0.0.20', # sync with synapse.version! + version='0.0.20', description='Synapse Distributed Key-Value Hypergraph Analysis Framework', author='Invisigoth Kenshoto', author_email='invisigoth.kenshoto@gmail.com', From 545752958f155b65f6ef54a4ad1fc11209e3d6a4 Mon Sep 17 00:00:00 2001 From: epiphyte Date: Thu, 10 Aug 2017 12:06:31 -0400 Subject: [PATCH 3/3] Update docs for release process / bumpversion --- docs/index.rst | 1 + docs/release_process.rst | 77 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 docs/release_process.rst diff --git a/docs/index.rst b/docs/index.rst index 56efe45c10..83d5342e01 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,6 +13,7 @@ Contents: synapse/configables performance contributing + release_process Indices and tables ================== diff --git a/docs/release_process.rst b/docs/release_process.rst new file mode 100644 index 0000000000..d78c1bd317 --- /dev/null +++ b/docs/release_process.rst @@ -0,0 +1,77 @@ +Synapse Release Process +======================= + +This doc details the release process we use for Synapse. + +Github Milestone Management +--------------------------- + +The current milestone and the next milestone should be created in github. For example, if the current release is +v0.0.20, we should have a v0.0.21 and v0.0.22 milestones created. When PRs are created or issues are addressed (via PR), +they should be added to the milestone. This allows us to easily pull stories and PRs for release note generation. + +Release Notes +------------- + +Release notes should be compiled from the issues and PRs assigned to the milestone being released. These can all be +obtained via a issue search in github. For example, if we're releasing v0.0.20, we can pull all the stories via the +following query in github:: + + milestone:v0.0.20 + +Release notes should break things out by the following categories: + + #. New Features in Synapse + #. Enhancements to existing features + #. Bugfixes + #. Major documentation updates + +Short text form is fine for describing these. These notes will be posted up on github on the releases page for +consumption. + +Cutting the Release +------------------- + +This includes three parts: + + #. Tagging the release and pushing to github. + #. Publishing the release on pypi. + #. Publishing new docker images on dockerhub. + +Tagging the Release +~~~~~~~~~~~~~~~~~~~ + +Version tagging in Synapse is managed by bumpversion. This handles updating the .py files containing the version +number in them, as well as creating git tags and commit messages. There should not be a need to manually edit +version numbers or do git commits. + +bumpversion is a python application, and can be installed via pip:: + + python -m pip install bumpversion + +Bumpversion is designed for projects which do semantic versioning. Since synapse is not yet in that state, we'll be +using bumpversion to do patch releases. This can be done via the following (assuming the vertexproject/synapse +remote is called 'upstream'):: + + # Ensure we're on master with the latest version + git checkout master && git fetch --all && git merge upstream/master + # Do a dry-run to ensure that we're updating things properly + bumpversion --dry-run --verbose patch + # Bump the patch version + bumpversion --verbose patch + # Push the new commit and tag up to github + git push upstream + git push upstream --tags + +Next, go to github at https://github.com/vertexproject/synapse/tags and edit the release notes for the tag that was +pushed up. Add the release notes compiled from the previous step. + +Publishing on Pypi +~~~~~~~~~~~~~~~~~~ +Coming soon (this may be automated very soon) + +Updating Docker images +~~~~~~~~~~~~~~~~~~~~~~ +Coming soon + +