Macaulay2 / Macaulay2/M2

Requiring status checks before merging

Open
#1,783 9 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Infrastructure under discussion
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

Github allows for restricting merges to certain branches in various ways:
- allowing only admins to merge
- requiring a certain number of approvals before allowing a merge
- requiring status checks to pass before allowing a merge

This is all documented here: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/defining-the-mergeability-of-pull-requests

We should institute similar restrictions to prevent accidentally merging PR's with failing tests into incorrect branches, as happened today with #1778.

To make matters worse, after that PR was merged into master, master was merged into release-1.17, then release-1.17 was merged into development and pre-master. This is excessive and confusing, and has lead to **all four active branches** to be in a failing state!

Moreover, now that there's a fix (#1782), even fixing it will leads to a spaghetti of merges between these 4 branches, because we have to do 4 merges to fix all the branches! I think we should also reduce the number of parallel active branches to only master and development. As I explained in https://github.com/Macaulay2/M2/issues/1691#issuecomment-747184042:

> If we use tags instead of branches for each release, including release candidates, then I don't see a reason to keep the `release-*` branches: whenever you have a commit that's reasonably ready, tag it `release-1.17-rc1`, when new issues are found and fixed, tag `release-1.17-rc2`, until it's ready to be tagged `release-1.17`.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked GitHub mergeability documentation and the repository's active branch configuration, then review the related issues #1778, #1782, and #1691. Define the required status-check and merge restrictions and decide whether release branches should be replaced by tags. Done means the agreed branch policy is implemented and the active branches no longer permit the described unsafe merges.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, github
Domain
ci-cd, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.