Skip to content

Introduce an initial set of DevEx features#7

Draft
adamwg wants to merge 2 commits intocrossplane:mainfrom
adamwg:awg/devex
Draft

Introduce an initial set of DevEx features#7
adamwg wants to merge 2 commits intocrossplane:mainfrom
adamwg:awg/devex

Conversation

@adamwg
Copy link
Copy Markdown
Member

@adamwg adamwg commented May 8, 2026

Description of your changes

This PR introduces the initial set of DevEx tools based around the concept of control plane Projects. Specifically, it introduces tools for:

  • Scaffolding a new, empty project.
  • Generating XRDs from example XRs or simpleschema documents.
  • Scaffolding compositions.
  • Scaffolding functions in go, go-templating, kcl, and python and adding them to composition pipelines.
  • Managing both runtime and build-time dependencies for a project, including generating language bindings (schemas) for added dependencies.
  • Building a project into a set of xpkgs.
  • Installing a project into a local control plane (created using kind) for testing.

Fixes crossplane/crossplane#6840

I have:

adamwg added 2 commits May 8, 2026 13:24
The central concept in our developer experience is the Project. Introduce the
Project API in preparation for adding the tooling.

Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
This commit introduces the initial set of DevEx tools based around the concept
of control plane Projects. Specifically, it introduces tools for:

- Scaffolding a new, empty project.
- Generating XRDs from example XRs or simpleschema documents.
- Scaffolding compositions.
- Scaffolding functions in go, go-templating, kcl, and python and adding them to
  composition pipelines.
- Managing both runtime and build-time dependencies for a project, including
  generating language bindings (schemas) for added dependencies.
- Building a project into a set of xpkgs.
- Installing a project into a local control plane (created using kind) for
  testing.

Fixes crossplane/crossplane#6840

Signed-off-by: Adam Wolfe Gordon <awg@upbound.io>
Comment thread internal/docker/docker.go
const maxFileSize = 1024 * 1024 * 1024

for {
header, err := tarReader.Next()
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.

Proposal: Contribute the Upbound developer experience tooling to Crossplane

2 participants