Cycle checklist for snapcraft

This here is the release process for snapcraft for future reference and potential process improvement:

  1. Compile list of items to work on from the roadmap items depending on allocated time of the team.
  2. Create the milestone with the list of items to work on with team members assigned to each item.
  3. Create a documentation item (if non existent) before each PR.
  4. Create PRs for each issue in the created milestone, for which each would close a certain issue OR be manually closed if it is a stand-alone documentation item or research work.
  5. Create an SRU bug
  6. 3 days before the end of cycle, create the changelog PR.
  7. Run all the relevant autopkgtests against the changelog PR.
  8. Commit the changelog PR, effectively freezing new code.
  9. Create an annotated tag for the commit related to the changelog PR.
  10. Start drafting the release notes on the release tag
  11. Ensure deprecation notices are published, and web team are set to deploy.
  12. snapcraft release to beta
  13. Run tests against beta
  14. Create a debsource package and dput to xenial
  15. Forward port snapcraft to future supported and the development release and dput there as well.
  16. Look at SRU wiki to find out who is on rotation and ping the person listed as the contact for the day.
  17. Create a python source package and push to PyPI
  18. Update the homebrew formula
  19. snapcraft release to candidate
  20. Make a Call for testing on the forum
  21. Test on: homebrew, docker, deb for ubuntu releases, snap; on amd64, armhf and arm64 where relevant.
  22. Contact the SRU team on #ubuntu-release to make the migration to <release>-updates
  23. snapcraft release to stable
  24. Close the milestone
  25. Mark the affected bugs on launchpad in the milesone as Fix Released
  26. Announce release on the forum
  27. Announce the release on the Snapcraft Twitter, Facebook, and Google Plus accounts