Skip to content

Define a release policy #532

Closed
Closed
@choldgraf

Description

@choldgraf

Background

In #529 we had some mismatch in our expectations around when to release. We should set a repository policy when it comes to releases, so that we have shared understanding and expectations around when to do this.

Proposal

I propose we follow practices like this:

  • In general, we should encourage releases as often as possible
  • In general, releases should be as automated and automated as possible
  • In general, we should only prevent a release if releasing would significantly harm the project. If we block a release, we deprive our users of all other improvements that have been made, and so should only do this if the cost of releasing outweighs the benefits of new improvements.
  • Significant bugs or regressions must be in a GitHub issue, and with a block-release tag added

If there are no issues with a block-release label, then we allow and encourage any maintainer to make a release at any time.

Rationale

Minimizing the "delta" between releases, and automating it as much as possible, is a generally good modern software development practice. It ships improvements more quickly and ensures our users benefit from new development. It also minimizes the "toil" associated with creating a new release, which is generally not a super fun process of maintenance. Given that we have reasonable testing infrastructure, we can be confident that major problems are not introduced in general.

Using an issue label for block-release will allow us to be explicit about when an issue is so important that we should block a release on it. If we don't make this explicit then it may create frustration and confusion between maintainers who have differing ideas of when an issue should prevent a release.

Feedback?

I suspect that @jorisvandenbossche has different ideas for some of the above stuff - so would love to know what he thinks about it. Perhaps we can iterate and agree on a policy, and then encode this in our developer guidelines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions