You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
we need to ship job-runner in opensafely cli, which is currently shipped via pip install, and we vendor the dependencies in order to avoid problems installing them all via pip on users computers.
We are dockerising 1, so that removes that issue, but 2 remains an issue.
Requests is currently required, however our use of it is so simple, and we control both endpoints, that it might be worth considering writing a simpler urllib client to replace it.
Pipeline is dropping pydantic, so that helps some, although we still need ruyaml and friends.
The opentelemetry deps are the big ones, due to the packaging strategy of the otel python libraries (which is bs).
Ideally, we'd make these optional deps with a telemetry pip extra, that we only install in the docker image by default, and not vendor in opensafely-cli. We could enable away to try install non-vendored versions of these deps if we do want to enable client side telemetry, but its not required. But acheiving this might be tricky to actually implement, as by definition, telemetry capturing code is used all over the codebase.
With a bit of work, we could potentially get the list of dependencies down to a fraction of its current size.
The text was updated successfully, but these errors were encountered:
Required production dependencies are expensive for job-runner, for two reasons
not currently deployed in docker, so need deps shipping to backends via awkward alternate methods
we need to ship job-runner in opensafely cli, which is currently shipped via pip install, and we vendor the dependencies in order to avoid problems installing them all via pip on users computers.
We are dockerising 1, so that removes that issue, but 2 remains an issue.
The current prod dependency tree looks like this:
Requests is currently required, however our use of it is so simple, and we control both endpoints, that it might be worth considering writing a simpler urllib client to replace it.
Pipeline is dropping pydantic, so that helps some, although we still need ruyaml and friends.
The opentelemetry deps are the big ones, due to the packaging strategy of the otel python libraries (which is bs).
Ideally, we'd make these optional deps with a
telemetry
pip extra, that we only install in the docker image by default, and not vendor in opensafely-cli. We could enable away to try install non-vendored versions of these deps if we do want to enable client side telemetry, but its not required. But acheiving this might be tricky to actually implement, as by definition, telemetry capturing code is used all over the codebase.With a bit of work, we could potentially get the list of dependencies down to a fraction of its current size.
The text was updated successfully, but these errors were encountered: