Charmcraft 3.5 release notes
============================

26 May 2025

Learn about the new features, changes, and fixes introduced in Charmcraft 3.5.


Requirements and compatibility
------------------------------

For development and testing, Charmcraft requires a host with a minimum of 4GB RAM
running a Linux distribution compatible with systemd.

All versions of Charmcraft require the following software:

- systemd
- `snapd`_
- Either `LXD`_ or `Multipass`_

We recommend you install the `Charmcraft snap <https://snapcraft.io/charmcraft>`_. It
comes bundled with all its dependencies.

Non-snap installations of Charmcraft have the following dependencies:

- Python 3.10 or higher
- libgit2 1.7
- `skopeo`_
- `Spread`_


What's new
----------

Charmcraft 3.5 brings the following features, integrations, and improvements.


Updated ``init`` templates
~~~~~~~~~~~~~~~~~~~~~~~~~~

The templates generated by ``charmcraft init`` now use the new
:doc:`/reference/platforms` format.


Editor Integration
~~~~~~~~~~~~~~~~~~

The `JSON Schema Store <https://schemastore.org>`_ now includes a schema for the
:ref:`charmcraft-yaml-file`.

If your IDE supports fetching JSON schemas from the store, you can now load the latest.

.. image:: https://assets.ubuntu.com/v1/963f71da-json-schema-example-light.webp
   :width: 451
   :alt: A charmcraft.yaml file open in kate editor showing a hint for the parts key.


Documentation improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~

Many people have made countless improvements to Charmcraft's documentation this
release, from small changes like
`consistent terminology usage <https://github.com/canonical/charmcraft/pull/2169>`_ to
`major rewrites of tutorials <https://github.com/canonical/charmcraft/pull/2085>`_.


Feature deprecations
--------------------

The following features are deprecated in Charmcraft 3.5 and will be removed in
Charmcraft 4.0.


Windows support
~~~~~~~~~~~~~~~

Charmcraft 3.0 deprecated support for Windows, and the upcoming 4.0 major release will
cease it (`#1810 <https://github.com/canonical/charmcraft/issues/1810>`_).
Windows users should begin preparing to migrate their workflows to `Windows Subsystem
for Linux <https://ubuntu.com/desktop/wsl>`_.


CentOS 7 support
~~~~~~~~~~~~~~~~

CentOS 7 reached its `end of life
<https://www.redhat.com/en/topics/linux/centos-linux-eol>`_ on 30 June 2024. Charmcraft
3.0 will continue supporting it, but Charmcraft 4.0 will cease support for it
(`#1826 <https://github.com/canonical/charmcraft/issues/1826>`_).


Bundle registration
~~~~~~~~~~~~~~~~~~~

New bundle registration `ceased on 1 November 2024
<https://discourse.charmhub.io/t/15344>`_ and the ``register-bundle`` command currently
returns an error. It will be removed in Charmcraft 4.0 (`#1858
<https://github.com/canonical/charmcraft/issues/1858>`_).


Scheduled feature deprecations
------------------------------

The following features will be deprecated in Charmcraft 4.0.


Bundle management
~~~~~~~~~~~~~~~~~

In line with the phasing out of bundles, Charmcraft 4.0 will deprecate all bundle
management commands (`#2113 <https://github.com/canonical/charmcraft/issues/2113>`_).
The schedule for removing this feature hasn't been set yet.


``bundle`` plugin
~~~~~~~~~~~~~~~~~

In line with the phasing out of bundles, Charmcraft 4.0 will deprecate the bundle plugin
(`#2114 <https://github.com/canonical/charmcraft/issues/2114>`_). No schedule has been
set for this change yet.


Known issues
------------

The following issues were reported and are scheduled to be fixed in upcoming
patch releases.

See individual issue links for any mitigations.

- `#2078 <https://github.com/canonical/charmcraft/issues/2078>`_
  ``charmcraft clean`` does not clean all platforms for a charm.
- `#1990 <https://github.com/canonical/charmcraft/issues/1990>`_ Cannot stage
  packages with Charmcraft


Fixed bugs and issues
---------------------

Charmcraft 3.5.1
~~~~~~~~~~~~~~~~

- `#2310 <https://github.com/canonical/charmcraft/issues/2310>`_ Can't build
  Charmcraft snap.
- `#2311 <https://github.com/canonical/charmcraft/issues/2311>`_ Not all 12-factor
  profiles are listed in ``charmcraft help init``.
- `#2309 <https://github.com/canonical/charmcraft/issues/2309>`_ Default unit tests
  in the Kubernetes profile are inconsistent.
- `#2327 <https://github.com/canonical/charmcraft/issues/2327>`_ Some documentation
  links are broken.
- `#2322 <https://github.com/canonical/charmcraft/issues/2322>`_ Documentation is
  missing a **Contribute to this page** button.
- `#2323 <https://github.com/canonical/charmcraft/issues/2323>`_ Documentation is
  missing a sitemap.

Charmcraft 3.5.2
~~~~~~~~~~~~~~~~

- `#2077 <https://github.com/canonical/charmcraft/issues/2077>`_ Internal error when
  uploading OCI image resources.

Charmcraft 3.5.3
~~~~~~~~~~~~~~~~

- Incorrect container name when running ``charmcraft init`` with the default profile.
- Some rust dependencies no longer build correctly for Python 3.8. The ``charm`` plugin
  now adds `constraints <https://github.com/canonical/charmcraft/commit/5fb3f0a>`_
  for these dependencies.

Contributors
------------

We would like to express a big thank you to all the people who contributed to
this release:

:literalref:`@alithethird<https://github.com/alithethird>`,
:literalref:`@bepri<https://github.com/bepri>`,
:literalref:`@erinecon<https://github.com/erinecon>`,
:literalref:`@evildmp<https://github.com/evildmp>`,
:literalref:`@jahn-junior<https://github.com/jahn-junior>`,
:literalref:`@javierdelapuente<https://github.com/javierdelapuente>`,
:literalref:`@jdkandersson<https://github.com/jdkandersson>`,
:literalref:`@lengau<https://launchpad.net/~lengau>`,
:literalref:`@medubelko<https://github.com/medubelko>`,
:literalref:`@tmihoc<https://github.com/tmihoc>` and
:literalref:`@weiiwang01<https://github.com/weiiwang01>`
