.project/ files written by darnit do not conform to the upstream CNCF dot-project schema
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
Research direction
Start with packages/darnit/src/darnit/context/dot_project.py, packages/darnit/src/darnit/config/context_storage.py, and the OSPS-DO-02.01 entry in packages/darnit-baseline/src/darnit_baseline/openssf-baseline.toml; compare their behavior with the referenced upstream SCHEMA.md and validator. The issue lists five compatibility gaps and proposed directions; check related issues #468, #469, and #463 before defining a bounded change. Done means the agreed changes are covered by tests and written fixtures validate against the upstream schema.
Written by the indexing model from the issue text.
Description
Summary
.project/ is darnit's primary mechanism for project metadata, but the files darnit writes do not conform to the upstream CNCF dot-project schema (cncf/automation utilities/dot-project, SCHEMA.md version 1.0.0 at commit fb391624922b, 2026-09-24):
- Schema version. New
project.yamlfiles are seeded withschema_version: "1.4.0"(https://github.com/darnitdevorg/darnit/blob/032493b8bc9d6ef810ecd639e515042371465c37/packages/darnit/src/darnit/context/dot_project.py#L65, used at #L998). The upstream validator'sSupportedSchemaVersionsis["1.0.0"]. security.contactshape. Upstream definessecurity.contactas an object (email/advisory_url). darnit writes a bare string there (https://github.com/darnitdevorg/darnit/blob/032493b8bc9d6ef810ecd639e515042371465c37/packages/darnit/src/darnit/config/context_storage.py#L381-L386).- Unknown and relocated fields. The upstream decoder rejects unknown fields and the
Projectstruct has no extension field; some upstream fields (e.g.slug,project_lead,package_managers,landscape) are read into or written from.project/darnit.yamlinstead ofproject.yaml. - Wrong locator. OSPS-DO-02.01 ("Document bug reporting process") uses
project_path = "security.policy"(https://github.com/darnitdevorg/darnit/blob/032493b8bc9d6ef810ecd639e515042371465c37/packages/darnit-baseline/src/darnit_baseline/openssf-baseline.toml#L1421), so remediation and lookup treat the security policy as the bug-reporting process. - Non-CNCF projects.
maturity_logis required upstream and CNCF-specific, so a project outside the CNCF cannot produce a validproject.yaml.
Impact
Files darnit creates or edits may fail upstream validation and CNCF tooling, and values can be read back with the wrong meaning. Since .project/ is the primary store, darnit should round-trip it faithfully.
Suggested direction
- Pin darnit to the upstream schema version it actually implements, and add a CI check that validates darnit-written fixtures with the upstream validator.
- Write
security.contactin the upstream object form and read both forms. - Keep upstream fields in
project.yaml; limitdarnit.yamlto darnit-specific keys. - Fix the DO-02.01 locator.
- Propose upstream changes where
.project/cannot express what non-CNCF projects need (making CNCF-only required fields optional, a sanctioned extension mechanism), rather than diverging locally.
Related: #468, #469, #463.
- Dominant language
- Python
- Stars
- 22
- Forks
- 27
- Avg merge
- 2d 28m
- Merged PRs (30d)
- 40
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from darnitdevorg/darnit
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
darnitdevorg/darnit#589 ·
Maintainers usually reply within 1 day
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
darnitdevorg/darnit#587 ·
Maintainers usually reply within 1 day
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
darnitdevorg/darnit#585 ·
Maintainers usually reply within 1 day
-
quality
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
darnitdevorg/darnit#523 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
darnitdevorg/darnit#516 ·
Maintainers usually reply within 1 day
All issues in darnitdevorg/darnit
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
gradio-app/gradio#13964 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 93/100
BSData/horus-heresy-3rd-edition#3232 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jbacalso24/mimry#123 ·
Maintainers usually reply within 1 day
-
p:3-mid pydanty:bug pydanty:is-working
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
pydantic/pydantic-ai#10153 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue priority: medium size: S testing
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
cubrid-lab/cubrid-cookbook-python#316 ·
Maintainers usually reply within 1 day