clevis 0.3.0__tar.gz → 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {clevis-0.3.0 → clevis-0.3.2}/.claude/settings.local.json +3 -1
- {clevis-0.3.0 → clevis-0.3.2}/.gitignore +2 -1
- clevis-0.3.2/CHANGELOG.md +64 -0
- clevis-0.3.2/PACKAGE.md +946 -0
- {clevis-0.3.0 → clevis-0.3.2}/PKG-INFO +1 -1
- clevis-0.3.2/analysis/edge-case-analysis.md +258 -0
- clevis-0.3.2/example_config_param.py +53 -0
- {clevis-0.3.0 → clevis-0.3.2}/examples/commands.py +24 -6
- clevis-0.3.2/examples/nested-commands.py +44 -0
- clevis-0.3.2/examples/nested.py +39 -0
- clevis-0.3.2/examples/nested.toml +5 -0
- clevis-0.3.2/nested-commands.toml +3 -0
- {clevis-0.3.0 → clevis-0.3.2}/pyproject.toml +1 -1
- {clevis-0.3.0 → clevis-0.3.2}/src/clevis/__init__.py +45 -3
- {clevis-0.3.0 → clevis-0.3.2}/tests/test_clevis.py +0 -1
- clevis-0.3.2/tests/test_config_key.py +359 -0
- clevis-0.3.2/tests/test_edge_cases.py +1106 -0
- {clevis-0.3.0 → clevis-0.3.2}/tests/test_security.py +0 -1
- clevis-0.3.2/tests/test_subcommand_config.py +449 -0
- {clevis-0.3.0 → clevis-0.3.2}/tests/test_toctou_fix.py +0 -1
- {clevis-0.3.0 → clevis-0.3.2}/uv.lock +1 -1
- clevis-0.3.0/PACKAGE.md +0 -351
- clevis-0.3.0/reporting/P1-003-optional-cli-support/development-summary.md +0 -235
- clevis-0.3.0/reporting/P1-003-optional-cli-support/functional-review.md +0 -378
- clevis-0.3.0/reporting/P2-001/development-summary.md +0 -148
- clevis-0.3.0/reporting/P2-002/development-summary.md +0 -221
- clevis-0.3.0/reporting/P2-002/functional-review.md +0 -279
- clevis-0.3.0/reporting/P2-005/development-summary.md +0 -71
- clevis-0.3.0/reporting/P2-006/development-summary.md +0 -140
- {clevis-0.3.0 → clevis-0.3.2}/.github/workflows/test.yml +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/.python-version +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/.readthedocs.yaml +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/HISTORY.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/LICENSE +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/Makefile +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/README.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/REQUIREMENTS.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/TODO.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/2026-05-30-api-review-p1-003.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/2026-06-05-api-review-p2-001-factory-pattern.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/2026-06-05-api-review-subcommand-enhancements.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/P2-002-security-parameter.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/api-cli-optional.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/functional.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/analysis/security-P2-002.md +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/docs/api.rst +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/docs/conf.py +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/docs/index.rst +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/docs/installation.rst +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/docs/usage.rst +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/examples/app1.toml +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/examples/factory.py +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/examples/main.py +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/examples/project.toml +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/src/clevis/__init__.pyi +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/src/clevis/py.typed +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/tests/test_bug_regression.py +0 -0
- {clevis-0.3.0 → clevis-0.3.2}/tests/test_parser.py +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## 0.3.2 (2026-06-07)
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `config` parameter in `@configclass` decorator to specify TOML extraction key independently from CLI command name
|
|
12
|
+
- Support for reusing TOML sections across multiple CLI commands
|
|
13
|
+
- Ability to extract TOML configuration without CLI subcommand
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Enhanced Factory class with `config` attribute for flexible TOML section extraction
|
|
17
|
+
- Improved documentation with examples of config parameter usage
|
|
18
|
+
|
|
19
|
+
## 0.3.1 (2026-06-07)
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- Prevent cmd/prefix conflicts and root field leakage in subcommand configs
|
|
23
|
+
- Raise ConfigError when TOML section is not a table/dict
|
|
24
|
+
- Clear root-level fields before extracting subcommand section
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- Comprehensive edge case and subcommand tests (51 tests)
|
|
28
|
+
- Example demonstrating subcommand configuration pattern
|
|
29
|
+
|
|
30
|
+
## 0.3.0 (2026-06-05)
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
- Security checks for configuration file permissions
|
|
34
|
+
- TOCTOU-safe file permission checking using file descriptors
|
|
35
|
+
- ConfigError with actionable error messages
|
|
36
|
+
- Support for subcommands in CLI applications
|
|
37
|
+
- `get_cmd()` function to retrieve active subcommand
|
|
38
|
+
- `cmd`, `help`, and `aliases` parameters in `@configclass` decorator
|
|
39
|
+
- Environment variable interpolation support (via envtoml and tomlev)
|
|
40
|
+
- Multiple TOML parser fallback (envtoml > tomlev > tomli > tomllib)
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- Improved error messages with field path and configuration suggestions
|
|
44
|
+
- Better handling of nested configuration classes
|
|
45
|
+
|
|
46
|
+
### Security
|
|
47
|
+
- Configuration files now reject group/other readable permissions by default
|
|
48
|
+
- World-writable directories are rejected by default
|
|
49
|
+
- Security checks can be configured via SecurityAction enum
|
|
50
|
+
|
|
51
|
+
## 0.2.0 (2025-12-15)
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
- Initial release with core configuration management
|
|
55
|
+
- TOML file support
|
|
56
|
+
- Dataclass-based schema validation
|
|
57
|
+
- CLI argument generation from dataclass fields
|
|
58
|
+
- Nested configuration support
|
|
59
|
+
- User and project-level configuration files
|
|
60
|
+
|
|
61
|
+
## 0.1.0 (2025-11-01)
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
- Proof of concept implementation
|