Include specversion in CloudEvent.GetPopulatedAttributes
Nessuno ha ancora preso questa issue.
- #374 di @authuir — chiusa senza merge
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
Direzione di ricerca
Inizia da CloudEvent.GetPopulatedAttributes() e traccia i siti di chiamata del formatter e dell’enumerazione dei binding menzionati nell’issue. Confronta il comportamento C# esistente con i test Java citati per l’enumerazione degli attributi, quindi aggiungi un test di regressione che dimostri che specversion viene restituito mentre l’output wire serializzato rimane invariato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
CloudEvent.GetPopulatedAttributes() currently excludes specversion, even though the spec version is always populated on a CloudEvent. Callers that enumerate context attributes therefore omit a required CloudEvents attribute unless they special-case CloudEvent.SpecVersion.VersionId.
Cross-SDK behavior
The Java SDK includes specversion in its equivalent enumeration:
SpecVersion.V1.getAllAttributes()includesspecversion.CloudEventAttributes.getAttributeNames()filters that collection to non-null values.CloudEventImplTest.testGetAttributeNames()explicitly expectsspecversion.
This difference surfaced while mapping a C# CloudEvent to protocol properties by iterating GetPopulatedAttributes(); the resulting event had the other populated attributes but no specversion.
Proposed behavior
Return CloudEventsSpecVersion.SpecVersionAttribute with SpecVersion.VersionId from GetPopulatedAttributes(), alongside other populated context and extension attributes.
The built-in formatters and bindings already serialize spec version separately, so they should skip this pair during their existing enumeration to keep wire output unchanged.
I intend to submit a PR with the implementation, regression test, and updates to internal enumeration call sites.
- Lingua principale
- C#
- Stelle
- 334
- Fork
- 88
- Merge medio
- 3m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cloudevents/sdk-csharp
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
cloudevents/sdk-csharp#324 · 1 commento ·
-
Allow users to signal whether extensions are requiredForse di nuovo libera @jskeet l’ha presa 535 giorni fa e non c’è nessuna pull request aperta. Aperta
cloudevents/sdk-csharp#321 · 4 commenti · 1 assegnatario ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
cloudevents/sdk-csharp#310 · 6 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
cloudevents/sdk-csharp#308 · 5 commenti · 1 reazione ·
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
cloudevents/sdk-csharp#292 · 2 commenti · 1 reazione ·
Tutte le issue di cloudevents/sdk-csharp
Issue simili
-
agentic-workflows automated testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Azure-Samples/Legacy-Modernization-Agents#194 ·
I maintainer di solito rispondono entro 1 giorno
-
area-encryption area-security p1-recommended technical-debt
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
bug flaky small
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
hexide-io/HexIDE#1906 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
area: build good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100