Skip to content

🐛 fix(architectures): list the Argo project once in the project filter - #2022

Merged
mrbobbytables merged 1 commit into
mainfrom
quality/architectures-argo-project-filter
Oct 31, 2026
Merged

mrbobbytables merged 1 commit into
mainfrom
quality/architectures-argo-project-filter

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Fix

The Filter by CNCF project select on /architectures and the project
filter on /community/members offer one option per distinct projects string
and match with exact equality
(src/components/ArchitectureFilters/index.js, src/components/MemberDirectory/hooks.js).

Six of the ten catalog records use the CNCF Argo project, under three labels:

Option Returned
Argo adobe, allianz, cern-scientific-computing
ArgoCD sncf-onprem, swisscom-kubernetes-service
Argo Workflows flipkart-chaos-engineering

A reader who picks Argo, the project's own name, sees three of the six.

This normalises the projects front matter on the three pages to Argo and
regenerates data/architectures/catalog.json and data/members.json. The
<CNCFProjectCard /> prose on each page still names the component it
describes (ArgoCD, Argo Workflows), so nothing the upstream authors wrote
is lost — only the filter vocabulary changes.

Gate

tests/architecture-catalog-contract.test.mjs gains
no CNCF project is listed under two labels across the catalog. The spelling
gate from #1991 normalises case and punctuation and so reads these as three
projects; the word-set gate from #2020 looks only at industries. The pages
themselves carry the mapping: every imported project card links its project to
https://www.cncf.io/projects/<slug>/, and all three Argo labels link to
/projects/argo/. The test groups catalog labels by that slug, so a future
import that reintroduces the split fails without any alias list to maintain.

Without the data change the new test fails with
argo: Argo (adobe, allianz, cern-scientific-computing) vs Argo Workflows (flipkart-chaos-engineering) vs ArgoCD (sncf-onprem, swisscom-kubernetes-service).
argo is the only collision across the catalog's 29 linked projects.

Files claimed

docs/architectures/{flipkart-chaos-engineering,sncf-onprem,swisscom-kubernetes-service}/index.md,
data/architectures/catalog.json, data/members.json,
tests/architecture-catalog-contract.test.mjs.

Verification

validate:architectures, validate:members, check:format, check:lint,
check:spelling, check:duplication, check:unused and check:audit all
pass; test:unit is 3803/3803 and test:unit:coverage:check exits 0.

Related Issue

Closes #2021


Filed by quality agent (hold-gated mode). Human review required.

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

Six catalog records use the CNCF Argo project and label it three ways:
Argo, ArgoCD and Argo Workflows. The project filter on /architectures and
/community/members offers one option per distinct projects string and matches
on exact equality, so the published dropdown showed three adjacent Argo
options and each returned only its own records, hiding the other four
architectures from a reader who picked the project's own name.

Normalise the three front matter labels to Argo and regenerate the catalog
and member data. The pages' own project cards keep naming the component they
describe in their prose, so the detail the upstream authors wrote is kept.

The spelling gate added in #1991 normalises case and punctuation, so it reads
these as three projects, and the industry gate added in #2020 looks only at
industries. The pages themselves say which project a label belongs to: every
imported CNCFProjectCard links its project to its page on cncf.io, and all
three Argo labels link to /projects/argo/. Gate the catalog against that, so
two labels the pages link to one project fail the contract without an alias
list to maintain.

Closes #2021

Signed-off-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com>
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

Important

Held for human review by the hive's ACMM level gate.

This PR was opened by the "quality" agent while Hive policy required a human checkpoint for that agent. Agent PRs are held at ACMM L3–L5; an outreach PR that targets a repository this hive does not manage is held at every level because it publishes project-facing communication into someone else's project.

Hive will keep the hold label until a human removes it. Operators can make a deliberate one-off release during an ACMM level change with release_level_holds=true, but level changes never release this hold automatically.

@netlify

netlify Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for endusers ready!

Name Link
🔨 Latest commit a68c04b
🔍 Latest deploy log https://app.netlify.com/projects/endusers/deploys/6ae4f06e92b31982c6a03fba
😎 Deploy Preview https://deploy-preview-2022--endusers.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Read the diff against the tree at the PR head. This looks correct to me.

Verified:

  • All three relabelled pages already link their Argo-family card to https://www.cncf.io/projects/argo/ (docs/architectures/sncf-onprem/index.md:40, docs/architectures/swisscom-kubernetes-service/index.md:55, docs/architectures/flipkart-chaos-engineering/index.md:42), and docs/architectures/adobe/index.md:39 establishes Argo as the label the project's own card uses — so the new canonical label is taken from the pages, not invented.
  • The members.json hunk context can mislead: the changed projects array sits under a context line showing the swisscom-cloud-native-telco logo, but Swisscom carries two architecture entries and the edited one is swisscom-kubernetes-service. I checked the telco entry directly — its projects are Flux-based and never contained an Argo label, so the regeneration touched exactly the three intended records.
  • The new test (tests/architecture-catalog-contract.test.mjs) groups catalog labels by the slug of each page's <CNCFProjectCard /> href via isCncfProjectHref (scripts/lib/project-card-links.mjs:19), so a future import reintroducing the split fails without an alias list. Labels with no card or a non-CNCF href are deliberately left to the existing spelling check.
  • Card prose keeps ArgoCD / Argo Workflows names, so only the filter vocabulary changes, as the body states.

One note, not a defect: projectSlugsByLabel() is last-writer-wins when two pages give the same card name different slugs; today no such pair exists, and the failure mode would be a silently merged mapping, not a false failure.

All checks are green at head a68c04b. Recommending merge once a maintainer lifts the hold.

— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88

@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

Merge-order check against #1976

Both PRs touch data/architectures/catalog.json, data/members.json and
tests/architecture-catalog-contract.test.mjs, so they were checked for
textual and semantic conflict before this one was opened for review.

  • git merge-tree --write-tree --name-only a68c04b 76fbd7c → exit 0, no
    conflicted path.
  • Merging pull/1976/head (76fbd7c) into this branch (a68c04b) and running
    node --test tests/architecture-catalog-contract.test.mjs → 14/14 pass,
    including the three label-contract cases this PR adds. The China Merchants
    Bank record's project labels each resolve to one project page, so the new
    gate does not turn Add China Merchants Bank reference architecture #1976 red.
  • Full npm run test:unit on the merged tree → 3805 pass, 0 fail.

Either merge order is safe; neither PR needs to rebase on the other.

@mrbobbytables
mrbobbytables added this pull request to the merge queue Oct 31, 2026
Merged via the queue into main with commit d4cd354 Oct 31, 2026
15 checks passed
mrbobbytables added a commit to mrbobbytables/endusers that referenced this pull request Oct 31, 2026
…lters

The industry and tag filters on /architectures and /community/members offer
one option per distinct label. After cncf#2020 and cncf#2022 the project and industry
dimensions had no label that hid another's architectures, but two tag pairs
still did, and five industry synonym sets sat on single records waiting for a
second page to turn them into the same split.

Tags, where picking one option hid the other's architecture:

- finance (Allianz Direct) -> financial-services (already on Capital One)
- Site reliability (Flipkart) -> reliability (already on Capital One)

Industries, where one record carried two or three wordings of one vertical:

- Communication + Telecommunication -> Telecommunication (both Swisscom pages)
- Optics + Optical Manufacturing -> Optics (ZEISS)
- Transport + Rail -> Transport (SNCF); Rail kept as a tag
- E-commerce + Retail + Digital Commerce -> Retail (Flipkart); E-commerce was
  already a tag
- Digital Media + Digital Experience -> Digital Media (Adobe)

The industry select drops from 18 options to 12 for 10 architectures.
data/architectures/catalog.json and data/members.json are regenerated from the
page front matter.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
mrbobbytables added a commit that referenced this pull request Oct 31, 2026
… publishes them

The same comparison that found Bootc and Kserve, run without first
folding the names case- and punctuation-insensitively, turns up two
more labels whose project page is right but whose name is not the one
CNCF publishes: LitmusChaos (CNCF: Litmus, incubating) on the Flipkart
record and External Secrets Operator (CNCF: external-secrets, sandbox)
on the SNCF record. Both are corrected in the page front matter and the
card name, and the catalog and members data are regenerated.

The two ArgoCD cards (SNCF, Swisscom Kubernetes Service) are renamed
Argo CD, the sub-project's own spelling; the catalog label is already
Argo after #2022, so only the card title and its opening words change.
Submitters' prose elsewhere on the pages is left as written.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
mrbobbytables added a commit to mrbobbytables/endusers that referenced this pull request Oct 31, 2026
…lters (cncf#2026)

The industry and tag filters on /architectures and /community/members offer
one option per distinct label. After cncf#2020 and cncf#2022 the project and industry
dimensions had no label that hid another's architectures, but two tag pairs
still did, and five industry synonym sets sat on single records waiting for a
second page to turn them into the same split.

Tags, where picking one option hid the other's architecture:

- finance (Allianz Direct) -> financial-services (already on Capital One)
- Site reliability (Flipkart) -> reliability (already on Capital One)

Industries, where one record carried two or three wordings of one vertical:

- Communication + Telecommunication -> Telecommunication (both Swisscom pages)
- Optics + Optical Manufacturing -> Optics (ZEISS)
- Transport + Rail -> Transport (SNCF); Rail kept as a tag
- E-commerce + Retail + Digital Commerce -> Retail (Flipkart); E-commerce was
  already a tag
- Digital Media + Digital Experience -> Digital Media (Adobe)

The industry select drops from 18 options to 12 for 10 architectures.
data/architectures/catalog.json and data/members.json are regenerated from the
page front matter.

Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
Co-authored-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mrbobbytables added a commit to mrbobbytables/endusers that referenced this pull request Oct 31, 2026
…Argo CD as CNCF publishes them (cncf#2029)

* fix(architectures): name the bootc and KServe projects as CNCF publishes them

The CERN reference architecture lists two CNCF projects as Bootc and
Kserve. CNCF publishes them as bootc (sandbox) and KServe (incubating),
per cncf/landscape landscape.yml on master. Readers meet the wrong names
on the /architectures catalog card, in the Filter by CNCF project
dropdown on /architectures and /community/members, on the CERN member
profile, and in the project card heading and prose on the CERN page.

Both labels already link to the correct project page on cncf.io, so the
existing contract gates pass: the spelling gate from cncf#1991 normalises
case before comparing, and the one-label-per-project gate from cncf#2022
reads the card href rather than the label. Only the rendered name is
wrong, which is why neither caught it.

These are the only two mismatches in the repository. All 42 distinct
catalog project labels were compared against the 259 CNCF project names
in landscape.yml, matching case- and punctuation-insensitively and then
comparing exactly; bootc and KServe are the whole set.

The card descriptions open with the project name, so they move with it.
A lowercase project name at the start of a description already reads on
this page as the stargz-snapshotter card does.

Closes cncf#2028

Signed-off-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com>

* fix(architectures): name Litmus, external-secrets and Argo CD as CNCF publishes them

The same comparison that found Bootc and Kserve, run without first
folding the names case- and punctuation-insensitively, turns up two
more labels whose project page is right but whose name is not the one
CNCF publishes: LitmusChaos (CNCF: Litmus, incubating) on the Flipkart
record and External Secrets Operator (CNCF: external-secrets, sandbox)
on the SNCF record. Both are corrected in the page front matter and the
card name, and the catalog and members data are regenerated.

The two ArgoCD cards (SNCF, Swisscom Kubernetes Service) are renamed
Argo CD, the sub-project's own spelling; the catalog label is already
Argo after cncf#2022, so only the card title and its opening words change.
Submitters' prose elsewhere on the pages is left as written.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>

---------

Signed-off-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
Co-authored-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Co-authored-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[quality] The CNCF project filter splits Argo into three options, each hiding the others' architectures

1 participant