Tags: mr-cal/charmcraft
Tags
- Several packing related improvements: - added two new properties to the default `charm` plugin: `charm-python-packages` to list Python packages to install from PyPI before installing requirements (these packages will be installed from sources and built locally at packing time) and `charm-binary-python-packages` very similar to the first one but allowing binary packages to be used - updated the `craft-parts` library to allow the packing of hook based charms (more information in the [Pack a hook based charm with Charmcraft](https://discourse.charmhub.io/t/pack-a-hook-based-charm-with-charmcraft/5329) tutorial). - introduced a new `reactive` plugin to pack charms using the legacy `charm` tool (see the [Pack a reactive based charm with Charmcraft](https://discourse.charmhub.io/t/pack-a-reactive-based-charm-with-charmcraft/5452) tutorial for more information) - created two new linters to verify that mandatory `actions.yaml` and `config.yaml` files exist and have a proper YAML format - the building process now ignores the `venv` directory in the project sources - The store-related functionality is now provided by the `craft-store` library, which uses a new authentication backend that allowed several benefits: - there is a new `--export` option in the `login` command to save the obtained credentials to a file - the content of that file can be given to `charmcraft` through a new `CHARMCRAFT_AUTH` environment variable, which allows for easier integration with non-interactive environments (e.g. a CI/CD system) - added options to the `login` command to restrict the obtained credentials (shorter time to live, applies to specific charms, etc.) - the `whoami` command now shows the credentials restrictions A combination of several of these new features can be found in the [How to authenticate Charmcraft in remote environments](https://discourse.charmhub.io/t/how-to-authenticate-charmcraft-in-remote-environments/5313) tutorial. - The `craft-cli` library handles the exposure of messages to the user, improving the UX in general, and in particular: - added a new `--trace` global option that sets the Emitter level in TRACE, for debugging purposes - now a proper progress bar is used where uploading files is involved in different commands - The `CHARMCRAFT_DEVELOPER` environment variable is no longer mandatory to run `charmcraft` from alternative sources (i.e. not from the snap)
Merge pull request canonical#619 from cmatsuoka/pin-cryptography setup, packaging: pin cryptography package and update dependencies
Merge pull request canonical#545 from facundobatista/improve-bases-co… …ntrol For bundles, do not show a deprecation message if 'bases' not included, and forbid its usage.
- 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](https://juju.is/docs/sdk/charmcraft-config), to simplify repetitive packing. - it opens a world of possibilities to pack charms and bundles: explore the [parts lifecycle docs](https://snapcraft.io/docs/parts-lifecycle) 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](https://juju.is/docs/sdk/charmcraft-analyze)). - 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](https://juju.is/docs/sdk/charmcraft-config)). - The packing procedure no longer includes all the project's files by default (see [this forum post](https://discourse.charmhub.io/t/charm-packing-will-not-include-all-files-by-default-anymore/4924) 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.
PreviousNext