doc/dev/releasing.md in octocatalog-diff-1.0.4 vs doc/dev/releasing.md in octocatalog-diff-1.1.0
- old
+ new
@@ -2,13 +2,15 @@
The project maintainers are responsible for bumping the version number, regenerating auto-generated documentation, tagging the release, and uploading to rubygems.
## Local testing
-To test the new version of `octocatalog-diff` in the Puppet repository:
+*This procedure is performed by a GitHubber.*
-0. In the Puppet checkout, start a new branch based off master.
+To test the new version of `octocatalog-diff` in the GitHub Puppet repository:
+
+0. In a checkout of the GitHub Puppet repository, start a new branch based off master.
0. In the `octocatalog-diff` checkout:
- Ensure that the desired branch is checked out.
- Choose a unique internal version number which has never been used in CI. A good guideline is that if you're planning to release a version `0.6.0` then for these tests, use `0.6.0a`, `0.6.0b`, ...
- Build the gem using your internal version number:
@@ -21,28 +23,65 @@
OCTOCATALOG_DIFF_VERSION=0.6.0a rake gem:localinstall
```
0. Back in the Puppet checkout, ensure that the changes are as expected (updates to Gemfile / Gemfile.lock, addition of new gem). Push the change and build appropriate CI job(s) to validate the changes.
-## Merging
+## Merging one PR
-0. If necessary, complete a Pull Request to update the [version file](/.version).
-0. If necessary, auto-generate the build documentation.
+This section is useful when releasing a new version based on one PR submitted by a contributor. Following this workflow is important so that the contributor gets appropriate credit in the revision history for his or her work.
+0. In your local checkout, start a new branch based off master.
+0. Add the contributor's repository as a remote. For example:
+
```
+ git remote add octocat https://github.com/octocat/octocatalog-diff.git
+ ```
+
+0. Merge in the contributor's branch into your own. For example:
+
+ ```
+ git merge octocat/some-branch
+ ```
+
+0. Update `.version` and `doc/CHANGELOG.md` appropriately. In CHANGELOG you should link to the PR submitted by the contributor (not the PR you're creating now).
+0. Commit your changes to `.version` and `doc/CHANGELOG.md`.
+0. If necessary, auto-generate the build documentation, and commit the changes to your branch.
+
+ ```
rake doc:build
```
+0. Open a Pull Request based on your branch. Confirm that the history is correct, showing the contributor's commits first, and then your commit(s) updating the version file, change log, and/or auto-generated documentation.
0. Ensure that CI tests are all passing.
-0. Merge and delete the branch.
+0. Ensure that you've performed "local testing" within GitHub (typically, ~1 day) to confirm the changes.
+0. Merge your PR and delete your branch.
+0. Confirm that the contributor's PR now appears as merged, and any associated issues have been closed.
+## Merging multiple PRs
+
+If multiple PRs will constitute a release, it's generally easier to merge each such PR individually, and then create a separate PR afterwards to update the necessary files.
+
+0. Merge all constituent PRs and ensure that any associated issues have been closed.
+0. Create your own branch based off master.
+0. Update `.version` and `doc/CHANGELOG.md` appropriately. In CHANGELOG you should link to the PR submitted by the contributor (not the PR you're creating now).
+0. Commit your changes to `.version` and `doc/CHANGELOG.md`.
+0. If necessary, auto-generate the build documentation, and commit the changes to your branch.
+
+ ```
+ rake doc:build
+ ```
+
+0. Open a Pull Request based on your branch.
+0. Ensure that CI tests are all passing.
+0. Ensure that you've performed "local testing" within GitHub (typically, ~1 day) to confirm the changes.
+0. Merge your PR and delete your branch.
+
## Releasing
Generally, a new release will correspond to a merge to master of one or more Pull Requests.
0. Ensure that all changes associated with the release have been merged to master.
- - Merge all Pull Requests associated with release.
- - If necessary, complete a Pull Request to update the [change log](/doc/CHANGELOG.md).
+ - Merge all Pull Requests associated with release, including the version number bump, change log update, etc.
- If necessary (for significant changes), complete a Pull Request to update the top-level README file.
0. Ensure the the master branch is checked out on your system.
0. Run the release procedure:
```