[Feature Request] Allow Sub-PRs (one branch with commits grouped into Sub-PRs) instead of one-branch-per-Stacked-PR
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- Active
- Stack technique
- git, github, go
- Domaine
- cli, developer-experience
Piste de recherche
Commencez par établir comment gh-stack représente actuellement les PR empilées, les plages de commits, les dépendances et le comportement de CI ; l’issue ne nomme ni fichiers, ni tests, ni points d’entrée. Définissez le modèle de données Sub-PR et les limites du workflow avant l’implémentation, la tâche étant considérée comme terminée lorsque le regroupement, la revue, les dépendances et le comportement CI optionnel proposés fonctionnent sans nécessiter une branche par Sub-PR.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The problem
Based on my experience making a stack of 12 PRs to an open source repo , I have the following feature request.
It seems to me that a "PR Stack" has the primary goal:
- make big sets of changes easier to review by breaking them up
But it has the primary drawbacks:
- requires maintaining N branches locally, writing N pull request descriptions, creating N JIRAs/issue tickets (if your org requires a 1:1 mapping there, as many do), etc. which is a ton more paperwork
- increases the load on CI by up to O(N) where N is the number of stacked PRs (and same effect on QA if your org requires QA for each PR)
- requires rebasing all or part of the stack anytime there are changes below the top of the stack (my 12-stack required at least ten rebases and half of those were non-trivial, taking up to 30-45 minutes -- and I'm always the fastest/most adept git conflict resolving specialist wherever I work, and usually, the guy everyone always DMs to do their complicated resolutions... so if it was a problem for me, it's going to be a nightmare for most devs)
- thus... it adds pressure on the dev to get the whole stack approved as quickly as possible, since the longer it goes without merging to main, the more times you'll have to rebase it; this adds the anxiety and severe annoyance of having a "sword of Damocles" hanging over you
- ultimately it does not actually reduce the time to review a large set of changes, since the size of the set of changes being reviewed has not been reduced; if anything, it increases the time, and likely delays how soon the changes can merge vs. if it was just one branch
- if someone ELSE makes a stacked PR into your PR, now you have to rebase someone else's PR in order to catch up with main, and that's a recipe for disaster -- yet making a stacked PR into someone else's PR is probably the best use-case for this feature as it's much better alternative to a contentious code-review
- you can't create a tree structure of stacked PRs, even though there's no reason in git why you shouldn't be able to, and it would arguably simplify the rebasing in many cases if you structured the tree correctly
Proposed Fix
Rather than have "Stacked PRs", instead enhance the "commit range" feature of PRs to work like described below. Imagine that you have a large branch MyBigBranch with lots of changes, which some reviewer says is "too big" or whatever other excuse they have for not being able to be arsed to actually review it despite being paid six figures.
I propose that github would allow a Stacked-PR-like interface that lets you:
- designate certain sets of changes in the PR as "Sub-PRs" that can receive individual reviews and approval
- create a dependency tree of "Sub-PRs" so it's clear which parts can be made into separate branches for individual merging/cherry-picking if needed without breaking the build
- not require individual CI builds per Sub-PR unless specified
- create "Sub-PRs" by commit messages automatically: "[Sub-1] Changes to file system monitor" ... "[Sub-2] Changes to File Tree UX" ... etc.
- create dependency between Sub-PRs similarly: "[Sub-1.1] File System data model update" "[Sub-1.2] File System monitor tests" "[Sub-1.1.1] File System Data Model tests" etc.
Sub-PRs would have the same benefit to reviewers of breaking up the process into individually reviewable chunks without all the downsides of Stacked PRs hat I listed above and in my linked post.
- Langage dominant
- Go
- Étoiles
- 1.5k
- Forks
- 73
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 5
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de github/gh-stack
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
-
feature request topic: cli - general
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
feature request topic: auto-merge
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
bug topic: docs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
Toutes les issues de github/gh-stack
Issues similaires
-
nix: vendorHash is outdated Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
-
Bob Shell support Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
santhosh-tekuri/jsonschema#276 ·