Releases: canonical/charmcraft
Release 1.2.0
-
The Charm and Bundle packing is now done through a parts lifecycle process in the same manner as
snapcraft
.- the charm's requirements and entrypoint can now be specified in the config, to simplify repetitive packing.
- it opens a world of possibilities to pack charms and bundles: explore the parts lifecycle docs if you have special packaging requirements.
-
Introduced a mechanism to validate that the charm was built using the best charm crafting practices (see all analyzers and linters).
- this infrastructure is run automatically when packing the charm, aborting the process if problems are found (can be overruled with
--force
). - all linters and checkers can be called explicitly using the new
analyze
command (use--format=json
to produce a machine-consumable output). - these verifications can be explicitly ignored (see
analysis
key in the config).
- this infrastructure is run automatically when packing the charm, aborting the process if problems are found (can be overruled with
-
The packing procedure no longer includes all the project's files by default (see this forum post for further reference).
-
When packing charms in Charmcraft-driven LXD containers, perform additional validation of LXD configuration and user permissions to improve user experience.
-
Introduced
--destructive-mode
option to pack charm on host instead of using an LXD container (use with caution as this mode allows changes to system configuration). -
Fixed a regression when listing revisions and showing status for bundles.
Release 1.1.2
- Allow including resources when releasing charms directly in the upload command.
Release 1.1.1
- Save the resulting charm file in the current directory when packing
- Improved the
snapcraft.yaml
file to be able to build inarmhf
Release 1.1.0
-
The upload-resource command was improved for OCI Images
- they are now uploaded from the local Docker Repository
- related specification
-
The charm is now built in a LXD container, allowing the process to be done in a different base than the host
- the Charmcraft config now has a
bases
entry to express where the charm can be built and where it can run (short and long forms supported) - this configuration is optional for now but will be mandatory in the future (see deprecation notices DN02 and DN03)
- use of bases enables building in LXD
- the Charm resulting file name reflects where it was built
- Charmcraft now uses the
craft_providers
library, allowing in the future to build using Multipass instances - added a
clean
command to remove any structures that were used for the building - related specification)
- the Charmcraft config now has a
-
The
status
command output now includes a column for the charm bases- it shows the base name, channel and architecture
- related specification
-
The keywords in Charmcraft configuration are now separated using dashes (see deprecation notice DN01)
-
Some UX improvements
- filepaths are shown in a consistent style
- some help messages adjusted
- better error messages when the
charmcraft.yaml
config has issues
-
The Charmcraft snap is now
classic
confined- the snap is the recommended way to install and use the tool
-
Other internal Charmcraft improvements
- Python 3.6 and greater is now supported
- started to use black for consistent and automated formatting
- refactored how the project's dependencies are handled
- migrated to use pydantic in the configuration manager
Release 1.0.0
- Provide the building charms functionality through the pack command.
0.10.1
- Enhanced charm template generated by 'init' to use the new sidecar-pattern
Release 0.10.0
-
Support for oci-image resources.
-
Improvements to the 'init' command, among others: links to docs, more robust base project, better docstrings and comments.
-
Alert if
README.md
not included in a packed bundle (as it is required for deploying). -
Produce a
manifest.yaml
with the building context of the charm or bundle. -
Fix the handling of charms with dashes in the name when dealing with libraries.
Release 0.9.0
-
Full support for Charm Bundles (register, upload, release, etc.); check the tutorial
-
Full support for
file
type Resources (upload, attach them to a charm release, etc.); check the tutorial -
Point to external documentation in the docs left by
init
command
Release 0.8.1
-
Renamed back to
status
the command to show channels and released revisions in Charmhub. -
Show to the user the returned error in case of rejected upload.
-
Improved/updated the Bash Completion file according to current commands and their options.
Release 0.8.0
-
Charmcraft works now with the PRODUCTION store by default (can be changed in the configuration).
-
Configuration is now read from the
charmcraft.yaml
file, which is mandatory for bundles-related commands (optional for the rest by now, will be mandatory in the future for all commands). -
The User Agent sent to Charmhub is more complete and identifies better the Charmcraft client.
-
Added all current commands and their options to the Bash completion file.
-
Improvements in some help messages and
init
resulting files.