Consider a generic change-URI metadata/augmentation language (Change API)
Les mainteneurs répondent en général sous 2 jours
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é
- Calme
- Stack technique
- go
- Domaine
- backend-api-design
Piste de recherche
Commencez par lire la Change API et les parsers référencés : submitqueue/entity/github/change_id.go, submitqueue/entity/phabricator/change_id.go et submitqueue/extension/changeprovider/github/validate.go. Examinez la PR #197 et la discussion sur core/fakemarker avant de comparer les paramètres de requête, les fragments et un champ Change typé. Le travail est terminé lorsque les questions de portée, de forme et de généralité sont résolues et que la conception choisie est documentée ou implémentée sans compromettre la validation stricte de change-ID.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Context
In #197, the extension fakes inject failures via an ad-hoc sq-fake=<token>
marker embedded in a change URI, parsed by the test-only core/fakemarker
package (Token([]string) / TokenInChanges([]entity.Change)).
Reviewing that PR, @sbalabanov raised two related design questions:
- Should we build a generic augmentation / metadata language into change
URIs, usable by these fakes and similar tooling — rather than a
fake-specific marker convention? - The marker lookup (
TokenInChanges) arguably belongs on the Change API
(entity.Change) rather than living in a test-only helper.
This issue captures that idea as a follow-up so #197 can land as-is (the marker
stays test-only there).
Design considerations
A generic change-URI metadata facility would need to reconcile with the
strict provider change-ID parsers, which today reject anything that isn't a
canonical resource identifier:
submitqueue/entity/github/change_id.go— requires a full 40-char lowercase
hex head SHA; a?key=valuequery string would not parse.submitqueue/entity/phabricator/change_id.go— fixedphab://form.submitqueue/extension/changeprovider/github/validate.go— rejects
unexpected schemes.
Open questions:
- Scope — is URI-attached metadata a production capability, or strictly a
test/example affordance? Putting parsing onentity.Changecouples the
production type to the convention; keeping it incore/fakemarkerkeeps the
separation the fakes deliberately maintain ("never production"). - Shape — RFC-3986 query params (
?k=v) vs. fragment vs. a dedicated
sidecar field onChange. Query params collide with the strict parsers
above; a typed field avoids string-encoding entirely. - Generality — a neutral
key → valueaccessor (e.g.
Change.URIParam(key)) thatfakemarkerlayerssq-fakesemantics on top
of, vs. a richer metadata model.
References
- PR #197 — fake implementations with error injection
- Threads: the
core/fakemarker.godiscussion in #197.
Filed as a follow-up per the #197 review discussion. Not blocking.
- Langage dominant
- Go
- Étoiles
- 227
- Forks
- 11
- Merge moyen
- 3 j 49 min
- PR mergées (30 j)
- 63
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire 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 uber/submitqueue
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 32/100
uber/submitqueue#356 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de uber/submitqueue
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
google/differential-privacy#516 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
lightninglabs/lndmon#140 ·
-
documentation good first issue ready-for-triage ready-to-code
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
release-engineering/fbc-update-planner#102 · 3 commentaires ·
Les mainteneurs répondent en général sous 5 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
yetone/magpie#562 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 4 jours