Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Apr 14:46
· 2027 commits to master since this release
v1.0.0
07de5af

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-token to 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 KeyError in error message for invalid postprocessing filters (#465)

📄 Documentation

  • Update README (#485)

🔗 Dependency Updates

  • Update dev dependencies (#470)
  • Pin all dependency versions in pyproject.toml (#471)
  • Lock file maintenance (#480)
  • Update container base image to Python v3.10.4 (#416)