-
Notifications
You must be signed in to change notification settings - Fork 56
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
Add specification versioning- and release management instructions and checks #87
Conversation
- Add gitflow-based version- and release management instructions to the Versioning section of the README. - Add links to the "latest stable", "current draft", "new changes since latest stable" and "release history" of the specification to the header of the README document. Note that the version number of the latest stable version of the specification is no longer shown in the README, which eliminates the need to update the README with every new release.
ed39719
to
958778a
Compare
Add script to run on Travis upon a GitHub pull request, that checks that versioning- and release management rules are followed.
958778a
to
8c2af51
Compare
I just configured branch restrictions for the
Repo administrator can still bypass any of these restrictions. |
IMHO the next steps should be:
After that the next steps will be to add TAP 4 and release 1.1.0, and add TAP 3 (#57) and release 2.0.0. |
- Merges with 'master' that originate from any other branch must bump the patch | ||
version number. | ||
- Merges with 'master' must be followed by a git tag for the new version | ||
number. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is currently not verified by check_release.py
, because the script is executed before the merge, and the tag should probably be created after the merge. It would be nice to automate tag or release creation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any thoughts, anyone?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree this would be nice to automate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I can look into it.
- For patch-type changes, pull requests may be submitted directly against the | ||
'master' branch. | ||
- For major- and minor-type changes, pull requests must be submitted against | ||
the 'draft' branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's slightly odd to me that the person sending a PR doesn't indicate minor vs major. Also, it sounds like those are getting intertwined in a way we may not want. What if we want to push a release with some backwards compat (minor version) changes but not others that are not backwards compatible? Do we disentangle these changes at that time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer to have a model where there are major, minor, and patch branches and they interrelate in the way your master and draft branches do.
I like the overall approach though!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's slightly odd to me that the person sending a PR doesn't indicate minor vs major.
I think the person who sends the PR should not be bothered with the question into what future release the submitted change goes, regardless of it being major, minor or patch. This is the task of the maintainer. Maybe I should add a note to this section that says maintainers may change the target of a pending PR?
Also, it sounds like those are getting intertwined in a way we may not want. What if we want to push a release with some backwards compat (minor version) changes but not others that are not backwards compatible? Do we disentangle these changes at that time?
Coordinating major and minor releases can still be done, either by holding back PRs from being merged into draft
, or, if it's too late for that, by shuffling around the git history on draft
. The consensus in #73 seemed to be that the operational simplicity of having one working branch, plus the option to directly patch master
, outweighs the flexibility of multiple permanent draft branches.
I like the overall approach though!
Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @lukpueh, we want to make PRs as simple as possible. As long as we merge draft into master regularly, I don't think that we will need any additional branches.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, let's move this forward
Fixes #73
Add gitflow-based version- and release management instructions to the Versioning section of the README.
Add links to "latest stable", "current draft", "new changes since latest stable" and "release history" of the specification in the header of the README document.
(Note that the version number of the latest stable version of the specification is no longer shown in the README, which eliminates the need to update the README with every new release.)
Add script to run on Travis upon a GitHub pull request, that checks that versioning- and release management rules are followed, and configure travis accordingly.
Reviewers may focus on the changes in
README.rst
.The
check_release.py
-script and.travis.yml
-configuration are only there to help us follow the version/release strategy.