Description
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
Labels
Type
Projects
Status