Releases: juju/python-libjuju
3.6.1.3 - Mind your Ps and Qs
This release of python-libjuju fixes a nasty bug where trailing 'P', 'Q', and '=' characters were stripped from secret values. This is a good reminder to migrate your charm's Juju integration tests to jubilant if possible.
Note that python-libjuju is not under active development, and will only receive critical bugfixes and security fixes for Juju 3.6. There are no plans to support Juju 4.0, so please migrate to jubilant.
What's Changed
- fix: don't strip valid characters from secret data by @james-garner-canonical in #1276
- chore: release 3.6.1.3 by @james-garner-canonical in #1278
Full Changelog: 3.6.1.2...3.6.1.3
3.6.1.2
Belated release notes and tag for 3.6.1.2 release on May 26, 2025.
What's Changed
- chore: hint machine addresses as list of dicts by @gboutry in #1258
- ci: disable test that fails on all Juju versions by @dimaqq in #1268
- fix: creating offer when connecting to existing model, fixes #1264 by @dimaqq in #1265
- chore: release 3.6.1.2 by @dimaqq in #1271
Full Changelog: 3.6.1.1...3.6.1.2
3.6.1.1
What's Changed
- chore: fix changelog format by @dimaqq in #1248
- docs: move docs from juju.is by @tmihoc in #1244
- chore: type hint improvements from the helper thread branch by @dimaqq in #1250
- chore: remove pyrfc3339 and change to datetime.datetime.fromisoformat… by @EdmilsonRodrigues in #1247
- fix: create websockets ConnectionClosed error correctly by @james-garner-canonical in #1255
- release: 3.6.1.1 by @dimaqq in #1257
New Contributors
Full Changelog: 3.6.1.0...3.6.1.1
3.6.1.0
What's Changed
- chore: add 3.5.5 schema and update SCHEMAS.md by @james-garner-canonical in #1223
- chore: clean up the read me file by @dimaqq in #1225
- ci: juju 3.6/stable by @dimaqq in #1222
- feat: larger default websockets frame size by @dimaqq in #1239
- chore: deprecate juju.jasyncio by @EdmilsonRodrigues in #1221
- chore: remove juju.loop, deprecated before 3.0 by @dimaqq in #1242
- feat: new wait for idle implementation, behind the feature flag
JUJU_NEW_WAIT_FOR_IDLEin #1245
New Contributors
- @EdmilsonRodrigues made their first contribution in #1221
Full Changelog: 3.6.0.0...3.6.1.0
3.6.0.0
What's Changed
Highlights
correct parsing of storage constraints, can be specified as strings or dicts
enable attachment of binary files as charm resources
allow newest websockets
better type hints, should be visible through pytest-operator in your integration tests
Full list
- fix(connection): wrap reconnect in a task by @gboutry in #1103
- deprecate: issue warnings on select application attributes by @dimaqq in #1116
- fix: Application.local_refresh method signature by @dimaqq in #1114
- feat(typing): type annotate constraints.py by @james-garner-canonical in #1159
- fix: move parse_storage_constraints to the bundle deployer by @Aflynn50 in #1105
- ci: integration tests against multiple juju versions by @dimaqq in #1163
- fix: use version sorting in codegen, not lexical by @dimaqq in #1174
- chore: ruff up the codebase by @dimaqq in #1186
- feat(typing): type hints for the connnection class by @dimaqq in #1189
- docs(contributing): update CONTRIBUTING.md by @james-garner-canonical in #1201
- feat(typing): pull types from wip PR for upcoming Model.wait_for_idle by @dimaqq in #1203
- feat: unify handling of storage constraints in deploy by @james-garner-canonical in #1213
- fix: enable attachment of binary files as charm resources by @dimaqq in #1218
- fix: update websockets API usage and remove the upper bound by @dimaqq in #1216
New Contributors
- @james-garner-canonical made their first contribution in #1106
- @dimaqq made their first contribution in #1146
Full Changelog: 3.5.2.0...3.6.0.0
3.5.2.1
3.5.2.1 is a hot-fix release to unblock your integration tests.
websockets==14.0 was released recently, which broke your integration tests, unless you’ve manually put version specifiers on this library or locked your dependencies, because:
- (announced) this version removed support for Python 3.8, and
- (not annonuced) the code path
_ws.openin python-libjuju got broken
The hot-fix version restricts websockets to <14.0,>=8.1, so that you don’t have to.
Full Changelog: 3.5.2.0...3.5.2.1
3.5.2.0
This is a 3.x track release. It's compatible with all the Juju controller versions up to 3.5.2.
What's Changed
Enhancements
- Add setuptools to tox.ini by @Aflynn50 in #1058
- feat: conventional commits static analysis by @SimonRichardson in #1068
- feat(makefile): run .tox before lint in makefile target by @cderici in #1069
Bug Fixes
- fix parsing of storage constraints by @luissimas in #1053
- fix(refresh): bug with revisions by @jack-w-shaw in #1067
- fix(series): add noble support by @jack-w-shaw in #1063
- fix zones constraints list parsing by @luissimas in #1054
- fix(model): fix wrong instanciation of list-secrets facade by @gboutry in #1065
New Contributors
- @luissimas made their first contribution in #1053
Full Changelog: 3.5.0.0...3.5.2.0
3.5.0.0
What's Changed
- Make consume respect the controller name in the url by @Aflynn50 in #1038
- Fix multiline description in textarea in bug template GH workflow by @cderici in #1041
- Fix issue with microk8s proxy by @Aflynn50 in #1044
- add missing "revision" parameter to addModel step. by @Thanhphan1147 in #1043
- Add user api to pylibjuju documentation by @cderici in #1049
- Release notes for 3.5.0.0 by @Aflynn50 in #1056
New Contributors
- @Thanhphan1147 made their first contribution in #1043
Full Changelog: 3.4.0.0...3.5.0.0