3.1.0
Today we release Charmcraft 3.1.0! 🎉
New Features
To begin with, we have some new documentation. The primary documentation for using Charmcraft is still in the Charm SDK Documentation, but thinks like command references are in this charmcraft-specific documentation.
- Charmcraft has a new
fetch-libs
command, which, when combined with acharmlibks
key incharmcraft.yaml
, allows the automatic fetching and updating of multiple charm libraries. - The new, experimental
test
command is also included in Charmcraft 3.1. Please have a go with it. Documentation is fairly minimal right now, as the implementation is still in flux. - OCI image resource uploads now use skopeo to upload images. Most notably, this means you can enter any skopeo-supported containers-transports URL to upload an OCI container to Charmhub.
- New features to experimental extensions:
django-framework
andflask-framework
. These are designed to work with rocks, for example, rocks with the flask-framework extension. - New releases are automatically published to PyPI (thanks @bittner)!
Bugfixes:
- flask-framework charms now automatically include the
rustup
snap - Symlinked directories are correctly included in charms (previously only symlinked files worked).
- Fixed a crash when using the
framework
linter with thereactive
plugin - ... and several more!
What's Changed
- build(deps): update dependencies for 2.5 branch by @lengau in #1494
- test(spread): disable centos spread test by @lengau in #1502
- test(spread): replace lunar test with mantic by @lengau in #1499
- fix: move bundle extension to a function by @lengau in #1608
- chore(deps): update dependency craft-providers to v1.23.1 by @renovate in #1610
- ci(spread): rebalance spread runners by @lengau in #1611
- chore(deps): Update dependencies for Jammy by @bittner in #1612
- Add the
flask-framework
extension by @weiiwang01 in #1582 - feat: load bundle and metadata yaml in application by @lengau in #1613
- feat: add config and actions processing to _extra_yaml_transform by @lengau in #1615
- style(typing): enable most disabled pyright checks by @lengau in #1614
- chore(deps): update internal packages by @renovate in #1617
- fix: use charmcraft package version by @lengau in #1619
- fix: add default charm part in flask-framework by @weiiwang01 in #1620
- fix: reorganise charmcraft.yaml preprocessing by @lengau in #1622
- feat(config): support
type:secret
in config.options by @tonyandrewmeyer in #1625 - ci: move remote-build tests to weekly job by @lengau in #1632
- remove experimental flag for flask-framework extension by @jdkandersson in #1629
- chore(deps): update internal packages by @renovate in #1631
- chore(deps): update dependency pytest-cov to v5 by @renovate in #1618
- feat(config): support
type:secret
in config.options by @tonyandrewmeyer in #1623 - build(deps): bump internal libraries by @lengau in #1641
- fix: warning deprecated prime use by @syu-w in #1642
- chore(deps): update dependency idna to v3.7 [security] by @renovate in #1644
- chore(deps): update dependency protobuf to v5 by @renovate in #1639
- chore(deps): update dependency typing_extensions to v4.11.0 by @renovate in #1637
- chore(deps): update dependency zipp to v3.18.1 by @renovate in #1645
- chore(deps): update dependency importlib_metadata to v7.1.0 by @renovate in #1646
- chore: enable riscv64 for 2.x by @lengau in #1651
- chore(deps): update dependency setuptools to v69.5.1 by @renovate in #1649
- chore(deps): update dependency referencing to v0.34.0 by @renovate in #1648
- chore(deps): update dependency craft-application to v2.5.0 by @renovate in #1661
- style: autoformat to fix for ruff 0.4 by @lengau in #1662
- refactor: remove unused fetch-lib command by @lengau in #1663
- feat: add fetch-libs command by @lengau in #1665
- fix: only keep metadata.yaml for reactive charms by @lengau in #1666
- feat: add test command and templates by @cmatsuoka in #1660
- fix: make tox tests succeed by @lengau in #1674
- fix: fix login crash by @lengau in #1673
- chore(deps): update dependency jaraco.classes to v3.4.0 by @renovate in #1647
- build(deps): update all dependencies by @lengau in #1675
- ci: enable merge groups for CI by @lengau in #1676
- ci: enable codeQL on main by @lengau in #1677
- ci: remove cla-check from merge groups by @lengau in #1679
- chore(deps): update dependency craft-application to v2.7.0 by @renovate in #1669
- ci: no-op step for cla-check if in merge group by @lengau in #1682
- ci: use the correct tags for large spread runs by @lengau in #1628
- ci: update .jira_sync_config.yaml by @sergiusens in #1688
- chore(deps): update dependency craft-parts to v1.31.0 by @renovate in #1690
- fix(test): parse test command arguments by @cmatsuoka in #1686
- ci: bump priority for reactive tests by @lengau in #1678
- chore(deps): update bugfixes by @renovate in #1694
- chore: explicitly use the 'check' command to avoid ruff warning about it by @tonyandrewmeyer in #1683
- build: update pyright to 1.1.366 by @lengau in #1703
- fix: make fetch-libs + underscores work by @lengau in #1701
- feat: upload OCI image resources with skopeo by @lengau in #1696
- test: extend timeout for some spread tests by @lengau in #1705
- fix: allow fetch-libs to work without logging in by @lengau in #1702
- feat: backport rock upload to charmcraft 2.x by @lengau in #1708
- craft-application migration cleanup: pack command by @lengau in #1704
- feat: django-framework extension by @jdkandersson in #1655
- chore(deps): update dependency certifi to v2024.6.2 by @renovate in #1695
- Automate publishing Python package on PyPI by @bittner in #1580
- feat: add basic sphinx docs by @lengau in #1711
- feat: flask and django, update to paas-app-charmer 1.0.3 by @javierdelapuente in #1691
- feat: upgrade minimum pip version by @lengau in #1716
- Three changes by @lengau in #1731
- chore(deps): update dependency setuptools to v70 [security] by @renovate in #1726
- chore(ci): multiple build fixes for macos by @lengau in #1725
- chore(deps): update dependency zipp to v3.19.1 [security] by @renovate in #1724
- Flask extension. Allow charm-libs to be extended by the user by @javierdelapuente in #1718
- chore(deps): update dependency certifi to v2024.7.4 [security] by @renovate in #1720
- fix: backport pip version update to 2.x by @lengau in #1723
- fix(store): use the correct regex for skopeo paths by @lengau in #1734
- fix(flask): include cargo build-dep by @lengau in #1730
- style: fix linting for ruff 0.5 by @lengau in #1737
- build(ci): publish to correct branch from merge Q by @lengau in #1735
- fix(ci): fix merge event in tests by @lengau in #1738
- fix: fix some edge cases with resource uploads by @lengau in #1736
- test: add a more complex platform example in spread by @lengau in #1699
- fix(builder)!: in strict mode, don't install deps by @lengau in #1728
- chore(ci): simplify snap publish branch on merge by @lengau in #1739
- chore: update to craft-application 3 by @lengau in #1729
- fix(pip): set
--no-binary=:all:
if possible by @lengau in #1740 - chore(deps): update dependency craft-archives to v1.2.0 by @renovate in #1714
- fix(store): fall back to ephemeral keyring by @lengau in #1741
- chore: merge hotfix/2.7 into main by @lengau in #1742
- fix(builder)!: remove single-step non-strict install by @lengau in #1727
- fix(zip): include linked directories in created zips by @lengau in #1745
- fix(tests): remove Mantic base by @lengau in #1749
- fix(flask): use rustup snap by @lengau in #1744
- fix(linters): fix Framework linter crash by @lengau in #1746
- fix(charm_builder): de-duplicate installed pkgs by @lengau in #1750
- fix: ensure flask-framework extension gets a default rust version by @jdkandersson in #1751
New Contributors
- @bittner made their first contribution in #1612
- @tonyandrewmeyer made their first contribution in #1625
- @javierdelapuente made their first contribution in #1691
Full Changelog: 3.0.0...3.1.0
What's Changed
- build(deps): update dependencies for 2.5 branch by @lengau in #1494
- test(spread): disable centos spread test by @lengau in #1502
- test(spread): replace lunar test with mantic by @lengau in #1499
- fix: move bundle extension to a function by @lengau in #1608
- chore(deps): update dependency craft-providers to v1.23.1 by @renovate in #1610
- ci(spread): rebalance spread runners by @lengau in #1611
- chore(deps): Update dependencies for Jammy by @bittner in #1612
- Add the
flask-framework
extension by @weiiwang01 in #1582 - feat: load bundle and metadata yaml in application by @lengau in #1613
- feat: add config and actions processing to _extra_yaml_transform by @lengau in #1615
- style(typing): enable most disabled pyright checks by @lengau in #1614
- chore(deps): update internal packages by @renovate in #1617
- fix: use charmcraft package version by @lengau in #1619
- fix: add default charm part in flask-framework by @weiiwang01 in #1620
- fix: reorganise charmcraft.yaml preprocessing by @lengau in #1622
- feat(config): support
type:secret
in config.options by @tonyandrewmeyer in #1625 - ci: move remote-build tests to weekly job by @lengau in #1632
- remove experimental flag for flask-framework extension by @jdkandersson in #1629
- chore(deps): update internal packages by @renovate in #1631
- chore(deps): update dependency pytest-cov to v5 by @renovate in #1618
- feat(config): support
type:secret
in config.options by @tonyandrewmeyer in #1623 - build(deps): bump internal libraries by @lengau in #1641
- fix: warning deprecated prime use by @syu-w in #1642
- chore(deps): update dependency idna to v3.7 [security] by @renovate in #1644
- chore(deps): update dependency protobuf to v5 by @renovate in #1639
- chore(deps): update dependency typing_extensions to v4.11.0 by @renovate in #1637
- chore(deps): update dependency zipp to v3.18.1 by @renovate in #1645
- chore(deps): update dependency importlib_metadata to v7.1.0 by @renovate in #1646
- chore: enable riscv64 for 2.x by @lengau in #1651
- chore(deps): update dependency setuptools to v69.5.1 by @renovate in #1649
- chore(deps): update dependency referencing to v0.34.0 by @renovate in #1648
- chore(deps): update dependency craft-application to v2.5.0 by @renovate in #1661
- style: autoformat to fix for ruff 0.4 by @lengau in #1662
- refactor: remove unused fetch-lib command by @lengau in #1663
- feat: add fetch-libs command by @lengau in #1665
- fix: only keep metadata.yaml for reactive charms by @lengau in #1666
- feat: add test command and templates by @cmatsuoka in #1660
- fix: make tox tests succeed by @lengau in #1674
- fix: fix login crash by @lengau in #1673
- chore(deps): update dependency jaraco.classes to v3.4.0 by @renovate in #1647
- build(deps): update all dependencies by @lengau in #1675
- ci: enable merge groups for CI by @lengau in #1676
- ci: enable codeQL on main by @lengau in #1677
- ci: remove cla-check from merge groups by @lengau in #1679
- chore(deps): update dependency craft-application to v2.7.0 by @renovate in #1669
- ci: no-op step for cla-check if in merge group by @lengau in #1682
- ci: use the correct tags for large spread runs by @lengau in #1628
- ci: update .jira_sync_config.yaml by @sergiusens in #1688
- chore(deps): update dependency craft-parts to v1.31.0 by @renovate in #1690
- fix(test): parse test command arguments by @cmatsuoka in #1686
- ci: bump priority for reactive tests by @lengau in #1678
- chore(deps): update bugfixes by @renovate in #1694
- chore: explicitly use the 'check' command to avoid ruff warning about it by @tonyandrewmeyer in #1683
- build: update pyright to 1.1.366 by @lengau in #1703
- fix: make fetch-libs + underscores work by @lengau in #1701
- feat: upload OCI image resources with skopeo by @lengau in #1696
- test: extend timeout for some spread tests by @lengau in #1705
- fix: allow fetch-libs to work without logging in by @lengau in #1702
- feat: backport rock upload to charmcraft 2.x by @lengau in #1708
- craft-application migration cleanup: pack command by @lengau in #1704
- feat: django-framework extension by @jdkandersson in #1655
- chore(deps): update dependency certifi to v2024.6.2 by @renovate in #1695
- Automate publishing Python package on PyPI by @bittner in #1580
- feat: add basic sphinx docs by @lengau in #1711
- feat: flask and django, update to paas-app-charmer 1.0.3 by @javierdelapuente in #1691
- feat: upgrade minimum pip version by @lengau in #1716
- Three changes by @lengau in #1731
- chore(deps): update dependency setuptools to v70 [security] by @renovate in #1726
- chore(ci): multiple build fixes for macos by @lengau in #1725
- chore(deps): update dependency zipp to v3.19.1 [security] by @renovate in #1724
- Flask extension. Allow charm-libs to be extended by the user by @javierdelapuente in #1718
- chore(deps): update dependency certifi to v2024.7.4 [security] by @renovate in #1720
- fix: backport pip version update to 2.x by @lengau in #1723
- fix(store): use the correct regex for skopeo paths by @lengau in #1734
- fix(flask): include cargo build-dep by @lengau in #1730
- style: fix linting for ruff 0.5 by @lengau in #1737
- build(ci): publish to correct branch from merge Q by @lengau in #1735
- fix(ci): fix merge event in tests by @lengau in #1738
- fix: fix some edge cases with resource uploads by @lengau in #1736
- test: add a more complex platform example in spread by @lengau in #1699
- fix(builder)!: in strict mode, don't install deps by @lengau in #1728
- chore(ci): simplify snap publish branch on merge by @lengau in #1739
- chore: update to craft-application 3 by @lengau in #1729
- fix(pip): set
--no-binary=:all:
if possible by @lengau in #1740 - chore(deps): update dependency craft-archives to v1.2.0 by @renovate in #1714
- fix(store): fall back to ephemeral keyring by @lengau in #1741
- chore: merge hotfix/2.7 into main by @lengau in #1742
- fix(builder)!: remove single-step non-strict install by @lengau in #1727
- fix(zip): include linked directories in created zips by @lengau in #1745
- fix(tests): remove Mantic base by @lengau in #1749
- fix(flask): use rustup snap by @lengau in #1744
- fix(linters): fix Framework linter crash by @lengau in #1746
- fix(charm_builder): de-duplicate installed pkgs by @lengau in #1750
- fix: ensure flask-framework extension gets a default rust version by @jdkandersson in #1751
New Contributors
- @bittner made their first contribution in #1612
- @tonyandrewmeyer made their first contribution in #1625
- @javierdelapuente made their first contribution in #1691
Full Changelog: 3.0.0...3.1.0