May I suggest to write about the changes on the client side? It was shocking to see that Canonical decided to change some commands drastically. Needless to say, that decision triggers a significant re-work in our scripts/pipelines etc. E.g.:
juju version
2.9.37-ubuntu-amd64
juju bootstrap --bootstrap-series=focal --no-gui --constraints tags=juju --constraints mem=2G onibaba c0
Creating Juju controller "c0" on onibaba/default
Looking for packaged Juju agent version 2.9.37 for amd64
Located Juju agent version 2.9.37-ubuntu-amd64 at https://streams.canonical.com/juju/tools/agent/2.9.37/juju-2.9.37-linux-amd64.tgz
...
Bootstrap complete, controller "c0" is now available
Controller machines are in the "controller" model
Initial model "default" added
juju run -m controller --machine 0 -- uptime
10:19:50 up 2 min, 0 users, load average: 2.16, 0.96, 0.37
sudo snap refresh --channel=3.0/stable juju
juju (3.0/stable) 3.0.0 from Canonical✓ refreshed
juju run -m controller --machine 0 -- uptime
ERROR option provided but not defined: --machine
juju exec -m controller --machine 0 -- uptime
10:20:48 up 3 min, 0 users, load average: 0.79, 0.78, 0.34