Created by Colin Watson on 2019-09-19 and last modified on 2019-09-19
Get this branch:
bzr branch lp:~cjwatson/launchpad/codehosting-breezy
Only Colin Watson can upload to this branch. If you are Colin Watson please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Colin Watson
Launchpad itself

Recent revisions

19054. By Colin Watson on 2019-09-19

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

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.

19053. By Launchpad PQM Bot on 2019-09-16

[testfix][r=cjwatson][no-qa] Fix doctests to cope with added
 Content-Security-Policy header.

19052. By Launchpad PQM Bot on 2019-09-16

[r=bloodearnest][no-qa] Set "Content-Security-Policy: frame-ancestors
 " as well as "X-Frame-Options: SAMEORIGIN", for improved browser

19051. By Launchpad PQM Bot on 2019-09-16

[r=bloodearnest][no-qa] Remove parts of lp.code.mail.patches that are
 unmodified from bzrlib.

19050. By Launchpad PQM Bot on 2019-09-16

[r=wgrant][bug=1824399] Add and export

19049. By Launchpad PQM Bot on 2019-09-10

[r=wgrant][bug=1824399][incr] Make the Git XML-RPC API honour user

19048. By Launchpad PQM Bot on 2019-09-10

[r=wgrant][bug=1842658][incr] Add IPackageset.isSourceIncluded.

19047. By Launchpad PQM Bot on 2019-09-10

[r=wgrant][no-qa] Allow ProductReleaseFinder to use ftp:// URLs.

19046. By Launchpad PQM Bot on 2019-09-05

[r=cjwatson][bug=1842919] Remove null characters in copyright field
 of sourcepackagerelease

19045. By Launchpad PQM Bot on 2019-09-03

[r=cjwatson][bug=1839229] Add a BROKEN state for mirrors and allow
 them to be resubmitted

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.