Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epiphyte bumpversion #391

Merged
merged 3 commits into from
Aug 10, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -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<major>\d+),\s(?P<minor>\d+),\s(?P<patch>\d+)

1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Contents:
synapse/configables
performance
contributing
release_process

Indices and tables
==================
Expand Down
77 changes: 77 additions & 0 deletions docs/release_process.rst
Original file line number Diff line number Diff line change
@@ -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


2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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='[email protected]',
Expand Down