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

AltStyle によって変換されたページ (->オリジナル) /