Consumer CLI for the autoware-index registry
Project description
aw-index-cli
aw-index-cli is the consumer CLI for the Autoware Index registry. It
reads a distribution manifest (distributions/<rosdistro>.yaml) and composes a
vcs2l .repos file you can vcs import into a workspace.
The registry is repository-keyed: each entry is one repository with exactly
one ref and the packages it hosts.
Install
With pipx (recommended for an isolated CLI):
pipx install aw-index-cli # first install
pipx upgrade aw-index-cli # update to the latest release
Commands
compose— render a.reposfile from a distribution.check— gate a composed.reposagainst the registry and sweep history.list— list registry packages with their latest validation status.
compose
Select what you need by package, repository, or tag — the distribution is fetched from GitHub by default, so no registry checkout is required.
# Recommended: compose just the packages you want.
aw-index-cli compose --rosdistro jazzy \
--packages autoware_livox_tag_filter
# …or pull in whole repository entries by their registry key.
aw-index-cli compose --rosdistro jazzy \
--repository autoware_livox_tag_filter
# Narrow by tag (filters can be combined; they are ANDed).
aw-index-cli compose --rosdistro jazzy --tags sensing perception
# Print to stdout instead of writing a file.
aw-index-cli compose --rosdistro jazzy \
--packages autoware_livox_tag_filter --stdout
[!TIP] Omitting all of
--packages,--repository, and--tagscomposes the entire distribution — supported, but usually you want to name what you consume.
Example output for compose --rosdistro jazzy --repository livox-tools
(a monorepo entry hosting two registered packages):
# aw-index-cli 0.3.0
# source: autowarefoundation/autoware-index@main
# rosdistro: jazzy
# tags: all
# repository: livox-tools
# generated_at: 2026-06-11T12:00:00+00:00
# selected packages by repository:
# livox-tools: autoware_livox_decoder, autoware_livox_tag_filter
# Generated file — re-run 'aw-index-cli compose …' to update; do not edit by hand.
repositories:
livox-tools:
type: git
url: https://github.com/autowarefoundation/autoware_livox_tag_filter
version: main
Less common sources — a local registry checkout, or a fork / specific git ref:
# Read from a local registry checkout instead of GitHub.
aw-index-cli compose --rosdistro jazzy \
--packages autoware_livox_tag_filter \
--registry-path /path/to/autoware-index
# Fetch the distribution from a fork at a specific branch/tag/sha.
aw-index-cli compose --rosdistro jazzy \
--packages autoware_livox_tag_filter \
--registry-repo me/autoware-index-fork --registry-ref dev
How entries are composed
- Entry keys are registry repository keys — the directory
vcs importclones into. - Filters are ANDed. An unknown
--packagesname or--repositorykey is a hard error, never a silent empty result. - A monorepo collapses to one entry at its single
ref, however many of its packages match. - Each entry is pure vcs2l —
type/url/versiononly. The selected package names live in the# selected packages by repository:header comment, not the YAML body.
[!NOTE] A clone may include unregistered sibling packages the index makes no claims about. To build only the packages you selected, pass their names to colcon:
colcon build --packages-up-to autoware_livox_tag_filter # names from the header comment
Key options
--rosdistro(required): ROS distribution, e.g.jazzy.--packages/--repository/--tags: selection filters.--autoware: informational only — recorded in the header, not a ref selector.--registry-path: read a local file or registry directory instead of GitHub.--registry-repo/--registry-ref: GitHub source repo (defaultautowarefoundation/autoware-index) and git ref (defaultmain).--repo-root/--name/--output: where and under what name to write the.repos(default<repo-root>/repositories/autoware-index.repos).--stdout: print instead of writing a file.--no-timestamp: omitgenerated_atfor byte-identical output.
[!IMPORTANT] There is no
importcommand — pipecomposestraight into vcs:
aw-index-cli compose --rosdistro jazzy --packages autoware_livox_tag_filter --stdout \
| vcs import src
check
Verify a composed .repos is still current: every repository at the registry's
ref, and each package passing its latest sweep — the registry's periodic
build/test against the current Autoware release. Intended as a CI gate after
vcs import.
# Auto-discovers ./autoware-index.repos or ./*/autoware-index.repos; rosdistro is
# read from the file's header. Exit code is the gate.
aw-index-cli check
# Or point at a specific file.
aw-index-cli check --repos repositories/autoware-index.repos --rosdistro jazzy
Per repository it reports ref drift, removal from the registry, each package's
latest status (pass/fail/—) and the Autoware version tested, and — for
branch refs — whether the branch advanced past the last sweep.
- Exit
0— all pass, no drift. - Exit
1— any failing validation, ref drift, or removed package (with--strict, also unvalidated packages or a branch that advanced since the sweep). - Exit
2— could not run (bad/missing.repos, registry load error).
Options mirror compose, plus --data-ref (default data), --strict, and
--format {table,json}.
[!NOTE] Without
giton PATH the branch-drift check is silently skipped, so a green check isn't a complete guarantee.
list
Enumerate the packages registered for a distro with their latest sweep status — discovery plus a health readout, without composing anything.
aw-index-cli list --rosdistro jazzy
aw-index-cli list --rosdistro jazzy --tags sensing --format json
Accepts the same selection filters as compose. Exit 0 normally; with
--strict, exit 1 if any selected package is failing or unvalidated; exit 2
on a registry load error.
License
Apache-2.0. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aw_index_cli-0.3.0.tar.gz.
File metadata
- Download URL: aw_index_cli-0.3.0.tar.gz
- Upload date:
- Size: 44.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
191e48dc9ad78eda4437f52340b3e75269d3e9e182677a602abfa1518e207e31
|
|
| MD5 |
be9e021ba29361037ddfbab7c4a95cfe
|
|
| BLAKE2b-256 |
47d8c55aa7e8e0b2ea904950b0076e553f0929e02dbf429b8a87b326120c2d16
|
Provenance
The following attestation bundles were made for aw_index_cli-0.3.0.tar.gz:
Publisher:
release.yaml on autowarefoundation/aw-index-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aw_index_cli-0.3.0.tar.gz -
Subject digest:
191e48dc9ad78eda4437f52340b3e75269d3e9e182677a602abfa1518e207e31 - Sigstore transparency entry: 2040391345
- Sigstore integration time:
-
Permalink:
autowarefoundation/aw-index-cli@1a25054c7345001b1df8b0d502f40a2d25c59585 -
Branch / Tag:
refs/tags/0.3.0 - Owner: https://github.com/autowarefoundation
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@1a25054c7345001b1df8b0d502f40a2d25c59585 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aw_index_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: aw_index_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c773456afc1337eb0e7b2483de0ea3583bbc05d889ce718a03e866fd1c46413
|
|
| MD5 |
ea9fa61d1d8e0c67ea8078f5e2159d83
|
|
| BLAKE2b-256 |
8ae9314643a235322da7fc407b1506104db789c640367e083d4404a6bc93f375
|
Provenance
The following attestation bundles were made for aw_index_cli-0.3.0-py3-none-any.whl:
Publisher:
release.yaml on autowarefoundation/aw-index-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aw_index_cli-0.3.0-py3-none-any.whl -
Subject digest:
7c773456afc1337eb0e7b2483de0ea3583bbc05d889ce718a03e866fd1c46413 - Sigstore transparency entry: 2040391434
- Sigstore integration time:
-
Permalink:
autowarefoundation/aw-index-cli@1a25054c7345001b1df8b0d502f40a2d25c59585 -
Branch / Tag:
refs/tags/0.3.0 - Owner: https://github.com/autowarefoundation
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@1a25054c7345001b1df8b0d502f40a2d25c59585 -
Trigger Event:
push
-
Statement type: