Skip to content

client: Strictly distinguish internal and public code

Disallow importing the public client package, which is only intended to be used by external clients. This brings multiple advantages:

- We have a clean boundary between public and internal code. This
  ensures that we don't accidentally add interfaces to our public
  packages that really are low-level details.

- It is easier to remain backwards compatibility as we now have two
  distinct layers.

- We can perform internal refactorings more readily and iterate on
  how things are handled internally without breaking the public API.

Other public packages will eventually follow to be added to the list of disallowed imports.

Merge request reports