Gluster Release process from the eyes of a release owner/wrangler:

Open and pre-open Phase:

  • Ensure github project lane and milestone are created and updated with the dates
  • Send release schedule and focus area mail
  • Update webpage
  • Feature reminder, and close new feature acceptance by a date
    • Post closure, ensure glusterfs-specs for approved features are merged
  • Dashboard to encourage review priority on release related commits
  • Feature readiness posts by contributors
  • Page for all release related links to be in one place/mail
    • Dashboards
    • Dates
    • etc. and refer to that in the mails

Pre-stability Phase:

  • Get release milestone added in bugzilla
  • Open tracking BZ for the release
  • Create dashboard for merge/backport queue for release
  • Branch the release (including required tagging)
    • Provide documentation by Kaushal for the same [1]
  • Restrict branch merge to release owners (BZ request to infra)
  • Post initial commits to,
    • Remove experimental code
    • Fixup glfs_ipc
    • max op-version
  • Open up release notes commit
  • Review features that made it and those that did not, and cleanup,
    • github project lane
    • Milestones in github
  • Open testing issues to track closure for the release on github
  • Open Documentation issues to track closure for the release
    • This comes from the main github feature issue#, so no new issue per feature, but overall file one to track and close as a release-activity
  • Check if there are any major feature creeps in master post branching,
    • At times larger fixes can mask as bugs
    • At times options may have changed as a part of fixing
    • This check hence is to ensure sanity and to call out these additional changes in the release (or add it to the release scope)

Stability phase:

  • Monitor fstat per week to notify list of any failures and actions needed
  • Monitor backports to other LTM/STM branches and not to current release branch
  • Monitor merge queue each day

Pre-release:

  • Finalize release-notes and commit to branch
  • Tag the branch for the release
  • Start a packaging job at Jenkins for the release
  • Upgrade guide added to doc site
  • Release notes to doc site
  • Final check on what features made it and clear up github project lane

Post-release:

  • Create announcement mail
  • Update blog with the announcement
  • Move feature pages in glusterfs-spec to done against the release version
  • Close bugs that are fixed as a part of the release
    • git log format=email v3.10devv3.10.0 | grep -i ^bug: | awk '{print $2}' | sort -u > /tmp/bug-list.txt
    • close_bugs script
  • Close tracking BZ for .0
  • Open tracking BZ for .1
  • Update webpage
  • Close/Retire github project
  • Send release retrospective
  • Update ./extras/who-wrote-glusterfs/who-wrote-glusterfs.sh

Workflow to be updated:

Scripts/automation to be closed:

  • Container image building as a part of packaging

  • Backup owners for packaging are needed, or some checklist there as well

  • Some changes to WorkerAnt etc are needed for the github features

  • Minor release

    • Check prior STM&LTM line for missing backports
      • git cherry (and compare to saved queries from past)
    • Announce mail and date
    • Prepare release notes
      • NOTE: check md formatting
    • Commit release notes
    • Tag the release
    • Kick off the Jenkins job for packaging
    • Upload release notes to the doc site
    • Once packages are available,
      • Need some testing here (package installs, and possibly some basic tests)
      • Close the tracking bug
      • Mark bugs fixed in 3.10.1 as closed (run close_bugs.sh)
      • Open a new bug for the next release
      • Webpage update, blog, and ML announce
        • There should be no need to update the release pages in the website for minor releases
        • Send a mail to gluster-announce (and other lists as needed), and that will be translated into the blog post
  • Things to do when retiring a release

    • Close bugs
    • Close BZ release as possible selection