Uh oh!
There was an error while loading. Please reload this page.
Detect declared config contract manifests - #29
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates repo contract discovery to detect root YAML manifests that declare config contracts via contract/contracts metadata (instead of relying on filename-specific allowlists), and adds regression coverage ensuring config contract detection works with arbitrary filenames like work-conf.yaml.
Changes:
- Add scanning of root-level YAML files for explicit
contract/contractsmarkers and include them as contract manifests. - Add regression tests verifying filename-agnostic config contract detection and context.yaml manifest inventory.
- Update changelog and regenerate
.rabbit/context.yamltimestamp.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
tests/suite.sh | Adds a new fixture repo (declared-config-repo) and assertions proving config contracts are detected from arbitrary root YAML filenames. |
lib/modules/repo_scaffold.sh | Adds root YAML scanning for manifests that declare contract/contracts metadata and includes them in the manifest discovery surface. |
changes.md | Documents the shift from filename allowlists to explicit contract metadata detection for config contracts. |
.rabbit/context.yaml | Updates generated timestamp to reflect the new context generation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
76338b2 to
f995e5aCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
f995e5a to
8a7870aCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
8a7870a to
d849272CompareUh oh!
There was an error while loading. Please reload this page.
d849272 to
29e6111CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| done <<EOF | ||
| $(find "$repo_root" -maxdepth 1 -type f \( -name '*.yaml' -o -name '*.yml' \) 2>/dev/null | sort) | ||
| EOF |
| on: | ||
| push: | ||
| workflow_dispatch: |
Summary
contract/contractsmarkers or typedkind+versionmetadatawork-conf.yamlby combining typed manifest metadata with existingconfig.env/config.secretsshape detectiondeploy.ymlsurface from this repo and from legacy test fixturesenv-interface.yamlas the explicit repo-owned dev.kit environment interface so config coverage comes from a declared contract0.20.0as a milestone release for the manifest/interface shift after0.14.0contract:root manifests, and source/header comments that should not promote ordinary YAML into a contractScope
Changed: repo context contract manifest discovery, manifest-root detection signals, release metadata/docs, generated context, env tool recommendations, docker test entrypoints, and test fixtures.
Not changed: no
worker.yaml, Worker-specific filename, deprecateddeploy.yml, or UDX repo-specific allowlist was added.Validation
bash tests/suite.sh --only repo-contractmake testgit diff --checkworker-phpreportsconfig: presentfromworker.yamlvia generic typed manifest + config shape detection