tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Proposal for binary package QA and upload process
I retract my previous proposal in the thread `python woes in netbsd-10
bulk builds' and replace it by the following, which doesn't have any
reference to bulk-test-essential and doesn't hinge on the definition
of `well-defined'.
Thoughts?
1. Change
/pub/pkgsrc/packages/NetBSD/<arch>/<version>/All
to be a 302 Found redirect (via .bzredirect) to
/pub/pkgsrc/packages/NetBSD/<arch>/<version>/<buildid>/All
where <buildid> is a pbulk-chosen build id, like 20240708.0436, and
<version> is (e.g.) 10.0 or 10.0_2024Q2 or whatever.
Once a build has been uploaded, no changes to any of the files in
it.
This way, we eliminate any issue of stale CDN caches that we've
constantly inflicted on ourselves by abusing symlinks, and any
issue of mixing stale packages that have begun to fail to build
with fresh packages that are incompatible.
=> To reduce storage on the server, we can use hard links via
`rsync --link-dest=../../<prevbuildid>/All'.
=> Or, to reduce storage and bandwidth, we can set up redirects for
packages that haven't changed so the CDN will continue to use
the old and still-valid cache.
(If this has to remain compatible with ftp to the same paths, we
can jiggle things around another way, like having
/pub/pkgsrc/packages/NetBSD/<arch>/<version>/All
be a symlink to ../build/<version>/<buildid>/All, and having
/pub/pkgsrc/packages/NetBSD/<arch>/<version>/.bzredirect
point to ../build/<version>/<buildid>.)
2. Include either
(a) the bulklog directory, or
(b) just the bulklog/meta/ directory, or
(c) at least a redirect to the bulk report
in the package upload at, say,
/pub/pkgsrc/packages/NetBSD/<arch>/<version>/<buildid>/bulklog
(It looks like bulklog/ is usually a few hundred megabytes, so it's
not that space-intensive on top of the whole bulk build. But maybe
just a redirect to the builder's own URL is good enough.)
This way, when examining a particular binary package set to see
what went wrong, it is easy to find the report for exactly that
build -- no need to guess at which message to pkgsrc-bulk might
correspond with which binary packages, if any.
3. Have a program to update the .bzredirect (and log the update) only
if it passes certain QA criteria, such as:
(a) All/pkg_summary.gz exists and is newer than all of the packages
(b) All/SHA512 exists and is newer than pkg_summary.gz
(c) bulklog/meta/success exists and each package listed is in All/
(d) bulklog/meta/report.bz2 exists is newer than All/SHA512
(e) a message to tech-pkg@ or similar asking which broken packages
are OK to leave broken leads, via an inevitable abstract policy
debate, nowhere, and a coin toss comes up heads because a
decision has to be made anyway
and otherwise sends an alert to a low-volume list that people pay
attention to.
4. Disable the cron job that regenerates pkg_summary, because the bulk
builders already generate it and this is an unnecessary potential
source of inconsistency.
Home |
Main Index |
Thread Index |
Old Index