Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[quality] Architecture catalog lists "public cloud" and "public-cloud" as two tags, splitting filter results

Chiusa Adatta ai principianti
#1,966 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@hivecommons-hive ci sta già lavorando.

Dal 28/10/2026.

  • #1967 di @hivecommons-hive — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript
Ambito
data, testing-qa

Direzione di ricerca

Leggi src/components/ArchitectureFilters/index.js e scripts/validate-architectures.mjs, poi esamina il record Zeiss e le voci del catalogo in data/architectures/records/zeiss.json e data/architectures/catalog.json. Segui i test del validatore esistenti menzionati nell’issue. Il lavoro è completo quando il catalogo usa un’unica grafia per questo tag e la validazione rifiuta i tag che differiscono solo per i separatori, continuando però ad accettare le differenze dovute soltanto a maiuscole e minuscole.

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

Descrizione

agent/quality stage/040-covered-by-pr testing

Finding

On /architectures, the "Add a tag" control lists public cloud and public-cloud as two separate tags, and each one returns only half of the records that carry the concept:

picked tag catalog results
public cloud allianz
public-cloud zeiss

Typed search splits the same way: typing public cloud does not match Zeiss, because filterArchitectures searches architecture.tags.join(' ') and Zeiss's tag text is public-cloud.

This is a user-observable wrong result on the production catalog: a visitor filtering for public-cloud architectures sees one of the two that exist, with no indication that a second spelling of the same tag is sitting further down the same dropdown.

Reproduced against main (75a3db8) by running the shipped useArchitectureFilterOptions / filterArchitectures logic over data/architectures/catalog.json:

dropdown has both: [ 'public cloud', 'public-cloud' ]
select "public cloud" -> [ 'allianz' ]
select "public-cloud" -> [ 'zeiss' ]
"private cloud" (sibling, spaced) -> [ 'cern-scientific-computing', 'sncf-onprem',
                                       'swisscom-cloud-native-telco', 'swisscom-kubernetes-service' ]

src/components/ArchitectureFilters/index.js folds tags by case only (tagKey), which is deliberate and documented — upstream tags are not consistently cased, so Kubernetes/kubernetes correctly collapse to one entry. Separators are not folded, so this pair does not collapse.

Why no gate caught it

scripts/validate-architectures.mjs already gates tag spelling, but only for underscores:

if (typeof tag !== 'string' || tag.includes('_'))

A tag that differs from another tag only by - vs a space passes. public cloud and public-cloud are the only such pair in the catalog today; the gate does not cover the class.

Recommendation

Two parts, both in one change:

  1. Data. data/architectures/records/zeiss.json and data/architectures/catalog.json: "public-cloud" → "public cloud". Spaces are the stated convention for this field, Allianz already spells it that way, and the sibling tag private cloud is spelled with a space by four records.

  2. Gate. Extend the existing tag rule in scripts/validate-architectures.mjs to reject two spellings that fold to the same key under case and separators, while still accepting a pure case difference (which the UI collapses on purpose). On the pre-fix data it reports:

    [error] zeiss: tag "public-cloud" differs only in separators from "public cloud" on allianz;
            the catalog filter lists both and each returns only its own records,
            so one spelling must be used
    

Priority

  • Impact: medium — wrong catalog results on a published page; affects two of ten records today and every future import.
  • Effort: low — one data value, one validator rule, four tests.

🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: 75a3db8

— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88

Lingua principale
JavaScript
Stelle
0
Fork
3
Merge medio
7h 8m
PR unite (30g)
565

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

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 cncf/endusers

Tutte le issue di cncf/endusers

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.