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

Rework the release process and branching structure #77

sloria opened this Issue Dec 4, 2014 · 1 comment


None yet
1 participant

sloria commented Dec 4, 2014

Currently, marshmallow uses a stripped-down version of git-flow, with a production branch (master) and a next-release branch (dev).

After some consideration, I've decided that marshmallow's release process doesn't neatly fit into the git-flow model.

I sometimes create feature and support branches that get merged into dev, but I never create hotfix branches (branched of master and immediately merged and released). When a bugfix comes in, it first gets merged into dev, then into master.

More importantly, Git-flow constrains you to have one release branch at a time. I am currently planning to support two release lines: 1.1 and 2.0 (once it is released), and I'm not sure how this would work with git-flow.

I propose the following changes to the branch structure:

  • master will be the development branch. New features (and major bug fixes) should branch off here. Initial 2.0 development will happen here.
  • 1.1-maintenance will be the 1.1 release line. Bug fixes (and possibly minor features) should branch off here. These fixes will be forward-ported to master
  • Maintenance branches will be created for each supported release line

I believe this structure to be simpler and more in line with marshmallow's release process.

Barring any objections to this change, I will update the contributing docs accordingly.

sloria added a commit that referenced this issue Dec 7, 2014


This comment has been minimized.


sloria commented Dec 20, 2014

Ok, I've settled on the following branch structure for the time being.

  • dev: The development branch.
  • pypi: The latest PyPI release, included for convenience.
  • X.Y-line: Maintenance branch for version X.Y.

Contributing docs have been updated. Closing this for now.

@sloria sloria closed this Dec 20, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment