Friday 1 July 2022

Re: +1 Maintenance Report

On Fri, Jul 01, 2022 at 11:34:13AM -0500, William Wilson wrote:
> Greetings ubuntu-devel,
>
> This week I was on +1 maintenance and I noticed an odd circular dependency
> between two packages.
>
> - Package golang-github-jackc-pgtype is in NEW and is dependency wait on
> golang-github-jackc-pgx-v4-dev.
> - Package golang-github-jackc-pgx-v4-dev is a new binary package to be
> built from src:golang-github-jackc-pgx as it migrates from major version v3
> to v4.
> - src:golang-github-jackc-pgx can not build any v4 binaries without
> golang-github-jackc-pgtype-dev, which is built from
> src:golang-github-jackc-pgtype
>
>
> The TL;DR of this is that src:golang-github-jackc-pgtype cannot build
> without binaries from src:golang-github-jackc-pgx, which cannot build
> without binaries from src:golang-github-jackc-pgtype, and thus there is a
> circular dependency.
>
> Are there any methods for dealing with this type of circular dependency? In
> Debian I can see they did a binary-only upload to fix this, but as far as I
> know there is no such thing in Ubuntu.

Right, that's not generally an available option for us. The two
approaches I've had success with are a) bypassing test-during-build, and
b) bootstrapping from earlier versions. Towards the end of this page is
a section on handling circular dependencies that explain these two:

https://github.com/canonical/ubuntu-maintainers-handbook/blob/main/ProposedMigration.md1

In this case, it doesn't look like the dependency is due to testing so
option (b) may be worth looking at. It appears that g-g-j-pgtype
used to depend on g-g-j-pgx-dev, at version 1.10.0-3, which is currently
available in kinetic.

So, I think the bootstrap solution might be:

1. Verify that g-g-j-pgtype (1.10.0-3) actually does build
successfully against g-g-j-pgx-dev (3.6.2-2). (This is probably
best to verify in a PPA.) If so, then...

2. Request an Archive Admin to delete from -proposed:
- golang-github-jackc-pgtype (1.10.0-4) source & binary
- golang-github-jackc-pgx (4.15.0-4) source & binary

3. Prepare and upload g-g-j-pgtype (1.10.0-3), and verify it
builds ok. Then proceed with syncpackage on both packages to pull
in the newer versions.

If step #1 does *not* work, then the problem is more complex. It might
be worth checking in with the Debian maintainer for ideas at that point.

Bryce

> I briefly thought about combining the packages, but that is not idea
> for a few reasons:
>
> 1. It breaks our golang-github-<username>-<repo> packaging convention.
> 2. It would install possibly un-needed source code on people's machines
> if they install the combined package but really only needed one.
>
> Now for the report of things I was able to solve: I usually focus mainly on
> failed tests, but I noticed there were quite a few FTBFS packages, so I
> decided to focus on those.
>
> libdigidoc - openssl v3 related regression. This is fixed in Ubuntu and I
> have created a QA upload for Debian. This will be sponsored by ginggs.
>
> rinutils - filed https://launchpad.net/bugs/1980243 and
> https://bugs.debian.org/1014169 to explain that it needs new dependencies
> packaged
>
> golang-github-masterminds-sprig - I fixed a regression in this package
> which unblocked:
> * golang-step-crypto
> * golang-step-cli-utils
> * golang-github-smallstep-certificates
> Thanks to seb128 for helping shepherd some of these binary packages through
> the NEW queue
>
> golang-oras-oras-go - Fixed a regression in Ubuntu and forwarded to Debian
>
> golang-mongodb-mongo-driver - Fixed a regression in Ubuntu (and forwarded
> to Debian) which unblocks:
> * golang-github-go-openapi-strfmt
> * golang-github-go-openapi-validate
> * golang-github-go-openapi-runtime
>
> golang-github-openshift-imagebuilder: Fixed regression in Ubuntu and
> forwarded to Debian
>
> scamper - Fixed a regression in Ubuntu and forwarded to Debian
>
> Thank you for reading,
>
> William 'jawn-smith' Wilson

> --
> ubuntu-devel mailing list
> ubuntu-devel@lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel