v1.9.0
Summary
We're pleased to announce Commodore v1.9.0. The main new features in this release relate to the component template which we've moved out of the Commodore repository into its own repository at https://github.com/projectsyn/commodore-component-template.
We've refactored the command component new
to be based on Cruft, to bring the management of the component and configuration package templates in sync again. Apart from unifying the code to manage component and configuration package templates, this also allows us to introduce new commands component update
and component sync
which allow users to manage existing Commodore component repositories.
The command component update
provides support for updating a component's boilerplate to the latest template version, as well as modifying a component's boilerplate. The command allows users to add or remove many component features. The command allows users to enable or disable golden tests for a component. It also allows users to add test cases to a component, and to remove test cases from a component. Please see the Commodore CLI documentation for the full set of supported options for component update
.
The command component sync
is primarily intended to be run in a CI pipeline to keep components updated. This command replaces the function of modulesync for keeping component boilerplate updated. We've already set up a GitHub action which executes component sync
for the same set of components that were previously managed by modulesync in the component template repository.
Apart from the improved component template handling, this release improves the robustness of handling Git repository author information. We've ensured that Git author information provided in environment variables is used for all Git repositories managed by Commodore. Additionally, we added logic to provide fallback author information for the case where Git can't determine author information at all.
Changes
21 changes since v1.8.0
🚀 Features
- Add new command
component update
(#594) - Add option to create additional test cases for
component new
(#599) - Add support for adding and removing test cases to
component update
(#600) - Add command
component sync
(#607) - Read cookiecutter args from
.cruft.json
in Templater (#609) - Add fallback logic for component template
add_pp
andadd_lib
cookiecutter args (#610) - Explicitly handle Cruft errors and merge conflicts in
Templater.update()
(#611) - Add fallback to extract copyright info from modulesync config (#614)
- Add option to skip committing changes for
component update
/package update
(#616)
🛠️ Minor Changes
- Update Commodore-in-Docker to support GPG-signing commits on Linux (#589)
🐛 Fixes
- Fix dependency spec linting for dependencies in subpaths (#592)
- Correctly pass Git author name and email in
catalog compile
(#598) - Correctly pass Git author name and email to dependency repos (#602)
- Correctly propagate Git author information when managing worktrees (#603)
- Handle
KeyError
when reading Git user from config (#604) - Fix GitRepo initialization for dependencies without backing MultiDependency (#605)
- Fix entrypoint script in case the
.ssh
folder already exists (#606)
📄 Documentation
- Add warning regarding "class not found" messages when using packages (#601)