Skip to content

Too many dependencies #1301

@bmw

Description

@bmw

Users/developers have reported that our project has too many Python dependencies. This is related to things being overly complex.

Here is pde's attempt to characterize what our dependencies currently are:

  1. Purely for certbot-auto and the things it needs to build, not for
    the python code itself (these no longer apply on recent OSes where we have packages):

    git
    gcc
    python-dev
    libffi-dev
    libssl-dev
    setuptools
    virtualenv

  2. Essential OS packages
    python
    openssl

  3. Semi-essential OS packages:
    dialog

  4. Needed for specific plugins:

    python-psutil (standalone -- see what has bound :80 or :443) (now only "recommended")
    libaugeas0 (apache -- parse & edit conf files)
    python-augeas

  5. Python dependencies:

    ConfigArgParse (for reading config files)
    configobj (for writing & reading renewal conf files)
    python-cryptography (>= 0.8)
    PyOpenSSL (>= 0.15) (>= 0.13)
    pythondialog
    ndg-httpsclient (for working around TLS insecurities in older Python versions)
    requests
    six

  6. Python dependencies specifically related to time processing. It seems
    absurd that there are four of these:

    werkzeug
    pytz
    parsedatetime
    pyicu (needed by parsedatetime)
    pyrfc3339

  7. Python dependencies for python-cryptography:
    idna
    enum34
    ipaddress
    cffi
    pycparser (build dep only, but affects letsencrypt-auto)
    pyasn1

  8. These were used to define plugin interfaces. Not sure if that was wise,
    but it's probably annoying to third parties if we ditch them:

    zope.components
    zope.interface
    zope.event

  9. Development and doc-building dependencies. For reasons I don't
    yet understand, pip always fetches some of these too:

    mock
    funcsigs (mock depends on this)
    pbr (mock depends on this)
    sphinxdocs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions