Skip to content

Bug: Current PyPI release (0.18.0) fails at runtime due to outdated SSL dependency chain #411

Description

@AshishJii

Summary

The current published release (0.18.0) installs successfully but fails immediately at runtime in modern Python environments due to incompatibilities in the certbot/acme/pyOpenSSL dependency chain.

The develop branch appears to already contain a fix for this issue, but no updated release has been published yet.

As a result, new users following the standard installation instructions are currently unable to use frappe-manager.


Environment

  • OS: Tested on Fedora 44, MacOS 26

  • Installation method:

    uv tool install --python 3.13 frappe-manager

Current behavior

Installation succeeds, but running fm crashes with:

AttributeError: module 'OpenSSL.crypto' has no attribute 'X509Extension'

Full traceback:

Traceback (most recent call last):
  ...
  File ".../acme/crypto_util.py", line 504, in <module>
    extensions: Optional[List[crypto.X509Extension]] = None,
                              ^^^^^^^^^^^^^^^^^^^^
  File ".../cryptography/utils.py", line 76, in __getattr__
    obj = getattr(self._module, name)
AttributeError: module 'OpenSSL.crypto' has no attribute 'X509Extension'

Cause

0.18.0 still depends on:

  • certbot
  • acme
  • pyOpenSSL

The dependency chain is no longer compatible with current pyOpenSSL/cryptography versions because deprecated OpenSSL APIs such as OpenSSL.crypto.X509Extension were removed.


Observation

The develop branch appears to have already removed this dependency chain and migrated to direct cryptography usage.

The issue only affects the currently published release artifact.


Impact

The README currently recommends:

uv tool install --python 3.13 frappe-manager

However, the latest published release is not runnable in a modern environment after installation.

This may confuse new users because:

  • installation succeeds
  • runtime fails immediately

Suggested resolution

One of the following would help:

  1. Publish a new PyPI release containing the dependency/SSL refactor already present in develop
  2. Temporarily document that users should install from develop

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions