#4133 new defect

fix tahoe packaging

Reported by: meejah Owned by:
Priority: normal Milestone: undecided
Component: unknown Version: n/a
Keywords: Cc:
Launchpad Bug:

Description

The current packaging has all three configuration options (pyproject.toml, setup.py and setup.cfg) as well as a bunch of custom version handling code in setup.py.

In two thousand and twenty four surely we can do packaging with configuration only, finally, and not have any Python code run.

Change History (3)

comment:1 Changed at 2024-12-03T18:24:47Z by blaisep

Jeff and I are on board with this.

comment:2 Changed at 2024-12-12T10:04:31Z by btlogy

So, lets recap the current situation after having merged #1395:

Nix on CircleCI Docker runner

  • the builders were failing after as the did before because of the Cachix issue described in ticket:4134
  • the builders previously fixed in PR#1403 are now failing again because they still have to be adapted to the new hatch build system.
  • we know how to build the package with hatch, but we are still missing a way to pass allmydata.test.test_client.Basic.test_versions.

=> WiP in LAfork/PR#12 and PR#1403

Other linux on CircleCI Docker runner

  • the builders that were left (based on debian-11, ubuntu-20.04 and ubuntu-22.4) can setup the new resulting virtual-environment with hatch build and unit test the code just as they did before (with the well known flakiness described in ticket:4126).
  • however, those same builders would not be able to complete the create-virtualenv.sh w/o new system dependencies introduced by hatch (gpg module requires gpgme devel package): see ticket:4143 and RP#1409 which should cover the new requirements.
  • we've also uncovered a possible problem with the newer images we were planning to built on (debian-12 and ubuntu-24.04): gpgme-config is a tool required for tahoe-lafs[build] part which seems to have been removed from the gpgme package v1.18.0 provided in those new images: more details from this comment.

=> We may want to investigate and report this bug upstream (if confirmed). Or we might just remove the need for this new dependency on gpgme as it is only needed to sign wheels (which we do not do on CI today).

Apparently, this has already been proposed by meejah in c8db39e. Though I do not thing this commit belong to PR#1410 which focuses on Python 3.8 being EOL (ticket:4131).

Other native runners on CircleCI and GitHub

  • packaging, unit and integration tests + coverage: all those seem to do fine with hatch build system.

=> Nothing else to do there.

comment:3 Changed at 2024-12-12T12:47:06Z by btlogy

I've also found 2 lines referring to setup.py which we may want to adapt post hatch:

  • Makefile:21: SOURCES=src/allmydata static misc setup.py
  • integration/conftest.py:343: # XXX yuck! should add a setup.py to chutney so we can at least...
Note: See TracTickets for help on using tickets.