Stack panel says a pull request is queued when it has no queue entry

Aperta
#503 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
github, go
Ambito
api, cli

Direzione di ricerca

Inizia dallo stato del pannello dello stack e dai campi della query di pullRequest isInMergeQueue e mergeQueueEntry{ position }; riproduci il caso con due PR confrontando il pannello con la pagina della coda di merge e la risposta dell’API. Il lavoro è completato quando una pull request superiore non accodata non mostra più il testo relativo all’accodamento né un’azione Remove from queue, mentre i badge esistenti e corretti rimangono corretti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

On a stacked pull request that is not in the merge queue, the stack panel says it is, and offers to remove it. The badges in the same panel report the state correctly, so the panel contradicts itself.

Evidence

Stack main ← #101 ← #102. After Enqueue stack (2), only #101 is admitted. The page of #102 then shows:

  • the heading "Queued to merge…"
  • "This pull request is next up in the merge queue."
  • a "Remove from queue" button
  • badges #102 Ready and #101 Queued, which are correct
Image

The merge queue page for the same branch shows 1 Queued and lists only #101:

Image

The API agrees with the queue page, not with the heading:

mergeQueue(branch:"main").entries.totalCount = 1
mergeQueue(branch:"main").entries.nodes      = [{ position: 1, pullRequest: #101 }]

#101   isInMergeQueue true    position 1
#102   isInMergeQueue false   mergeQueueEntry null

#102 reported isInMergeQueue=false at every sample across the whole landing.

Expected

A stacked pull request with no queue entry should not be described as queued:

  • do not head the panel "Queued to merge…" on a pull request that is not queued;
  • do not say "This pull request is next up in the merge queue" when isInMergeQueue is false. If the intent is that this layer goes after the one below it, say that. It is a statement about the stack, not about queue membership;
  • do not offer "Remove from queue" for a pull request with no mergeQueueEntry. The button does not say whether it would remove the layer below, which would be destructive.

Actual

The heading, the sentence and the button all claim queue membership that the API denies, while the badges in the same panel report it correctly.

Environment

  • gh 2.100.0, gh stack v0.0.8
  • Trunk ruleset:
    merge_queue:   grouping_strategy HEADGREEN, merge_method REBASE,
                   max_entries_to_build 8, max_entries_to_merge 8,
                   min_entries_to_merge 1, min_entries_to_merge_wait_minutes 5,
                   check_response_timeout_minutes 40
    pull_request:  allowed_merge_methods ["rebase"], required_approving_review_count 1,
                   require_last_push_approval false, dismiss_stale_reviews_on_push false
    
  • delete_branch_on_merge: true, allow_auto_merge: false

Reproduction

  1. Protect a trunk with a merge queue. Run gh stack link <bottom> <top> and get both pull requests approved and green.
  2. Press Enqueue stack (2).
  3. Open the top pull request and compare its panel against the branch's merge queue page and against pullRequest{ isInMergeQueue mergeQueueEntry{ position } }.

Related

  • #174 — why the upper layer is out of the queue in the first place
  • #172 — "'Merge stack' appears to enqueue only the bottom PR"
  • #502 — the wording matters most there, because the rewrite forces a manual re-enqueue and this panel gives no sign of it
Lingua principale
Go
Stelle
1.5k
Fork
73
Merge medio
1g 8h
PR unite (30g)
7

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/gh-stack

Tutte le issue di github/gh-stack

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.