This project uses just as a task runner, backed by uv.
Consider installing them both like this:
sudo snap install --classic astral-uv
uv tool install rust-justThen run just from anywhere in the repository for usage.
Run just init to create a new general library, or just interface init for a new interface library.
We recommend following the tutorial to learn how to add your library to the charmlibs monorepo.
If you're migrating a library that was published elsewhere, read the how-to guide for migrating an existing library to this repository.
Run just check <my package> to run the following tests for your package:
just lint <my package>runs linters and static type checkers.just fast-lintwill run fast linters for all packages.just format <my package>orjust formatwill try to automatically fix errors.
just docs html <my package>builds the docs, only including reference docs for<my package>(for speed).just docs htmlorjust docswill build docs for all packages.
just unit <my package>runs unit tests.
functional and integration tests are also executed in CI, and can be executed locally too.
Read more:
Pull request titles must follow conventional commits.
When a PR affects a single library, use the distribution package name without the leading charmlibs- as the conventional commit scope.
For example:
feat(pathops): ... or chore(interfaces-tls-certificates): ....