Skip to main content

Roadmap — What Shipped

The v2 rewrite of adt-cli was planned as a sequence of self-contained epics, each scoped small enough for a fresh Devin session to land in one pass. This page narrates what each wave delivered; the next page (Future) collects the open questions and follow-ups that remain.

Where are the raw epic files?

The underlying OpenSpec-style briefs live in the repository at docs/roadmap/epics/ and are intentionally excluded from the public documentation site. They contain internal scope negotiations and evolving acceptance criteria and are kept as the source of truth for maintainers. This page is the user-facing summary.

Wave 1 — Independent object surfaces

Small, parallelisable epics closing legacy gaps vs. sapcli.

EpicTitleCLIMCP
E01INCL CLI + MCPadt ddic incl. / adt getget_include
E02FUGR / FUNCadt function …create_function_group, create_function_module, get_function_group, get_function, delete_function_module
E03BAdI implementationsadt badi …create_badi, get_badi, delete_badi
E04STRUST cert managementadt strust …list_certs, upload_cert, delete_cert, list_pses
E13startrfc (NW RFC over SOAP)adt rfc …call_rfc
E14Fiori Launchpadadt flp …list_flp_catalogs, list_flp_groups, list_flp_tiles, get_flp_tile
E15Workbench navigationadt wb …find_definition, find_references, get_callers_of, get_callees_of

Wave 2 — Format-plugin foundation

EpicTitleOutcome
E05Format-plugin API foundationFormatPlugin interface + global registry. Single side-effect import bootstraps abapGit. Architecture.
E06gCTS as format plugin@abapify/adt-plugin-gcts — id gcts (alias aff). Full round-trip with manifest.yml.
E07gCTS as command plugin@abapify/adt-plugin-gcts-cliadt gcts repo/branch/commit/pull/… (12 subcommands).
E08Checkin (push to SAP)adt checkin, batch-lock-session validation, dependency-tier apply. Architecture.

Wave 3 — ABAP CDS & RAP

EpicTitleOutcome
E09Extend acds parserPhase-1 grammar for TABL / structure / DRTY / SRVD / DDLX. SDK → acds.
E10RAP BDEFadt rap bdef … + create_bdef / get_bdef / delete_bdef.
E11RAP SRVDadt rap srvd … + create_srvd / get_srvd / delete_srvd.
E12RAP SRVBadt rap srvb … + create_srvb / get_srvb / delete_srvb / publish_service_binding.

QC waves

Alongside the feature epics, three "QC" passes shipped:

  • QC1 — Fixture backfill. Real-SAP captures for every endpoint where TRL allowed it. where-used, FLP, RFC-SOAP, discovery, core http, classes/interfaces, CTS, activation, search. Yielded the results table in Architecture → Real-SAP e2e.
  • QC2 — Unified mock server. Consolidated the MCP integration mock and the CLI e2e mock into @abapify/adt-fixtures's createMockAdtServer(). See Architecture → Mock server.
  • QC3 — Documentation sweep (D2a – D2f). This site.

Dependency graph

┌─────────────────────┐
│ E05: format-plugin │ (foundation)
│ API contract │
└─────────┬───────────┘

┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ E06: gcts │ │ E08: checkin │ │ E07: gcts-cmd │
│ format plug. │ │ (lock-batch) │ │ plugin (cmds) │
└──────────────┘ └──────────────────┘ └──────────────────┘

┌─────────────────┐
│ E09: acds parser│ (foundation for RAP)
└────────┬────────┘

┌──────────────┼──────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│E10:BDEF │ │E11:SRVD │ │E12:SRVB │
└─────────┘ └─────────┘ └─────────┘

Independent (parallelised from day 1):
E01:include E02:function E03:badi E04:strust
E13:rfc E14:flp E15:wb

See also