Releases: projectsyn/commodore
v1.5.0
Summary
We're pleased to announce Commodore v1.5.0.
This release adds support for specifying dynamic facts on the command line when compiling a catalog for a cluster which hasn't reported any dynamic facts yet. Dynamic facts provided on the command line will be ignored if the Lieutenant API response for the cluster contains field dynamicFacts
Changes
3 changes since v1.4.2
🚀 Features
- Add flag for providing fallback dynamic facts for
catalog compile
(#565)
🔗 Dependency Updates
v1.4.2
Summary
We're pleased to announce Commodore v1.4.2. This release fixes a bug in package update
where a stale commit SHA was added to the commit message when updating a configuration package from a new template version.
Changes
1 changes since v1.4.1
🐛 Fixes
- Fix
package update
commit message to use correct template commit SHA (#562)
v1.4.1
Summary
We're pleased to announce Commodore v1.4.1. This release addresses a few oversights in the package new
and package update
command. We fixed the implementation of the commands to deduplicate the set of requested test cases in configuration packages, and we've adjusted command package upgrade
to not create an empty commit when there's no changes to apply.
Changes
2 changes since v1.4.0
🐛 Fixes
v1.4.0
Summary
We're pleased to announce the release of Commodore v1.4.0.
Apart from dependency updates, this release adds support for using Commodore dependencies (components or packages) in a sub-path of a repository, adds support for having multiple Commodore dependencies stored in the same repository, improves support for managing configuration packages, and adds a lint for deprecated Kubernetes API versions to the component template.
Dependency management
To enable users to provide dependencies (components or packages) in a sub-path of a repository, Commodore now supports a new optional key path
in dependency specifications (the entries in parameters.components
or parameters.packages
respectively). If the key path
is not present, Commodore assumes that the dependency is stored in the repository root. When a sub-path is given, Commodore will ensure that the contents of that sub-path are made available in the Kapitan inventory.
Also, in order to support packages which are stored in a sub-path of a repository, Commodore now downloads packages to dependencies/pkg.<package-name>
and symlinks them to inventory/classes/<package-name>
instead of directly cloning packages into inventory/classes
.
Additionally, Commodore now uses Git worktrees to manage the component and package checkouts in dependencies/
. This allows Commodore to clone each dependency repository exactly once, regardless of the number of dependencies stored in the repository.
When you run Commodore in an existing working directory, it will attempt to migrate your existing dependency checkouts to the new worktree-based checkouts, but will abort if it might delete any local data (uncommitted changes, untracked files, and local branches which don't exist in the remote repository are treated as local data).
Package boilerplate updates
Commodore provides a new command package update
, which allows users to update their existing configuration packages from the configuration package Cookiecutter template. We also added support to package update
to allow users to add new test cases or remove test cases from an existing package as well as modifying some other selected values in the package boilerplate.
Component linting
This release also adds support for linting components with kubent
to the component template. This lint warns component authors about Kubernetes API versions which are deprecated or will be deprecated soon. Due to how the tool works, we've not added this new lint to the component GitHub actions, and instead only provide a make target to run the lints locally at this time.
Changes
9 changes since v1.3.3
🚀 Features
- component-template: Add
lint_kubent
make targets to check for deprecated API versions (#544) - Add support for dependencies in repository subpaths (#547)
- Add command
package update
(#553) - Create new components and packages as Git worktree checkouts (#556)
🛠️ Minor Changes
- Clone config packages to
dependencies/pkg.{package-name}
(#546) - Refactor dependency repository handling to avoid multiple clones of the same repository (#551)
🔗 Dependency Updates
v1.3.3
Summary
We're pleased to announce Commodore v1.3.3. This release updates dependencies, and fixes the RequestsDependencyWarning
which was caused by an incomplete dependency specfication for the requests
package.
Changes
8 changes since v1.3.2
📄 Documentation
- Add short tutorial on how to write and use commodore packages (#536)
🔗 Dependency Updates
- Update dependency importlib-metadata to v4.12.0 (#537)
- Lock file maintenance (#538)
- Explicitly configure requests with extra
use_chardet_on_py3
(#540) - Update dependency black to v22.6.0 (#539)
- Update dependency pylint to v2.14.4 (#541)
- Update dependency tox to v3.25.1 (#542)
- Lock file maintenance (#543)
v1.3.2
Summary
We're pleased to announce the release of Commodore v1.3.2. Apart from a development dependency update, this release fixes a regression in the component template .gitignore
.
Changes
3 changes since v1.3.1
🐛 Fixes
- Add
/dependencies
to component template.gitignore
(#533)
🔗 Dependency Updates
v1.3.1
Summary
We're pleased to announce the release of Commodore v1.3.1. This is a pure bugfix release which addresses a bug which only manifests when compiling a cluster for the first time when the cluster catalog repository is completely empty.
Changes
1 changes since v1.3.0
🐛 Fixes
- Fix bug in catalog update logic for initial compilation of a cluster (#531)
v1.3.0
Summary
We're pleased to announce Commodore v1.3.0. Apart from a number of dependency updates, this release fixes the .gitignore
file in the component template and improves the README.md
in the component template to contain a link to the rendered component documentation on the Commodore Components Hub.
Changes
10 changes since v1.2.0
🚀 Features
- Add link to rendered documentation in component template README (#529)
🐛 Fixes
- Fix component template
.gitignore
entries (#528)
🔗 Dependency Updates
- Update dependency pylint to v2.14.1 (#521)
- Update dependency docker.io/python to v3.10.5 (#524)
- Update dependency pyxdg to v0.28 (#522)
- Update dependency docker.io/alpine to v3.16 (#513)
- Update dependency responses to v0.21.0 (#519)
- Lock file maintenance (#523)
- Restrict cookiecutter version to <2 (#525)
- Update actions/setup-python action to v4 (#527)
v1.2.0
Summary
We're pleased to announce Commodore v1.2.0. This release brings additional features for working with configuration packages. Commodore v1.2.0 introduces new commands package new
and package compile
which can be used to bootstrap new config packages and compile config packages standalone respectively.
Please note that -- in contrast to command component new
-- the command package new
fetches the package template from an external Git repository and uses Cruft to render the Cookiecutter template which allows users to update their packages to the latest template version.
We're currently planning to provide more seamless Cruft update support in a future Commodore release.
Changes
11 changes since v1.1.1
🚀 Features
- Add command
commodore package compile
(#505) - Add flags
--local
and--no-fetch-dependencies
forpackage compile
(#506) - Add command
package new
(#509) - Add support for adding additional test cases in new config packages (#510)
🛠️ Minor Changes
- Remove redundant parameter
fetch_dependencies
ofkapitan_compile
(#508) - Change
package compile
to always use a temporary directory (#514)
🔗 Dependency Updates
v1.1.1
Summary
This release fixes unexpected errors about illegal component library names when compiling a component (or cluster) while there's temporary hidden files present in the component's library directory (e.g. a Vim swap file).
Additionally, the release adds support for printing help text of Commodore commands with -h
.
Changes
3 changes since v1.1.0
🚀 Features
- Configure CLI to also accept
-h
to print help text (#503)
🐛 Fixes
- Skip hidden files when enumerating component library files (#502)
🔗 Dependency Updates
- Lock file maintenance (#501)