Release Notes Migration to Reno

The OpenStack Charms project has a ever increasing velocity with improvements and new features being committed by disperse group of people each cycle.

Currently we manage our release notes in a central document and it is typically put together manually at the end of each cycle.

Problem Description

Putting together the release notes document involves manual labor and the current process is error prone with high risk of leaving important information out of the release notes at release time.

The upstream OpenStack release process has been heavily automated in recent cycles and we are currently barred from announcing our release notes to the new release-announce mailing list. Our repositories must be aligned with upstream automated release tools to gain access. Modernizing the way we do release notes is one of the steps needed to accomplish this.

Proposed Change

To address these issues I propose we do a stepwise migration towards committing release notes along with code changes throughout our charm repositories.

Prior work we can make use of exists upstream in the Reno [0] project, with developer tooling, linters and gate jobs. The use of this methodology and tooling is widespread among other OpenStack projects.

As a first step I propose we enable the use of reno on the following repositories during the cycle leading up to the 18.11 Charm release:

  • charm-keystone

  • charm-nova-compute

After the 18.11 Charm release we evaluate and decide on further adoption.

0: https://docs.openstack.org/reno/latest/

Alternatives

None defined.

Implementation

Assignee(s)

Primary assignee:

fnordahl

Gerrit Topic

Use Gerrit topic “charm-reno” for all patches related to this spec.

git-review -t charm-reno

Work Items

  • Add necessary boiler plate for use with reno to affected charm repositories

  • Add tox environment that enables developer to run reno tooling from virtual environment, relieving developer from the responsibility of installing and maintaining it in their developer environment.

  • Add tox environment that enables gating on existence and correctness of release notes artifacts.

  • Research ways to best coordinate and extract release notes artifacts from multiple charm repositories and combine them in one (charm-guide) at release time.

  • Create preliminary guidelines for use of developers and reviewers.

Repositories

No new git repositories are needed.

Documentation

Preliminary guidelines for use of developers and reviewers must be created. Communication with the community is also necessary.

Security

This change does not introduce any additional security risks.

Testing

The process for creating release notes files and committing them with code changes will be discussed with the community as it is implemented.

Gate jobs checking for existence and correctness of the release notes will be implemented.

Dependencies

Reno - https://docs.openstack.org/reno/latest/