~wgrant/launchpad:optimise-gina

Last commit made on 2019-12-21
Get this branch:
git clone -b optimise-gina https://git.launchpad.net/~wgrant/launchpad
Only William Grant can upload to this branch. If you are William Grant please log in for upload directions.

Branch merges

Branch information

Name:
optimise-gina
Repository:
lp:~wgrant/launchpad

Recent commits

40deb09... by William Grant

Optimise gina source and binary DB lookups

The relatively modern SourcePackagePublishingHistory.sourcepackagename
and BinaryPackagePublishingHistory.binarypackagename denormalised fields
can improve gina's plans by orders of magnitude in some cases.

This also fixes gina's binary handlers (not used on production since
2006) to correctly deal with multiple archives per distribution (it's
been incorrect since 2007's ArchiveRework).

8892767... by Colin Watson

Port codehosting to Breezy

Merged from https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/373805

932b8ea... by Colin Watson

Port codehosting to Breezy.

Most of this is relatively mechanical: bzrlib imports become breezy imports,
some things move around a little more (mainly to breezy.bzr), bzrdir becomes
controldir in many cases, I tightened up some bytes/text handling, and there
were a couple of other minor API changes.

Due to problems with subvertpy, codeimport remains on Bazaar for now. This
entails some fiddly code to allow Bazaar and Breezy to coexist in the same
codebase.

DirectBranchCommit.commit needs a new call to
self.transform_preview.fixup_new_roots. I think this may technically have
been needed by Bazaar too, since bzrlib.transform._alter_files calls it, but
it no longer seems to be possible to get away without it.

We have to explicitly initialize Breezy in lib/lp/codehosting/__init__.py,
as otherwise it initializes itself with a terminal-oriented UI, causing some
unexpected output to appear in logs.

We have to disable some plugins that are now built into Breezy and likely to
cause trouble if invoked, although unfortunately we have no very elegant way
to do that. cvs, darcs, email, and mtn are disabled using
BRZ_DISABLE_PLUGINS. git requires more work: we can't allow Breezy to even
import this until codeimport is also ported, since it requires a newer
version of dulwich which is incompatible with bzr-git (and that isn't
particularly straightforward to fix), so I ended up stubbing it in
sys.modules so that importing it has no effect. Fortunately Breezy
currently only imports breezy.git and relies on it to register its own
formats, so this crude strategy works.

The hack in scripts/mirror-branch.py to force bzr to use urllib is no longer
required: Breezy removed pycurl support.

6555f2b... by Colin Watson

Update OOPS stack

Merged from https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/377036

c6b07cf... by Thiago F. Pappacena

Fixing test errors when accessing person's name for OOPS reports

Merged from https://code.launchpad.net/~pappacena/launchpad/+git/launchpad/+merge/377039

93979ea... by Thiago F. Pappacena

skipping security of principal.person when generating oops reports

5ed1600... by Thiago F. Pappacena

Send login information on OOPS reports, instead of display name

Merged from https://code.launchpad.net/~pappacena/launchpad/+git/launchpad/+merge/376955

aadf787... by Colin Watson

Update OOPS stack

Upgrade to oops 0.0.14, oops_datedir_repo 0.0.24, oops_timeline 0.0.3,
oops_twisted 0.0.8, oops_wsgi 0.0.14, and timeline 0.0.7. These all add
Python 3 support.

05231af... by Thiago F. Pappacena

gender-neutral comment

1247f3e... by Thiago F. Pappacena

style changes