operator
operator copied to clipboard
ops[tracing] consider rewriting the vendored cham lib in pure Python
We've had discussions if it's worth it, given how prevalent pydantic is among charmers.
Why would we want to do this and what could be in scope:
- smaller potential 3rd party dep incompatibility surface
- faster build times for charms that are traced, but don't use (heavy? many?) relation charm libs
- much smaller codebase, if we remove the Provider
- much simpler codebase, if we streamline the Requirer and hardcode e.g. the protocol
- the charm lib can be architected much better
- avoids calling hook tools in
__init__
To do:
- [ ] drop the pydantic dep
- [ ] update the docs