Make approach to defining enums consistent across the project
I maintainer di solito rispondono entro 6 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Confrontare le definizioni degli enum introdotte da #654 per Ecosystem con analysis.Mode, staticanalysis.Task e analysisrun.DynamicPhase. Esaminare come ciascuna gestisce stringhe, liste, flag, serializzazione JSON e String(), quindi concordare un unico approccio documentato che copra le basi numeriche rispetto a quelle stringa e il comportamento di marshaling richiesto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
#654 introduces the enum type Ecosystem implemented differently to other enums (e.g. analysis.Mode and staticanalysis.Task and analysisrun.DynamicPhase)
We should develop a consistent approach to how we define enums:
Some areas that should be covered:
- should the base type be string vs numeric
- how do we handle lists of enums
- how do enums interact with flags
- how do enums handle serialization (JSON)
Both:
- require String()
Numeric based enums:
- can use
iota - can consume as little as 8bits (byte)
- very fast to compare equality
encoding.TextMarshalerandencoding.TextUnmarshalerneeded to supportflag.TextVarand json serialization- requires strings to be specified for marshaling and unmarshaling (although an array of strings may make this easier)
String based enums:
- consume 128 bits per enum
- simpler String() function and serialization
- equality is more costly (at minimum two comparisons, maximum the size of the shortest string)
- Lingua principale
- Go
- Stelle
- 925
- Fork
- 75
- Merge medio
- 4g 2h
- PR unite (30g)
- 3
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 ossf/package-analysis
-
Python execute phase aborts with error_analysis when the package closes stdout (MCP stdio servers)Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
ossf/package-analysis#1200 ·
I maintainer di solito rispondono entro 6 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ossf/package-analysis#1192 ·
I maintainer di solito rispondono entro 6 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
ossf/package-analysis#1125 ·
I maintainer di solito rispondono entro 6 giorni
-
4gbAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 5/100
ossf/package-analysis#1123 ·
I maintainer di solito rispondono entro 6 giorni
-
>4 gbAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
ossf/package-analysis#1122 ·
I maintainer di solito rispondono entro 6 giorni
Tutte le issue di ossf/package-analysis
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
evener-transcript-v2-upgrade tool still scans transcript files through bufio's 4 KiB default bufferAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
prime-radiant-inc/evener#6370 ·
I maintainer di solito rispondono entro 1 giorno
-
ManageSieve proxy: a backend's NO/BYE greeting is skipped as a capability line and reported as EOFApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Mend: dependency security vulnerability
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Mend: dependency security vulnerability
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ManageIQ/manageiq-pods#1476 ·
I maintainer di solito rispondono entro 1 giorno