Repositories¶
Collider uses repositories to store and retrieve wrap packages. All repository types serve a WrapDB-compatible layout so Meson can consume them directly.
Repository Types¶
Filesystem¶
A directory on disk containing wraps, archives, and a releases.json index.
Use filesystem repositories for local development or to build a repository
that you serve over HTTP(S) yourself.
collider repo add local filesystem file:///path/to/repo \
--publish-url https://packages.example.com/collider/
--publish-url is required for filesystem repositories. It tells Collider
which base URL to write into wrap files when publishing, so that consumers can
download archives over the network.
Wrap¶
A read-only remote that speaks the WrapDB protocol. The official Meson WrapDB is a wrap repository:
Wrap repositories support search, add, and info commands but cannot be published to.
Collider¶
A remote repository that extends the WrapDB protocol with write endpoints for publishing and unpublishing packages:
Publish and unpublish operations require a bearer token. See Publishing for authentication details.
Configuration File¶
Repository entries are stored in config.json, located at
~/.config/collider/config.json (or $XDG_CONFIG_HOME/collider/config.json).
{
"repositories": [
{
"name": "local",
"type": "filesystem",
"url": "file:///path/to/repo",
"publish_url": "https://packages.example.com/collider/"
},
{
"name": "wrapdb",
"type": "wrap",
"url": "https://wrapdb.mesonbuild.com/v2/"
},
{
"name": "my-collider",
"type": "collider",
"url": "https://packages.example.com/collider/v2/"
}
]
}
Managing Repositories from the CLI¶
Add a Repository¶
If another repository already uses the same URL, Collider logs a warning but still adds the entry.
Remove a Repository¶
The alias repo rm also works.
List Repositories¶
The alias repo ls also works.
Filesystem Repository Layout¶
repo/
releases.json
my-lib_1.2.0/
my-lib.wrap
archives/
my-lib_1.2.0/
my-lib-1.2.0.tar.xz
my-lib-1.2.0.patch
releases.json is regenerated on every publish or unpublish to keep the
repository index up to date. When wraps define a [provide] section,
releases.json includes dependency_names - the mapping that enables
transitive dependency resolution. Repositories without dependency_names
still work for direct installs but do not participate in transitive
resolution. See Wrap API for the full
specification.