{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":20445947,"defaultBranch":"3.6","name":"juju","ownerLogin":"juju","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-06-03T14:28:10.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4604548?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716057215.0","currentOid":""},"activityList":{"items":[{"before":"9d8f8563f1989eb1d8e74e19069bc1c79904b422","after":null,"ref":"refs/heads/increment-to-3.3.6","pushedAt":"2024-05-18T18:33:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jack-w-shaw","name":"Jack Shaw","path":"/jack-w-shaw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22304952?s=80&v=4"}},{"before":"1ff63ec7b24e8ba66bca57cd32b15b9dee4310f3","after":"01e37416c38485465d5b47a6cfda105163b259b3","ref":"refs/heads/3.3","pushedAt":"2024-05-18T18:30:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17390 from juju/increment-to-3.3.6\n\nhttps://github.com/juju/juju/pull/17390\n\nIncrement juju to 3.3.6","shortMessageHtmlLink":"Merge pull request #17390 from juju/increment-to-3.3.6"}},{"before":null,"after":"9d8f8563f1989eb1d8e74e19069bc1c79904b422","ref":"refs/heads/increment-to-3.3.6","pushedAt":"2024-05-18T15:35:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Increment juju to 3.3.6","shortMessageHtmlLink":"Increment juju to 3.3.6"}},{"before":"3c2ce0c1dd8f3056cceeea134710392d89425eb4","after":"0ea98075fff6c77e8453fe0b306a5e967f981ba7","ref":"refs/heads/main","pushedAt":"2024-05-17T10:35:47.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17360 from wallyworld/logtailer-test-fix\n\nhttps://github.com/juju/juju/pull/17360\n\nThe ci race tests sometimes fail running the log tailer tests. It's very intermittent and hard to repro locally - maybe 1 in 30 attempts.\nIn the 2 tests where the log tailer is started and then additonal logs are written, introduce a small sleep to allow the log tailer go routine to run before writing the additional logs.\n\n## QA steps\n\ngo test --race\n\n## Links\n\n**Jira card:** [JUJU-6004](https://warthogs.atlassian.net/browse/JUJU-6004)\n\n\n\n[JUJU-6004]: https://warthogs.atlassian.net/browse/JUJU-6004?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ","shortMessageHtmlLink":"Merge pull request #17360 from wallyworld/logtailer-test-fix"}},{"before":"315e7efa32767272196ca6d4a1b0dbacf0a8fa9f","after":"1ff63ec7b24e8ba66bca57cd32b15b9dee4310f3","ref":"refs/heads/3.3","pushedAt":"2024-05-17T10:20:24.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17388 from jack-w-shaw/fix_broken_test\n\nhttps://github.com/juju/juju/pull/17388\n\nNot long ago, we changed the charm in this test from jameinel-ubuntu-lite to ubuntu-lite\n\nHowever, ubuntu-lite has no releases foir arm64, leading to failed tests\n\nSwitch this back to jameinel-ubuntu-lite\n\n## QA steps\n\nRun the integration test on an amd64 and arm64 machine\n\n```\nBOOTSTRAP_ARCH=\"$arch\" BUILD_ARCH=\"$arch\" MODEL_ARCH=\"$arch\" ./main.sh -v deploy test_deploy_charms\n```\n\nand verify that `run_deploy_charm_placement_directive` is successful","shortMessageHtmlLink":"Merge pull request #17388 from jack-w-shaw/fix_broken_test"}},{"before":"8f53ac1be2fdf1b377d50f1640f8d1b8cf27d173","after":"3c2ce0c1dd8f3056cceeea134710392d89425eb4","ref":"refs/heads/main","pushedAt":"2024-05-17T10:19:55.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17386 from SimonRichardson/assert-change-stream-becomes-idle\n\nhttps://github.com/juju/juju/pull/17386\n\nAdds a test function to ensure that the change stream becomes idle before checking the side affect of the function. This ensures that waiting for a certain set of watcher changes happen after a known clean slate.\n\nThis should improve the reliability of the watcher tests after a known side effect.\n\n\n\n## Checklist\n\n\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n\n## QA steps\n\n```\n$ TEST_PACKAGES=\"./domain/controllerconfig\" make run-go-tests \n```","shortMessageHtmlLink":"Merge pull request #17386 from SimonRichardson/assert-change-stream-b…"}},{"before":"7d09b607b8f6f26188f6584c44180503624130d7","after":"ed6db70e509d3751b26cee73f7c01fd01da072a8","ref":"refs/heads/3.4","pushedAt":"2024-05-17T09:57:59.000Z","pushType":"pr_merge","commitsCount":16,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17387 from hmlanigan/merge-from-three-three\n\nhttps://github.com/juju/juju/pull/17387\n\nThis merge includes an upgrade step which requires removing the 3.3.5 upgrade step and replacing with one for 3.4.3.\nReferences to 3.3.[1-5] upgrade steps have been removed including the related upgrades/steps files.\n\na230a1ac4db99060f4dd4be3b775d0f0efb6af37 includes the changes necessary in upgrades to add an 3.4.3 upgrade step. \n\nMerge conflicts\n- upgrades/operations.go\n- upgrades/steps_331.go \n- upgrades/steps_341.go\n- upgrades/upgrade_test.go\n\n## QA steps\n\nUse the upgrade test scenario from #17366 using juju 3.4.2 to start and upgrading to the built code.","shortMessageHtmlLink":"Merge pull request #17387 from hmlanigan/merge-from-three-three"}},{"before":"e7341a72032ce19a91f78d8f8235ca44bd7ea356","after":"8f53ac1be2fdf1b377d50f1640f8d1b8cf27d173","ref":"refs/heads/main","pushedAt":"2024-05-17T09:48:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17374 from SimonRichardson/otel-traceid-labels\n\nhttps://github.com/juju/juju/pull/17374\n\nTo better integrate with 3rd party applications[1] and to identify goroutines that are related to OTEL traces, this adds labels to a goroutine.\n\nThis is another step forward to better understand the performance characteristics of how Juju operates in theatre.\n\n 1. https://www.polarsignals.com/blog/posts/2024/03/05/correlating-tracing-with-profiling-using-ebpf\n\n\n\n## Checklist\n\n\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n\n## QA steps\n\n```sh\n$ sudo snap install parca-agent\n$ sudo snap set parca-agent metadata-external-labels=machine=\n$ sudo snap set parca-agent remote-store-bearer-token=\n$ juju bootstrap lxd test\n```\n\nSee the labels added to the profiles.","shortMessageHtmlLink":"Merge pull request #17374 from SimonRichardson/otel-traceid-labels"}},{"before":"ff892666b6b45846d362194db68e312895e6170b","after":"e7341a72032ce19a91f78d8f8235ca44bd7ea356","ref":"refs/heads/main","pushedAt":"2024-05-16T21:45:48.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17385 from manadart/dqlite-secret-state-sql\n\nhttps://github.com/juju/juju/pull/17385\n\nThe secret domain state has some semantically and algebraically inefficient SQL.\n\nThis change includes one example of rectifying this, which should be used to further improve the package.","shortMessageHtmlLink":"Merge pull request #17385 from manadart/dqlite-secret-state-sql"}},{"before":"a22c536359913a6ea5f1c4b7553865a408dfb960","after":"ff892666b6b45846d362194db68e312895e6170b","ref":"refs/heads/main","pushedAt":"2024-05-16T13:02:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17359 from juju/increment-to-4.0-beta4\n\nhttps://github.com/juju/juju/pull/17359\n\nIncrement juju to 4.0-beta4","shortMessageHtmlLink":"Merge pull request #17359 from juju/increment-to-4.0-beta4"}},{"before":"ad87b5a49f477a1b5c6f4d4cb75bdfa842e9a524","after":"315e7efa32767272196ca6d4a1b0dbacf0a8fa9f","ref":"refs/heads/3.3","pushedAt":"2024-05-16T10:36:17.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17384 from jack-w-shaw/3.1-into-3.3\n\nhttps://github.com/juju/juju/pull/17384\n\nForward merge:\n- https://github.com/juju/juju/pull/17380\n\nNo conflicts","shortMessageHtmlLink":"Merge pull request #17384 from jack-w-shaw/3.1-into-3.3"}},{"before":"57070f712f26ba07432c04fbd0f3d0f95a75a185","after":"ad87b5a49f477a1b5c6f4d4cb75bdfa842e9a524","ref":"refs/heads/3.3","pushedAt":"2024-05-16T09:37:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17382 from hmlanigan/not-equal\n\nhttps://github.com/juju/juju/pull/17382\n\nA typo in the original add of the printing to error log when we know the deploy will fail due to mismatching machine scoped platforms in placement..\n\nFollow on to #17366 \n\n## Checklist\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- ~[ ] Comments saying why design decisions were made~\n- ~[ ] Go unit tests, with comments saying what you're testing~\n- ~[ ] [Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- ~[ ] [doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nWhen running the following tests, the error message should only be printed for TestDeducePlatformPlacementMutipleMatchFail. \n\n```\n(cd apiserver/facades/client/application; go test -gocheck.v -gocheck.f validatorSuite)\n```","shortMessageHtmlLink":"Merge pull request #17382 from hmlanigan/not-equal"}},{"before":"e85604819c4b18ff4faa763b7f52b0c497fd3c48","after":"02b1160d9d515dcc0244d31d05ea50f59bec5589","ref":"refs/heads/3.1","pushedAt":"2024-05-16T09:17:10.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17383 from jack-w-shaw/2.9-into-3.1\n\nhttps://github.com/juju/juju/pull/17383\n\nForward merge:\n- https://github.com/juju/juju/pull/17380\n\nNo conflicts","shortMessageHtmlLink":"Merge pull request #17383 from jack-w-shaw/2.9-into-3.1"}},{"before":"cfad18ebe935ee404a27d66f871263bb3a53aba1","after":"78004ae170222aed7b2c97fad6f98c3bbd44dee3","ref":"refs/heads/2.9","pushedAt":"2024-05-16T08:55:55.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17380 from jack-w-shaw/bump_os_patch\n\nhttps://github.com/juju/juju/pull/17380\n\nBump version of juju/os/v2\n\nIn juju/os/v2 v2.2.4, we incorrectly hardcoded the version of the noble release of Ubuntu as `24.40`. It should be `24.04`.\n\nWe fix this in `v2.2.5`. See:\nhttps://github.com/juju/os/releases/tag/v2.2.5\n\n## QA steps\n\n### Bootstrap juju\n```\njuju bootstrap lxd lxd-2.9\n```\n\n### Deploy to noble\n\nDownload and modify a local charm\n```\n$ juju download ubuntu\n$ unzip ubuntu_r24.charm\n(edit manifest.yaml & metadata.yaml such that)\n$ cat ubuntu/manifest.yaml\nbases:\n - architectures:\n - amd64\n channel: '20.04'\n name: ubuntu\n - architectures:\n - amd64\n channel: '22.04'\n name: ubuntu\n - architectures:\n - amd64\n channel: '24.04'\n name: ubuntu\n\n$ cat metadata.yaml\nname: ubuntu\nsummary: A pristine Ubuntu Server\nmaintainer: Charmers \ndescription: |\n This simply deploys the Ubuntu Cloud/Server image\ntags:\n - misc\nseries:\n - focal\n - bionic\n - jammy\n - noble\n...\n``` \n\nDeploy\n```\n$ juju deploy ./ubuntu --series noble\n$ juju status\nModel Controller Cloud/Region Version SLA Timestamp\ndefault lxd-2.9 localhost/localhost 2.9.50.1 unsupported 08:16:15+01:00\n\nApp Version Status Scale Charm Channel Rev Exposed Message\nubuntu 24.04 active 1 ubuntu 0 no\n\nUnit Workload Agent Machine Public address Ports Message\nubuntu/1* active idle 1 10.219.211.30\n\nMachine State Address Inst id Series AZ Message\n1 started 10.219.211.30 juju-ec6a7e-1 noble Running\n```","shortMessageHtmlLink":"Merge pull request #17380 from jack-w-shaw/bump_os_patch"}},{"before":"aeec03cb1ccd35066742a573f3a227969e4a5836","after":"03b5c0b74206a2943c03ad682362b1fcac84d797","ref":"refs/heads/3.6","pushedAt":"2024-05-16T06:13:40.000Z","pushType":"pr_merge","commitsCount":69,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17379 from Aflynn50/3.6\n\nhttps://github.com/juju/juju/pull/17379\n\nMerge up from 3.5 to 3.6. Only conflicts were the version number.\n\n- #17373 from Aflynn50\n - #17368 from wallyworld\n - #17340 from ycliuhw\n - #17353 from cderici\n - #17365 from wallyworld\n - #17313 from cderici\n - #17321 from Aflynn50\n - #17283 from Aflynn50\n - #17236 from juju/dependabot/go_modules/golang.org/x\n - #17221 from jameinel\n- #17309 from babakks/css-8360\n- #17345 from juju\n- #17314 from hpidcock\n- #17275 from juju","shortMessageHtmlLink":"Merge pull request #17379 from Aflynn50/3.6"}},{"before":"06fd6aa552904b6ce2196d0a9e9c9c6770b174cb","after":"a22c536359913a6ea5f1c4b7553865a408dfb960","ref":"refs/heads/main","pushedAt":"2024-05-15T19:06:45.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17255 from SimonRichardson/fix-domain-errors\n\nhttps://github.com/juju/juju/pull/17255\n\nThis masks all sql, sqlite and dqlite errors so they're not available via errors.Is or errors.As. All errors should be trapped at the domain layer and not leaked outside. Thus the API client and server are never coupled to the underlying database errors.\n\nDropping the older domain errors for specific domain type errors gives more focused errors that can be trapped at the API server layer.\n\n\n\n## Checklist\n\n\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n\n## QA steps\n\n```\nTEST_PACKAGES=\"./domain/...\" make run-go-tests\n```\n\n## Links\n\n**Jira card:** JUJU-","shortMessageHtmlLink":"Merge pull request #17255 from SimonRichardson/fix-domain-errors"}},{"before":"62599cea823bd9aabe025cbe73488dcf5273b69f","after":"f7c7d8a9c81f589e2f151814e3de8216260c54e1","ref":"refs/heads/3.5","pushedAt":"2024-05-15T09:58:56.000Z","pushType":"pr_merge","commitsCount":43,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17373 from Aflynn50/3.4-3.5\n\nhttps://github.com/juju/juju/pull/17373\n\nMerge up from 3.4. The only conflicts were in the cla Github action which was upgraded, and go.mod which was resolved in favor of the higher versions.\n\nCommits merged up in this PR are:\n- #17368 from wallyworld\n - #17340 from ycliuhw\n - #17353 from cderici\n - #17365 from wallyworld\n- #17313 from cderici\n- #17321 from Aflynn50\n - #17283 from Aflynn50\n - #17236 from juju/dependabot/go_modules/golang.org/x\n - #17221 from jameinel","shortMessageHtmlLink":"Merge pull request #17373 from Aflynn50/3.4-3.5"}},{"before":"ace8dbe7359608fd4d5245132987a77b9de9343b","after":"06fd6aa552904b6ce2196d0a9e9c9c6770b174cb","ref":"refs/heads/main","pushedAt":"2024-05-15T09:10:15.000Z","pushType":"pr_merge","commitsCount":9,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17354 from ycliuhw/implement-secret-rotated\n\nhttps://github.com/juju/juju/pull/17354\n\nThis PR implements a secret rotated service and state methods to ensure the next rotation time for the provided secret stored in the Dqlite database.\nDriveby: \n1. fixed the missing next rotation time update in SecretUpdate call.\n2. add UNIQUE INDEX for secret_backend_type.type.\n3. align fields for secrets DDL.\n\n## Checklist\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n- [ ] ~[Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- [ ] ~[doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nBecause the WatchSecretsRotationChanges watcher has not been implemented yet, we can only test the rotation policy changes.\n\n```\njuju exec --unit dummy-source/0 \"secret-add data=foo\"\nsecret://2bfad23f-a54d-48ed-87ec-e2776e2ea0b4/cotiv4uc5e02l6npsdm0\n\njuju exec --unit dummy-source/0 \"secret-set cotiv4uc5e02l6npsdm0 --rotate hourly\"\n```\n\n```\ndqlite> select prdesc from secret_rotation\ncotiv4uc5e02l6npsdm0|2024-05-08 07:57:02.922271014 +0000 UTC\ndqlite> select srp.policy from secret_metadata sm inner join secret_rotate_policy srp on sm.rotate_policy_id = srp.id\nhourly\n```\n\n## Documentation changes\n\nNo\n\n## Links\n\n**Jira card:** JUJU-5897","shortMessageHtmlLink":"Merge pull request #17354 from ycliuhw/implement-secret-rotated"}},{"before":"57701869ec654a514f25c0aaff4237fac09b82ad","after":"ace8dbe7359608fd4d5245132987a77b9de9343b","ref":"refs/heads/main","pushedAt":"2024-05-15T07:33:56.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17377 from tlm/juju-6020-remove-unit-watch-config-settings\n\nhttps://github.com/juju/juju/pull/17377\n\nWhen performing the work break down the moving charms to DQlite we have noticed that WatchConfigChange for a unit is not being used. This commit removes the unused code paths to make it easier for this further work to occur.\n\n## Checklist\n\n- ~[ ] Code style: imports ordered, good names, simple structure, etc~\n- ~[ ] Comments saying why design decisions were made~\n- ~[ ] Go unit tests, with comments saying what you're testing~\n- ~[ ] [Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- ~[ ] [doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nCheck the binaries still compile and the code paths have been safely removed.\n\n## Documentation changes\n\nN/A\n\n## Links\n\n**Jira card:** JUJU-6020","shortMessageHtmlLink":"Merge pull request #17377 from tlm/juju-6020-remove-unit-watch-config…"}},{"before":"a6a13a35989eda27a5d8d4ad91c4e555effe189d","after":"57701869ec654a514f25c0aaff4237fac09b82ad","ref":"refs/heads/main","pushedAt":"2024-05-15T06:54:12.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17376 from tlm/juju-6020-remove-watch-charm-config\n\nhttps://github.com/juju/juju/pull/17376\n\nAs part of the work investigating moving charms to DQlite we have found there exists a WatchCharmConfig watcher that isn't being used inside of Juju.\n\nThis can safely be removed as part of the transition.\n\n## Checklist\n\n- ~[ ] Code style: imports ordered, good names, simple structure, etc~\n- ~[ ] Comments saying why design decisions were made~\n- ~[ ] Go unit tests, with comments saying what you're testing~\n- ~[ ] [Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- ~[ ] [doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nRemoving unused code. Confirm there are no code paths by compiling.\n\n## Documentation changes\n\nN/A\n\n## Links\n\n**Jira card:** JUJU-6020","shortMessageHtmlLink":"Merge pull request #17376 from tlm/juju-6020-remove-watch-charm-config"}},{"before":"48d82f2cb942e1a08ddba657e5dde72045f9dafa","after":"57070f712f26ba07432c04fbd0f3d0f95a75a185","ref":"refs/heads/3.3","pushedAt":"2024-05-14T21:33:28.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17366 from hmlanigan/panic-nil-pointer\n\nhttps://github.com/juju/juju/pull/17366\n\nThe nil pointer panic was due to not checking the Arch pointer wasn't nil before using. Turns out that we aren't writing the architecture of LXD containers to their instance data. \n\nTo deploy a charm, we need a platform composed of architecture, os and channel, e.g. amd64/ubuntu/22.04. When deploying to existing machines it's essential that we can find out the architecture to find the correct charm blob. \n\nAdded code to write the architecture of the LXD container to their instance data when created to solve the above problem.\n\nTo fix this scenario for existing users, both upgrade and migration steps are necessary. The KVM container manager already assumes that the architecture is the same as the host. LXD only supports the same architecture. Therefore upgrade and migration is straightforward.\n\nWhile in the placement code for deploy, fixed a few holes:\n- Require the instance data to be able before deploying when a machine scoped placement directive.\n- Ensure we find all machines when attempting to find the base for deploy.\n- Match the placement machine deployed base with any requested base from the user.\n\nWe had a placement directive ploy test, I enhanced it to include a container. For LXD providers, the host machine is created as a virtual-machine to enable nested containers.\n\n\n## Checklist\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n- ~[ ] [Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- ~[ ] [doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nUpdated the test for deploying a charm with placement to catch this case, it's the second test.\n```\n(cd tests ; ./main.sh -v deploy test_deploy_charms )\n```\n\nManual qa\n```\n# bootstrap controller for upgrade and migration tests.\n$ snap install juju_334 --channel 3.3/stable\n$ juju_334 bootstrap localhost three-three-stable\n\n$ juju_334 add-model upgrade-me\n$ juju_334 add-machine --constraints virt-type=virtual-machine\n$ juju_334 add-machine lxd:0\n\n$ juju_334 add-model migrate-me\n$ juju_334 add-machine --constraints virt-type=virtual-machine\n$ juju_334 add-machine lxd:0\n\n# you can verify the panic at this point if you wish on either model\n\n-------------------------------------------------------------------------------------------------\n\n# Using the juju under test, bootstrap\n$ juju bootstrap localhost destination\n\n# Create a model to test.\n# Machine 0 should be running 22.04, machine 1 should be running 20.04\n$ juju add-model test-no-panic\n$ juju add-machine --constraints virt-type=virtual-machine\ncreated machine 0\n$ juju add-machine lxd:0\ncreated container 0/lxd/0\n$ juju add-machine --constraints virt-type=virtual-machine --base ubuntu@20.04\ncreated machine 1\n$ juju add-machine lxd:1 --base ubuntu@20.04\ncreated container 1/lxd/0\n\n# Test nil pointer panic doesn't happen.\n$ juju deploy ubuntu-lite --to 0/lxd/0\nDeployed \"ubuntu-lite\" from charm-hub charm \"ubuntu-lite\", revision 1 in channel latest/stable on ubuntu@22.04/stable\n\n# Test the correct base is chosen\n$ juju deploy ubuntu-lite --to 1/lxd/0 ubuntu-lite-focal\n\n# Depending on how fast you run the commands, deploy will fail if the machine or container\n# machine scoped in the placement directive does not exist. We're unable to find the base\n# for deployment until the machine base and instance data is filled in.\n$ juju deploy ubuntu-lite --to 1/lxd/0 ubuntu-lite-focal\nERROR machine \"1/lxd/0\" not started, please retry when started\nERROR failed to deploy charm \"ubuntu-lite\"\n\n# Retry works, with the correct base found for the container.\n# $ juju deploy ubuntu-lite --to 1/lxd/0 ubuntu-lite-focal\nDeployed \"ubuntu-lite-focal\" from charm-hub charm \"ubuntu-lite\", revision 1 in channel latest/stable on ubuntu@20.04/stable\n\n# Attempting to deploy to 2 existing machines with different bases should fail.\n$ juju deploy ubuntu-lite --to 1/lxd/1,0/lxd/0 -n 2 ubuntu-lite-jammy\nERROR bases of existing placement machines do not match each other\nERROR failed to deploy charm \"ubuntu-lite\"\n\n# Specifying a base different from the machine scoped placement directive should fail.\n$ juju deploy ubuntu-lite --to 1/lxd/1 ubuntu-lite-jammy --base ubuntu@22.04\nERROR base from placements, \"amd64/ubuntu/20.04/stable\", does not match requested base \"amd64/ubuntu/22.04/stable\"\nERROR failed to deploy charm \"ubuntu-lite\"\n\n-------------------------------------------------------------------------------------------------\n\n# Verify migration resolves the nil pointer panic.\n$ juju switch three-three\n$ juju migrate migrate-me destination\nMigration started with ID \"ea982527-9234-4fa8-85a1-9dd8844b90be:0\"\n$ juju switch destination:admin/migrate-me\n$ juju deploy ubuntu-lite --to 0/lxd/0\nDeployed \"ubuntu-lite\" from charm-hub charm \"ubuntu-lite\", revision 1 in channel latest/stable on ubuntu@22.04/stable\n\n-------------------------------------------------------------------------------------------------\n\n# Verify upgrade resolves the nil pointer panic.\n$ juju switch three-three:admin/test-no-panic\n$ juju upgrade-controller --build-agent\n$ juju upgrade-model\n$ juju deploy ubuntu-lite --to 0/lxd/0\nDeployed \"ubuntu-lite\" from charm-hub charm \"ubuntu-lite\", revision 1 in channel latest/stable on ubuntu@22.04/stable\n\n## Links\n\n**Launchpad bug:** https://bugs.launchpad.net/juju/+bug/2064174\n\n**Jira card:** JUJU-5984","shortMessageHtmlLink":"Merge pull request #17366 from hmlanigan/panic-nil-pointer"}},{"before":"2d2ebf294f8fdbe21773755ff8a6ca4d3c2f464c","after":"a6a13a35989eda27a5d8d4ad91c4e555effe189d","ref":"refs/heads/main","pushedAt":"2024-05-14T15:24:44.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17375 from manadart/dqlite-fix-secrets-state\n\nhttps://github.com/juju/juju/pull/17375\n\nThis change is mechanical only and is constituted by:\n- Indentation of SQL/DML according to our agreed-upon standards.\n- Shortened line lengths - 120 for code, and 80 for comments.\n- Corrected method names in comments.\n- Removal of redundant object creation for supply as SQLair type samples.\n- Removal of redundant slice creation for appending to SQLair type samples.","shortMessageHtmlLink":"Merge pull request #17375 from manadart/dqlite-fix-secrets-state"}},{"before":"6de0ee5e450075e20bac1ec343e6599a8f806cd6","after":"2d2ebf294f8fdbe21773755ff8a6ca4d3c2f464c","ref":"refs/heads/main","pushedAt":"2024-05-14T11:31:19.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17371 from tlm/model-finaliser-rename\n\nhttps://github.com/juju/juju/pull/17371\n\nNaming things can be hard. Several months ago we introduced the concept of finalising a model during the creation process. This allows a model and all of the model components to be built up over disparate transactions.\n\nWe use the keyworld finalised to represent a model and it's finished state during this process. It has been decided to rename finalised to activated better representing what is being done.\n\nThis PR is focused on just a rename change and does not change any logic.\n\n## Checklist\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n- ~[ ] [Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- ~[ ] [doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nUnit tests are sufficient.\n\n## Documentation changes\n\nN/A","shortMessageHtmlLink":"Merge pull request #17371 from tlm/model-finaliser-rename"}},{"before":"18b70332f870e1132ded317160747416812127c6","after":"6de0ee5e450075e20bac1ec343e6599a8f806cd6","ref":"refs/heads/main","pushedAt":"2024-05-14T10:14:04.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17369 from SimonRichardson/remove-redundant-methods-from-logger\n\nhttps://github.com/juju/juju/pull/17369\n\nThe logger interface was copied from loggo.Logger type. It has a lot\nof syntax sugar for accessing log levels, or the difference between Child\nand ChildWithTags. In reality you can just use IsLevelEnabled or Child that\nredirects to ChildWithTags. The motivation for doing this is to make a concise\nlogger interface that could be used with loggo, or backed with different\nimplementations.\n\nThe logger interface then becomes:\n\n```go\n// Logger is an interface that provides logging methods.\ntype Logger interface {\n // Critical logs a message at the critical level.\n Criticalf(msg string, args ...any)\n\n // Error logs a message at the error level.\n Errorf(msg string, args ...any)\n\n // Warning logs a message at the warning level.\n Warningf(msg string, args ...any)\n\n // Info logs a message at the info level.\n Infof(msg string, args ...any)\n\n // Debug logs a message at the debug level.\n Debugf(msg string, args ...any)\n\n // Trace logs a message at the trace level.\n Tracef(msg string, args ...any)\n\n // Log logs some information into the test error output.\n // The provided arguments are assembled together into a string with\n // fmt.Sprintf.\n Logf(level Level, format string, args ...any)\n\n // IsLevelEnabled returns true if the given level is enabled for the logger.\n IsLevelEnabled(Level) bool\n\n // Child returns a new logger with the given name.\n Child(name string, tags ...string) Logger\n\n // GetChildByName returns a child logger with the given name.\n GetChildByName(name string) Logger\n}\n```\n\n\nThere are two additional changes that are still outstanding that will follow this \nchange request:\n\n 1. Removal of the `GetChildByName` from the Logger. This sole purpose is access a logger by the absolute name. This is only used in the uniter in one location throughout juju. Instead of requesting it from the current logger and walking it's child/parent relationship, we should pass in the context into the unit, so it can retrieve it from there instead.\n 2. Adding context.Context as the first argument. Thus allowing us to start adding trace ids as labels to the logs.\n\n## Checklist\n\n\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n\n## QA steps\n\nWe need to ensure that tracing is still available.\n\n```\n$ juju bootstrap lxd test\n$ juju debug-log -m controller\n$ juju model-config -m controller logging-config=\"=TRACE\"\n```\n\n## Links\n\n**Jira card:** JUJU-","shortMessageHtmlLink":"Merge pull request #17369 from SimonRichardson/remove-redundant-metho…"}},{"before":"ecfeccf3c239bcb5e5cf9410c76f47bfd102e6da","after":"18b70332f870e1132ded317160747416812127c6","ref":"refs/heads/main","pushedAt":"2024-05-14T04:38:42.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17367 from ycliuhw/fix-secret-ci\n\nhttps://github.com/juju/juju/pull/17367\n\nThis PR disabled auto prune and drain secret bash tests because they are not implemented in Dqlite yet.\n\n```\n./main.sh -v -p microk8s '\"\"' secrets_iaas test_secrets_juju\n\n./main.sh -v -p microk8s '\"\"' secrets_iaas test_secrets_cmr\n```","shortMessageHtmlLink":"Merge pull request #17367 from ycliuhw/fix-secret-ci"}},{"before":"804e5b0032a3b7d287517c45e04230f304cbcea3","after":"48d82f2cb942e1a08ddba657e5dde72045f9dafa","ref":"refs/heads/3.3","pushedAt":"2024-05-13T21:01:40.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17370 from cderici/fix-controllercharm-prometheus-test-follow-up\n\nhttps://github.com/juju/juju/pull/17370\n\nFollow up on #17353, attempting to unblock ci-gating tests to unblock 3.3+ releases.\n\nIt replaces the last check for p1 in the test with a ` wait_for`, which will timeout if p1 doesn't go into healty active state.","shortMessageHtmlLink":"Merge pull request #17370 from cderici/fix-controllercharm-prometheus…"}},{"before":"ec7d269292f7d273b56fdd68926689f995d5f55a","after":"7d09b607b8f6f26188f6584c44180503624130d7","ref":"refs/heads/3.4","pushedAt":"2024-05-13T15:59:21.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17368 from wallyworld/merge-3.3-20240513\n\nhttps://github.com/juju/juju/pull/17368\n\nMerge 3.3\n\nhttps://github.com/juju/juju/pull/17340 [from ycliuhw/fix/lp-2064772](https://github.com/juju/juju/commit/322312b16b0213bf03895433f0d1cbeb589a5e4e)\nhttps://github.com/juju/juju/pull/17353 [from cderici/fix-controllercharm-prometheus…](https://github.com/juju/juju/commit/a5c211deefb184914372b8250af7e8c10413759b)\nhttps://github.com/juju/juju/pull/17365 [from wallyworld/fix-secret-watcher](https://github.com/juju/juju/commit/804e5b0032a3b7d287517c45e04230f304cbcea3)","shortMessageHtmlLink":"Merge pull request #17368 from wallyworld/merge-3.3-20240513"}},{"before":"7aa578c884bcdcf5be6f4970f893da11244cf23c","after":"ecfeccf3c239bcb5e5cf9410c76f47bfd102e6da","ref":"refs/heads/main","pushedAt":"2024-05-13T13:55:54.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17339 from tlm/juju-5342-model-config-facades\n\nhttps://github.com/juju/juju/pull/17339\n\nThis updates the client facade to no longer use stale model config from mongo and instead pull agent version from DQlite for a model. This is a much nicer transition as the facade does not require model config anymore for agent version information.\n\n## Checklist\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n- ~[ ] [Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- ~[ ] [doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nDeploy a cass controller and model and confirm you can deploy an application.\n\n## Documentation changes\n\nN/A\n\n## Links\n\n**Jira card:** JUJU-5342","shortMessageHtmlLink":"Merge pull request #17339 from tlm/juju-5342-model-config-facades"}},{"before":"deff7a5b2f22d34737c72d2f998bf816e5a4f474","after":"7aa578c884bcdcf5be6f4970f893da11244cf23c","ref":"refs/heads/main","pushedAt":"2024-05-13T13:10:02.000Z","pushType":"pr_merge","commitsCount":12,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17285 from SimonRichardson/swap-loggers\n\nhttps://github.com/juju/juju/pull/17285\n\nThis standardizes all of the logging in juju to one and only one interface. This will ensure that when we implement status history we can guarantee that the logging is correctly nested and can pass labels through.\n\nThis is a lot of work to push this all through. This PR is all about swapping out the direct calls to loggo and using the core logger package Logger interface. The backing for the Logger interface is still loggo. There should be not change to logging in juju, this refactoring provides numerous advantages:\n\n 1. Standardize logging, there is only one way to do it.\n 2. As `loggo.Logger` was self-referential (type refers to itself: Child as an example) it was becoming difficult to use when each package had its own logger interface.\n 3. Testing becomes simpler, by using CheckLog, we can just write to the testing context. No loggo is involved. \n 4. Removal of over ~1.7k~ ~2.1k~ 5k lines of code, which reduces complexity.\n\nThe disadvantage is that once you pull on a thread, you have to change it all.\n\n### Future work\n\n 1. Context will be added to all logging methods in the future. Giving the option of linking traces to logs and vica-versa. \n 2. Each model logger will have the model UUID associated with the model logger, removing the logsink in the modelworker. The writing of model logs will then be written to the right logs based on the record, thus simplifying the logging.\n 3. Status history can then be written to a log, and it will be written to the correct model log based on 2.\n\n\n\n## Checklist\n\n\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [x] Go unit tests, with comments saying what you're testing\n\n## QA steps\n\n```sh\n$ juju bootstrap lxd test --debug\n$ juju debug-log -m controller\n$ juju add-model default\n$ juju deploy ubuntu\n$ juju debug-log\n```\n\n## Links\n\n\n**Jira card:** JUJU-5956","shortMessageHtmlLink":"Merge pull request #17285 from SimonRichardson/swap-loggers"}},{"before":"6745ac5ae0587614d63fa4390f471f27d6bc408b","after":"62599cea823bd9aabe025cbe73488dcf5273b69f","ref":"refs/heads/3.5","pushedAt":"2024-05-13T10:11:56.000Z","pushType":"pr_merge","commitsCount":17,"pusher":{"login":"jujubot","name":"Juju bot","path":"/jujubot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7779494?s=80&v=4"},"commit":{"message":"Merge pull request #17309 from babakks/css-8360/apply-client-in-simple-connector\n\nhttps://github.com/juju/juju/pull/17309\n\n**(Note that this PR is relevant to JIMM controllers which support login with client credentials. So whenever we say *controller*, it's a *JIMM controller*.)**\n\nWhen Juju Terraform Provider uses client credentials (as a service account) to communicate with the API using a `SimpleConnector`, it leaves `SimpleConfig.Username` empty and assigns the client credentials to `SimpleConfig.ClientID` and `SimpleConfig.ClientSecret`.\n\nThe problem is the `NewSimple` function does not take this into account and panics with the following message whenever the `Username` is empty:\n\n```\ninvalid user tag \"\"\n```\n\nThis PR adds a simple check to prevent the panic.\n\n## Checklist\n\n\n\n- [x] Code style: imports ordered, good names, simple structure, etc\n- [x] Comments saying why design decisions were made\n- [ ] ~Go unit tests, with comments saying what you're testing~\n- [ ] ~[Integration tests](https://github.com/juju/juju/tree/main/tests), with comments saying what you're testing~\n- [ ] ~[doc.go](https://discourse.charmhub.io/t/readme-in-packages/451) added or updated in changed packages~\n\n## QA steps\n\nQA-ing this change is a bit complicated because of two reasons:\n\n1. The `NewSimple` function is meant to be used by users of the `juju/juju` module, and hence there's no internal usage in Juju (so we can verify the changes without spinning up other things). To invoke the method, we can use Juju Terraform Provider. Note that, for this purpose, we need to build the provider with the new Juju changes.\n2. We'd need a controller that provides the newly introduced login method, `LoginWithClientCredentials`. If the controller The only controller that supports this method at the moment, is JIMM. Therefore, we need to spin up a JIMM controller. If we try with a non-JIMM controller, instead of a panic we get this error, which is a bit misleading but converts the unsupported state:\n ```\n this version of Juju does not support login from old clients (not supported) (not supported)\n ```\n\nWe can, of course, help out with QA-ing this to make sure it works as expected.\n\nAnyway, the whole QA process should look like this:\n\n0. Build the Juju Terraform Provider with the changes in Juju.\n1. Spin up a JIMM controller.\n2. Create a Terraform plan from this template:\n ```tf\n terraform {\n required_providers {\n juju = {\n source = \"registry.terraform.io/juju/juju\" # (uses local provider repository)\n version = \"=0.12.0\"\n }\n }\n }\n\n provider \"juju\" {\n controller_addresses = \"jimm.localhost:443\"\n\n client_id = \"some-client-id\" # Value not important\n client_secret = \"some-secret\" # Value not important\n\n ca_certificate = <\n\n## Links\n\n\n\n**Launchpad bug:** https://bugs.launchpad.net/juju/+bug/\n\n**Jira card:** JUJU-","shortMessageHtmlLink":"Merge pull request #17309 from babakks/css-8360/apply-client-in-simpl…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETb1-TQA","startCursor":null,"endCursor":null}},"title":"Activity · juju/juju"}