The all package facilitates the registration of Juju components into the relevant machinery. It is intended as the one place in Juju where the components (horizontal design layers) and the machinery (vertical/architectural layers) intersect. This approach helps alleviate interdependence between the components and the machinery.
This is done in an independent package to avoid circular imports.
RegisterForClient registers all the parts of the components with the Juju machinery for use as a client (e.g. juju).
RegisterForServer registers all the parts of the components with the Juju machinery for use as a server (e.g. jujud, jujuc).