v1.0.0
Summary
We're pleased to announce Commodore v1.0.0 after 1463 commits across 326 merged PRs and 40 v0.x releases. It took us a bit less than two and a half years (907 days since the initial commit in the repo) to get to v1.0.0. Over this time, we've gotten code contributions from 17 different authors. At this point, we'd like to thank everyone who's contributed code or ideas to Commodore.
For those curious, Commodore started out as a single file Python script with 82 lines of code (8ada1d7). Over time, the code base has grown to 3480 lines of Python code and 5243 lines of tests for Commodore v1.0.0. We're happy to note that Commodore's test coverage is approximately 93%.
The bulk of the release consists of removing features which were deprecated in various v0.x releases.
Please note that Commodore v1.0.0 drops support for Python 3.7. We encourage users to upgrade to Python 3.8, 3.9 or 3.10. If that's not possible for you, please use the pre-built Docker image.
Changes
31 changes since v0.17.1
🚀 Features
- Add linter for deprecated inventory parameters (#463)
- Add command
commodore fetch-tokento print API token to stdout (#475) - Raise error when compiling a cluster which uses removed reclass variables (#482)
- Raise error when compiling a component which uses removed reclass variables (#483)
🛠️ Minor Changes
- Refactor
component_compile()(#448) - Refactor
_discover_components()to reduce complexity (#449) - Refactor
_push_catalog()to return early in local mode (#450) - Add test for
update_catalog()(#452) - Modularize inventory linting infrastructure (#461)
- Add more tests for builtin postprocessing filters (#466)
- Add more tests for the Jsonnet postprocessing filter runner (#467)
- Add integration test for
catalog compile --local(#472) - Add tests for CLI functions (#477)
- Add tests for
catalog.catalog_list(#481) - Convert type annotations for standard collections to PEP-585 (#484)
🔎 Breaking Changes
- Remove support for external postprocessing filter definitions (#453)
- Remove deprecated parameter
component_versions(#454) - Remove deprecated inventory parameters (#460)
- Remove support for component specifications without an explicit version (#462)
- Remove support for multi-instance advertisement in top-level parameter
multi_instance(#464) - Raise error for component library name with invalid prefix (#469)
- Remove Python 3.7 support (#476)
🐛 Fixes
- Correctly remove dangling link destinations in
relsymlink()(#456) - Fix potential KeyError in
tokencache.get()(#458) - Fix edge cases in
_is_semantic_diff_kapitan_029_030()(#451) - Fix
KeyErrorin error message for invalid postprocessing filters (#465)
📄 Documentation
- Update README (#485)