-
Notifications
You must be signed in to change notification settings - Fork 54
Description
[Updated on Jan 23, 2020]
Description of issue or feature request:
securesystemslib lists some dependencies that require C-code (cryptography requiresopenssl, pynacl requires libsodium) as optional to allow for a pure-python installation. The runtime handling of missing optional dependencies should be revised.
Current behavior:
cryptography and pynacl are listed as optional (extra) dependencies, but securesystemslib does not fare (consistently) well, if installed without them.
Expected behavior:
-
Public facing modules (e.g.Fixed with Improve handling of native dependencies #200interface.pyandkeys.py) must be importable, even if the optional dependencies are not installed. -
Each public facing function always should be callable and present meaningful user-feedback if an optional dependency that is required for that function is not installed.Fixed with Improve handling of native dependencies #200 -
Also address or keep in mind recently merged or pending functionality, that has non-pure Python dependencies (Add gpg support and custom (sub)process module #174, sphincs+ support, for post-quantum crypto #169, External Signing using CCID/PIV interface. #170).
-Optional: Fixed with #200colorama was made a strict dependency in #178 to quickfix #155. @SantiagoTorres, to consider making it a optional again (with respect to required adoptions as outlined above).
- It would be nice to fine-tune code coverage measurement (see Improve handling of native dependencies #200 (comment) ff.)