Skip to content

Harmonize RAES naming with env-packs: contract identifiers and scenario/environment vocabulary #907

Description

@Brad-Edwards

Context

RAESystem/env-packs (formerly aces-scenario-packs) is migrating to
raes==1.1.0 and renaming itself to RAES Environment Packs. Tracking issue
downstream: OpenRAE/env-packs#139.

That repo is subordinate to this one by its own ADR 0009, and consumes this
repo's concept authority under ADR 0014 and the reusable-asset-trust-policy
under ADR 0010. It defines zero extensions to RAES semantics. So the naming it
adopts has to follow whatever this repo settles on, and there are two places
where 1.1.0 does not yet make that unambiguous.

1. Contract identifiers are still aces-*

The Python import layer renamed cleanly in 1.1.0 — every top-level package is
raes*, no aces_sdl, no aces/ namespace. But the published wheel still
carries ~193 lowercase aces and ~225 ACES occurrences, and the bulk of them
are contract and schema identifier strings, not prose:

Identifier Occurrences Example location
aces-invariants 92 raes_contracts/realization_envelope_carrier.py
aces-reference-processor 87 raes_backend_libvirt/manifest.py
aces-semantic-invariants-v1 71 raes_contracts/contracts/bundle.py
aces-variable-reference 31 raes/_base.py
aces-semantic-profile 31 raes_contracts/contracts/schema_constraints.py
aces-sdl-semantic 24 raes/_source_profile.py
aces-behavioral-relations 16 raes_conformance/conformance/report.py
aces-document-phase 11 raes/canonical.py
aces-random-stream-v1 9 raes_contracts/random_stream_engine.py
aces-realization-dimension 8 raes/_realization_envelope_engine.py
aces-reusable-asset-trust-policy 8 raes_contracts/_corpus/fixtures/asset-trust/...
aces-plane 7 raes/observability_plane_semantics.py
aces-validation 7 raes_contracts/validation_profiles.py
aces-sdl-instantiated-snapshot 6 raes/canonical.py
aces-exploit-path-analysis-v1 6 raes_contracts/exploit_path.py

raes_contracts/_corpus/concept-authority/ is also still ACES-worded
internally.

These are the strings downstream actually writes into pack schemas and validates
against — aces-reusable-asset-trust-policy in particular is exactly what
env-packs ADR 0010 consumes.

Question this issue needs answered: are the aces-* contract identifiers
deliberately frozen as stable wire identifiers that should not churn with the
product rename, or are they pending a rename to raes-*?

Either answer is workable downstream, but they lead to opposite edits:

  • Frozen — env-packs keeps writing literal aces-* identifier strings in
    its schemas and contract docs while renaming everything else to RAES, and adds
    a note explaining why those strings look stale. No further upstream work.
  • Pending rename — env-packs should not churn those strings twice; it holds
    the identifier-facing part of its rename until this lands, and the two repos
    cut over together. Worth a version to target.

Guessing wrong here means either a second breaking pass over downstream pack
schemas, or shipping identifiers that disagree with this repo.

2. Vocabulary split: scenario vs environment

1.1.0 still describes itself as the "RAES Scenario Description Language" and
exports Scenario / instantiate_scenario. env-packs is renaming its own
pack-level noun to "environment pack" while leaving "scenario" alone wherever it
names an SDL concept owned here, on the grounds that ADR 0014 forbids restating
upstream vocabulary locally.

The rule env-packs is adopting: packs are environment packs; what a pack
contains is still an SDL scenario.

Confirming that split is intended, and that "scenario" is staying as the
SDL-level term rather than following the ACES→RAES rename, would let the
downstream vocabulary pass land without a follow-up correction.

Helpful signal already: scenario pack appears nowhere in the 1.1.0 wheel,
so there is no upstream text to change for the pack-level rename itself.

3. aces-sdl migration path on PyPI

Minor, but it affects any other consumer:

  • aces-sdl on PyPI still tops out at 0.23.1 with no pointer to raes. A
    consumer pinning it gets no signal the line moved.
  • The aces.core.sdl compatibility shim shipped in 1.0.0 and was removed in
    1.1.0. Anything that migrated onto that shim rather than to raes is already
    broken, with no intermediate release to land on.

If aces-sdl is meant to be end-of-life, a final release or description update
pointing at raes, plus a migration note in the README, closes it out.

Asks

  • Confirm whether aces-* contract identifiers are frozen or pending
    rename; if pending, name a target version so env-packs can sequence.
  • Confirm the scenario (SDL-level) vs environment pack (pack-level)
    vocabulary split.
  • Decide the aces-sdl PyPI end-of-life pointer.

Downstream tracking: OpenRAE/env-packs#139.

Metadata

Metadata

Assignees

No one assigned

    Labels

    convergenceCross-product convergence / companion-spec work

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions