How it works
Composer Hub keeps uac-compose bundles (.uac.yaml) like PyPI keeps Python packages: a name, version numbers, and a SHA-256 for each file. Download is free for everyone.
Install a bundle
- Pick a version. References work like pip:
hub:my-bundle # the latest version hub:my-bundle==1.0 # exactly 1.0 hub:my-bundle@1.0 # the same 'hub:my-bundle>=1.0,<2' # the highest 1.x (quote it in a shell) 'hub:my-bundle<=1.2'
- Dry run first, then import:
uac-compose import -n hub:my-bundle==1.0 --sha256 <checksum> uac-compose import hub:my-bundle==1.0 --sha256 <checksum>
--sha256pins the file, like pip's--require-hashes. Without it, the CLI still checks the checksum the hub sends. - Or the UC Compose extension: Action Import, Bundle Source Composer Hub, Package
my-bundle==1.0; or Bundle Source URL with the URL and the SHA-256 from the package page.
Publish a bundle
- Sign up. An admin approves new accounts.
- Create an API token and save it:
mkdir -p ~/.config/uac-compose printf '%s' 'cmp_…' > ~/.config/uac-compose/hub-token chmod 600 ~/.config/uac-compose/hub-token
- Publish:
uac-compose publish nightly.uac.yaml nightly-transfer==1.0 \ -d "Moves the nightly files and tells the team." --tag "file transfer" uac-compose publish nightly.uac.yaml nightly-transfer==1.1 --draft # check it on the site first - Or use the web dashboard: paste or upload the YAML, check the draft, publish.
Rules
- A published version never changes. Delete it if you must; the number stays reserved and is never used for another file. Publish a new number instead.
- A draft is seen only by its owner and can change until it is published.
- Files are refused when they hold a secret (password, pass phrase, token), are not a valid bundle, or are over 1 MB.
- The site lists the Universal Extensions a bundle uses and draws its workflows.
- One vote and one report per approved account. A package with 15 reports is hidden until an admin checks it.