diff --git a/docs/releaseprocedures.rst b/docs/releaseprocedures.rst index 7449315510c8aeedfd430fdfecea8c2c99a69b74..a0cd6e7578a2f91e95dff9bd049d9289fe745980 100644 --- a/docs/releaseprocedures.rst +++ b/docs/releaseprocedures.rst @@ -114,145 +114,148 @@ When releasing a new minor/major version, procedure is as follows: (cd docs/; make clean html; firefox _build/html/index.html) -8. Test deployment of test site from scratch to make sure all roles behave +8. Test all roles using `Molecule `_ to make + sure no regressions were introduced. + +9. Test deployment of test site from scratch to make sure all roles behave correctly. -9. Add release notes to file ``docs/releasenotes.rst``. Release notes template - should be as follows:: +10. Add release notes to file ``docs/releasenotes.rst``. Release notes template + should be as follows:: - VERSION - ------- + VERSION + ------- - GENERAL DESCRIPTION + GENERAL DESCRIPTION - New roles: + New roles: - * ``ROLE``, DESCRIPTION. + * ``ROLE``, DESCRIPTION. - Breaking changes: + Breaking changes: - * ``ROLE`` role + * ``ROLE`` role - * CHANGE DESCRIPTION + * CHANGE DESCRIPTION - New features/improvements: + New features/improvements: - * ``ROLE`` role + * ``ROLE`` role - * FEATURE/IMPROVEMENT DESCRIPTION + * FEATURE/IMPROVEMENT DESCRIPTION - Bug-fixes: + Bug-fixes: - * ``ROLE`` role + * ``ROLE`` role - * BUG-FIX DESCRIPTION + * BUG-FIX DESCRIPTION -10. Clean-up the documentation build, and check what files need to be updated:: +11. Clean-up the documentation build, and check what files need to be updated:: (cd docs; make clean; grep -r "${CURRENT_VERSION/./\\.}" .) -11. Update all relevant documents with new version information, as obtained from +12. Update all relevant documents with new version information, as obtained from the previous command. At the very least this includes changes to: - ``docs/conf.py`` - ``usage.rst`` -12. Ensure documentation builds correctly:: +13. Ensure documentation builds correctly:: (cd docs/; make clean html) -13. Show the changes before making a commit:: +14. Show the changes before making a commit:: git diff docs/ -14. Commit the changes:: +15. Commit the changes:: git add docs/ git commits -m "$ISSUE: Preparing for release $NEW_VERSION." -15. Create annotated and signed Git tag:: +16. Create annotated and signed Git tag:: git tag --sign -a "$NEW_VERSION" -m "RELEASE DESCRIPTION" -16. Clean-up the documentation build, check what files need to be switched back +17. Clean-up the documentation build, check what files need to be switched back to development version, and determine development version:: (cd docs; make clean; grep -r "${NEW_VERSION/./\\.}" .) echo "${NEW_VERSION%.*}-dev" -17. Update all relevant documents with development version information, as +18. Update all relevant documents with development version information, as obtained from the previous command. At the very least this includes changes to: - ``docs/conf.py`` - ``usage.rst`` -18. Show the changes before committing them:: +19. Show the changes before committing them:: git diff docs/ -19. Commit the changes:: +20. Commit the changes:: git add docs/ git commits -m "$ISSUE: Bumping version to ${NEW_VERSION%.*}-dev (switching back to development)." -20. Verify GnuPG signatures:: +21. Verify GnuPG signatures:: git gpgcheck git verify-tag "$NEW_VERSION" -21. Merge changes back into the master branch:: +22. Merge changes back into the master branch:: git checkout master git merge "${ISSUE,,}" -22. Push the tag and changes to master:: +23. Push the tag and changes to master:: git push git push origin "${NEW_VERSION}" -23. Create the maintenace branch:: +24. Create the maintenace branch:: git checkout -b "${NEW_VERSION%.*}" "$NEW_VERSION" -24. Clean-up the documentation build, check what files need to be switched to +25. Clean-up the documentation build, check what files need to be switched to maintenace version, and determine maintenace version:: (cd docs; make clean; grep -r "${NEW_VERSION/./\\.}" .) echo "${NEW_VERSION%.*}-maint" -25. Update all relevant documents with new version information, as obtained from +26. Update all relevant documents with new version information, as obtained from the previous command. At the very least this includes changes to: - ``docs/conf.py`` - ``usage.rst`` -26. Show the changes before making a commit:: +27. Show the changes before making a commit:: git diff docs/ -27. Commit the changes:: +28. Commit the changes:: git add docs/ git commits -m "$ISSUE: Creating maintenance branch for release $NEW_VERSION." -28. Push the maintenance branch:: +29. Push the maintenance branch:: git push origin "${NEW_VERSION%.*}" -29. Switch back to the master branch:: +30. Switch back to the master branch:: git checkout master -30. Delete the local branch:: +31. Delete the local branch:: git branch -d "${ISSUE,,}" -31. Mark issue as resolved in the issue tracker. +32. Mark issue as resolved in the issue tracker. -32. Release the version via release center in the issue tracker. +33. Release the version via release center in the issue tracker. -33. Archive all other releases. +34. Archive all other releases. Releasing new patch version @@ -294,10 +297,13 @@ When releasing a new patch release, procedure is as follows: (cd docs/; make clean html; firefox _build/html/index.html) -9. Test deployment of test site from scratch to make sure all roles behave - correctly. +9. Test all roles using `Molecule `_ to make + sure no regressions were introduced. -10. Add release notes to file ``docs/releasenotes.rst``. Release notes template +10. Test deployment of test site from scratch to make sure all roles behave + correctly. + +11. Add release notes to file ``docs/releasenotes.rst``. Release notes template should be as follows:: VERSION @@ -311,81 +317,81 @@ When releasing a new patch release, procedure is as follows: * BUG-FIX DESCRIPTION -11. Clean-up the documentation build, and check what files need to be updated:: +12. Clean-up the documentation build, and check what files need to be updated:: (cd docs; make clean; grep -r "${CURRENT_VERSION/./\\.}" .) -12. Update all relevant documents with new version information, as obtained from +13. Update all relevant documents with new version information, as obtained from the previous command. At the very least this includes changes to: - ``docs/conf.py`` - ``usage.rst`` -13. Ensure documentation builds correctly:: +14. Ensure documentation builds correctly:: (cd docs/; make clean html) -14. Show the changes before making a commit:: +15. Show the changes before making a commit:: git diff docs/ -15. Commit the changes:: +16. Commit the changes:: git add docs/ git commits -m "$ISSUE: Preparing for release $NEW_VERSION." -16. Create annotated and signed Git tag:: +17. Create annotated and signed Git tag:: git tag --sign -a "$NEW_VERSION" -m "RELEASE DESCRIPTION" -17. Clean-up the documentation build, check what files need to be switched back +18. Clean-up the documentation build, check what files need to be switched back to maintenance version, and determine maintenance version:: (cd docs; make clean; grep -r "${NEW_VERSION/./\\.}" .) echo "${NEW_VERSION%.*}-maint" -18. Update all relevant documents with maintenance version information, as +19. Update all relevant documents with maintenance version information, as obtained from the previous command. At the very least this includes changes to: - ``docs/conf.py`` - ``usage.rst`` -19. Show the changes before committing them:: +20. Show the changes before committing them:: git diff docs/ -20. Commit the changes:: +21. Commit the changes:: git add docs/ git commits -m "$ISSUE: Bumping version to ${NEW_VERSION%.*}-maint (switching back to maintenance)." -20. Verify GnuPG signatures:: +22. Verify GnuPG signatures:: git gpgcheck git verify-tag "$NEW_VERSION" -21. Merge changes back into the maintenance branch:: +23. Merge changes back into the maintenance branch:: git checkout "${NEW_VERSION%.*}" git merge "${ISSUE,,}" -22. Push the tag and changes to mainteance branch:: +24. Push the tag and changes to mainteance branch:: git push git push origin "${NEW_VERSION}" -23. Delete the local branch:: +25. Delete the local branch:: git branch -d "${ISSUE,,}" -24. Switch back to the master branch:: +26. Switch back to the master branch:: git checkout master -25. Mark issue as resolved in the issue tracker. +27. Mark issue as resolved in the issue tracker. -26. Release the version via release center in the issue tracker. +28. Release the version via release center in the issue tracker. -27. Archive all old patch releases with the same major and minor number as new +29. Archive all old patch releases with the same major and minor number as new release version.