Releases: projectsyn/commodore
v1.27.2
Summary
We're pleased to announce Commodore v1.27.2.
This release fixes a performance regression that was introduced by the change that each component instance now gets a separate worktree checkout and cleans up some internal code related to how we manage component Git repositories.
Additionally, this release fixes a long-standing bug in the check which aborts catalog compilation if the currently checked out tenant repo has local changes and updates the Python and Go versions in the container image.
Changes
6 changes since v1.27.1
🪛 Internal Changes
- Make the backing
MultiDependency
forComponent
non-optional (#1102)
🐛 Fixes
- Fix performance regression by parallelizing alias checkout (#1101)
- Only discard changes in alias checkouts when catalog compilation called with
--force
(#1103) - Correctly abort
catalog compile
for local changes in tenant repo (#1104)
🔗 Dependency Updates
v1.27.1
Summary
We're pleased to announce Commodore v1.27.1.
This release fixes a bug in the component instance validation logic which determines whether a component correctly marks itself as multi-version capable.
Changes
1 changes since v1.27.0
🐛 Fixes
- Fix component multi-version verification (#1100)
v1.27.0
Summary
We're pleased to announce the release of Commodore v1.27.0.
This release brings an exciting new feature: Commodore now supports defining separate versions for different instances of a multi-instance-aware component that explicitly advertises support for that feature.
This feature is very useful for situations where multiple instances of a Commodore component are used to provide test and production environments, such as when component-vault
is used to provide different Vault instances for multiple Project Syn control planes on a single cluster.
Please see the SDD and Commodore architecture documentation for more details.
Changes
3 changes since v1.26.1
🚀 Features
- Support different versions per instance of a component (#559)
🔗 Dependency Updates
v1.26.1
v1.26.0
Summary
We're pleased to announce Commodore v1.26.0.
Apart from many dependency updates, this release addresses an issue with HTTP redirects when POSTing to the Lieutenant API and introduces a flag for component and package sync to run the sync with a feature branch of the template repository.
Additionally, since the container image is now built with Go 1.23.5, the performance regression in Gojsonnet has been resolved, and users should see significant improvements in Jsonnet compilation times compared to Commodore <= 1.24.0.
Changes
17 changes since v1.25.0
🚀 Features
- Add support for custom template versions for dependency update and sync (#1072)
🪛 Internal Changes
- Remove
Dockerfile.kapitan
(#1086)
🐛 Fixes
- Explicitly handle redirects when doing POST requests (#1069)
🔗 Dependency Updates
- Update dependency pyjwt to v2.10.1 (#1056)
- Update dependency pytest to v8.3.4 (#1058)
- Update dependency python-poetry/poetry to v1.8.5 (#1062)
- Update dependency click to v8.1.8 (#1066)
- Update dependency pylint to v3.3.3 (#1068)
- Update dependency cruft to v2.16.0 (#1070)
- Update dependency gitpython to v3.1.44 (#1075)
- Update dependency pyfakefs to v5.7.4 (#1082)
- Update dependency responses to v0.25.6 (#1081)
- Update dependency kubernetes-sigs/kustomize to v5.6.0 (#1083)
- Update dependency golang/go to v1.23.5 (#1085)
- Update dependency reclass-rs to v0.6.0 (#1084)
- Update dependency kapitan to v0.34.4 (#1078)
- Update docker.io/python Docker tag to v3.12.8 (#1089)
v1.25.0
⚠️ Performance issue ⚠️
We don't recommend installing Commodore v1.25.0 at this time. There's a performance regression in the Go compiler for Go 1.22.0 and newer (cf. golang/go#68587) which heavily affects gojsonnet performance. Note that this should be resolved once Go 1.23.4 and 1.22.10 are released.
Summary
We're pleased to announce Commodore v1.25.0.
Apart from some dependency updates, this release changes the Jsonnet implementation that's used by Commodore from C++ Jsonnet to Gojsonnet. This should significantly reduce compile times for Commodore components that make use of the kube-prometheus
Jsonnet library (directly or indirectly).
Users who install Commodore from PyPI will need a working Go compiler, since the gojsonnet Python package doesn't provide prebuilt wheels.
Changes
4 changes since v1.24.0
🚀 Features
- Use go-jsonnet in Commodore (#1046)
- Let Kapitan decide how many targets to compile in parallel (#1052)
📄 Documentation
- Add a prerequisite for the Go compiler for go-jsonnet (#1051)
🔗 Dependency Updates
v1.24.0
Summary
We're pleased to announce Commodore v1.24.0.
Aside from the usual assortment of dependency updates and bug fixes, this release updates Kapitan to 0.34.1. This is an exciting upgrade, since Kapitan now natively supports the Project Syn Reclass in Rust (reclass-rs) rewrite, so Commodore users don't need to patch Kapitan in order to enable reclass-rs anymore.
Additionally, this release raises the minimum required Python version to 3.10, since Kapitan has raised their minimum required Python version to 3.10. Note that we would have removed support for Python 3.8 in this release, since that version has become EOL at the start of October 2024.
We encourage users who still run Commodore on Python 3.8 or 3.9 to install a more recent Python version. We recommend using uv
to manage your Python versions and Commodore installation, since multiple Commodore developers use uv
to manage their production Commodore installations already.
Changes
16 changes since v1.23.0
🔎 Breaking Changes
- Update minimum required Python to 3.10 (#1020)
🚀 Features
🐛 Fixes
- Refresh expired API token before pushing compile metadata to Lieutenant (#1032)
🔗 Dependency Updates
- Update dependency PyGithub to v2.4.0 (#1017)
- Update dependency pytest to v8.3.3 (#1022)
- Update dependency importlib-metadata to v8.5.0 (#1023)
- Update dependency pylint to v3.3.1 (#1027)
- Update dependency black to v24.10.0 (#1030)
- Update dependency pyfakefs to v5.7.1 (#1034)
- Update dependency python-poetry/poetry to v1.8.4 (#1036)
- Update dependency kubernetes-sigs/kustomize to v5.5.0 (#1033)
- Update dependency reclass-rs to v0.5.0 (#1037)
- Update dependency pytest-cov to v6 (#1042)
- Update dependency pytest-benchmark to v5.1.0 (#1044)
- Update dependency kapitan to v0.34.1 (#1045)
v1.24.0-rc1
Summary
We're pleased to announce the first release candidate for Commodore v1.24.0.
Aside from the usual assortment of dependency updates and bug fixes, this release updates Kapitan to 0.34 which removes the need for manually patching the Kapitan installation to benefit from the performance benefits introduced via the reclass in Rust rewrite.
Additionally, this release removes support for Python 3.8 which has become EOL at the start of October and Python 3.9. Note that we already remove support for Python 3.9 because Kapitan 0.34 requires Python >= 3.10.
We encourage users who still run Commodore on Python 3.8 or 3.9 to install a more recent Python version.
Changes
13 changes since v1.23.0
🔎 Breaking Changes
- Update minimum required Python to 3.10 (#1020)
🚀 Features
- Support for Python 3.12 (#1039)
🐛 Fixes
- Refresh expired API token before pushing compile metadata to Lieutenant (#1032)
🔗 Dependency Updates
- Update dependency PyGithub to v2.4.0 (#1017)
- Update dependency pytest to v8.3.3 (#1022)
- Update dependency importlib-metadata to v8.5.0 (#1023)
- Update dependency pylint to v3.3.1 (#1027)
- Update dependency black to v24.10.0 (#1030)
- Update dependency pyfakefs to v5.7.1 (#1034)
- Update dependency python-poetry/poetry to v1.8.4 (#1036)
- Update dependency kubernetes-sigs/kustomize to v5.5.0 (#1033)
- Update dependency reclass-rs to v0.5.0 (#1037)
- Update dependency kapitan to v0.34.0 (#914)
v1.23.0
Summary
We're pleased to announce Commodore v1.23.0. Apart from dependency updates, this release updates the commodore inventory
commands (which are primarily used by commodore-renovate) to use reclass-rs
for rendering the Reclass inventory.
Changes
11 changes since v1.22.1
🚀 Features
- Refactor
commodore inventory
to use reclass-rs (#1012)
🐛 Fixes
- Fix tests to match that patch automerge now also automerges digest updates (#1011)
🔗 Dependency Updates
- Update dependency requests to v2.32.3 (#989)
- Update dependency pyfakefs to v5.6.0 (#998)
- Update dependency importlib-metadata to v8.2.0 (#1003)
- Update dependency pylint to v3.2.6 (#1001)
- Update dependency pytest to v8.3.2 (#1004)
- Update dependency pyjwt to v2.9.0 (#1007)
- Update mikepenz/release-changelog-builder-action action to v5 (#1005)
- Update dependency kubernetes-sigs/kustomize to v5.4.3 (#944)
- Update dependency black to v24.8.0 (#1008)
v1.22.1
Summary
We're pleased to announce Commodore v1.22.1. This release fixes a shortcoming in Commodore v1.22.0 which caused commodore component update
to fail for components that were generated from older component template versions and which weren't automatically updated to the latest template version via the template sync mechanism. We recommend that all users upgrade to Commodore v1.22.1 as soon as possible.
Changes
2 changes since v1.22.0
🐛 Fixes
- Ensure
component update
can update components without automerge settings (#987)
🔗 Dependency Updates
- Update dependency responses to v0.25.3 (#985)