Skip to content

fix: move revenueholdings-license to optional [license] extra#1

Merged
Coding-Dev-Tools merged 2 commits into
masterfrom
fix/optional-license-dep
May 17, 2026
Merged

fix: move revenueholdings-license to optional [license] extra#1
Coding-Dev-Tools merged 2 commits into
masterfrom
fix/optional-license-dep

Conversation

@Coding-Dev-Tools

Copy link
Copy Markdown
Owner

Problem

pip install fails on CI because revenueholdings-license>=0.1.0 is listed as a required dependency but the package was never published to PyPI (blocked by hCaptcha — see COM-79, COM-82, COM-83).

Fix

  1. pyproject.toml: Moved revenueholdings-license>=0.1.0 from dependencies to [project.optional-dependencies] license
  2. cli.py: Made require_license() import conditional — on ImportError, defines a no-op placeholder and emits a warning

Impact

  • CI pip install will succeed without the license package
  • Users who install with pip install envault[license] will still get license enforcement when the package becomes available on PyPI
  • No behavior change when revenueholdings-license IS installed

Refs: COM-137, COM-79, COM-82, COM-83

- src/envault/cli.py: Added  and  commands
  - Fernet symmetric encryption via existing encrypt.py module
  - Supports --output, --password, --delete flags on both commands
- tests/test_envault.py: Added 7 new encryption/decryption tests
  - test_encrypt_roundtrip: encrypt then decrypt verifies original content
  - test_encrypt_wrong_password_fails: wrong pw raises ValueError
  - test_encrypt_delete_original: --delete removes source
  - test_encrypt_empty_file_fails: empty file raises error
  - test_is_encrypted: detect Fernet-prefixed files
  - test_encrypt_custom_output: --output path respected
  - test_decrypt_no_salt_fails: no salt file raises FileNotFoundError
- Total: 57 tests passing
…aceful import fallback

- Remove revenueholdings-license>=0.1.0 from required dependencies
- Add license optional-dependencies group with revenueholdings-license
- Make require_license() import conditional: try/except ImportError
- On ImportError, define no-op require_license() and print warning
- Fixes CI breakage caused by revenueholdings-license not on PyPI (COM-79, COM-82, COM-83)
@Coding-Dev-Tools
Coding-Dev-Tools merged commit 046699f into master May 17, 2026
4 checks passed
@Coding-Dev-Tools
Coding-Dev-Tools deleted the fix/optional-license-dep branch May 17, 2026 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant