Launchpad news, June 2017 – April 2018
Once again it’s been a while since we posted a general update, so here’s a changelog-style summary of what we’ve been up to. As usual, this changelog preserves a reasonable amount of technical detail, but I’ve omitted changes that were purely internal refactoring with no externally-visible effects.
Answers
- Hide questions on inactive projects from the results of non-pillar-specific searches
Blueprints
- Optimise the main query on Person:+upcomingwork (#1692120)
- Apply the spec privacy check on Person:+upcomingwork only to relevant specs (#1696519)
- Move base clauses for specification searches into a CTE to avoid slow sequential scans
Bugs
- Switch to HTTPS for CVE references
- Fix various failures to sync from Red Hat’s Bugzilla instance (#1678486)
Build farm
- Send the necessary set of archive signing keys to builders (#1626739)
- Hide the virt/nonvirt queue portlets on BuilderSet:+index if they’d be empty
- Add a feature flag which can be used to prevent dispatching any build under a given minimum score
- Write files fetched from builders to a temporary name, and only rename them into place on success
- Emit the build URL at the start of build logs
Code
- Fix crash when scanning a Git-based MP when we need to link a new RevisionAuthor to an existing Person (#1693543)
- Add source ref name to breadcrumbs for Git-based MPs; this gets the ref name into the page title, which makes it easier to find Git-based MPs in browser history
- Allow registry experts to delete recipes
- Explicitly mark the local apt archive for recipe builds as trusted (#1701826)
- Set +code as the default view on the code layer for (Person)DistributionSourcePackage
- Improve handling of branches with various kinds of partial data
- Add and export BranchMergeProposal.scheduleDiffUpdates (#483945)
- Move “Updating repository…” notice above the list of branches so that it’s harder to miss (#1745161)
- Upgrade to Pygments 2.2.0, including better formatting of *.md files (#1740903)
- Sort cancelled-before-starting recipe builds to the end of the build history (#746140)
- Clean up the {Branch,GitRef}:+register-merge UI slightly
- Optimise merge detection when the branch has no landing candidates
Infrastructure
- Use correct method separator in Allow headers (#1717682)
- Optimise lp_sitecustomize so that bin/py starts up more quickly
- Add a utility to make it easier to run Launchpad code inside lxc exec
- Convert lp-source-dependencies to git
- Remove the post-webservice-GET commit
- Convert build system to virtualenv and pip, unblocking many upgrades of dependencies
- Use eslint to lint JavaScript files
- Tidy up various minor problems in the top-level Makefile (#483782)
- Offering ECDSA or Ed25519 SSH keys to Launchpad SSH servers no longer causes a hang, although it still isn’t possible to use them for authentication (#830679)
- Reject SSH public keys that Twisted can’t load (#230144)
- Backport GPGME file descriptor handling improvements to fix timeouts importing GPG keys (#1753019)
- Improve OOPSes for jobs
- Switch the site-wide search to Bing Custom Search, since Google Site Search has been discontinued
- Don’t send email to direct recipients without active accounts
Registry
- Fix the privacy banner on PersonProduct pages
- Show GPG fingerprints rather than collidable short key IDs (#1576142)
- Fix PersonSet.getPrecachedPersonsFromIDs to handle teams with mailing lists
- Optimise front page, mainly by gathering more statistics periodically rather than on the fly
- Construct public keyserver links using HTTPS without an explicit port (#1739110)
- Fall back to emailing the team owner if the team has no admins (#1270141)
Snappy
- Log some useful information from authorising macaroons while uploading snaps to the store, to make it easier to diagnose problems
- Extract more useful error messages when snap store operations fail (#1650461, #1687068)
- Send mail rather than OOPSing if refreshing snap store upload macaroons fails (#1668368)
- Automatically retry snap store upload attempts that return 502 or 503
- Initialise git submodules in snap builds (#1694413)
- Make SnapStoreUploadJob retries go via celery and be much more responsive (#1689282)
- Run snap builds in LXD containers, allowing them to install snaps as build-dependencies
- Allow setting Snap.git_path directly on the webservice
- Batch snap listing views (#1722562)
- Fix AJAX update of snap builds table to handle all build statuses
- Set SNAPCRAFT_BUILD_INFO=1 to tell snapcraft to generate a manifest
- Only emit snap:build:0.1 webhooks from SnapBuild.updateStatus if the status has changed
- Expose extended error messages (with external link) for snap build jobs (#1729580)
- Begin work on allowing snap builds to install snapcraft as a snap; this can currently be set up via the API, and work is in progress to add UI and to migrate to this as the default (#1737994)
- Add an admin option to disable external network access for snap builds
- Export ISnapSet.findByOwner on the webservice
- Prefer Snap.store_name over Snap.name for the “name” argument dispatched to snap builds
- Pass build URL to snapcraft using SNAPCRAFT_IMAGE_INFO
- Add an option to build source tarballs for snaps (#1763639)
Soyuz (package management)
- Stop SourcePackagePublishingHistory.getPublishedBinaries materialising rows outside the current batch; this fixes webservice timeouts for sources with large numbers of binaries (#1695113)
- Implement proxying of PackageUpload binary files via the webapp, since DistroSeries:+queue now assumes that that works (#1697680)
- Truncate signing key common-names to 64 characters (#1608615)
- Allow setting a relative build score on live filesystems (#1452543)
- Add signing support for vmlinux for use on ppc64el Opal (and compatible) firmware
- Run live filesystem builds in LXD containers, allowing them to install snaps as build-dependencies
- Accept a “debug” entry in live filesystem build metadata, which enables detailed live-build debugging
- Accept and ignore options (e.g. [trusted=yes]) in sources.list lines passed via external_dependencies
- Send proper email notifications about most failures to parse the .changes file (#499438)
- Ensure that PPA .htpasswd salts are drawn from the correct alphabet (#1722209)
- Improve DpkgArchitectureCache‘s timeline handling, and speed it up a bit in some cases (#1062638)
- Support passing a snap channel into a live filesystem build through the environment
- Add support for passing apt proxies to live-build
- Allow anonymous launchpad.View on IDistributionSourcePackage
- Handle queries starting with “ppa:” when searching the PPA vocabulary
- Make PackageTranslationsUploadJob download librarian files to disk rather than memory
- Send email notifications when an upload is signed with an expired key
- Add Release, Release.gpg, and InRelease to by-hash directories
- After publishing a custom file, mark its target suite as dirty so that it will be published (#1509026)
Translations
- Fix text_to_html to not parse HTML as a C format string
- Fall back to the package name from AC_INIT when expanding $(PACKAGE) in translation configuration files if no other definition can be found
Miscellaneous
- Show a search icon for pickers where possible rather than “Choose…”
Tags: bug fixes, front-page