Release process
===============
Prerequisites
*************
- In order to promote a Snap release from ``edge`` to ``stable``,
you need publishing access, which you can get from Colin Watson.
How to create a new release
***************************
- create an MP with a release commit, with updated version number in
``setup.cfg`` and updated version number and release date in ``NEWS.rst``,
following the `semver `_ recommendations
- once the MP has been merged to the ``main`` branch,
a `Launchpad recipe
`_
automatically builds and publishes Snap packages to the ``edge`` channel
- once the Snaps have been published,
update your local Snap installation
.. code:: bash
snap refresh --edge lpci
- in order to make sure nothing is broken, run
.. code:: bash
lpci -v
- go to the `Releases page `_
of the Snap store to promote the release from ``edge`` to ``stable``
- click on the cog icon next to ``latest/edge``
- select ``Promote/close``
- click on ``Promote to: latest/stable``
- finally, hit the ``Save`` button in the top right corner to apply the changes
- go to the project's `Read the Docs `_
site and trigger ``Build version`` to get the updated documentation online
Some additional information
***************************
- It is best practice to use ``dev0`` version's suffix defining a new
development version into ``setup.cfg`` after a release,
so when building that version for testing, it does not show the old version number.
Once we want to release, we remove the suffix, to indicate that
this is no longer a development version.
- members of the Launchpad team can use the ``Request builds`` button
on that recipe if they need updated builds urgently
- lpci currently only makes use of ``stable`` and ``edge``,
though this may change in future if necessary
- most users, as well as default CI builds in Launchpad,
should use the stable channel rather than the auto-built ``edge`` channel
Rebuilding for security fixes
*****************************
We often receive a notification from the Snap Store about the ``lpci`` snap being
built with packages from the Ubuntu archive that have since received security
updates.
To address this, we have to rebuild the snap from the `Launchpad recipe
`_ page by requesting new builds. Use
the default options that are pre-selected when doing this.
Once the builds have been completed and published to the Snap Store, follow the steps
in the ``How to create a new release`` section above, starting from the 3rd step about
refreshing the snap from the ``edge`` channel, to test and publish the updated snap
package.