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.py
andkeys.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.)