move logic for build steps from buildmaster config to misc/build_helpers #1248
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1248
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
There is some near-duplicated code in the buildmaster's
TestFromEgg
andTestFromPrefixDir
classes (inbbsupport.py
). There is also duplication between source:setup.py, source:misc/build_helpers/run_trial.py, and some of the tests in source:src/allmydata/test/test_runner.py, for things like setting upPYTHONPATH
, getting the Tahoe-LAFS version, and checking that we are running code from the right directory.Code in the buildmaster is more difficult to debug than code in the Tahoe-LAFS distribution; changes require a buildmaster restart to take effect, and interfere with the reproducibility of builds. So we should simplify these classes by having them just call scripts (or a single script with different arguments) in source:misc/build_helpers.
The reason why the code that is already in the distribution isn't better-factored, is probably that in each case we need to run it before importing any non-stdlib modules. It seems like there should be some way to work around that.
From #1275, which was a duplicate:
Buildmaster config is a bad place to keep logic—almost nobody can see it except for a privileged few, and it tends to be ill-documented and ill-organized. Move the install-to-prefix step (below) and the test-from-prefix step (below) from buildmaster config into a script in the tahoe-lafs source tree. Also add a test to it that goes red if the install puts anything other than
allmydata
into the Python lib dir (currently the install putsbuildtest
into there, which is not intended and will be fixed as soon as we have a test of it).install-to-prefix:
example: http://tahoe-lafs.org/buildbot/builders/Kyle%20OpenBSD%20amd64/builds/24/steps/install-to-prefix/logs/stdio
test-from-prefix:
example: http://tahoe-lafs.org/buildbot/builders/Kyle%20OpenBSD%20amd64/builds/24/steps/test-from-prefixdir/logs/stdio
(Note: we also need to copy the in-source-tree buildstep script into zfec and pycryptopp source trees.)
refactor buildmaster Test classes and build_helper scriptsto move logic for build steps from buildmaster config to misc/build_helpersFrançois: want to work on this, this weekend? We could work on it together.
Replying to zooko:
My current priority is #755, but I'll be glad to work on this one as soon as #755 is fixed.
: have I mentioned recently that the buildbot config is way too big, and that things like this should be in a Makefile or a shell script or a helper program inside the source tree, so they can be updated at the same time?
Duplicate of #2049.
On second thought, #2049 doesn't really cover this (it's about where the packaging tests should live, not about where the subroutines used by those tests should live). We decided to reopen this.
Here is the set of packaging tests which are currently written into the buildmaster config and which ought to be moved into separate scripts:
Buildbot has been decommissioned.