Skip to content

chore(context): reconcile .project/ reader with CNCF upstream (1.3.0 -> 1.4.0) - #398

Merged
mlieberman85 merged 1 commit into
darnitdevorg:mainfrom
mlieberman85:sync-dot-project-spec-2026-08
Aug 26, 2026
Merged

chore(context): reconcile .project/ reader with CNCF upstream (1.3.0 -> 1.4.0)#398
mlieberman85 merged 1 commit into
darnitdevorg:mainfrom
mlieberman85:sync-dot-project-spec-2026-08

Conversation

@mlieberman85

Copy link
Copy Markdown
Contributor

Summary

Reconciles darnit's .project/ reader with the current CNCF upstream
per the runbook at specs/030-dot-project-spec-sync/quickstart.md.

Upstream (cncf/automation@e9adbac) added a single new field:

```go
type Team struct {
Name string `json:"name" yaml:"name"`
Members []string `json:"members" yaml:"members"`
Managed *bool `json:"managed,omitempty" yaml:"managed,omitempty"`
}

func (t Team) IsManaged() bool {
return t.Managed == nil || *t.Managed
}
```

Nil defaults to managed; false excludes the team from CNCF resource
automation (handle verification, mailing lists, service desk, Copilot
seats). Darnit does not consume this attribute today.

Classification

teams[*].managed is NEW-IGNORED per feature 030 Q1 (parse-only
scope). The reader's existing unknown-field catch-all in
_parse_maintainer_teams puts it in MaintainerTeam._extra["managed"]
automatically. No dataclass, parsing helper, or new attribute
needed -- when a control eventually wants to consume it, that's a
separate feature.

Changes

  • .github/dot-project-spec-hash.txt:
    afa3d17... -> e9adbac....
  • packages/darnit/src/darnit/context/dot_project.py:
    DOT_PROJECT_SPEC_VERSION 1.3.0 -> 1.4.0, plus the reconciliation-
    history docstring + inline note.
  • tests/darnit/context/test_dot_project.py: pinned version-check
    test renamed from test_spec_version_bumped_to_1_3_0 to _1_4_0.

Test plan

  • pytest tests/darnit/context/test_dot_project_upstream.py -v
    passes (was blocking every open PR).
  • pytest tests/darnit/context/test_full_field_coverage.py
    passes without golden update (NEW-IGNORED doesn't change reader
    output shape).
  • Full darnit sweep: pytest tests/darnit/ -q -> 1808 pass,
    8 skip, 0 fail (after the pinned-version test rename).

Not this PR

  • Does not expose managed as a MaintainerTeam attribute (Q1:
    parse-only).
  • Does not touch DotProjectWriter. Writer stays scalar-only.
  • Does not touch packages/darnit-baseline/. Per plan §Project
    Structure this is core-only.

Closes #397.

…-> 1.4.0)

Upstream added a `Managed *bool` field to the `Team` struct in
`utilities/dot-project/types.go` (nil defaults to managed; false
excludes the team from CNCF resource automation). Darnit does not
consume this attribute today, so the reader picks it up via the
existing unknown-field catch-all in `_parse_maintainer_teams` into
`MaintainerTeam._extra["managed"]` (NEW-IGNORED classification per
feature 030 Q1: parse-only scope).

No new dataclass, no new parsing helper, no new attribute on
`MaintainerTeam`. Just the version + reconciliation-history bump plus
the tracked-hash refresh so `test_upstream_spec_unchanged` stops
firing on every open PR.

Also updates the pinned version-check test to the new value; the test
name previously referenced the specific 1.3.0 milestone.

Closes darnitdevorg#397.

Reconcile SHA: cncf/automation@e9adbac (was cncf/automation@afa3d17
via bd7fec94).
@mlieberman85
mlieberman85 merged commit 94c6dba into darnitdevorg:main Aug 26, 2026
8 checks passed
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.

CNCF .project/ upstream spec drift blocking PR CI (feature 030 reconcile)

1 participant