Skip to content

Releases: projectsyn/commodore

v1.5.0

26 Jul 09:13
v1.5.0
f16c6bc
Compare
Choose a tag to compare

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

  • Update dependency pyfakefs to v4.6.3 (#564)
  • Lock file maintenance (#566)

v1.4.2

20 Jul 13:30
v1.4.2
3110140
Compare
Choose a tag to compare

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

20 Jul 12:09
v1.4.1
ae70c2a
Compare
Choose a tag to compare

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

  • Deduplicate requested test cases for package new and package update (#560)
  • Don't create empty commits with package update (#561)

v1.4.0

19 Jul 11:26
v1.4.0
bb4d058
Compare
Choose a tag to compare

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

  • Lock file maintenance (#548)
  • Update dependency pyfakefs to v4.6.2 (#555)
  • Update dependency pylint to v2.14.5 (#557)

v1.3.3

07 Jul 14:36
v1.3.3
ff9ddaa
Compare
Choose a tag to compare

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

20 Jun 14:47
v1.3.2
a17a7a8
Compare
Choose a tag to compare

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

  • Update dependency pylint to v2.14.2 (#532)
  • Update dependency pylint to v2.14.3 (#534)

v1.3.1

14 Jun 13:55
v1.3.1
047fa70
Compare
Choose a tag to compare

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

10 Jun 14:19
v1.3.0
e4e5a16
Compare
Choose a tag to compare

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

25 May 08:50
v1.2.0
9be16b7
Compare
Choose a tag to compare

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 for package 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 of kapitan_compile (#508)
  • Change package compile to always use a temporary directory (#514)

🔗 Dependency Updates

  • Lock file maintenance (#507)
  • Lock file maintenance (#512)
  • Explicitly specify oauthlib as a dependency (#515)
  • Explicitly specify pyjwt as a dependency (#516)
  • Remove all version range specifications for dependencies in pyproject.toml (#517)

v1.1.1

09 May 15:52
v1.1.1
fa8e1a5
Compare
Choose a tag to compare

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)