Skip to content

release: 2.2.0#26

Merged
Ulrond merged 3 commits into
mainfrom
release/2.2.0
Jun 2, 2026
Merged

release: 2.2.0#26
Ulrond merged 3 commits into
mainfrom
release/2.2.0

Conversation

@Ulrond
Copy link
Copy Markdown
Contributor

@Ulrond Ulrond commented Jun 2, 2026

Release 2.2.0

Adds

  • Versioned imports in interface.yaml (#23 / #25) — `name@version` syntax with on-disk snapshot auto-discovery.

    ```yaml
    imports:

    • common@0.1.0.0 # pin to a released snapshot

    • audiodecoder@current # in-development sibling (explicit)

    • audiosink # bare name — deprecated
      ```

    • Frozen-snapshot `//interface.yaml` files are auto-registered as buildable `-v-cpp` targets — no `versions_with_info` boilerplate needed on the producer side.

    • Bare-name imports keep working through a deprecation window with a one-shot warning per (consumer, import) pair.

    • Pin-to-unregistered-version fails fast with a clear, actionable error.

Consumed by

  • rdkcentral/rdk-halif-aidl#544 — bumps `binder_sdk.version` to 2.2.0 and migrates every in-tree `interface.yaml` to explicit `name@version` pins.

Ulrond added 3 commits May 28, 2026 12:28
Adds support for `name@version` syntax in `interface.yaml` imports so
consumers can declare which version of a producer they require, instead
of silently inheriting whatever happens to be on disk at
`<producer>/current/`.

Syntax:
  imports:
    - common@0.1.0.0       # pin to a released snapshot
    - audiodecoder@current # in-development sibling (explicit)
    - audiosink            # bare name — deprecated, treated as @current

Resolver behaviour for the consumer's `current` build:
  - `@<version>`  — links to `lib<name>-v<version>-cpp.so`. The producer's
                    interface.yaml must list this version under
                    `versions_with_info`; otherwise the dependency-tree
                    generator fails fast with a clear, actionable error.
  - `@current`    — links to `lib<name>-vcurrent-cpp.so`.
  - bare name     — same as `@current`, plus a one-shot deprecation
                    warning per (consumer, import) pair. The warning is
                    suppressed for frozen-snapshot interface.yaml files
                    since they are historical artefacts and re-warning
                    every build would be noise.

Toolchain changes:
  - host/aidl_interface.py — adds `parse_import_spec()`, populates a
    per-interface `import_versions` map alongside the existing bare-name
    `imports` list (preserved for back-compat with aidl_api.py), routes
    pinned versions through the dependency tree builder, and replaces
    the previous `KeyError: <target>` crash with a graceful RuntimeError
    when a pin points to an unregistered target.
  - host/aidl_ops.py — removes the `str(int(a))` coercion on `--version`
    so dotted release strings (`0.1.0.0`) can be passed through.
  - host/CMakeLists.inc — broadens the target-name version regex from
    `-v([0-9]+)` to `-v([^-]+)-cpp$` to capture dotted release strings
    alongside integer ordinals.

Verified against rdk-halif-aidl tree:
  - bare-name imports build cleanly + emit one-shot deprecation warning
  - `@current` pin builds cleanly + suppresses the warning
  - `@<unregistered-version>` fails fast with the new error message

Closes #23. Related: rdkcentral/rdk-halif-aidl#538.
feat(imports)!: version-pinned imports in interface.yaml (#23)
Copilot AI review requested due to automatic review settings June 2, 2026 22:56
@Ulrond Ulrond requested a review from a team as a code owner June 2, 2026 22:56
@Ulrond Ulrond merged commit 7c6262c into main Jun 2, 2026
5 checks passed
@Ulrond Ulrond deleted the release/2.2.0 branch June 2, 2026 22:56
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant