diff --git a/Scrapy-release-procedure.md b/Scrapy-release-procedure.md index bbeb067..be3898c 100644 --- a/Scrapy-release-procedure.md +++ b/Scrapy-release-procedure.md @@ -6,23 +6,47 @@ You will need [bumpversion](https://pypi.python.org/pypi/bumpversion) installed. ## Version and git branch -Here is an example, assuming we are releasing 0.26.0: +Here is an example, assuming we are releasing 1.1.0rc1: ```bash # Be sure your local master branch is uptodate with remote master branch. $ git pull origin --rebase -# Update release notes by editing docs/news.rst (Don't forget to set release date) +# Update release notes by editing docs/news.rst $ git add docs/news.rst -$ git commit -m 'Add 0.26.0 release notes' +$ git commit -m 'Add 1.1.0 release notes' # Increase version and create featured branch -$ bumpversion minor -$ git branch 0.26 +# master: 1.1.0dev1 to 1.1.0rc1 +$ bumpversion prerel +$ git branch 1.1 +# master: 1.1.0rc1 to 1.2.0dev1 $ bumpversion minor --no-tag # Review everything and push when sure. -$ git push origin master 0.26 --tags +$ git push origin master 1.1 --tags +``` + +To make an official release from a release candidate: +```bash +# Checkout the featured branch. +$ git checkout 1.1 + +# Set release date in docs/news.rst. +$ git add docs/news.rst +$ git commit -m 'Update 1.1.0 release date' + +# Increase version. +# 1.1: 1.1.0rc1 to 1.1.0 +$ bumpversion prerel + +# Review everything and push when sure. +$ git push origin master 1.1 --tags + +# Checkout master and cherry pick `docs/news.rst` changes. +$ git checkout master +$ git cherry-pick 1.1 # resolve any conflicts on docs/news.rst +$ git push origin master ``` ## Buildbot @@ -49,20 +73,21 @@ $ git push origin master 0.26 --tags ## Micro/bugfix releases -Assuming we are releasing `0.24.4`: +Assuming we are releasing `1.0.1`: ```bash -$ git checkout 0.24 -$ bumpversion patch +$ git checkout 1.0 +# 1.0: 1.0.0 to 1.0.1 (Use --serialize to avoid the 1.0.1dev1 version) +$ bumpversion patch --serialize "{major}.{minor}.{patch}" # Add version, release date and changes to `docs/news.rst` -$ git log '--format=- %s (:commit:`%h`)' 0.24.3...0.24 # update docs/news.rst +$ git log '--format=- %s (:commit:`%h`)' 1.0.1...1.0 # update docs/news.rst $ git add docs/news.rst -$ git commit -m 'Add 0.24.4 release notes' -$ git push origin 0.24 --tags +$ git commit -m 'Add 1.0.1 release notes' +$ git push origin 1.0 --tags # Checkout master and cherry pick `docs/news.rst` changes. $ git checkout master -$ git cherry-pick 0.24 # resolve any conflicts on docs/news.rst +$ git cherry-pick 1.0 # resolve any conflicts on docs/news.rst $ git push origin master -``` +``` \ No newline at end of file