Charm Tech pulse 2024#21

In Pulse #21, Charm Tech has been busy getting ready for the upcoming sprint — we’re excited to see you there! We’ve moved the state transition testing library (“Scenario”) into the Ops repository and stabilized the python-libjuju integration tests.

The ops library

  • Imported canonical/ops-scenario into its new home, under canonical/operator. We’re now able to release both ops and ops-scenario from the same repo.
  • Formalised the coding style that we adhere to.

Charming

Python-libjuju

The integration tests had been failing for exactly one year. We’ve gotten them up to shape again.

  • Serialised integration tests (only a little slower, yet much more stable) and quarantined flaky tests.
  • Widened Juju version set to 3.1…3.5 and Python version set to 3.8…3.13 in integration and unit tests respectively.
  • Added a test to validate manually maintained client_facades list against generated code, as these had drifted apart.
  • Reduced the schemas shipped with the library to the set that can be used.
  • Marked a bunch of fields on the Application object for deprecation.
  • Fixed the local_refresh method signature, as it was so unclear that the only user previously gave up and shelled out instead.
  • Annotated parts of the codebase with type hints.

Pebble

  • A temporarily reverted change to allow stopping services in starting state.
  • Ongoing work to allow automatic service restart for services that fail especially quickly.
  • Completed initial SSDLC assessment and added a security policy.
1 Like