ID

R26

Status

In Progress

Priority

11

Theme

legacy-migration

Retire graphitron-maven-plugin + graphitron-schema-transform

Umbrella tracker. Fold the remaining transform passes and the Maven surface into graphitron-rewrite so every schema pass has a single code-owner and consumers depend on graphitron-maven-plugin only. End state: mvn install -f graphitron-rewrite/pom.xml produces a self-contained plugin jar and the legacy modules delete.

Most of this umbrella has shipped; see changelog.md for the build surface (schema loading, tagged inputs, Maven plugin, aggregator-standalone, content-idempotent writes) and @asConnection emit-time synthesis.

Remaining sub-items

  • Java LSP rewrite + dev goal ; shipped under R18 (see changelog.md). The legacy Rust LSP has no consumers, so archiving the GitLab repo and deleting the legacy IntrospectMojo carry no consumer-migration cost; both fold into the final "Retire legacy + unnest" step below, which deletes graphitron-maven-plugin wholesale.

  • @notGenerated directive removed ; own plan: remove-notgenerated.md. Directive dropped from the supported set.

  • Federation SDL integration ; bundled with the Apollo Federation via federation-jvm transform backlog item; tracked there.

  • Retire legacy + unnest the rewrite aggregator ; carved out to its own item, R182 (unnest-rewrite-aggregator.md). Closing landing marker for this umbrella; on R182 Done, this bullet retires with it.

Drive-bys this retirement closes

  • Paginated-fields transform coexistence. Today, when @asConnection is stripped by the legacy graphitron-schema-transform before the rewrite builder sees the schema, defaultPageSize is lost. Folded here because the concern vanishes when graphitron-schema-transform retires alongside the legacy plugin: there is no precursor pass to lose the metadata to. Until that final retirement step, consumers running both pipelines should be aware that defaultPageSize only survives if the rewrite builder reads the un-stripped SDL.

Architecture decisions that pruned scope

The programmatic-schema architecture (Graphitron.buildSchema(…​), see changelog) made several originally-planned migrations moot and they have been removed from the umbrella: type-extension merging (MergeExtensions) is a non-issue without the registry-level bridge; directive stripping (DirectivesFilter, GenerationDirective) is irrelevant because rewrite no longer emits a client SDL; the runtime no longer reads schema.graphql at bootstrap so neither client-SDL emission nor feature-flag SDL splits (FeatureConfiguration, SchemaFeatureFilter, <outputSchemas>) are needed.