Conversation
There was a problem hiding this comment.
In #17, you pointed out that the design made the system very configurable at the cost of added complexity. My main point was not that we need arbitrary local configurability; it was that proposal-repo identity should stop living as hardcoded preprocessor state. This version keeps that core property with a smaller schema and fewer topology concepts, which makes sense since we don't have an immediate need for the richer topology model. The layering here (private InnerManifest for the raw file shape, Manifest after validation, RepositoryUse for the active/others split) already covers most of what I was thinking about for future schema evolution.
A few things:
-
Unknown fields. The schema uses
deny_unknown_fields, which is great for catching typos, but it means that if we ever add a field later (for example a second pinned dependency alongsidetheme), older binaries will reject newer manifests in every proposal repo until everyone upgrades. Would you be open to tolerating unknown keys, or adding schema-version handling, so the schema can grow without a lockstep upgrade? -
Commit message. The msg should be updated to reflect the current
Build.tomlschema and the removal of the legacy EIPs/ERCs fallback. Right now it still reads like the #17 implementation. -
Conversion point.
Manifestcurrently gets cloned intoFresh::newand then converted toRepositoryUsea second time inbuild(). Converting once inprepare()and passingRepositoryUseplusThemedownstream would drop the duplicate conversion and keep theBuild.tomlshape from spreading through call sites. That way, if we ever do need more configurability later, it lands as a change to the manifest layer instead of touching every call site, without making anything more complex today. This would also mean thename in locationsinvariant only gets re-checked in one place.
Also: Rollout PRs. eips-wg/EIPs#11 and eips-wg/ERCs#11 currently add the old .build-eips.repo.toml shape. Once this lands I'll update both to the Build.toml schema so the manifests are ready whenever you drop a new release.
Add the .build-eips.repo.toml schema, loader, validation rules, and manifest tests for active proposal repositories and declared sibling repositories. Drop concept of staging/production
The
Done!
Moved |
|
Awesome! Glad we could lock in this foundation. I updated the PRs for ERCs and EIPs to add only the repo manifests, if you could merge those while this is fresh: |
No description provided.