What problem are you facing?
upjet/v2 is pinned to crossplane-runtime/v2 v2.2.0, which blocks downstream providers from adopting crossplane-runtime/v2 v2.3.x.
crossplane-runtime v2.3.0 introduced a breaking change that affects upjet directly:
The common APIs from crossplane-runtime have moved to github.com/crossplane/crossplane/apis/v2/core.
Concretely, packages and symbols that no longer exist in crossplane-runtime/v2 ≥ v2.3.0:
github.com/crossplane/crossplane-runtime/v2/apis/common
github.com/crossplane/crossplane-runtime/v2/apis/common/v1
github.com/crossplane/crossplane-runtime/v2/apis/common/v2
…and the inline-embedded spec/status types have been renamed:
v1.ResourceSpec → v2.ClusterManagedResourceSpec (cluster-scoped) / v2.ManagedResourceSpec (namespaced)
v1.ResourceStatus → v2.ManagedResourceStatus
Today, any provider attempting to bump crossplane-runtime/v2 to v2.3.x via Renovate sees CI fail with missing go.sum entry errors because upjet still imports the removed packages transitively. The hand-written upjet sources reference the same packages and types.
How could upjet help solve your problem?
Bump crossplane-runtime/v2 to v2.3.1 in upjet and migrate:
- Imports in ~17 source files: swap the three old package paths for the consolidated
github.com/crossplane/crossplane/apis/v2/core/v2 path.
- Codegen pipeline:
pkg/types/reference.go PackagePathXPCommonAPIs and PackagePathXPV2CommonAPIs → consolidated path.
pkg/pipeline/templates/crd_types.go.tmpl → emit ClusterManagedResourceSpec for cluster-scoped MRs (replacing ResourceSpec) and ManagedResourceStatus (replacing ResourceStatus).
- Embedded-type-string test fixtures in
pkg/types/builder_test.go refreshed to match the new fully-qualified paths.
tests/conversion/test_resource.go field embeds renamed to the new cluster-scoped types.
go.mod: bump to crossplane-runtime/v2 v2.3.1 and add a direct require on crossplane/apis/v2 v2.3.1; go mod tidy.
I have a working implementation locally — all of go test ./... -count=1 is green. PR forthcoming.
Happy to backport to release-2.2 if maintainers want it.
What problem are you facing?
upjet/v2 is pinned to
crossplane-runtime/v2 v2.2.0, which blocks downstream providers from adoptingcrossplane-runtime/v2 v2.3.x.crossplane-runtime v2.3.0 introduced a breaking change that affects upjet directly:
Concretely, packages and symbols that no longer exist in
crossplane-runtime/v2≥ v2.3.0:github.com/crossplane/crossplane-runtime/v2/apis/commongithub.com/crossplane/crossplane-runtime/v2/apis/common/v1github.com/crossplane/crossplane-runtime/v2/apis/common/v2…and the inline-embedded spec/status types have been renamed:
v1.ResourceSpec→v2.ClusterManagedResourceSpec(cluster-scoped) /v2.ManagedResourceSpec(namespaced)v1.ResourceStatus→v2.ManagedResourceStatusToday, any provider attempting to bump
crossplane-runtime/v2to v2.3.x via Renovate sees CI fail withmissing go.sum entryerrors because upjet still imports the removed packages transitively. The hand-written upjet sources reference the same packages and types.How could upjet help solve your problem?
Bump
crossplane-runtime/v2to v2.3.1 in upjet and migrate:github.com/crossplane/crossplane/apis/v2/core/v2path.pkg/types/reference.goPackagePathXPCommonAPIsandPackagePathXPV2CommonAPIs→ consolidated path.pkg/pipeline/templates/crd_types.go.tmpl→ emitClusterManagedResourceSpecfor cluster-scoped MRs (replacingResourceSpec) andManagedResourceStatus(replacingResourceStatus).pkg/types/builder_test.gorefreshed to match the new fully-qualified paths.tests/conversion/test_resource.gofield embeds renamed to the new cluster-scoped types.go.mod: bump tocrossplane-runtime/v2 v2.3.1and add a direct require oncrossplane/apis/v2 v2.3.1;go mod tidy.I have a working implementation locally — all of
go test ./... -count=1is green. PR forthcoming.Happy to backport to
release-2.2if maintainers want it.