appsignal/appsignal-python

Define optional dependencies as extras

unflxw opened this issue · 1 comments

unflxw commented

Currently, we rely on our installer detecting the presence of certain dependencies and installing the right opentelemetry-instrumentation-something package for them, or on users manually installing those dependencies as described on the docs.

We could use "package extras", which are optional dependencies that are specified at install time, to improve the experience somewhat. Instead of installing appsignal and opentelemetry-instrumentation-django, users could install appsignal[django], which would install both. The installer could also do this. (More than one can be installed -- e.g. appsignal[django,celery])

This also allows us to specify version bounds for the OpenTelemetry instrumentation package, ensuring that our users aren't upgrading their AppSignal package, but using an old (potentially unsupported or missing features) version of the instrumentations.

  • Define optional dependencies as extras
  • Change the docs to specify installation of extras instead of OTel packages
  • Change the installer to write extras instead of OTel packages to requirements.txt