From: Till Kamppeter <till.kamppeter@gmail.com>
To: Michael Sweet <msweet@msweet.org>
Cc: OpenPrinting <printing-architecture@lists.linux.dev>,
rudransh.iitm@gmail.com,
Cristovao Cordeiro <cristovao.cordeiro@canonical.com>,
Soumyadeep Ghosh <soumyadeepghosh2004@zohomail.in>
Subject: Re: Merge repositories for CUPS Snap and CUPS OCI/Docker Container into the CUPS repo itself
Date: Sat, 21 Dec 2024 22:55:51 +0100 [thread overview]
Message-ID: <d2a4cbb1-eb0a-4e34-9ec3-a83fd8533a9a@gmail.com> (raw)
In-Reply-To: <8F866723-E2BF-4CC3-A3CA-646F33D7C947@msweet.org>
On 12/21/24 22:06, Michael Sweet wrote:
> We might as well. However, you should probably also document how you'll
manage the versioning since there are so many other components that get packaged
with CUPS to make a working snap... Doing MAJOR.MINOR.PATCH.BUILD versioning is
probably sufficient for the snap versioning but it would be nice for users to be
able to easily get a list of the bundled components and their versions as well.
The versioning is the same as distribution do when the package upstream
software. They take the upstream release number and add an integer number
separated by a dash, the package release number:
CUPS 2.4.12-1
When a new release of the package is done because of a new upstream release
being used, the new upstream release number is used and the package release
number is reset to 1.
When a new release of the package is done due to any other change, like a bug
fix in packaging, a backport of a selected upstream (security) bug fix, ... the
package release number gets bumped.
So it is practically the same as you suggest.
In our case with the CUPS Snap and also the CUPS Rock, we do practically the
same, and as the principal upstream component of these packages is CUPS, CUPS is
the donor of the upstream release number, so we have always the upstream release
number of the CUPS in use before the dash. On any other change, including
updates of the upstream releases of any of the other included upstream
components, like Ghostscript for example, we bump the package release number.
The Snap and the Rock have some maintenance automation:
- Update automation: Every 24 hours a GitHub workflow checks whether any of the
upstream components has issued a new release. If so, the instruction file for
building the package (snapcraft.yaml, rockcraft.yaml) gets updated to use the
new release for the package build and the updated file gets pushed into the GIT
repository.
- Versioning automation: On each commit, both manual commits and commits done by
the update automation, the version number is updated. If the commit has updated
to using a new upstream release of the principal component (CUPS in our case),
the upstream release number is updated appropriately and the package release
number is reset to 1. On any other change, the package release number is bumped.
The new version number is then put into the instruction file and the instruction
file committed. After that the auto builds for the Snap Store and the DockerHub
are triggered. So this way the auto-uploaded packages are clearly versioned.
The GitHub workflows for that are currently done by the Snap maintenance GitHub
action of the Ubuntu Desktop Team at Canonical:
https://github.com/ubuntu/desktop-snaps
It is planned to merge this action with the one of the Snapcrafters, a volunteer
organization snapping applications:
https://github.com/snapcrafters/ci
For an overview of component versions we should perhaps do a CI automation to
keep a list in README.md updated. This could be added to the mentioned GitHub
actions or its merger.
One would need to mark a spot in README.md, for example by a headline like
## Included components
and the automation should take all the version numbers which are under
observation by the update automation. The update automation could actually do
this step of generating the list and then not only update the package build
instruction files for using the new upstream versions but also update README.med
to have the current component version list.
So README.md will contain:
## Included components
- CUPS 2.4.12
- Ghostscript 10.04.1
- libcupsfilters 2.1.0
- libppd 2.1.0
- cups-filters 2.1.0
- ...
Rudra, Soumyadeep, could you add this automation?
I think, this way we will have a user-friendly and easy-to-maintain solution.
Till
next prev parent reply other threads:[~2024-12-21 21:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-20 23:55 Merge repositories for CUPS Snap and CUPS OCI/Docker Container into the CUPS repo itself Till Kamppeter
2024-12-21 21:06 ` Michael Sweet
2024-12-21 21:55 ` Till Kamppeter [this message]
2024-12-21 23:33 ` Michael Sweet
[not found] ` <CADmOQacnfVS5VR+dpudVt2NxgV_HG+K0in0mm-h5Hwe0nfF0cQ@mail.gmail.com>
2024-12-22 13:43 ` Michael Sweet
2024-12-22 14:03 ` Till Kamppeter
2024-12-22 14:44 ` Michael Sweet
2024-12-22 15:28 ` Till Kamppeter
[not found] ` <CADmOQafms3c=7FAzeX9cbvnPOYDcf9Xxe9QyKUjYEYTgJq3AJw@mail.gmail.com>
2024-12-22 15:33 ` Till Kamppeter
[not found] ` <CADmOQadkw-BY2vNqQtJDqi7TqGpHErVM29rkPfGAajiFVhGUiw@mail.gmail.com>
2024-12-22 15:40 ` Till Kamppeter
[not found] ` <CADmOQae0YNffRYsMZLLcwMY2GxFpThyfaq5Hm0rw=ke0pkuvZw@mail.gmail.com>
[not found] ` <CADmOQaf4hsBwrz-qkW_o8SZnfP1faD9ma4+T1FyA_GUYRgKhuQ@mail.gmail.com>
2025-01-13 17:55 ` Michael Sweet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d2a4cbb1-eb0a-4e34-9ec3-a83fd8533a9a@gmail.com \
--to=till.kamppeter@gmail.com \
--cc=cristovao.cordeiro@canonical.com \
--cc=msweet@msweet.org \
--cc=printing-architecture@lists.linux.dev \
--cc=rudransh.iitm@gmail.com \
--cc=soumyadeepghosh2004@zohomail.in \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.