nova/doc/source/contributor/ptl-guide.rst

9.7 KiB
Raw Blame History

Chronological PTL guide

This is just a reference guide that a PTL may use as an aid, if they choose.

New PTL

Project Team Gathering

After PTG

A few weeks before milestone 1

Milestone 1

  • Do milestone release of nova and python-novaclient (in launchpad only)
  • Release other libraries if there are significant enough changes since last release. When releasing the first version of a library for the cycle, bump the minor version to leave room for future stable branch releases
    • os-vif
  • Release stable branches of nova
    • git checkout <stable branch>
    • git log --no-merges <last tag>..
      • Examine commits that will go into the release and use it to decide whether the release is a major, minor, or revision bump according to semver
    • Then, propose the release with version according to semver x.y.z
      • X - backward-incompatible changes
      • Y - features
      • Z - bug fixes
    • Use the new-release command to generate the release

Summit

  • Prepare the project update presentation. Enlist help of others
  • Prepare the on-boarding session materials. Enlist help of others

A few weeks before milestone 2

Milestone 2

  • Spec freeze
  • Release nova and python-novaclient
  • Release other libraries as needed
  • Stable branch releases of nova
  • For nova, set the launchpad milestone release as “released” with the date

Shortly after spec freeze

  • Create a blueprint status etherpad to help track, especially non-priority blueprint work, to help things get done by Feature Freeze (FF). Example:
  • Create or review a patch to add the next releases specs directory so people can propose specs for next release after spec freeze for current release

Non-client library release freeze

  • Final release for os-vif

Milestone 3

  • Feature freeze day
  • Client library freeze, release python-novaclient
  • Close out all blueprints, including “catch all” blueprints like mox, versioned notifications
  • Stable branch releases of nova
  • For nova, set the launchpad milestone release as “released” with the date

Week following milestone 3

A few weeks before RC

RC

Immediately after RC

  • Look for bot proposed changes to reno and stable/<cycle>
  • Follow the post-release checklist
  • Create the launchpad series for the next cycle
  • Set the development focus of the project to the new cycle series
  • Set the status of the new series to “active development”
  • Set the last series status to “current stable branch release”
  • Set the previous to last series status to “supported”
  • Repeat launchpad steps ^ for python-novaclient
  • Register milestones in launchpad for the new cycle based on the new cycle release schedule
  • Make sure the specs directory for the next cycle gets created so people can start proposing new specs
  • Make sure to move implemented specs from the previous release
    • Use tox -e move-implemented-specs <release>
    • Also remove template from doc/source/specs/<release>/index.rst
    • Also delete template file doc/source/specs/<release>/template.rst
  • Create new release wiki:
  • Update the contributor guide for the new cycle

Miscellaneous Notes

How to approve a launchpad blueprint

  • Set the approver as the person who +W the spec, or set to self if its specless
  • Set the Direction => Approved and Definition => Approved and make sure the Series goal is set to the current release. If code is already proposed, set Implementation => Needs Code Review
  • Add a comment to the Whiteboard explaining the approval, with a date (launchpad does not record approval dates). For example: “We discussed this in the team meeting and agreed to approve this for <release>. -- <nick> <YYYYMMDD>”

How to complete a launchpad blueprint

  • Set Implementation => Implemented. The completion date will be recorded by launchpad