Bug#964550: clang-10: Version handling/naming for RC releases

Sedat Dilek sedat.dilek at gmail.com
Fri Jul 10 12:06:11 BST 2020

On Thu, Jul 9, 2020 at 11:17 AM Sylvestre Ledru <sylvestre at debian.org> wrote:
> Le 09/07/2020 à 11:01, Sedat Dilek a écrit :
> > On Wed, Jul 8, 2020 at 5:32 PM Sylvestre Ledru <sylvestre at debian.org> wrote:
> >>
> >>> As pointed out by Sylvestre in [3] he is trying to keep packages in the Debian repositories
> >>> in balance with <apt.llvm.org>.
> >>>
> >>> As I am interested in having the best packages in Debian I am reporting here not upstream.
> >>
> >> As I said in the llvm bt, it is very unlikely to happen. This isn't a big deal and it doesn't break any tool :)
> >>
> >
> > Can you enlighten me what you mean by "balance"?
> > And the correlation with the version naming/handling you have chosen?
> It is tricky because of the situation between:
> * apt.llvm.org with three branches
> * stable packages (ex: 10.0)
> * rc packages (ex: 10.0.1 rc4)
> * snapshot from the VCS (ex: 11~++20200701093119+ffee8040534-1~exp1)
> And you can have llvm-toolchain-9 from Debian official, -10 for apt.llvm.org and -11 from Debian experimental.

Personally, I am to 99,9% that only experienced users try snapshot
packages (e.g. from <apt.llvm.org>).

There should be no guarantee all packages from several branches and
repositories work together.
What counts are the packages in the official Debian repositories.

I like your offer - or to be more precise - from the Debian LLVM team
- and try to keep them working together.

> I need to make sure that the expected behavior is what users are getting
> and that the upgrade path still works (upgrading from version x-1 to x).
> Changing this is always a lot of work as it requires synchronized uploads/updating scripts
> (not mentioning the potential regressions)

I like that to be able to have different (major) versions of
llvm-toolchains co-installable and switch via llvm-version-suffix.
Again, thanks for making this happen!

> Anyway, I am not sure to see what your point beside consistency in Debian (note that, AFAIK? there isn't any policy).
> I have been using that patterns since the svn => git upstream migration (it was similar with git).
> And at the end, Debian Stable only ships with clear versions like 10.0.1-12.

That's a pity - there does not exist clear rules for building from any VCS.
As demonstrated by my list of installed packages it differs.

I try to read between the lines (hocuspocus):

I check all available clang-10 packages:

root# LC_ALL=C apt-cache policy clang-10
  Installed: 1:10.0.1~+rc4-1
  Candidate: 1:10.0.1~+rc4-1
  Version table:
     1:10.0.1~++20200708124224+ef32c611aa2-1~exp1~20200707224820.197 99
         99 https://apt.llvm.org/unstable llvm-toolchain-10/main amd64 Packages
 *** 1:10.0.1~+rc4-1 100
         99 https://incoming.debian.org/debian-buildd
buildd-unstable/main amd64 Packages
         99 http://ftp.debian.org/debian unstable/main amd64 Packages
         99 https://deb.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status
     1:10.0.1~+rc2-1~exp1 99
         99 http://ftp.debian.org/debian experimental/main amd64 Packages
         99 https://deb.debian.org/debian experimental/main amd64 Packages
     1:10.0.0-4 500
        500 http://ftp.debian.org/debian testing/main amd64 Packages
        500 https://deb.debian.org/debian testing/main amd64 Packages

As you can see I - as an experienced Debian user - have set APT (pin)

Packages from <apt.llvm.org> are from my understanding from a "third
party" repository.
I respect this by setting appropriate APT prio.

As I want to have a "Debian/testing AMD64" system I treat packages
from Debian/unstable and Debian/experimental the same way.

I have to explicitly pass parameters like "-t $debian-branch" or "-t
llvm-toolchain-10" to install desired packages from repositories other
than Debian/testing AMD64.

Looking into my crystal-ball I guess you want by your "~+rc" and "~++"
prefixes trick to order the available installation-candidate(s)?

Again "~rcN" after an "upstream-version-string" is uncommon (but allowed).

BTW, I disagree with the VCS version-string handling:
Upstream-version-string should be "11.0.0" not "11" for snapshot
versions from Debian/experimental and <apt.llvm.org>/llvm-toolchain.

To clarify:
You are responsible for all the repositories - it is up to you.

Important for me:
The version-string should be exact telling me what was the (upstream)
base for the generated packages.

Just my €0,02.

- Sedat -

More information about the Pkg-llvm-team mailing list