canonical / canonical/operator
Replace operator repo use of tox with Make
- Dominant language
- Python
- Stars
- 267
- Forks
- 136
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 28
Description
In Madrid we decided that rather than using tox and tox-uv, we'll switch to a Makefile that runs uv. This should include the docs and the example charms (which requires updating the profiles in charmcraft first).
See [hyrum](https://github.com/canonical/hyrum/blob/main/Makefile) and [jubilant](https://github.com/canonical/jubilant/blob/main/Makefile) for examples of Makefiles in use in other Charm Tech repositories. We would want the Makefile here to follow roughly the same format, unless there are strong reasons to differ.
The documentation workflow (everything in `docs/`) is out of scope here. That workflow comes from Sphinx Stack and is managed upstream. *However*, being able to trigger a docs build (probably just the `html` target or one or two more, not all of them) from the top level would be useful.
The actual commands run, for `lint` or `unit`, for example, should remain the same as when they were run from tox.
For `unit`, we commonly run not just `tox -e unit`, but `tox -e unit -- -k my_test_names or `tox -e unit -- test/unit/test_my_foot so the Makefile should support that as elegantly as possible.
For the example charms, the change needs to made first in the canonical/charmcraft repository as PRs changing the profile/template for the next minor version of charmcraft. The example charms are based on those profiles, so should only change after the profile does, so the documentation stays in sync. Probably someone could do one initial PR for operator, then a charmcraft PR, then a follow-up PR here for the example charms.
Attention external contributors or agents: we think this would be best done by someone on the Charm Tech team.
As a roadmap item, we'd like this to include this repo, charmcraft profiles, and (ideally) our other repos too.
Contributor guide
Assessment
This issue has not been assessed yet.