diff --git a/common.mk b/common.mk index 8c006aaad..e4c9e28c3 100644 --- a/common.mk +++ b/common.mk @@ -154,7 +154,10 @@ lint-docs: ##- Lint the documentation ifneq ($(CI),) @echo ::group::$@ endif - uv run --extra docs sphinx-lint --max-line-length 88 --ignore docs/reference/commands --ignore docs/_build/ --enable all $(DOCS) + uv run --extra docs sphinx-lint --max-line-length 88 \ + --ignore docs/reference/commands --ignore docs/_build/ \ + --enable all $(DOCS) \ + -d missing-underscore-after-hyperlink,missing-space-in-hyperlink ifneq ($(CI),) @echo ::endgroup:: endif diff --git a/docs/index.rst b/docs/index.rst index 4652b4674..2333e9ae7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,6 +10,7 @@ Charmcraft tutorial/index howto/index reference/index + release-notes/index Charmcraft is a tool designed to simplify the creation, building, and sharing of a :external+juju:ref:`Juju charm `. diff --git a/docs/reference/changelog.rst b/docs/reference/changelog.rst index a5cb79654..c3b4e83b0 100644 --- a/docs/reference/changelog.rst +++ b/docs/reference/changelog.rst @@ -1,6 +1,9 @@ Changelog ********* +Newer releases have their own :doc:`/release-notes/index` pages. Please refer +to those. + .. release template: @@ -315,6 +318,7 @@ Bug fixes For a complete list of commits, see the `3.1.0`_ release on GitHub. +.. _release-3.0.0: 3.0.0 (2024-03-14) ------------------ @@ -342,6 +346,7 @@ For a complete list of commits, see the `3.0.0`_ release on GitHub. For a complete list of commits, see the `2.7.1`_ release on GitHub. +.. _release-2.7.0: 2.7.0 (2024-06-18) ------------------ diff --git a/docs/release-notes/charmcraft-3.4.0.rst b/docs/release-notes/charmcraft-3.4.0.rst new file mode 100644 index 000000000..9afad166a --- /dev/null +++ b/docs/release-notes/charmcraft-3.4.0.rst @@ -0,0 +1,150 @@ +Charmcraft 3.4 release notes +============================ + +3 February 2025 + +Learn about the new features, changes, and fixes introduced in Charmcraft 3.4. + + +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 `_. It +comes 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.4 brings the following features, integrations, and improvements. + + +``charmcraft promote`` command +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In previous releases, switching charm revisions between channels and re-releasing them +was a manual and time-consuming process that involved: + +1. Finding all charm revisions currently published on a given channel. +2. Finding the revisions of each resource attached to that charm revision on the + channel. +3. Releasing each of those charm revisions, with their appropriate resources, to a new + channel. + +Charmcraft 3.4 introduces the :ref:`ref_commands_promote` command, which promotes a +charm on Charmhub from one channel to another. The command runs through this procedure +on your behalf. + +If, for example, your charm supports three bases across two architectures, each with its +own resource revision, the ``promote`` command would automatically release all six +revisions to the new channel with the same resources. + + +Feature deprecations +-------------------- + +The following features are deprecated in Charmcraft 3.4 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 +remove support for it (`#1810 `_). +Windows users should begin preparing to migrate their workflows to `Windows Subsystem +for Linux `_. + + +CentOS 7 support +~~~~~~~~~~~~~~~~ + +CentOS 7 reached its `end of life +`_ on 30 June 2024. Charmcraft +3 will continue its current support for CentOS 7, but Charmcraft 4.0 won't support +CentOS 7 (`#1826 `_). + + +Bundle registration +~~~~~~~~~~~~~~~~~~~ + +New bundle registration `ceased on 1 November 2024 +`_ and the ``register-bundle`` command currently +returns an error. It will be removed in Charmcraft 4.0.0 (`#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 `_). +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 `_). No schedule has been +set yet for this change. + + +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 `_ + ``charmcraft clean`` does not clean all platforms for a charm. +- `#2012 `_ Charmcraft uses + ``/cache`` as the cache directory if snapd doesn't set ``SNAP_USER_COMMON`` +- `#1990 `_ Cannot stage + packages with Charmcraft + + +Fixed bugs and issues +--------------------- + +The following issues have been resolved in Charmcraft 3.4: + +- `#2081 `_ + ``charmcraft pack`` fails because ``libffi-dev`` is missing. +- `#2058 `_ Multi-base charm + uses the same LXD container for different bases + + +Contributors +------------ + +We would like to express a big thank you to all the people who contributed to +this release. + +:literalref:`@bepri`, +:literalref:`@dariuszd21`, +and :literalref:`@lengau` diff --git a/docs/release-notes/index.rst b/docs/release-notes/index.rst new file mode 100644 index 000000000..d4b58c771 --- /dev/null +++ b/docs/release-notes/index.rst @@ -0,0 +1,292 @@ +.. _release-notes: + +Release notes +============= + +This page lists the notes for past releases of Charmcraft, which summarise new features, +bug fixes and backwards-incompatible changes in each version. It also contains the +release and support policies for Charmcraft. + + +Current releases +---------------- + + +Charmcraft 3 +~~~~~~~~~~~~ + +- :doc:`Charmcraft 3.4 ` + + +Charmcraft 2 +~~~~~~~~~~~~ + +Charmcraft 2 is supported for older deployments and features. If you require a feature +that Charmcraft 3 doesn't support, please check the :ref:`3.0 breaking changes +` and, if your issue isn't listed as a breaking change, please `file a +bug report `_. + +- :ref:`Charmcraft 2.7.0 ` + + +Past releases +------------- + +.. + + ~~~~~~~~~~~~~~ + + - + - + - + +Older releases can be seen in the :doc:`/reference/changelog`. + + +.. _release-versioning: + +Release versioning +------------------ + +Charmcraft version naming follows the Semantic Versioning 2.0.0 scheme with +numbers for major, minor, and patch versions. + +.. list-table:: + :header-rows: 1 + + * - Version + - Example + - Significance + * - Major + - **3**.1.2 + - Apps: A change that drops support for operating systems or features. + * - Minor + - 3.\ **1**\ .2 + - A new feature within the major version. + * - Patch + - 3.1.\ **2** + - A bug fix within the major or minor version. + + +Long-term support +----------------- + +Charmcraft doesn't have long-term support (LTS) releases. However, we typically deliver +a compatibility release shortly after Ubuntu LTS releases to ensure continuity. +Charmcraft software bases are derived from Ubuntu LTS releases, and their development +keeps pace with the OS's new releases and support lifecycle. + +.. toctree:: + :hidden: + :maxdepth: 1 + :glob: + + * + + +.. release note template: + + Charmcraft 3.0 release notes + ============================ + + 15 October 2024 + + Learn about the new features, changes, and fixes introduced in Charmcraft 3.0. + + + 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 `_. It + comes 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.4 brings the following features, integrations, and improvements. + + + + ~~~~~~~~~~~~~~~~~~ + + + + +----------------------------------------+------------------------------+-----------------------------------------+ + | Type of change | Heading format | Example | + +========================================+==============================+=========================================+ + | New feature | | Snap deltas | + +----------------------------------------+------------------------------+-----------------------------------------+ + | Support for technology, or integration | Support for | Support for signed commits | + | | integration | Gnome integration | + +----------------------------------------+------------------------------+-----------------------------------------+ + | Improvement to existing feature | | Faster buildset queries | + | | Improved | Improved language of buildset queries | + +----------------------------------------+------------------------------+-----------------------------------------+ + | Other important update | | Mitigation for Heartbleed vulnerability | + +----------------------------------------+------------------------------+-----------------------------------------+ + + + + + + + + + Minor features + -------------- + + Charmcraft 2.0 brings the following minor changes. + + + + ~~~~~~~~~~~ + + + + + Backwards-incompatible changes + ------------------------------ + + The following changes are incompatible with previous versions of Charmcraft. + + + <"Removed" or "Disabled"> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + `_`` on the Ubuntu blog."> + + + Feature deprecations + -------------------- + + The following features are deprecated in Charmcraft 2.0: + + Deprecated + ~~~~~~~~~~~~~~~~~~~~~~ + + `_ on the Ubuntu blog."> + + + Scheduled feature deprecations + ------------------------------ + + + + The following features will be deprecated in Charmcraft : + + + + ~~~~~~~~~~~ + + `_ on the Ubuntu blog."> + + + Known issues + ------------ + + The following issues were reported and are scheduled to be fixed in upcoming + patch releases. + + See individual issue links for any mitigations. + + - `ID `_ + - `ID <link>`_ <Title> + + + Fixed bugs and issues + --------------------- + + The following issues have been resolved in Charmcraft 2.0: + + - `ID <link>`_ <Title> + - `ID <link>`_ <Title> + + + Contributors + ------------ + + We would like to express a big thank you to all the people who contributed to + this release. + + :literalref:`@alex<https://example.com/alex>`, + :literalref:`@blair<https://example.com/blair>`, + :literalref:`@cam<https://example.com/cam>`, + and :literalref:`@devin<https://example.com/devin>` diff --git a/docs/reuse/links.txt b/docs/reuse/links.txt index 2e426feaa..1b019870e 100644 --- a/docs/reuse/links.txt +++ b/docs/reuse/links.txt @@ -5,7 +5,8 @@ .. _`Craft-parts`: https://canonical-craft-parts.readthedocs-hosted.com .. _Discourse: https://discourse.charmhub.io/ .. _Docker: https://docs.docker.com/ -.. _Juju: https://juju.is +.. _issues: https://github.com/canonical/charmcraft/issues +.. _Juju: https://juju.is/docs .. _`feature request`: https://github.com/canonical/charmcraft/issues/new?assignees=&labels=Enhancement&projects=&template=task.yaml .. _`OCI archive format`: https://github.com/opencontainers/image-spec/blob/main/layer.md#distributable-format .. _OCI_image_spec: https://github.com/opencontainers/image-spec/blob/main/spec.md @@ -15,6 +16,8 @@ .. _Multipass: https://multipass.run/docs .. _`Open Container Initiative`: https://opencontainers.org/ .. _Rockcraft: https://documentation.ubuntu.com/rockcraft/ +.. _snapd: https://snapcraft.io/docs/installing-snapd +.. _Spread: https://github.com/canonical/spread .. _skopeo: https://github.com/containers/skopeo .. _Snapcraft: https://snapcraft.io/docs/snapcraft-overview