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