From 55b3894d228918ed3add5fb48512352ae599dfa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20M=C3=A4der?= Date: Tue, 10 Dec 2019 22:09:51 +0100 Subject: [PATCH] Update from `master` based branching to `develop`/`release` based branching --- Release.md | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/Release.md b/Release.md index 13ae8f0..9560639 100644 --- a/Release.md +++ b/Release.md @@ -1,22 +1,41 @@ -1. Make sure you're on the `master` branch: `git checkout master` +## Prepare a Release + +1. Make sure you're on the `develop` branch: `git checkout develop` 1. Make sure, that the branch is clean: `git status` should not show any pending change. 1. Use `git stash` to stash them away for the release process. -1. Merge any relevant feature into `master`. - 1. Create a new local branch: `git checkout -b feature-name master` +1. Merge any relevant feature into `develop`. + Either via Github PRs (make sure the PR targets the `develop` branch!) or manually: + 1. Create a new local branch: `git checkout -b feature-name develop` 2. Pull the remote change into the current branch: `git pull https://github.com/other-user-or-org/netbox-docker.git remote-branch-name` 3. Check whether the build still works: `./build.sh` - 4. Switch back to your master branch: `git checkout master` - 5. Merge the feature into the master branch: `git merge --no-ff feature-name` + 4. Switch back to your `develop` branch: `git checkout develop` + 5. Merge the feature into the `develop` branch: `git merge --no-ff feature-name` 6. Clean up your local branches: `git branch -d feature-name` 2. Put the new version into the `VERSION` file: `echo "0.20.0" > VERSION` 3. Make a commit with the version file change: `git commit -m "Preparation for $(cat VERSION)" VERSION` -4. Tag that commit: `git tag "$(cat VERSION)"` -5. Push the features and the tag: `git push --tags origin && git push origin` -6. Eventually unstash your previous work: `git stash pop` +4. Push the branch and make a PR on Github from `develop` to `release` + +Now another maintainer has to approve the PR. + +## Make the release + +After the PR is merged, tag that commit: + +- Either locally: + 1. Checkout the `release` branch + 2. Update to the latest version: `git pull -pr origin release` + 3. Create the tag: `git tag "$(cat VERSION)"` + 4. Push the tag: `git push origin --tags` +- Or on Github: + 1. Go to the [Release Page][releases] + 2. Click [Draft a New Release][draft] + 3. Choose the `release` branch + 4. Enter the exact value of the `VERSION` file into the Tag field. Now go to Github and [draft a new release][draft]. Copy the text from [the most recent previous release][latest] and adjust it according to the new release. Eventually announce the release on our Slack channel. +[releases]: https://github.com/netbox-community/netbox-docker/releases [draft]: https://github.com/netbox-community/netbox-docker/releases/new [latest]: https://github.com/netbox-community/netbox-docker/releases/latest \ No newline at end of file