Skip to content

design: a foundation for schema generation and dependency management - #474

Draft
BigGold1310 wants to merge 1 commit into
crossplane:mainfrom
BigGold1310:design-schema-foundation
Draft

BigGold1310 wants to merge 1 commit into
crossplane:mainfrom
BigGold1310:design-schema-foundation

Conversation

@BigGold1310

Copy link
Copy Markdown
Contributor

Description of your changes

Adds a one-pager proposing a shared foundation for schema generation and
dependency resolution. Document only — no code changes.

Schema generation is wired independently into seven commands today, and each
wiring drops something another one remembers. Four filed issues (#215, #428,
#242, #370) plus one unfiled bug — pins silently moving on unrelated builds —
all trace back to the same missing piece: there is no single implementation
to fix once.

The proposal is that piece: a Resolver ("what does this project depend
on?") and an Engine ("turn that into files"), reachable only through one
constructor, writing one versioned, grouped lock. Nothing generates until a
full resolved set exists, and groups are regenerated whole and swapped in
atomically — which is what closes #215 and #428 structurally rather than
per-call-site.

Two constraints shape it: no behavior change for existing users in the PR
that lands it, and no second foundational rewrite — it has to accommodate
run-level generators (#170, #374), resource-level filtering, and a future
crossplane schema command group without being reshaped. A 7-step roadmap
shows each of those as a layer-3 change.

#435 and #430 reach the same diagnosis by conflicting routes; the
Alternatives section explains why this adopts their ideas as a foundation
rather than picking either as a replacement.

I have:

Need help with this checklist? See the cheat sheet.

Signed-off-by: Cyrill Näf <cyrill.naef@gmail.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.

crossplane dependency update-cache does not add XRD types into schemas/ (inconsistent with crossplane project build)

1 participant