Merge lp:~bac/launchpad/bug-574142 into lp:~bac/launchpad/db-devel
Proposed by
Brad Crittenden
Status: | Merged | ||||
---|---|---|---|---|---|
Merge reported by: | Brad Crittenden | ||||
Merged at revision: | not available | ||||
Proposed branch: | lp:~bac/launchpad/bug-574142 | ||||
Merge into: | lp:~bac/launchpad/db-devel | ||||
Diff against target: |
327555 lines (+141781/-82341) 2700 files modified
.bzrignore (+17/-2) .ctags (+1/-0) .testr.conf (+3/-0) Makefile (+154/-60) bootstrap.py (+149/-113) buildmailman.py (+29/-2) buildout-templates/_pythonpath.py.in (+31/-12) buildout-templates/bin/combine-css.in (+51/-0) buildout-templates/bin/jstest.in (+5/-4) buildout-templates/bin/kill-test-services.in (+42/-0) buildout-templates/bin/lint.sh.in (+16/-8) buildout-templates/bin/py.in (+0/-2) buildout-templates/bin/retest.in (+2/-1) buildout-templates/bin/sprite-util.in (+47/-0) buildout-templates/bin/test.in (+43/-35) buildout-templates/bin/update-download-cache.in (+3/-1) buildout.cfg (+18/-21) bzrplugins/lpserve.py (+13/-9) configs/development/build-from-branch.zcml (+119/-0) configs/development/launchpad-lazr.conf (+53/-11) configs/development/local-launchpad-apache (+13/-0) configs/replicated-development/launchpad-lazr.conf (+4/-5) configs/test-playground/launchpad-lazr.conf (+4/-4) configs/testrunner-appserver/launchpad-lazr.conf (+4/-1) configs/testrunner-appserver/yui-unittest.zcml (+16/-0) configs/testrunner/launchpad-lazr.conf (+44/-14) cronscripts/allocate-revision-karma.py (+1/-1) cronscripts/branch-scanner.py (+0/-36) cronscripts/buildd-queue-builder.py (+1/-1) cronscripts/buildd-retry-depwait.py (+1/-1) cronscripts/buildd-slave-scanner.py (+1/-1) cronscripts/calculate-bug-heat.py (+33/-0) cronscripts/check-teamparticipation.py (+3/-3) cronscripts/checkwatches.py (+1/-1) cronscripts/code-import-dispatcher.py (+9/-2) cronscripts/create-debwatches.py (+2/-2) cronscripts/create_merge_proposals.py (+1/-1) cronscripts/distributionmirror-prober.py (+1/-1) cronscripts/expire-archive-files.py (+4/-4) cronscripts/expire-bugtasks.py (+1/-1) cronscripts/expire-questions.py (+1/-1) cronscripts/flag-expired-memberships.py (+1/-1) cronscripts/foaf-update-karma-cache.py (+21/-16) cronscripts/garbo-daily.py (+1/-1) cronscripts/garbo-hourly.py (+1/-1) cronscripts/generate-ppa-htaccess.py (+1/-1) cronscripts/language-pack-exporter.py (+1/-1) cronscripts/librarian-gc.py (+9/-8) cronscripts/merge-proposal-jobs.py (+23/-31) cronscripts/mirror-prober.sh (+2/-2) cronscripts/nightly.sh (+14/-14) cronscripts/oops-prune.py (+1/-1) cronscripts/parse-librarian-apache-access-logs.py (+1/-1) cronscripts/parse-ppa-apache-access-logs.py (+61/-0) cronscripts/ppa-generate-keys.py (+1/-1) cronscripts/process-apport-blobs.py (+33/-0) cronscripts/process-hwdb-submissions.py (+2/-2) cronscripts/process-mail.py (+1/-1) cronscripts/process-pending-packagediffs.py (+1/-1) cronscripts/product-release-finder.py (+1/-1) cronscripts/publishing/cron.germinate (+14/-4) cronscripts/publishing/cron.publish-copy-archives (+83/-0) cronscripts/publishing/cron.publish-ftpmaster (+44/-18) cronscripts/publishing/maintenance-check.py (+382/-0) cronscripts/reclaimbranchspace.py (+1/-1) cronscripts/rosetta-approve-imports.py (+1/-1) cronscripts/rosetta-branches.py (+5/-5) cronscripts/rosetta-export-queue.py (+1/-1) cronscripts/rosetta-pofile-stats-daily.py (+1/-1) cronscripts/rosetta-pofile-stats.py (+1/-1) cronscripts/rosetta-poimport.py (+1/-1) cronscripts/scan_branches.py (+25/-0) cronscripts/send-bug-notifications.py (+1/-1) cronscripts/send-person-notifications.py (+6/-40) cronscripts/sendbranchmail.py (+5/-5) cronscripts/supermirror-pull.py (+6/-4) cronscripts/translations-export-to-branch.py (+1/-1) cronscripts/update-bugtask-targetnamecaches.py (+1/-1) cronscripts/update-cve.py (+1/-1) cronscripts/update-debwatches.py (+2/-2) cronscripts/update-pkgcache.py (+3/-3) cronscripts/update-remote-product.py (+4/-4) cronscripts/update-sourceforge-remote-products.py (+4/-4) cronscripts/update-standing.py (+1/-1) cronscripts/update-stats.py (+2/-2) cronscripts/update_preview_diffs.py (+0/-34) cronscripts/upgrade_branches.py (+25/-0) daemons/buildd-sequencer.tac (+0/-31) daemons/buildd-slave.tac (+12/-4) daemons/cache-database-replication-lag.py (+53/-0) daemons/librarian.tac (+11/-0) daemons/poppy-upload.py (+2/-49) daemons/sftp.tac (+21/-6) database/replication/Makefile (+43/-17) database/replication/helpers.py (+59/-35) database/replication/initialize.py (+10/-56) database/replication/new-slave.py (+78/-12) database/replication/populate_auth_replication_set.py (+0/-177) database/replication/preamble.py (+1/-1) database/replication/repair-restored-db.py (+44/-25) database/replication/report.py (+1/-1) database/replication/slon_ctl.py (+1/-1) database/replication/sync.py (+26/-0) database/sampledata/current-dev.sql (+5161/-4546) database/sampledata/current.sql (+5057/-4497) database/schema/Makefile (+6/-4) database/schema/README (+1/-131) database/schema/comments.sql (+168/-64) database/schema/diagram.py (+3/-4) database/schema/emptytables.py (+1/-1) database/schema/fti.py (+9/-13) database/schema/online_fti_updater.py (+1/-1) database/schema/patch-2207-06-0.sql (+122/-0) database/schema/patch-2207-08-0.sql (+20/-0) database/schema/patch-2207-09-0.sql (+10/-0) database/schema/patch-2207-10-0.sql (+8/-0) database/schema/patch-2207-11-0.sql (+87/-0) database/schema/patch-2207-12-0.sql (+7/-0) database/schema/patch-2207-14-0.sql (+32/-0) database/schema/patch-2207-15-0.sql (+15/-0) database/schema/patch-2207-15-1.sql (+28/-0) database/schema/patch-2207-16-0.sql (+50/-0) database/schema/patch-2207-17-0.sql (+13/-0) database/schema/patch-2207-18-0.sql (+7/-0) database/schema/patch-2207-19-0.sql (+103/-0) database/schema/patch-2207-19-1.sql (+35/-0) database/schema/patch-2207-20-0.sql (+13/-0) database/schema/patch-2207-21-0.sql (+9/-0) database/schema/patch-2207-23-0.sql (+19/-0) database/schema/patch-2207-24-0.sql (+30/-0) database/schema/patch-2207-25-0.sql (+149/-0) database/schema/patch-2207-26-0.sql (+28/-0) database/schema/patch-2207-27-0.sql (+13/-0) database/schema/patch-2207-28-0.sql (+11/-0) database/schema/patch-2207-28-1.sql (+9/-0) database/schema/patch-2207-29-0.sql (+34/-0) database/schema/patch-2207-30-0.sql (+14/-0) database/schema/patch-2207-31-0.sql (+27/-0) database/schema/patch-2207-32-0.sql (+24/-0) database/schema/patch-2207-33-0.sql (+9/-0) database/schema/patch-2207-34-0.sql (+11/-0) database/schema/patch-2207-35-0.sql (+8/-0) database/schema/patch-2207-35-1.sql (+7/-0) database/schema/patch-2207-35-2.sql (+12/-0) database/schema/patch-2207-36-0.sql (+15/-0) database/schema/patch-2207-37-0.sql (+9/-0) database/schema/patch-2207-38-0.sql (+17/-0) database/schema/patch-2207-39-0.sql (+16/-0) database/schema/patch-2207-40-0.sql (+19/-0) database/schema/patch-2207-41-0.sql (+95/-0) database/schema/patch-2207-42-0.sql (+7/-0) database/schema/patch-2207-43-0.sql (+4/-0) database/schema/patch-2207-44-0.sql (+37/-0) database/schema/patch-2207-45-0.sql (+12/-0) database/schema/patch-2207-47-0.sql (+6/-0) database/schema/patch-2207-48-0.sql (+27/-0) database/schema/patch-2207-52-0.sql (+11/-0) database/schema/patch-2207-53-0.sql (+11/-0) database/schema/patch-2207-54-0.sql (+11/-0) database/schema/pending/add-mailing-list-experts.py (+1/-1) database/schema/pending/create-openid-rp-configs.py (+1/-1) database/schema/pending/delete-unused-team-addresses.sql (+30/-0) database/schema/pending/fix-rosetta-data.py (+1/-1) database/schema/pending/gnu-savannah-celebrity.py (+1/-1) database/schema/pending/import_language_packs.py (+1/-1) database/schema/pending/migrate_kde_potemplates.py (+1/-1) database/schema/pending/new-person-columns.py (+1/-1) database/schema/pending/patch-2207-13-0.sql (+33/-0) database/schema/pending/patch-2207-49-0.sql (+16/-0) database/schema/pending/prune-nonce.py (+1/-1) database/schema/pending/update-shippingrequest-types.py (+1/-1) database/schema/pending/update-translation-credits.py (+3/-3) database/schema/reset_sequences.py (+1/-1) database/schema/security.cfg (+222/-154) database/schema/security.py (+23/-11) database/schema/sort_sql.py (+1/-1) database/schema/trusted.sql (+230/-8) database/schema/unautovacuumable.py (+26/-8) database/schema/upgrade.py (+5/-4) doc/bazaar/Makefile (+0/-39) doc/bazaar/README (+0/-47) doc/bazaar/bazaar.tmml (+0/-2722) doc/bazaar/html.xsl (+0/-230) doc/bazaar/large-dia/sizes (+0/-5) doc/bazaar/texmacs.css (+0/-25) doc/bazaar/write-sizes (+0/-17) doc/webapp-process.txt (+1/-1) ez_setup.py (+11/-3) lib/canonical/Makefile (+0/-5) lib/canonical/__init__.py (+5/-0) lib/canonical/base.py (+3/-3) lib/canonical/buildd/README (+1/-0) lib/canonical/buildd/binarypackage.py (+143/-0) lib/canonical/buildd/buildd-config.py (+1/-1) lib/canonical/buildd/buildrecipe (+133/-0) lib/canonical/buildd/check-implicit-pointer-functions (+112/-0) lib/canonical/buildd/debian.py (+44/-128) lib/canonical/buildd/debian/changelog (+70/-0) lib/canonical/buildd/debian/control (+1/-1) lib/canonical/buildd/debian/launchpad-buildd.init (+11/-1) lib/canonical/buildd/debian/postinst (+1/-3) lib/canonical/buildd/debian/rules (+22/-10) lib/canonical/buildd/debian/upgrade-config (+51/-1) lib/canonical/buildd/example.chroot (+2/-2) lib/canonical/buildd/generate-translation-templates (+57/-0) lib/canonical/buildd/mount-chroot (+1/-2) lib/canonical/buildd/pottery/generate_translation_templates.py (+87/-0) lib/canonical/buildd/pottery/intltool.py (+254/-0) lib/canonical/buildd/sbuild (+39/-5) lib/canonical/buildd/sbuild-notes.txt (+2/-2) lib/canonical/buildd/sbuild-package (+25/-6) lib/canonical/buildd/sequencer.py (+0/-157) lib/canonical/buildd/slave.py (+22/-7) lib/canonical/buildd/sourcepackagerecipe.py (+155/-0) lib/canonical/buildd/template-buildd-slave.conf (+11/-2) lib/canonical/buildd/test_buildd_generatetranslationtemplates (+33/-0) lib/canonical/buildd/test_buildd_recipe (+30/-0) lib/canonical/buildd/tests/harness.py (+19/-12) lib/canonical/buildd/tests/test_generate_translation_templates.py (+117/-0) lib/canonical/buildd/tests/test_translationtemplatesbuildmanager.py (+176/-0) lib/canonical/buildd/translationtemplates.py (+97/-0) lib/canonical/buildd/update-debian-chroot (+1/-1) lib/canonical/buildd/utils.py (+0/-53) lib/canonical/cachedproperty.py (+1/-0) lib/canonical/config/__init__.py (+35/-53) lib/canonical/config/schema-lazr.conf (+164/-43) lib/canonical/config/tests/test_config_lookup.py (+7/-7) lib/canonical/config/tests/test_database_config.py (+61/-0) lib/canonical/configure.zcml (+12/-22) lib/canonical/database/ftests/script_isolation.py (+8/-0) lib/canonical/database/ftests/test_zopelesstransactionmanager.txt (+26/-0) lib/canonical/database/harness.py (+2/-5) lib/canonical/database/revision.py (+5/-6) lib/canonical/database/sqlbase.py (+76/-51) lib/canonical/database/tests/test_zopeless_transaction_manager.py (+31/-0) lib/canonical/doap/__init__.py (+0/-8) lib/canonical/doap/forage.py (+0/-283) lib/canonical/ftests/pgsql.py (+11/-0) lib/canonical/launchpad/apidoc/wadl-testrunner.xml (+0/-10) lib/canonical/launchpad/blocked.html (+26/-0) lib/canonical/launchpad/browser/__init__.py (+2/-7) lib/canonical/launchpad/browser/feeds.py (+3/-14) lib/canonical/launchpad/browser/ftests/logintoken-corner-cases.txt (+10/-11) lib/canonical/launchpad/browser/launchpad.py (+64/-52) lib/canonical/launchpad/browser/librarian.py (+26/-15) lib/canonical/launchpad/browser/logintoken.py (+69/-387) lib/canonical/launchpad/browser/oauth.py (+25/-13) lib/canonical/launchpad/browser/packaging.py (+0/-48) lib/canonical/launchpad/browser/temporaryblobstorage.py (+48/-4) lib/canonical/launchpad/browser/tests/registration.py (+2/-0) lib/canonical/launchpad/browser/tests/test_branchtraversal.py (+2/-2) lib/canonical/launchpad/browser/tests/test_launchpad.py (+97/-15) lib/canonical/launchpad/browser/tests/test_librarian.py (+31/-0) lib/canonical/launchpad/browser/tests/test_logintoken.py (+67/-0) lib/canonical/launchpad/browser/tests/test_registration.py (+0/-61) lib/canonical/launchpad/browser/vocabulary.py (+6/-2) lib/canonical/launchpad/components/apihelpers.py (+15/-0) lib/canonical/launchpad/components/cal.py (+0/-89) lib/canonical/launchpad/components/crowd.py (+0/-80) lib/canonical/launchpad/configure.zcml (+7/-13) lib/canonical/launchpad/daemons/tachandler.py (+133/-70) lib/canonical/launchpad/database/__init__.py (+3/-6) lib/canonical/launchpad/database/account.py (+11/-8) lib/canonical/launchpad/database/baseopenidstore.py (+1/-1) lib/canonical/launchpad/database/emailaddress.py (+3/-2) lib/canonical/launchpad/database/librarian.py (+4/-3) lib/canonical/launchpad/database/logintoken.py (+70/-17) lib/canonical/launchpad/database/oauth.py (+6/-4) lib/canonical/launchpad/database/temporaryblobstorage.py (+28/-6) lib/canonical/launchpad/database/tests/test_baseopenidstore.py (+5/-0) lib/canonical/launchpad/database/tests/test_oauth.py (+1/-1) lib/canonical/launchpad/doc/account.txt (+74/-83) lib/canonical/launchpad/doc/badges.txt (+1/-0) lib/canonical/launchpad/doc/canonical-config.txt (+1/-1) lib/canonical/launchpad/doc/canonical_url.txt (+9/-0) lib/canonical/launchpad/doc/canonical_url_examples.txt (+34/-18) lib/canonical/launchpad/doc/celebrities.txt (+49/-1) lib/canonical/launchpad/doc/crowd.txt (+0/-124) lib/canonical/launchpad/doc/db-policy.txt (+126/-0) lib/canonical/launchpad/doc/displaying-numbers.txt (+1/-1) lib/canonical/launchpad/doc/emailauthentication.txt (+6/-5) lib/canonical/launchpad/doc/google-searchservice.txt (+2/-2) lib/canonical/launchpad/doc/gpg-encryption.txt (+3/-3) lib/canonical/launchpad/doc/gpghandler.txt (+7/-7) lib/canonical/launchpad/doc/hasowner-authorization.txt (+5/-5) lib/canonical/launchpad/doc/hierarchical-menu.txt (+17/-5) lib/canonical/launchpad/doc/incomingmail.txt (+8/-25) lib/canonical/launchpad/doc/launchpad-radio-widget.txt (+48/-0) lib/canonical/launchpad/doc/launchpadlib.txt (+1/-1) lib/canonical/launchpad/doc/launchpadview.txt (+5/-14) lib/canonical/launchpad/doc/librarian.txt (+6/-9) lib/canonical/launchpad/doc/login-pages.txt (+0/-139) lib/canonical/launchpad/doc/loginstatus-pages.txt (+13/-0) lib/canonical/launchpad/doc/logintoken-pages.txt (+18/-368) lib/canonical/launchpad/doc/looptuner.txt (+4/-11) lib/canonical/launchpad/doc/menus.txt (+3/-3) lib/canonical/launchpad/doc/notification-recipient-set.txt (+1/-1) lib/canonical/launchpad/doc/oauth.txt (+112/-35) lib/canonical/launchpad/doc/personroles.txt (+130/-0) lib/canonical/launchpad/doc/product-update-remote-product-script.txt (+1/-1) lib/canonical/launchpad/doc/product-update-remote-product.txt (+1/-6) lib/canonical/launchpad/doc/profiling.txt (+6/-6) lib/canonical/launchpad/doc/project-scope-widget.txt (+6/-5) lib/canonical/launchpad/doc/publishing-security.txt (+48/-47) lib/canonical/launchpad/doc/renamed-view.txt (+1/-1) lib/canonical/launchpad/doc/security-proxies.txt (+3/-3) lib/canonical/launchpad/doc/security-teams.txt (+2/-1) lib/canonical/launchpad/doc/storm.txt (+56/-71) lib/canonical/launchpad/doc/stripped-text-widget.txt (+29/-4) lib/canonical/launchpad/doc/tales-macro.txt (+5/-34) lib/canonical/launchpad/doc/tales.txt (+87/-35) lib/canonical/launchpad/doc/temporaryblobstorage.txt (+45/-0) lib/canonical/launchpad/doc/textformatting.txt (+76/-0) lib/canonical/launchpad/doc/timeout.txt (+1/-1) lib/canonical/launchpad/doc/unicode_csv.txt (+7/-3) lib/canonical/launchpad/doc/vocabularies.txt (+25/-21) lib/canonical/launchpad/doc/vocabulary-json.txt (+21/-1) lib/canonical/launchpad/doc/webapp-authorization.txt (+6/-6) lib/canonical/launchpad/doc/webapp-publication.txt (+11/-5) lib/canonical/launchpad/doc/webservice-error.txt (+6/-1) lib/canonical/launchpad/doc/webservice-marshallers.txt (+22/-2) lib/canonical/launchpad/doc/zcmldirectives.txt (+19/-10) lib/canonical/launchpad/emailtemplates/branch-merge-proposal-created.txt (+1/-1) lib/canonical/launchpad/emailtemplates/bug-notification-verbose.txt (+2/-0) lib/canonical/launchpad/emailtemplates/forgottenpassword-neutral.txt (+0/-14) lib/canonical/launchpad/emailtemplates/forgottenpassword.txt (+0/-11) lib/canonical/launchpad/emailtemplates/help.txt (+7/-4) lib/canonical/launchpad/emailtemplates/new-code-import.txt (+3/-1) lib/canonical/launchpad/emailtemplates/newuser-email-neutral.txt (+0/-15) lib/canonical/launchpad/emailtemplates/newuser-email.txt (+0/-19) lib/canonical/launchpad/emailtemplates/person-location-modified.txt (+0/-19) lib/canonical/launchpad/emailtemplates/person-merged.txt (+15/-0) lib/canonical/launchpad/emailtemplates/ppa-subscription-new.txt (+3/-1) lib/canonical/launchpad/emailtemplates/specification-modified.txt (+2/-2) lib/canonical/launchpad/emailtemplates/team-list-subscribe-block.txt (+1/-1) lib/canonical/launchpad/emailtemplates/upload-accepted.txt (+1/-0) lib/canonical/launchpad/emailtemplates/upload-announcement.txt (+1/-0) lib/canonical/launchpad/emailtemplates/upload-new.txt (+1/-0) lib/canonical/launchpad/emailtemplates/upload-rejection.txt (+1/-0) lib/canonical/launchpad/event/interfaces.py (+0/-23) lib/canonical/launchpad/fields/__init__.py (+72/-36) lib/canonical/launchpad/fields/tests/__init__.py (+1/-0) lib/canonical/launchpad/fields/tests/test_fields.py (+49/-0) lib/canonical/launchpad/ftests/keys_for_tests.py (+1/-1) lib/canonical/launchpad/ftests/test_system_documentation.py (+12/-12) lib/canonical/launchpad/helpers.py (+5/-67) lib/canonical/launchpad/icing-sources/haspatch.svg (+968/-0) lib/canonical/launchpad/icing/PlotKit_Packed.js (+0/-2177) lib/canonical/launchpad/icing/icon-sprites.positioning (+476/-0) lib/canonical/launchpad/icing/print.css (+5/-5) lib/canonical/launchpad/icing/shipit.css (+2/-2) lib/canonical/launchpad/icing/style-3-0.css.in (+2084/-563) lib/canonical/launchpad/icing/style.css (+47/-1679) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/autocomplete.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/calendar.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/colorpicker.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/datatable.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/editor.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/logger.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/paginator.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/profilerviewer.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/simpleeditor.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/assets/skins/sam/skin.css (+9/-9) lib/canonical/launchpad/icing/yui_2.7.0b/build/calendar/assets/skins/sam/calendar-skin.css (+1/-1) lib/canonical/launchpad/icing/yui_2.7.0b/build/calendar/assets/skins/sam/calendar.css (+1/-1) lib/canonical/launchpad/images/src/ppa-icon.svg (+188/-0) lib/canonical/launchpad/interfaces/__init__.py (+6/-7) lib/canonical/launchpad/interfaces/_schema_circular_imports.py (+140/-34) lib/canonical/launchpad/interfaces/account.py (+8/-8) lib/canonical/launchpad/interfaces/authtoken.py (+3/-60) lib/canonical/launchpad/interfaces/ftests/validation.txt (+12/-12) lib/canonical/launchpad/interfaces/gpghandler.py (+38/-0) lib/canonical/launchpad/interfaces/launchpad.py (+112/-24) lib/canonical/launchpad/interfaces/librarian.py (+3/-7) lib/canonical/launchpad/interfaces/logintoken.py (+21/-0) lib/canonical/launchpad/interfaces/message.py (+11/-7) lib/canonical/launchpad/interfaces/oauth.py (+9/-2) lib/canonical/launchpad/interfaces/temporaryblobstorage.py (+28/-1) lib/canonical/launchpad/interfaces/validation.py (+10/-10) lib/canonical/launchpad/javascript/bugs/bug_tags_entry.js (+29/-30) lib/canonical/launchpad/javascript/bugs/bugtask-index.js (+467/-339) lib/canonical/launchpad/javascript/bugs/filebug-dupefinder.js (+337/-158) lib/canonical/launchpad/javascript/bugs/offical_bug_tags.js (+53/-35) lib/canonical/launchpad/javascript/bugs/subscriber.js (+13/-14) lib/canonical/launchpad/javascript/bugs/tests/subscriber.html (+8/-8) lib/canonical/launchpad/javascript/bugs/tests/test_me_too.html (+7/-7) lib/canonical/launchpad/javascript/bugs/tests/test_me_too.js (+43/-42) lib/canonical/launchpad/javascript/bugs/tests/test_subscriber.js (+61/-8) lib/canonical/launchpad/javascript/client/client.js (+54/-25) lib/canonical/launchpad/javascript/code/branchsubscription.js (+0/-272) lib/canonical/launchpad/javascript/lp/calendar.js (+4/-4) lib/canonical/launchpad/javascript/lp/comment.js (+425/-0) lib/canonical/launchpad/javascript/lp/dragscroll.js (+132/-81) lib/canonical/launchpad/javascript/lp/errors.js (+111/-0) lib/canonical/launchpad/javascript/lp/lp-mochi.js (+383/-0) lib/canonical/launchpad/javascript/lp/lp.js (+124/-516) lib/canonical/launchpad/javascript/lp/mapping.js (+41/-41) lib/canonical/launchpad/javascript/lp/picker.js (+38/-30) lib/canonical/launchpad/javascript/lp/tests/test_lp_collapsibles.js (+37/-37) lib/canonical/launchpad/javascript/registry/milestoneoverlay.js (+9/-10) lib/canonical/launchpad/javascript/registry/milestonetable.js (+38/-31) lib/canonical/launchpad/javascript/registry/team.js (+137/-0) lib/canonical/launchpad/javascript/registry/tests/test_milestone_table.html (+5/-5) lib/canonical/launchpad/javascript/registry/tests/test_milestone_table.js (+13/-7) lib/canonical/launchpad/javascript/registry/tests/test_timeline.html (+2/-1) lib/canonical/launchpad/javascript/registry/tests/timeline-iframe.html (+5/-5) lib/canonical/launchpad/javascript/registry/tests/timeline.js (+53/-22) lib/canonical/launchpad/javascript/registry/timeline.js (+211/-104) lib/canonical/launchpad/javascript/soyuz/archivesubscribers_index.js (+6/-6) lib/canonical/launchpad/javascript/soyuz/base.js (+1/-1) lib/canonical/launchpad/javascript/soyuz/lp_dynamic_dom_updater.js (+14/-24) lib/canonical/launchpad/javascript/soyuz/tests/archivesubscribers_index.js (+9/-9) lib/canonical/launchpad/javascript/soyuz/tests/lp_dynamic_dom_updater.js (+1/-1) lib/canonical/launchpad/javascript/soyuz/update_archive_build_statuses.js (+19/-21) lib/canonical/launchpad/javascript/test.css (+5/-11) lib/canonical/launchpad/javascript/translations/pofile.js (+457/-28) lib/canonical/launchpad/javascript/translations/translations.js (+105/-11) lib/canonical/launchpad/layers.py (+12/-2) lib/canonical/launchpad/mail/commands.py (+4/-4) lib/canonical/launchpad/mail/errortemplates/branch-creation-exception.txt (+2/-0) lib/canonical/launchpad/mail/incoming.py (+10/-16) lib/canonical/launchpad/mail/meta.py (+16/-18) lib/canonical/launchpad/mail/tests/test_incoming.py (+2/-0) lib/canonical/launchpad/mailman/monkeypatches/lphandler.py (+3/-2) lib/canonical/launchpad/mailman/monkeypatches/lpmoderate.py (+16/-0) lib/canonical/launchpad/mailman/runmailman.py (+0/-4) lib/canonical/launchpad/mailnotification.py (+55/-35) lib/canonical/launchpad/mailout/__init__.py (+0/-70) lib/canonical/launchpad/offline-maintenance-haproxy.html (+32/-0) lib/canonical/launchpad/offline-maintenance.html (+4/-3) lib/canonical/launchpad/offline-unplanned-haproxy.html (+32/-0) lib/canonical/launchpad/offline-unplanned.html (+1/-1) lib/canonical/launchpad/pagetests/basics/demo-and-lpnet.txt (+7/-15) lib/canonical/launchpad/pagetests/basics/max-batch-size.txt (+1/-1) lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt (+2/-5) lib/canonical/launchpad/pagetests/feeds/xx-authentication.txt (+1/-1) lib/canonical/launchpad/pagetests/feeds/xx-links.txt (+19/-19) lib/canonical/launchpad/pagetests/oauth/access-token.txt (+1/-1) lib/canonical/launchpad/pagetests/oauth/authorize-token.txt (+11/-19) lib/canonical/launchpad/pagetests/packaging/xx-ubuntu-pkging.txt (+0/-136) lib/canonical/launchpad/pagetests/standalone/xx-dbpolicy.txt (+1/-1) lib/canonical/launchpad/pagetests/standalone/xx-form-layout.txt (+8/-5) lib/canonical/launchpad/pagetests/standalone/xx-invalid-people-cant-login.txt (+0/-56) lib/canonical/launchpad/pagetests/standalone/xx-login-and-join-links.txt (+0/-65) lib/canonical/launchpad/pagetests/standalone/xx-login-without-preferredemail.txt (+0/-76) lib/canonical/launchpad/pagetests/standalone/xx-nameblacklist.txt (+3/-2) lib/canonical/launchpad/pagetests/standalone/xx-new-account-redirection-url.txt (+0/-62) lib/canonical/launchpad/pagetests/standalone/xx-notifications.txt (+3/-0) lib/canonical/launchpad/pagetests/standalone/xx-offsite-form-post.txt (+159/-16) lib/canonical/launchpad/pagetests/standalone/xx-opstats.txt (+54/-0) lib/canonical/launchpad/pagetests/standalone/xx-read-only-mode.txt (+10/-18) lib/canonical/launchpad/pagetests/webservice/apidoc.txt (+18/-3) lib/canonical/launchpad/pagetests/webservice/conditional-write.txt (+103/-0) lib/canonical/launchpad/pagetests/webservice/launchpadlib.txt (+115/-0) lib/canonical/launchpad/pagetests/webservice/multiversion.txt (+32/-0) lib/canonical/launchpad/pagetests/webservice/xx-branches.txt (+33/-0) lib/canonical/launchpad/pagetests/webservice/xx-service.txt (+137/-14) lib/canonical/launchpad/pagetests/webservice/xx-temporary-blob-storage.txt (+81/-0) lib/canonical/launchpad/pagetests/webservice/xx-wadl.txt (+81/-46) lib/canonical/launchpad/pagetitles.py (+0/-25) lib/canonical/launchpad/permissions.zcml (+0/-4) lib/canonical/launchpad/readonly.py (+86/-0) lib/canonical/launchpad/rest/configuration.py (+26/-5) lib/canonical/launchpad/scripts/__init__.py (+27/-48) lib/canonical/launchpad/scripts/ftests/test_checkwatches.py (+0/-93) lib/canonical/launchpad/scripts/ftests/test_oops_prune.py (+9/-0) lib/canonical/launchpad/scripts/garbo.py (+203/-188) lib/canonical/launchpad/scripts/logger.py (+6/-4) lib/canonical/launchpad/scripts/oops.py (+16/-12) lib/canonical/launchpad/scripts/runlaunchpad.py (+26/-18) lib/canonical/launchpad/scripts/sftracker.py (+2/-2) lib/canonical/launchpad/scripts/tests/librarianformatter_noca.txt (+6/-9) lib/canonical/launchpad/scripts/tests/test_garbo.py (+89/-73) lib/canonical/launchpad/scripts/tests/test_hwdb_submission_parser.py (+564/-161) lib/canonical/launchpad/scripts/tests/test_hwdb_submission_processing.py (+2083/-251) lib/canonical/launchpad/scripts/tests/test_librarian_apache_log_parser.py (+6/-0) lib/canonical/launchpad/scripts/tests/test_logger.txt (+6/-7) lib/canonical/launchpad/scripts/tests/test_rundoctests.py (+0/-1) lib/canonical/launchpad/scripts/tests/test_runlaunchpad.py (+2/-4) lib/canonical/launchpad/security.py (+596/-423) lib/canonical/launchpad/subscribers/karma.py (+8/-2) lib/canonical/launchpad/systemhomes.py (+55/-49) lib/canonical/launchpad/templates/batchnavigator-navigation-links.pt (+7/-2) lib/canonical/launchpad/templates/bounty-portlet-relateds.pt (+0/-55) lib/canonical/launchpad/templates/bugbranch-inline-edit.pt (+0/-2) lib/canonical/launchpad/templates/bugs-listing-table-without-navlinks.pt (+11/-2) lib/canonical/launchpad/templates/launchpad-forgottenpassword.pt (+0/-65) lib/canonical/launchpad/templates/launchpad-form.pt (+18/-1) lib/canonical/launchpad/templates/launchpad-gone.pt (+49/-0) lib/canonical/launchpad/templates/launchpad-login.pt (+0/-236) lib/canonical/launchpad/templates/launchpad-menubox.pt (+0/-21) lib/canonical/launchpad/templates/launchpad-navigation-menutabs.pt (+0/-32) lib/canonical/launchpad/templates/launchpad-noreferrer.pt (+26/-0) lib/canonical/launchpad/templates/launchpad-readonlyfailure.pt (+3/-3) lib/canonical/launchpad/templates/launchpad-requestexpired.pt (+9/-20) lib/canonical/launchpad/templates/launchpad-restrictedinfo.pt (+0/-45) lib/canonical/launchpad/templates/launchpad-restrictedlogin.pt (+0/-119) lib/canonical/launchpad/templates/login-already.pt (+18/-0) lib/canonical/launchpad/templates/login-error.pt (+17/-0) lib/canonical/launchpad/templates/login-suspended-account.pt (+20/-0) lib/canonical/launchpad/templates/logintoken-newaccount.pt (+0/-19) lib/canonical/launchpad/templates/logintoken-resetpassword.pt (+0/-18) lib/canonical/launchpad/templates/logintoken-validatesignonlygpg.pt (+1/-1) lib/canonical/launchpad/templates/main-template-macros.pt (+0/-33) lib/canonical/launchpad/templates/main-template.pt (+0/-308) lib/canonical/launchpad/templates/oops-veryplain.pt (+10/-2) lib/canonical/launchpad/templates/oops.pt (+43/-20) lib/canonical/launchpad/testing/browser.py (+32/-4) lib/canonical/launchpad/testing/codeimporthelpers.py (+2/-6) lib/canonical/launchpad/testing/cookie.py (+0/-67) lib/canonical/launchpad/testing/googletestservice.py (+2/-2) lib/canonical/launchpad/testing/pages.py (+118/-27) lib/canonical/launchpad/testing/systemdocs.py (+24/-7) lib/canonical/launchpad/testing/tests/test_testcase.py (+0/-163) lib/canonical/launchpad/tests/readonly.py (+47/-0) lib/canonical/launchpad/tests/test_helpers.py (+4/-2) lib/canonical/launchpad/tests/test_login.py (+1/-20) lib/canonical/launchpad/tests/test_personroles.py (+157/-0) lib/canonical/launchpad/tests/test_readonly.py (+78/-0) lib/canonical/launchpad/tests/test_token_creation.py (+2/-2) lib/canonical/launchpad/tour/api (+1/-1) lib/canonical/launchpad/tour/branch-hosting-tracking (+9/-8) lib/canonical/launchpad/tour/bugs (+10/-8) lib/canonical/launchpad/tour/community (+1/-1) lib/canonical/launchpad/tour/community-support (+1/-1) lib/canonical/launchpad/tour/feature-tracking (+1/-1) lib/canonical/launchpad/tour/index (+3/-3) lib/canonical/launchpad/tour/join-launchpad (+3/-3) lib/canonical/launchpad/tour/ppa (+28/-30) lib/canonical/launchpad/tour/release-management (+1/-1) lib/canonical/launchpad/tour/translation (+3/-3) lib/canonical/launchpad/utilities/celebrities.py (+37/-22) lib/canonical/launchpad/utilities/gpghandler.py (+30/-8) lib/canonical/launchpad/utilities/looptuner.py (+64/-17) lib/canonical/launchpad/utilities/personroles.py (+62/-0) lib/canonical/launchpad/validators/url.py (+7/-1) lib/canonical/launchpad/vocabularies/configure.zcml (+299/-88) lib/canonical/launchpad/vocabularies/dbobjects.py (+18/-17) lib/canonical/launchpad/webapp/adapter.py (+80/-29) lib/canonical/launchpad/webapp/authentication.py (+10/-7) lib/canonical/launchpad/webapp/authorization.py (+3/-3) lib/canonical/launchpad/webapp/badge.py (+1/-0) lib/canonical/launchpad/webapp/batching.py (+4/-0) lib/canonical/launchpad/webapp/breadcrumb.py (+5/-3) lib/canonical/launchpad/webapp/configure.zcml (+28/-19) lib/canonical/launchpad/webapp/dbpolicy.py (+96/-35) lib/canonical/launchpad/webapp/error.py (+15/-4) lib/canonical/launchpad/webapp/errorlog.py (+148/-97) lib/canonical/launchpad/webapp/ftests/test_adapter.txt (+53/-2) lib/canonical/launchpad/webapp/ftests/test_adapter_permissions.txt (+1/-24) lib/canonical/launchpad/webapp/interaction.py (+62/-1) lib/canonical/launchpad/webapp/interfaces.py (+39/-11) lib/canonical/launchpad/webapp/launchbag.py (+2/-2) lib/canonical/launchpad/webapp/launchpadform.py (+66/-3) lib/canonical/launchpad/webapp/login.py (+295/-315) lib/canonical/launchpad/webapp/marshallers.py (+21/-0) lib/canonical/launchpad/webapp/menu.py (+6/-1) lib/canonical/launchpad/webapp/metazcml.py (+14/-9) lib/canonical/launchpad/webapp/notifications.py (+3/-2) lib/canonical/launchpad/webapp/pgsession.py (+2/-19) lib/canonical/launchpad/webapp/publication.py (+113/-128) lib/canonical/launchpad/webapp/publisher.py (+6/-24) lib/canonical/launchpad/webapp/servers.py (+99/-16) lib/canonical/launchpad/webapp/session.py (+5/-7) lib/canonical/launchpad/webapp/sigdumpmem.py (+18/-0) lib/canonical/launchpad/webapp/snapshot.py (+4/-1) lib/canonical/launchpad/webapp/tales.py (+132/-199) lib/canonical/launchpad/webapp/tests/__init__.py (+0/-26) lib/canonical/launchpad/webapp/tests/cookie-authentication.txt (+29/-18) lib/canonical/launchpad/webapp/tests/login.txt (+47/-0) lib/canonical/launchpad/webapp/tests/no-anonymous-session-cookies.txt (+30/-25) lib/canonical/launchpad/webapp/tests/test_authorization.py (+6/-7) lib/canonical/launchpad/webapp/tests/test_breadcrumbs.py (+24/-36) lib/canonical/launchpad/webapp/tests/test_cookie_authentication.py (+24/-0) lib/canonical/launchpad/webapp/tests/test_dbpolicy.py (+57/-15) lib/canonical/launchpad/webapp/tests/test_encryptor.py (+10/-5) lib/canonical/launchpad/webapp/tests/test_errorlog.py (+51/-3) lib/canonical/launchpad/webapp/tests/test_login.py (+0/-34) lib/canonical/launchpad/webapp/tests/test_menu.py (+1/-0) lib/canonical/launchpad/webapp/tests/test_no_anonymous_session_cookies.py (+24/-0) lib/canonical/launchpad/webapp/tests/test_notifications.py (+1/-1) lib/canonical/launchpad/webapp/tests/test_pgsession.py (+0/-61) lib/canonical/launchpad/webapp/tests/test_publication.py (+184/-16) lib/canonical/launchpad/webapp/tests/test_servers.py (+57/-30) lib/canonical/launchpad/webapp/tests/test_sigdumpmem.py (+45/-0) lib/canonical/launchpad/webapp/tests/test_tales.py (+4/-137) lib/canonical/launchpad/webapp/url.py (+15/-15) lib/canonical/launchpad/webapp/vhosts.py (+5/-0) lib/canonical/launchpad/webapp/vocabulary.py (+6/-0) lib/canonical/launchpad/windmill/jstests/launchpad_ajax.js (+17/-17) lib/canonical/launchpad/windmill/testing/constants.py (+2/-2) lib/canonical/launchpad/windmill/testing/lpuser.py (+38/-23) lib/canonical/launchpad/windmill/testing/widgets.py (+6/-5) lib/canonical/launchpad/xmlrpc/application.py (+4/-10) lib/canonical/launchpad/xmlrpc/configure.zcml (+9/-22) lib/canonical/launchpad/xmlrpc/faults.py (+18/-35) lib/canonical/launchpad/xmlrpc/tests/test_authserver.py (+2/-8) lib/canonical/launchpad/xmlrpc/tests/test_faults.py (+0/-65) lib/canonical/launchpad/zcml/account.zcml (+4/-1) lib/canonical/launchpad/zcml/binaryandsourcepackagename.zcml (+13/-2) lib/canonical/launchpad/zcml/configure.zcml (+0/-6) lib/canonical/launchpad/zcml/crowd.zcml (+0/-17) lib/canonical/launchpad/zcml/hwdb.zcml (+0/-276) lib/canonical/launchpad/zcml/launchpad.zcml (+48/-91) lib/canonical/launchpad/zcml/librarian.zcml (+2/-1) lib/canonical/launchpad/zcml/logintoken.zcml (+0/-23) lib/canonical/launchpad/zcml/packaging.zcml (+0/-32) lib/canonical/launchpad/zcml/personnotification.zcml (+0/-19) lib/canonical/launchpad/zcml/personproduct.zcml (+0/-44) lib/canonical/launchpad/zcml/structuralsubscription.zcml (+0/-40) lib/canonical/launchpad/zcml/temporaryblobstorage.zcml (+16/-0) lib/canonical/launchpad/zcml/webservice.zcml (+13/-1) lib/canonical/lazr/doc/folder.txt (+13/-13) lib/canonical/lazr/doc/menus.txt (+2/-2) lib/canonical/lazr/doc/timeout.txt (+1/-1) lib/canonical/librarian/Makefile (+0/-18) lib/canonical/librarian/client.py (+19/-11) lib/canonical/librarian/db.py (+6/-5) lib/canonical/librarian/ftests/harness.py (+5/-0) lib/canonical/librarian/ftests/test_client.py (+2/-2) lib/canonical/librarian/ftests/test_db.py (+87/-0) lib/canonical/librarian/ftests/test_gc.py (+139/-121) lib/canonical/librarian/ftests/test_storage.py (+5/-4) lib/canonical/librarian/ftests/test_web.py (+14/-12) lib/canonical/librarian/interfaces.py (+6/-0) lib/canonical/librarian/librariangc.py (+237/-139) lib/canonical/librarian/storage.py (+3/-4) lib/canonical/librarian/tests/librarian-report.txt (+31/-0) lib/canonical/librarian/tests/test_doc.py (+25/-0) lib/canonical/librarian/tests/test_sigdumpmem.py (+37/-0) lib/canonical/librarian/tests/test_storage.py (+0/-1) lib/canonical/librarian/utils.py (+3/-3) lib/canonical/librarian/web.py (+1/-5) lib/canonical/lp/ftests/test_zopeless.py (+12/-6) lib/canonical/testing/customresult.py (+2/-46) lib/canonical/testing/ftests/test_layers.py (+25/-2) lib/canonical/testing/ftests/test_mockdb.py (+4/-4) lib/canonical/testing/layers.py (+206/-18) lib/canonical/uuid.py (+3/-3) lib/canonical/widgets/itemswidgets.py (+40/-0) lib/canonical/widgets/lazrjs.py (+21/-29) lib/canonical/widgets/location.py (+1/-1) lib/canonical/widgets/popup.py (+1/-1) lib/canonical/widgets/project.py (+1/-1) lib/canonical/widgets/templates/vocabulary-picker.js.template (+4/-5) lib/contrib/PlotKit/Base.js (+0/-406) lib/contrib/PlotKit/Canvas.js (+0/-683) lib/contrib/PlotKit/EasyPlot.js (+0/-161) lib/contrib/PlotKit/Layout.js (+0/-756) lib/contrib/PlotKit/PlotKit.js (+0/-151) lib/contrib/PlotKit/SVG.js (+0/-705) lib/contrib/PlotKit/SweetCanvas.js (+0/-348) lib/contrib/PlotKit/SweetSVG.js (+0/-247) lib/contrib/PlotKit/dummy.svg (+0/-9) lib/contrib/PlotKit/excanvas.js (+0/-723) lib/contrib/glock.py (+1/-1) lib/contrib/slimmer/README.txt (+0/-27) lib/contrib/slimmer/__init__.py (+0/-1) lib/contrib/slimmer/js_function_slimmer.py (+0/-169) lib/contrib/slimmer/result (+0/-2) lib/contrib/slimmer/setup.py (+0/-45) lib/contrib/slimmer/slimmer.py (+0/-684) lib/contrib/slimmer/slimmer_exp.py (+0/-629) lib/contrib/slimmer/tests/__init__.py (+0/-2) lib/contrib/slimmer/tests/codechunks.py (+0/-509) lib/contrib/slimmer/tests/dummy.py (+0/-14) lib/contrib/slimmer/tests/moo.ajax.js (+0/-40) lib/contrib/slimmer/tests/testSlimmer.py (+0/-229) lib/devscripts/autoland.py (+68/-25) lib/devscripts/ec2test/account.py (+64/-51) lib/devscripts/ec2test/builtins.py (+64/-36) lib/devscripts/ec2test/entrypoint.py (+6/-0) lib/devscripts/ec2test/instance.py (+66/-35) lib/devscripts/ec2test/remote.py (+179/-119) lib/devscripts/ec2test/session.py (+90/-0) lib/devscripts/ec2test/testrunner.py (+36/-54) lib/devscripts/ec2test/tests/__init__.py (+2/-0) lib/devscripts/ec2test/tests/test_ec2instance.py (+143/-0) lib/devscripts/ec2test/tests/test_remote.py (+29/-0) lib/devscripts/ec2test/tests/test_session.py (+69/-0) lib/devscripts/ec2test/tests/test_utils.py (+61/-0) lib/devscripts/ec2test/utils.py (+55/-0) lib/devscripts/sourcecode.py (+128/-34) lib/devscripts/tests/test_autoland.py (+12/-1) lib/devscripts/tests/test_sourcecode.py (+39/-9) lib/launchpad_loggerhead/__init__.py (+1/-0) lib/launchpad_loggerhead/app.py (+215/-0) lib/launchpad_loggerhead/debug.py (+120/-0) lib/launchpad_loggerhead/session.py (+73/-0) lib/launchpad_loggerhead/static/robots.txt (+2/-0) lib/lp/answers/browser/configure.zcml (+11/-6) lib/lp/answers/browser/faq.py (+12/-7) lib/lp/answers/browser/faqcollection.py (+2/-2) lib/lp/answers/browser/question.py (+50/-37) lib/lp/answers/browser/questiontarget.py (+13/-10) lib/lp/answers/browser/tests/test_breadcrumbs.py (+31/-9) lib/lp/answers/browser/tests/test_menus.py (+58/-0) lib/lp/answers/browser/tests/views.txt (+34/-15) lib/lp/answers/configure.zcml (+10/-3) lib/lp/answers/doc/expiration.txt (+1/-1) lib/lp/answers/doc/faq-vocabulary.txt (+2/-1) lib/lp/answers/doc/faq.txt (+3/-2) lib/lp/answers/doc/faqtarget.txt (+2/-2) lib/lp/answers/doc/karma.txt (+1/-1) lib/lp/answers/doc/person.txt (+161/-140) lib/lp/answers/doc/projectgroup.txt (+47/-39) lib/lp/answers/doc/question.txt (+162/-132) lib/lp/answers/doc/questionsets.txt (+148/-139) lib/lp/answers/doc/questiontarget.txt (+266/-245) lib/lp/answers/doc/workflow.txt (+209/-193) lib/lp/answers/interfaces/faq.py (+2/-2) lib/lp/answers/interfaces/question.py (+1/-1) lib/lp/answers/interfaces/questionenums.py (+2/-2) lib/lp/answers/interfaces/questionreopening.py (+1/-0) lib/lp/answers/interfaces/questiontarget.py (+1/-1) lib/lp/answers/model/faq.py (+3/-3) lib/lp/answers/stories/faq-add.txt (+3/-3) lib/lp/answers/stories/faq-browse-and-search.txt (+1/-1) lib/lp/answers/stories/faq-edit.txt (+3/-8) lib/lp/answers/stories/project-add-question.txt (+15/-15) lib/lp/answers/stories/question-add-in-other-languages.txt (+8/-8) lib/lp/answers/stories/question-add.txt (+15/-9) lib/lp/answers/stories/question-answer-contact.txt (+4/-4) lib/lp/answers/stories/question-answers-vhost.txt (+5/-4) lib/lp/answers/stories/question-browse-and-search.txt (+7/-7) lib/lp/answers/stories/question-confirm-url.txt (+2/-2) lib/lp/answers/stories/question-edit.txt (+4/-4) lib/lp/answers/stories/question-message.txt (+3/-3) lib/lp/answers/stories/question-obfuscation.txt (+9/-9) lib/lp/answers/stories/question-overview.txt (+5/-5) lib/lp/answers/stories/question-reject-and-change-status.txt (+3/-3) lib/lp/answers/stories/question-subscriptions.txt (+24/-24) lib/lp/answers/stories/question-workflow.txt (+17/-16) lib/lp/answers/stories/this-is-a-faq.txt (+26/-23) lib/lp/answers/templates/faq-index.pt (+38/-17) lib/lp/answers/templates/faq-listing.pt (+0/-1) lib/lp/answers/templates/faq-portlet-lifecycle.pt (+0/-41) lib/lp/answers/templates/question-history.pt (+1/-9) lib/lp/answers/templates/question-index.pt (+65/-71) lib/lp/answers/templates/question-listing.pt (+1/-5) lib/lp/answers/templates/question-portlet-details.pt (+89/-71) lib/lp/answers/templates/question-portlet-reopenings.pt (+4/-9) lib/lp/answers/templates/question-subscription.pt (+11/-7) lib/lp/answers/tests/test_doc.py (+2/-2) lib/lp/app/__init__.py (+6/-0) lib/lp/app/browser/configure.zcml (+46/-0) lib/lp/app/browser/root.py (+19/-36) lib/lp/app/browser/tests/base-layout.txt (+51/-11) lib/lp/app/browser/tests/launchpad-search-pages.txt (+3/-3) lib/lp/app/browser/tests/menu.txt (+1/-1) lib/lp/app/browser/tests/root-views.txt (+66/-0) lib/lp/app/browser/tests/test_launchpadroot.py (+80/-0) lib/lp/app/browser/tests/test_views.py (+5/-2) lib/lp/app/browser/tests/watermark.txt (+1/-1) lib/lp/app/stories/basics/copyright.txt (+2/-2) lib/lp/app/stories/basics/xx-beta-testers-redirection.txt (+33/-62) lib/lp/app/stories/launchpad-root/front-pages.txt (+13/-0) lib/lp/app/stories/launchpad-root/site-search.txt (+3/-13) lib/lp/app/stories/launchpad-root/xx-featuredprojects.txt (+21/-10) lib/lp/app/templates/base-layout-macros.pt (+143/-95) lib/lp/app/templates/base-layout.pt (+13/-1) lib/lp/app/templates/launchpad-hierarchy.pt (+8/-11) lib/lp/app/templates/launchpad-search.pt (+12/-11) lib/lp/app/templates/navigationmenu-actions.pt (+1/-1) lib/lp/app/templates/root-index.pt (+139/-81) lib/lp/app/tests/test_doc.py (+17/-0) lib/lp/archivepublisher/config.py (+20/-7) lib/lp/archivepublisher/customupload.py (+83/-0) lib/lp/archivepublisher/deathrow.py (+16/-16) lib/lp/archivepublisher/debian_installer.py (+0/-3) lib/lp/archivepublisher/dist_upgrader.py (+0/-3) lib/lp/archivepublisher/domination.py (+34/-37) lib/lp/archivepublisher/ftparchive.py (+4/-4) lib/lp/archivepublisher/library.py (+0/-143) lib/lp/archivepublisher/publishing.py (+61/-45) lib/lp/archivepublisher/scripts/generate_ppa_htaccess.py (+9/-2) lib/lp/archivepublisher/tests/apt-data/Packages (+2/-0) lib/lp/archivepublisher/tests/archive-signing.txt (+4/-4) lib/lp/archivepublisher/tests/deathrow.txt (+13/-13) lib/lp/archivepublisher/tests/publisher-config.txt (+38/-11) lib/lp/archivepublisher/tests/test_customupload.py (+133/-1) lib/lp/archivepublisher/tests/test_deathrow.py (+1/-4) lib/lp/archivepublisher/tests/test_debversion.py (+2/-2) lib/lp/archivepublisher/tests/test_dominator.py (+12/-16) lib/lp/archivepublisher/tests/test_ftparchive.py (+10/-25) lib/lp/archivepublisher/tests/test_generate_ppa_htaccess.py (+69/-25) lib/lp/archivepublisher/tests/test_librarianwrapper.py (+0/-80) lib/lp/archivepublisher/tests/test_pool.py (+4/-4) lib/lp/archivepublisher/tests/test_publisher.py (+78/-114) lib/lp/archivepublisher/tests/util.py (+6/-34) lib/lp/archiveuploader/changesfile.py (+15/-1) lib/lp/archiveuploader/dscfile.py (+301/-34) lib/lp/archiveuploader/nascentupload.py (+44/-48) lib/lp/archiveuploader/nascentuploadfile.py (+16/-11) lib/lp/archiveuploader/permission.py (+129/-13) lib/lp/archiveuploader/tagfiles.py (+57/-22) lib/lp/archiveuploader/tests/__init__.py (+9/-3) lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_1.0-bzip2/bar_1.0-1.dsc (+10/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_1.0-bzip2/bar_1.0-1_source.changes (+20/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_3.0-quilt/bar_1.0-1.dsc (+22/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0-1_3.0-quilt/bar_1.0-1_source.changes (+34/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0-2_3.0-quilt_without_orig/bar_1.0-2.dsc (+22/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0-2_3.0-quilt_without_orig/bar_1.0-2_source.changes (+25/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0_3.0-native/bar_1.0.dsc (+13/-0) lib/lp/archiveuploader/tests/data/suite/bar_1.0_3.0-native/bar_1.0_source.changes (+25/-0) lib/lp/archiveuploader/tests/data/suite/debug_1.0-1/debug_1.0-1.dsc (+5/-5) lib/lp/archiveuploader/tests/data/suite/debug_1.0-1/debug_1.0-1_i386.changes (+10/-5) lib/lp/archiveuploader/tests/data/suite/debug_1.0-1/debug_1.0-1_source.changes (+12/-6) lib/lp/archiveuploader/tests/data/suite/foocomm_1.0-3/foocomm_1.0-3.dsc (+10/-0) lib/lp/archiveuploader/tests/data/suite/foocomm_1.0-3/foocomm_1.0-3_source.changes (+27/-0) lib/lp/archiveuploader/tests/data/test436182_0.1_source.changes (+23/-0) lib/lp/archiveuploader/tests/nascentupload-ddebs.txt (+16/-16) lib/lp/archiveuploader/tests/nascentuploadfile.txt (+247/-4) lib/lp/archiveuploader/tests/test_buildduploads.py (+6/-7) lib/lp/archiveuploader/tests/test_dscfile.py (+118/-0) lib/lp/archiveuploader/tests/test_permission.py (+66/-9) lib/lp/archiveuploader/tests/test_ppauploadprocessor.py (+68/-37) lib/lp/archiveuploader/tests/test_recipeuploads.py (+74/-0) lib/lp/archiveuploader/tests/test_securityuploads.py (+8/-12) lib/lp/archiveuploader/tests/test_signedfiles.py (+1/-1) lib/lp/archiveuploader/tests/test_tagfiles.py (+102/-38) lib/lp/archiveuploader/tests/test_uploadprocessor.py (+392/-51) lib/lp/archiveuploader/tests/test_utils.py (+74/-1) lib/lp/archiveuploader/tests/upload-karma.txt (+1/-1) lib/lp/archiveuploader/tests/upload-path-parsing.txt (+2/-2) lib/lp/archiveuploader/uploadpolicy.py (+43/-28) lib/lp/archiveuploader/uploadprocessor.py (+47/-28) lib/lp/archiveuploader/utils.py (+59/-1) lib/lp/blueprints/browser/configure.zcml (+5/-3) lib/lp/blueprints/browser/specification.py (+44/-48) lib/lp/blueprints/browser/specificationtarget.py (+42/-20) lib/lp/blueprints/browser/sprint.py (+21/-5) lib/lp/blueprints/browser/sprintattendance.py (+16/-11) lib/lp/blueprints/browser/tests/sprintattendance-views.txt (+126/-26) lib/lp/blueprints/browser/tests/test_breadcrumbs.py (+5/-9) lib/lp/blueprints/browser/tests/test_menus.py (+40/-0) lib/lp/blueprints/browser/tests/test_specificationtarget.py (+93/-0) lib/lp/blueprints/browser/tests/test_views.py (+2/-2) lib/lp/blueprints/doc/spec-mail-exploder.txt (+1/-1) lib/lp/blueprints/doc/specification-notifications.txt (+10/-10) lib/lp/blueprints/doc/specification.txt (+12/-8) lib/lp/blueprints/doc/sprint-meeting-export.txt (+1/-1) lib/lp/blueprints/doc/sprint.txt (+62/-10) lib/lp/blueprints/doc/sprintattendance.txt (+60/-0) lib/lp/blueprints/interfaces/specification.py (+4/-4) lib/lp/blueprints/interfaces/specificationsubscription.py (+1/-2) lib/lp/blueprints/interfaces/sprint.py (+1/-1) lib/lp/blueprints/interfaces/sprintattendance.py (+7/-2) lib/lp/blueprints/model/sprint.py (+4/-2) lib/lp/blueprints/model/sprintattendance.py (+2/-4) lib/lp/blueprints/stories/blueprints/01-creation.txt (+5/-32) lib/lp/blueprints/stories/blueprints/02-buglinks.txt (+1/-1) lib/lp/blueprints/stories/blueprints/08-productseries.txt (+4/-0) lib/lp/blueprints/stories/sprints/01-sprint-overview.txt (+1/-1) lib/lp/blueprints/stories/sprints/05-sprint-creation.txt (+2/-1) lib/lp/blueprints/stories/sprints/20-sprint-registration.txt (+0/-6) lib/lp/blueprints/stories/standalone/subscribing.txt (+2/-2) lib/lp/blueprints/stories/standalone/xx-overview.txt (+2/-2) lib/lp/blueprints/templates/hasspecifications-specs.pt (+14/-19) lib/lp/blueprints/templates/person-specworkload.pt (+1/-1) lib/lp/blueprints/templates/specification-index.pt (+1/-13) lib/lp/blueprints/templates/specificationtarget-documentation.pt (+3/-4) lib/lp/blueprints/templates/sprint-portlet-attendees.pt (+1/-1) lib/lp/blueprints/templates/sprint-register.pt (+4/-0) lib/lp/blueprints/tests/test_doc.py (+0/-3) lib/lp/bugs/adapters/bug.py (+13/-2) lib/lp/bugs/adapters/bugchange.py (+14/-4) lib/lp/bugs/browser/bug.py (+64/-31) lib/lp/bugs/browser/bugalsoaffects.py (+2/-22) lib/lp/bugs/browser/bugattachment.py (+109/-12) lib/lp/bugs/browser/bugbranch.py (+46/-3) lib/lp/bugs/browser/bugcomment.py (+16/-2) lib/lp/bugs/browser/buglinktarget.py (+7/-16) lib/lp/bugs/browser/bugmessage.py (+23/-4) lib/lp/bugs/browser/bugnomination.py (+7/-7) lib/lp/bugs/browser/bugsubscription.py (+24/-6) lib/lp/bugs/browser/bugsupervisor.py (+29/-14) lib/lp/bugs/browser/bugtarget.py (+340/-387) lib/lp/bugs/browser/bugtask.py (+408/-252) lib/lp/bugs/browser/bugwatch.py (+61/-5) lib/lp/bugs/browser/configure.zcml (+72/-22) lib/lp/bugs/browser/cvereport.py (+2/-1) lib/lp/bugs/browser/distribution_upstream_bug_report.py (+17/-5) lib/lp/bugs/browser/tests/bug-heat-view.txt (+119/-0) lib/lp/bugs/browser/tests/bug-nomination-views.txt (+3/-3) lib/lp/bugs/browser/tests/bug-portlet-subscribers-content.txt (+1/-1) lib/lp/bugs/browser/tests/bug-subscription-views.txt (+40/-0) lib/lp/bugs/browser/tests/bug-views.txt (+30/-4) lib/lp/bugs/browser/tests/buglinktarget-views.txt (+20/-4) lib/lp/bugs/browser/tests/bugtarget-filebug-views.txt (+99/-38) lib/lp/bugs/browser/tests/bugtask-adding-views.txt (+0/-37) lib/lp/bugs/browser/tests/bugtask-search-views.txt (+3/-155) lib/lp/bugs/browser/tests/bugwatch-views.txt (+86/-4) lib/lp/bugs/browser/tests/special/bugs-fixed-elsewhere.txt (+39/-31) lib/lp/bugs/browser/tests/test_breadcrumbs.py (+36/-52) lib/lp/bugs/browser/tests/test_bugtarget_patches_view.py (+102/-0) lib/lp/bugs/browser/tests/test_bugtask.py (+231/-2) lib/lp/bugs/browser/tests/test_bugview.py (+67/-0) lib/lp/bugs/configure.zcml (+118/-15) lib/lp/bugs/doc/bug-branch.txt (+28/-4) lib/lp/bugs/doc/bug-heat.txt (+241/-0) lib/lp/bugs/doc/bug-nomination.txt (+4/-4) lib/lp/bugs/doc/bug-reporting-guidelines.txt (+3/-3) lib/lp/bugs/doc/bug-tags.txt (+3/-3) lib/lp/bugs/doc/bug-watch-activity.txt (+148/-0) lib/lp/bugs/doc/bug.txt (+390/-23) lib/lp/bugs/doc/bugattachments.txt (+149/-16) lib/lp/bugs/doc/bugcomment.txt (+43/-0) lib/lp/bugs/doc/bugnotification-comment-syncing-team.txt (+1/-1) lib/lp/bugs/doc/bugnotification-email.txt (+41/-4) lib/lp/bugs/doc/bugnotification-sending.txt (+11/-5) lib/lp/bugs/doc/bugs-email-affects-path.txt (+1/-1) lib/lp/bugs/doc/bugsubscription.txt (+16/-4) lib/lp/bugs/doc/bugtask-expiration.txt (+14/-25) lib/lp/bugs/doc/bugtask-package-bugcounts.txt (+10/-0) lib/lp/bugs/doc/bugtask-search.txt (+119/-4) lib/lp/bugs/doc/bugtask-status-workflow.txt (+8/-1) lib/lp/bugs/doc/bugtask.txt (+7/-2) lib/lp/bugs/doc/bugtracker.txt (+30/-27) lib/lp/bugs/doc/bugwatch.txt (+106/-13) lib/lp/bugs/doc/bugzilla-import.txt (+3/-7) lib/lp/bugs/doc/checkwatches-batching.txt (+140/-0) lib/lp/bugs/doc/checkwatches-cli-switches.txt (+22/-19) lib/lp/bugs/doc/checkwatches.txt (+175/-52) lib/lp/bugs/doc/cve-update.txt (+2/-2) lib/lp/bugs/doc/distribution-upstream-bug-report.txt (+108/-56) lib/lp/bugs/doc/externalbugtracker-bug-imports.txt (+6/-4) lib/lp/bugs/doc/externalbugtracker-bugzilla-api.txt (+91/-32) lib/lp/bugs/doc/externalbugtracker-bugzilla-lp-plugin.txt (+51/-19) lib/lp/bugs/doc/externalbugtracker-bugzilla-oddities.txt (+5/-3) lib/lp/bugs/doc/externalbugtracker-bugzilla.txt (+71/-15) lib/lp/bugs/doc/externalbugtracker-comment-imports.txt (+56/-24) lib/lp/bugs/doc/externalbugtracker-comment-pushing.txt (+42/-24) lib/lp/bugs/doc/externalbugtracker-debbugs.txt (+43/-25) lib/lp/bugs/doc/externalbugtracker-linking-back.txt (+38/-10) lib/lp/bugs/doc/externalbugtracker-mantis-csv.txt (+13/-11) lib/lp/bugs/doc/externalbugtracker-mantis.txt (+6/-4) lib/lp/bugs/doc/externalbugtracker-roundup.txt (+4/-2) lib/lp/bugs/doc/externalbugtracker-rt.txt (+4/-2) lib/lp/bugs/doc/externalbugtracker-sourceforge.txt (+6/-2) lib/lp/bugs/doc/externalbugtracker-trac-lp-plugin.txt (+27/-15) lib/lp/bugs/doc/externalbugtracker-trac.txt (+40/-7) lib/lp/bugs/doc/externalbugtracker.txt (+71/-82) lib/lp/bugs/doc/filebug-data-parser.txt (+3/-3) lib/lp/bugs/doc/hasbugs.txt (+26/-0) lib/lp/bugs/doc/malone-karma.txt (+33/-2) lib/lp/bugs/doc/malone-xmlrpc.txt (+2/-2) lib/lp/bugs/doc/memory-debug.txt (+0/-185) lib/lp/bugs/doc/official-bug-tags.txt (+6/-6) lib/lp/bugs/externalbugtracker/__init__.py (+4/-1) lib/lp/bugs/externalbugtracker/base.py (+14/-3) lib/lp/bugs/externalbugtracker/bugzilla.py (+118/-119) lib/lp/bugs/externalbugtracker/debbugs.py (+22/-16) lib/lp/bugs/externalbugtracker/isolation.py (+65/-0) lib/lp/bugs/externalbugtracker/mantis.py (+34/-8) lib/lp/bugs/externalbugtracker/rt.py (+2/-0) lib/lp/bugs/externalbugtracker/tests/test_externalbugtracker.py (+92/-0) lib/lp/bugs/externalbugtracker/tests/test_isolation.py (+99/-0) lib/lp/bugs/externalbugtracker/trac.py (+46/-20) lib/lp/bugs/externalbugtracker/xmlrpc.py (+11/-12) lib/lp/bugs/feed/bug.py (+2/-2) lib/lp/bugs/help/bug-heat.html (+191/-0) lib/lp/bugs/help/tag-help.html (+30/-0) lib/lp/bugs/help/tag-search.html (+5/-5) lib/lp/bugs/interfaces/apportjob.py (+74/-0) lib/lp/bugs/interfaces/bug.py (+168/-33) lib/lp/bugs/interfaces/bugattachment.py (+17/-1) lib/lp/bugs/interfaces/bugjob.py (+67/-0) lib/lp/bugs/interfaces/bugmessage.py (+5/-2) lib/lp/bugs/interfaces/bugnomination.py (+4/-4) lib/lp/bugs/interfaces/bugsubscription.py (+5/-4) lib/lp/bugs/interfaces/bugsupervisor.py (+2/-3) lib/lp/bugs/interfaces/bugtarget.py (+60/-34) lib/lp/bugs/interfaces/bugtask.py (+68/-11) lib/lp/bugs/interfaces/bugtracker.py (+48/-18) lib/lp/bugs/interfaces/bugwatch.py (+135/-5) lib/lp/bugs/interfaces/cve.py (+6/-0) lib/lp/bugs/interfaces/externalbugtracker.py (+50/-20) lib/lp/bugs/model/apportjob.py (+263/-0) lib/lp/bugs/model/bug.py (+303/-44) lib/lp/bugs/model/bugattachment.py (+16/-0) lib/lp/bugs/model/bugheat.py (+54/-0) lib/lp/bugs/model/bugjob.py (+137/-0) lib/lp/bugs/model/bugnotification.py (+2/-0) lib/lp/bugs/model/bugsubscription.py (+3/-0) lib/lp/bugs/model/bugtarget.py (+118/-7) lib/lp/bugs/model/bugtask.py (+169/-58) lib/lp/bugs/model/bugtracker.py (+49/-45) lib/lp/bugs/model/bugwatch.py (+201/-42) lib/lp/bugs/scripts/bugexpire.py (+3/-3) lib/lp/bugs/scripts/bugheat.py (+108/-0) lib/lp/bugs/scripts/bugimport.py (+1/-1) lib/lp/bugs/scripts/bugnotification.py (+12/-0) lib/lp/bugs/scripts/bugzilla.py (+1/-1) lib/lp/bugs/scripts/checkwatches/__init__.py (+10/-0) lib/lp/bugs/scripts/checkwatches/base.py (+264/-0) lib/lp/bugs/scripts/checkwatches/bugwatchupdater.py (+284/-0) lib/lp/bugs/scripts/checkwatches/core.py (+594/-731) lib/lp/bugs/scripts/checkwatches/scheduler.py (+92/-0) lib/lp/bugs/scripts/checkwatches/tests/test_base.py (+178/-0) lib/lp/bugs/scripts/checkwatches/tests/test_core.py (+441/-0) lib/lp/bugs/scripts/checkwatches/tests/test_scheduler.py (+110/-0) lib/lp/bugs/scripts/importdebianbugs.py (+2/-2) lib/lp/bugs/scripts/tests/test_bugheat.py (+256/-0) lib/lp/bugs/scripts/tests/test_bugimport.py (+36/-17) lib/lp/bugs/scripts/tests/test_bugnotification.py (+1/-2) lib/lp/bugs/stories/bug-also-affects/xx-also-affects-upstream-default-values.txt (+3/-2) lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt (+4/-2) lib/lp/bugs/stories/bug-privacy/05-set-bug-private-as-admin.txt (+6/-3) lib/lp/bugs/stories/bug-tags/xx-official-bug-tags.txt (+48/-2) lib/lp/bugs/stories/bug-tags/xx-tags-on-bug-page.txt (+3/-3) lib/lp/bugs/stories/bugattachments/10-add-bug-attachment.txt (+185/-0) lib/lp/bugs/stories/bugattachments/20-edit-bug-attachment.txt (+86/-30) lib/lp/bugs/stories/bugattachments/xx-attachments-to-bug-report.txt (+20/-0) lib/lp/bugs/stories/bugattachments/xx-delete-bug-attachment.txt (+7/-3) lib/lp/bugs/stories/bugs/bug-add-subscriber.txt (+22/-2) lib/lp/bugs/stories/bugs/xx-bug-activity.txt (+32/-2) lib/lp/bugs/stories/bugs/xx-bug-affects-me-too.txt (+26/-11) lib/lp/bugs/stories/bugs/xx-bug-comments-truncated.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-bug-create-question.txt (+5/-9) lib/lp/bugs/stories/bugs/xx-bug-edit.txt (+14/-4) lib/lp/bugs/stories/bugs/xx-bug-heat-on-bug-page.txt (+35/-0) lib/lp/bugs/stories/bugs/xx-bug-hidden-comments.txt (+37/-6) lib/lp/bugs/stories/bugs/xx-bug-index.txt (+3/-3) lib/lp/bugs/stories/bugs/xx-bug-personal-subscriptions.txt (+35/-16) lib/lp/bugs/stories/bugs/xx-bugtarget-bugs-page.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-front-page-bug-lists.txt (+97/-8) lib/lp/bugs/stories/bugs/xx-front-page-info.txt (+112/-0) lib/lp/bugs/stories/bugs/xx-front-page-search.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-incomplete-bugs.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-link-bug-to-branch.txt (+2/-13) lib/lp/bugs/stories/bugs/xx-portlets-bug-series.txt (+2/-18) lib/lp/bugs/stories/bugs/xx-product-bugs-page.txt (+72/-40) lib/lp/bugs/stories/bugs/xx-project-bugs-page.txt (+3/-3) lib/lp/bugs/stories/bugs/xx-remote-bug-comments.txt (+2/-0) lib/lp/bugs/stories/bugtask-management/xx-bugtask-edit-forms.txt (+55/-0) lib/lp/bugs/stories/bugtask-management/xx-change-milestone.txt (+2/-2) lib/lp/bugs/stories/bugtask-searches/xx-advanced-upstream-pending-bugwatch.txt (+1/-35) lib/lp/bugs/stories/bugtask-searches/xx-filter-by-linked-branches.txt (+64/-0) lib/lp/bugs/stories/bugtask-searches/xx-listing-basics.txt (+50/-2) lib/lp/bugs/stories/bugtask-searches/xx-searching-by-tags.txt (+28/-3) lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt (+2/-1) lib/lp/bugs/stories/bugtracker/xx-bugtracker-handshake-tokens.txt (+1/-1) lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt (+6/-5) lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt (+37/-13) lib/lp/bugs/stories/bugwatches/xx-bugwatch-comments.txt (+1/-1) lib/lp/bugs/stories/bugwatches/xx-bugwatch-errors.txt (+27/-5) lib/lp/bugs/stories/bugwatches/xx-edit-bugwatch.txt (+165/-1) lib/lp/bugs/stories/cve/cve-linking.txt (+15/-16) lib/lp/bugs/stories/distribution/xx-distribution-bug-statistics-portlet-authenticated.txt (+0/-19) lib/lp/bugs/stories/distribution/xx-distribution-bug-statistics-portlet-unauthenticated.txt (+0/-16) lib/lp/bugs/stories/distribution/xx-distribution-upstream-bug-report.txt (+39/-22) lib/lp/bugs/stories/duplicate-bug-handling/10-mark-bug-as-duplicate.txt (+1/-0) lib/lp/bugs/stories/duplicate-bug-handling/20-show-bug-is-duplicate.txt (+1/-1) lib/lp/bugs/stories/feeds/xx-bug-atom.txt (+4/-5) lib/lp/bugs/stories/feeds/xx-bug-html.txt (+4/-5) lib/lp/bugs/stories/guided-filebug/xx-bug-reporting-guidelines.txt (+11/-45) lib/lp/bugs/stories/guided-filebug/xx-bug-reporting-tools.txt (+37/-0) lib/lp/bugs/stories/guided-filebug/xx-displaying-similar-bugs.txt (+1/-1) lib/lp/bugs/stories/guided-filebug/xx-distro-guided-filebug-tags.txt (+1/-1) lib/lp/bugs/stories/guided-filebug/xx-filebug-tags.txt (+1/-2) lib/lp/bugs/stories/guided-filebug/xx-filing-security-bugs.txt (+0/-30) lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-distribution.txt (+0/-109) lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-package.txt (+0/-77) lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-product.txt (+0/-123) lib/lp/bugs/stories/guided-filebug/xx-no-launchpadder.txt (+2/-1) lib/lp/bugs/stories/guided-filebug/xx-project-guided-filebug.txt (+18/-6) lib/lp/bugs/stories/guided-filebug/xx-ubuntu-filebug.txt (+20/-11) lib/lp/bugs/stories/initial-bug-contacts/05-set-distribution-bugcontact.txt (+76/-28) lib/lp/bugs/stories/initial-bug-contacts/10-set-upstream-bugcontact.txt (+109/-15) lib/lp/bugs/stories/initial-bug-contacts/20-file-upstream-bug.txt (+5/-4) lib/lp/bugs/stories/initial-bug-contacts/25-file-distribution-bug.txt (+3/-2) lib/lp/bugs/stories/patches-view/patches-view.txt (+536/-0) lib/lp/bugs/stories/structural-subscriptions/xx-bug-subscriptions.txt (+17/-0) lib/lp/bugs/stories/upstream-bugprivacy/10-file-private-upstream-bug.txt (+5/-8) lib/lp/bugs/stories/webservice/xx-bug-tracker.txt (+77/-0) lib/lp/bugs/stories/webservice/xx-bug.txt (+185/-50) lib/lp/bugs/stories/xx-bugs-statistics-portlet.txt (+412/-0) lib/lp/bugs/subscribers/bug.py (+7/-6) lib/lp/bugs/subscribers/bugactivity.py (+12/-9) lib/lp/bugs/subscribers/buglastupdated.py (+3/-1) lib/lp/bugs/templates/bug-attachment-confirm-is-patch.pt (+40/-0) lib/lp/bugs/templates/bug-attachment-edit.pt (+5/-0) lib/lp/bugs/templates/bug-branch.pt (+33/-0) lib/lp/bugs/templates/bug-comment-add-form.pt (+3/-1) lib/lp/bugs/templates/bug-listing-detailed.pt (+1/-1) lib/lp/bugs/templates/bug-portlet-actions.pt (+1/-1) lib/lp/bugs/templates/bug-portlet-attachments.pt (+46/-22) lib/lp/bugs/templates/bug-portlet-dupe-subscribers-content.pt (+27/-0) lib/lp/bugs/templates/bug-portlet-specs.pt (+1/-1) lib/lp/bugs/templates/bug-portlet-subscribers-content.pt (+12/-20) lib/lp/bugs/templates/bug-portlet-subscribers.pt (+22/-49) lib/lp/bugs/templates/bugcomment-box.pt (+12/-1) lib/lp/bugs/templates/buglinktarget-portlet-bugs.pt (+11/-18) lib/lp/bugs/templates/buglisting-embedded-advanced-search.pt (+0/-1) lib/lp/bugs/templates/bugtarget-bugs.pt (+138/-175) lib/lp/bugs/templates/bugtarget-filebug-inline-form.pt (+11/-0) lib/lp/bugs/templates/bugtarget-filebug-search.pt (+112/-34) lib/lp/bugs/templates/bugtarget-filebug-show-similar.pt (+7/-2) lib/lp/bugs/templates/bugtarget-filebug-submit-bug.pt (+6/-4) lib/lp/bugs/templates/bugtarget-macros-filebug.pt (+67/-22) lib/lp/bugs/templates/bugtarget-macros-search.pt (+4/-0) lib/lp/bugs/templates/bugtarget-patches.pt (+115/-0) lib/lp/bugs/templates/bugtarget-portlet-bugfilters-content.pt (+134/-41) lib/lp/bugs/templates/bugtarget-portlet-bugfilters.pt (+47/-28) lib/lp/bugs/templates/bugtarget-portlet-bugtags.pt (+5/-5) lib/lp/bugs/templates/bugtask-edit.pt (+0/-9) lib/lp/bugs/templates/bugtask-index.pt (+55/-30) lib/lp/bugs/templates/bugtask-macros-listing.pt (+39/-28) lib/lp/bugs/templates/bugtask-macros-tableview.pt (+101/-69) lib/lp/bugs/templates/bugtask-tasks-and-nominations-table-row.pt (+27/-14) lib/lp/bugs/templates/bugtask-view.pt (+0/-18) lib/lp/bugs/templates/bugtasks-and-nominations-table.pt (+63/-48) lib/lp/bugs/templates/bugtracker-portlet-watches.pt (+14/-0) lib/lp/bugs/templates/bugwatch-editform.pt (+4/-0) lib/lp/bugs/templates/bugwatch-portlet-activity.pt (+44/-0) lib/lp/bugs/templates/bugwatch-portlet-details.pt (+21/-7) lib/lp/bugs/templates/cve-index.pt (+9/-11) lib/lp/bugs/templates/cve-portlet-bugs2.pt (+1/-1) lib/lp/bugs/templates/cveset-all.pt (+0/-4) lib/lp/bugs/templates/distribution-cvereport.pt (+7/-7) lib/lp/bugs/templates/distribution-upstream-bug-report.pt (+21/-1) lib/lp/bugs/templates/malone-index.pt (+1/-1) lib/lp/bugs/templates/malone-portlet-stats.pt (+1/-1) lib/lp/bugs/templates/official-bug-target-manage-tags.pt (+2/-6) lib/lp/bugs/templates/person-packagebugs-search.pt (+0/-16) lib/lp/bugs/tests/bug.py (+73/-12) lib/lp/bugs/tests/bugs-emailinterface.txt (+22/-6) lib/lp/bugs/tests/bugtarget-bugcount.txt (+2/-0) lib/lp/bugs/tests/bugzilla-api-xmlrpc-transport.txt (+96/-39) lib/lp/bugs/tests/bugzilla-xmlrpc-transport.txt (+28/-35) lib/lp/bugs/tests/externalbugtracker-xmlrpc-transport.txt (+17/-20) lib/lp/bugs/tests/externalbugtracker.py (+111/-56) lib/lp/bugs/tests/test_apportjob.py (+427/-0) lib/lp/bugs/tests/test_bug_messages.py (+44/-0) lib/lp/bugs/tests/test_bugchanges.py (+6/-5) lib/lp/bugs/tests/test_bugcontact.py (+5/-4) lib/lp/bugs/tests/test_bugheat.py (+300/-0) lib/lp/bugs/tests/test_bugjob.py (+55/-0) lib/lp/bugs/tests/test_bugnotification.py (+68/-4) lib/lp/bugs/tests/test_bugs_webservice.py (+80/-11) lib/lp/bugs/tests/test_bugtarget.py (+7/-6) lib/lp/bugs/tests/test_bugtask.py (+1/-1) lib/lp/bugs/tests/test_bugtask_1.py (+3/-3) lib/lp/bugs/tests/test_bugtask_status.txt (+52/-4) lib/lp/bugs/tests/test_bugtracker.py (+162/-7) lib/lp/bugs/tests/test_bugwatch.py (+373/-49) lib/lp/bugs/tests/test_doc.py (+12/-0) lib/lp/bugs/utilities/filebugdataparser.py (+168/-0) lib/lp/bugs/windmill/tests/test_bug_also_affects_new_upstream.py (+44/-37) lib/lp/bugs/windmill/tests/test_bug_commenting.py (+4/-5) lib/lp/bugs/windmill/tests/test_bug_inline_subscriber.py (+235/-248) lib/lp/bugs/windmill/tests/test_bug_me_too.py (+90/-94) lib/lp/bugs/windmill/tests/test_bug_privacy_settings.py (+156/-128) lib/lp/bugs/windmill/tests/test_bug_tags_entry.py (+77/-0) lib/lp/bugs/windmill/tests/test_bugs/__init__.py (+0/-85) lib/lp/bugs/windmill/tests/test_bugs/test_bug_tags_entry.py (+0/-80) lib/lp/bugs/windmill/tests/test_filebug_dupe_finder.py (+97/-99) lib/lp/bugs/windmill/tests/test_filebug_extra_options.py (+58/-58) lib/lp/bugs/windmill/tests/test_mark_duplicate.py (+114/-92) lib/lp/bugs/windmill/tests/test_official_bug_tags_management.py (+202/-161) lib/lp/buildmaster/buildergroup.py (+0/-537) lib/lp/buildmaster/configure.zcml (+67/-0) lib/lp/buildmaster/doc/builder.txt (+175/-145) lib/lp/buildmaster/doc/buildfarmjob.txt (+43/-0) lib/lp/buildmaster/doc/buildfarmjobbehavior.txt (+121/-0) lib/lp/buildmaster/doc/buildqueue.txt (+37/-47) lib/lp/buildmaster/interfaces/buildbase.py (+264/-0) lib/lp/buildmaster/interfaces/builder.py (+65/-62) lib/lp/buildmaster/interfaces/buildfarmbranchjob.py (+20/-0) lib/lp/buildmaster/interfaces/buildfarmjob.py (+153/-0) lib/lp/buildmaster/interfaces/buildfarmjobbehavior.py (+76/-0) lib/lp/buildmaster/interfaces/buildqueue.py (+74/-92) lib/lp/buildmaster/manager.py (+57/-41) lib/lp/buildmaster/master.py (+0/-317) lib/lp/buildmaster/model/buildbase.py (+381/-0) lib/lp/buildmaster/model/builder.py (+395/-389) lib/lp/buildmaster/model/buildfarmjob.py (+135/-0) lib/lp/buildmaster/model/buildfarmjobbehavior.py (+218/-0) lib/lp/buildmaster/model/buildqueue.py (+438/-266) lib/lp/buildmaster/model/packagebuildfarmjob.py (+58/-0) lib/lp/buildmaster/tests/harness.py (+3/-3) lib/lp/buildmaster/tests/test_buildbase.py (+163/-0) lib/lp/buildmaster/tests/test_builder.py (+346/-0) lib/lp/buildmaster/tests/test_buildfarmjobbehavior.py (+150/-0) lib/lp/buildmaster/tests/test_buildmaster_documentation.py (+30/-10) lib/lp/buildmaster/tests/test_buildqueue.py (+1340/-0) lib/lp/buildmaster/tests/test_manager.py (+142/-47) lib/lp/code/adapters/branch.py (+1/-1) lib/lp/code/adapters/tests/test_branch.py (+2/-0) lib/lp/code/browser/bazaar.py (+3/-1) lib/lp/code/browser/branch.py (+170/-85) lib/lp/code/browser/branchlisting.py (+49/-45) lib/lp/code/browser/branchmergeproposal.py (+323/-75) lib/lp/code/browser/branchmergeproposallisting.py (+33/-1) lib/lp/code/browser/branchsubscription.py (+6/-29) lib/lp/code/browser/codeimport.py (+200/-113) lib/lp/code/browser/codeimportmachine.py (+9/-0) lib/lp/code/browser/codereviewcomment.py (+52/-41) lib/lp/code/browser/codereviewvote.py (+11/-3) lib/lp/code/browser/configure.zcml (+150/-28) lib/lp/code/browser/diff.py (+95/-0) lib/lp/code/browser/sourcepackagerecipe.py (+406/-0) lib/lp/code/browser/sourcepackagerecipelisting.py (+73/-0) lib/lp/code/browser/summary.py (+1/-1) lib/lp/code/browser/tests/test_branch.py (+62/-1) lib/lp/code/browser/tests/test_branchlisting.py (+50/-2) lib/lp/code/browser/tests/test_branchmergeproposal.py (+262/-56) lib/lp/code/browser/tests/test_branchmergeproposallisting.py (+53/-1) lib/lp/code/browser/tests/test_breadcrumbs.py (+25/-0) lib/lp/code/browser/tests/test_codeimport.py (+60/-0) lib/lp/code/browser/tests/test_codereviewcomment.py (+1/-60) lib/lp/code/browser/tests/test_diff.py (+41/-0) lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+394/-0) lib/lp/code/browser/tests/test_tales.py (+175/-0) lib/lp/code/bzr.py (+32/-63) lib/lp/code/configure.zcml (+235/-57) lib/lp/code/doc/branch-karma.txt (+2/-1) lib/lp/code/doc/branch-merge-proposal-notifications.txt (+13/-11) lib/lp/code/doc/branch-merge-proposals.txt (+4/-5) lib/lp/code/doc/branch-notifications.txt (+20/-22) lib/lp/code/doc/branch-visibility-policy.txt (+4/-4) lib/lp/code/doc/branch-visibility.txt (+6/-6) lib/lp/code/doc/branch-xmlrpc.txt (+2/-2) lib/lp/code/doc/branch.txt (+5/-3) lib/lp/code/doc/codeimport-event.txt (+31/-77) lib/lp/code/doc/codeimport.txt (+238/-93) lib/lp/code/doc/codereviewcomment.txt (+20/-8) lib/lp/code/doc/xmlrpc-branch-filesystem.txt (+0/-31) lib/lp/code/doc/xmlrpc-branch-puller.txt (+0/-46) lib/lp/code/doc/xmlrpc-codehosting.txt (+32/-0) lib/lp/code/doc/xmlrpc-codeimport-scheduler.txt (+5/-8) lib/lp/code/enums.py (+36/-1) lib/lp/code/errors.py (+93/-0) lib/lp/code/event/branchmergeproposal.py (+1/-1) lib/lp/code/feed/branch.py (+3/-3) lib/lp/code/help/register-branch.html (+5/-5) lib/lp/code/interfaces/branch.py (+249/-92) lib/lp/code/interfaces/branchjob.py (+37/-13) lib/lp/code/interfaces/branchlookup.py (+19/-0) lib/lp/code/interfaces/branchmergeproposal.py (+111/-66) lib/lp/code/interfaces/branchpuller.py (+3/-7) lib/lp/code/interfaces/branchscanner.py (+0/-18) lib/lp/code/interfaces/branchtarget.py (+28/-3) lib/lp/code/interfaces/branchvisibilitypolicy.py (+1/-1) lib/lp/code/interfaces/codehosting.py (+32/-75) lib/lp/code/interfaces/codeimport.py (+97/-94) lib/lp/code/interfaces/codeimportjob.py (+13/-4) lib/lp/code/interfaces/codeimportmachine.py (+1/-1) lib/lp/code/interfaces/codeimportscheduler.py (+27/-1) lib/lp/code/interfaces/codereviewcomment.py (+18/-1) lib/lp/code/interfaces/codereviewvote.py (+83/-13) lib/lp/code/interfaces/diff.py (+7/-0) lib/lp/code/interfaces/event.py (+36/-0) lib/lp/code/interfaces/hasbranches.py (+87/-6) lib/lp/code/interfaces/hasrecipes.py (+19/-0) lib/lp/code/interfaces/linkedbranch.py (+6/-0) lib/lp/code/interfaces/revision.py (+3/-3) lib/lp/code/interfaces/sourcepackagerecipe.py (+187/-0) lib/lp/code/interfaces/sourcepackagerecipebuild.py (+101/-0) lib/lp/code/interfaces/tests/test_branch.py (+1/-45) lib/lp/code/interfaces/webservice.py (+11/-1) lib/lp/code/javascript/branch.bugspeclinks.js (+27/-29) lib/lp/code/javascript/branch.status.js (+49/-0) lib/lp/code/javascript/branch.subscription.js (+219/-0) lib/lp/code/javascript/branchmergeproposal.diff.js (+134/-0) lib/lp/code/javascript/branchmergeproposal.reviewcomment.js (+175/-19) lib/lp/code/javascript/branchmergeproposal.status.js (+130/-0) lib/lp/code/javascript/productseries-setbranch.js (+88/-0) lib/lp/code/javascript/tests/test_productseries-setbranch.html (+213/-0) lib/lp/code/javascript/tests/test_productseries_setbranch.js (+249/-0) lib/lp/code/mail/branch.py (+25/-34) lib/lp/code/mail/branchmergeproposal.py (+56/-83) lib/lp/code/mail/codehandler.py (+80/-76) lib/lp/code/mail/codeimport.py (+31/-17) lib/lp/code/mail/codereviewcomment.py (+22/-11) lib/lp/code/mail/tests/test_branch.py (+51/-5) lib/lp/code/mail/tests/test_branchmergeproposal.py (+188/-82) lib/lp/code/mail/tests/test_codehandler.py (+201/-116) lib/lp/code/mail/tests/test_codeimport.py (+144/-0) lib/lp/code/mail/tests/test_codereviewcomment.py (+22/-4) lib/lp/code/model/branch.py (+180/-87) lib/lp/code/model/branchjob.py (+169/-110) lib/lp/code/model/branchlookup.py (+34/-10) lib/lp/code/model/branchmergeproposal.py (+78/-41) lib/lp/code/model/branchmergeproposaljob.py (+438/-77) lib/lp/code/model/branchnamespace.py (+4/-5) lib/lp/code/model/branchpuller.py (+5/-25) lib/lp/code/model/branchscanner.py (+0/-40) lib/lp/code/model/branchtarget.py (+48/-7) lib/lp/code/model/branchvisibilitypolicy.py (+4/-4) lib/lp/code/model/codeimport.py (+74/-106) lib/lp/code/model/codeimportevent.py (+5/-4) lib/lp/code/model/codeimportjob.py (+35/-23) lib/lp/code/model/codeimportmachine.py (+2/-3) lib/lp/code/model/codereviewcomment.py (+56/-0) lib/lp/code/model/codereviewvote.py (+58/-0) lib/lp/code/model/diff.py (+100/-36) lib/lp/code/model/directbranchcommit.py (+29/-28) lib/lp/code/model/hasbranches.py (+36/-2) lib/lp/code/model/linkedbranch.py (+124/-25) lib/lp/code/model/recipebuilder.py (+184/-0) lib/lp/code/model/revision.py (+34/-24) lib/lp/code/model/sourcepackagerecipe.py (+179/-0) lib/lp/code/model/sourcepackagerecipebuild.py (+234/-0) lib/lp/code/model/sourcepackagerecipedata.py (+260/-0) lib/lp/code/model/tests/test_branch.py (+642/-147) lib/lp/code/model/tests/test_branchcloud.py (+4/-3) lib/lp/code/model/tests/test_branchcollection.py (+36/-0) lib/lp/code/model/tests/test_branchjob.py (+185/-170) lib/lp/code/model/tests/test_branchlookup.py (+58/-2) lib/lp/code/model/tests/test_branchmergeproposaljobs.py (+446/-0) lib/lp/code/model/tests/test_branchmergeproposals.py (+188/-264) lib/lp/code/model/tests/test_branchpuller.py (+61/-109) lib/lp/code/model/tests/test_branchscanner.py (+0/-100) lib/lp/code/model/tests/test_branchset.py (+20/-10) lib/lp/code/model/tests/test_branchtarget.py (+69/-7) lib/lp/code/model/tests/test_codeimport.py (+201/-235) lib/lp/code/model/tests/test_codeimportjob.py (+51/-41) lib/lp/code/model/tests/test_codeimportmachine.py (+9/-11) lib/lp/code/model/tests/test_codereviewcomment.py (+59/-4) lib/lp/code/model/tests/test_codereviewkarma.py (+2/-1) lib/lp/code/model/tests/test_codereviewvote.py (+238/-9) lib/lp/code/model/tests/test_diff.py (+149/-11) lib/lp/code/model/tests/test_hasbranches.py (+1/-1) lib/lp/code/model/tests/test_hasmergeproposals.py (+1/-1) lib/lp/code/model/tests/test_hasrecipes.py (+77/-0) lib/lp/code/model/tests/test_linkedbranch.py (+145/-1) lib/lp/code/model/tests/test_revision.py (+58/-13) lib/lp/code/model/tests/test_revisionauthor.py (+3/-0) lib/lp/code/model/tests/test_sourcepackagerecipe.py (+581/-0) lib/lp/code/model/tests/test_sourcepackagerecipe.py.moved (+40/-0) lib/lp/code/scripts/revisionkarma.py (+13/-6) lib/lp/code/scripts/tests/test_create_merge_proposals.py (+8/-14) lib/lp/code/scripts/tests/test_merge_proposal_jobs.py (+10/-47) lib/lp/code/scripts/tests/test_reclaim_branch_space.py (+3/-4) lib/lp/code/scripts/tests/test_scan_branches.py (+78/-0) lib/lp/code/scripts/tests/test_sendbranchmail.py (+17/-12) lib/lp/code/scripts/tests/test_update_preview_diffs.py (+0/-48) lib/lp/code/scripts/tests/test_upgrade_branches.py (+75/-0) lib/lp/code/stories/branches/xx-bazaar-home.txt (+1/-1) lib/lp/code/stories/branches/xx-branch-deletion.txt (+1/-1) lib/lp/code/stories/branches/xx-branch-edit-privacy.txt (+35/-8) lib/lp/code/stories/branches/xx-branch-edit.txt (+7/-5) lib/lp/code/stories/branches/xx-branch-index.txt (+2/-1) lib/lp/code/stories/branches/xx-branch-listings.txt (+1/-4) lib/lp/code/stories/branches/xx-branch-mirror-failures.txt (+3/-1) lib/lp/code/stories/branches/xx-branch-tag-cloud.txt (+7/-5) lib/lp/code/stories/branches/xx-branchmergeproposal-listings.txt (+59/-10) lib/lp/code/stories/branches/xx-branchmergeproposals.txt (+167/-71) lib/lp/code/stories/branches/xx-bug-branch-links.txt (+39/-13) lib/lp/code/stories/branches/xx-claiming-team-code-reviews.txt (+2/-1) lib/lp/code/stories/branches/xx-code-review-comments.txt (+70/-3) lib/lp/code/stories/branches/xx-creating-branches.txt (+28/-0) lib/lp/code/stories/branches/xx-junk-branches.txt (+11/-2) lib/lp/code/stories/branches/xx-nearby-branches.txt (+25/-0) lib/lp/code/stories/branches/xx-person-branches.txt (+0/-1) lib/lp/code/stories/branches/xx-person-portlet-teambranches.txt (+29/-20) lib/lp/code/stories/branches/xx-private-branch-listings.txt (+1/-1) lib/lp/code/stories/branches/xx-product-branches.txt (+14/-10) lib/lp/code/stories/branches/xx-project-branches.txt (+2/-2) lib/lp/code/stories/branches/xx-propose-for-merging.txt (+61/-0) lib/lp/code/stories/branches/xx-register-a-branch.txt (+4/-10) lib/lp/code/stories/branches/xx-reviewing.txt (+39/-0) lib/lp/code/stories/branches/xx-source-package-branches-listing.txt (+3/-0) lib/lp/code/stories/branches/xx-subscribing-branches.txt (+129/-3) lib/lp/code/stories/branches/xx-upgrading-branches.txt (+49/-0) lib/lp/code/stories/codeimport/xx-admin-codeimport.txt (+357/-0) lib/lp/code/stories/codeimport/xx-codeimport-list.txt (+0/-62) lib/lp/code/stories/codeimport/xx-codeimport-machines.txt (+7/-7) lib/lp/code/stories/codeimport/xx-codeimport-results.txt (+22/-14) lib/lp/code/stories/codeimport/xx-codeimport-view.txt (+37/-19) lib/lp/code/stories/codeimport/xx-create-codeimport.txt (+145/-30) lib/lp/code/stories/codeimport/xx-edit-codeimport.txt (+45/-209) lib/lp/code/stories/codeimport/xx-failing-codeimport.txt (+5/-4) lib/lp/code/stories/feeds/xx-revision-atom.txt (+1/-1) lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt (+140/-0) lib/lp/code/stories/webservice/xx-branch.txt (+68/-5) lib/lp/code/stories/webservice/xx-branchmergeproposal.txt (+197/-37) lib/lp/code/stories/webservice/xx-code-import.txt (+253/-0) lib/lp/code/subscribers/branchmergeproposal.py (+55/-0) lib/lp/code/templates/active-reviews.pt (+6/-0) lib/lp/code/templates/bazaar-index.pt (+11/-8) lib/lp/code/templates/branch-delete.pt (+1/-1) lib/lp/code/templates/branch-import-details.pt (+33/-13) lib/lp/code/templates/branch-index.pt (+34/-17) lib/lp/code/templates/branch-information.pt (+9/-4) lib/lp/code/templates/branch-listing.pt (+5/-173) lib/lp/code/templates/branch-macros.pt (+29/-31) lib/lp/code/templates/branch-messages.pt (+6/-0) lib/lp/code/templates/branch-metadata.pt (+11/-2) lib/lp/code/templates/branch-pending-merges.pt (+3/-4) lib/lp/code/templates/branch-portlet-subscribers-content.pt (+5/-4) lib/lp/code/templates/branch-portlet-subscribers.pt (+7/-34) lib/lp/code/templates/branch-register-merge.pt (+60/-0) lib/lp/code/templates/branch-related-bugs-specs.pt (+2/-2) lib/lp/code/templates/branchmergeproposal-diff.pt (+33/-0) lib/lp/code/templates/branchmergeproposal-generic-listing.pt (+3/-3) lib/lp/code/templates/branchmergeproposal-index.pt (+148/-45) lib/lp/code/templates/branchmergeproposal-link-summary.pt (+2/-1) lib/lp/code/templates/branchmergeproposal-macros.pt (+5/-1) lib/lp/code/templates/branchmergeproposal-pagelet-summary.pt (+43/-33) lib/lp/code/templates/branchmergeproposal-resubmit.pt (+3/-2) lib/lp/code/templates/branchmergeproposal-summary-fragment.pt (+11/-0) lib/lp/code/templates/branchmergeproposal-vote-summary.pt (+52/-0) lib/lp/code/templates/codeimport-list.pt (+24/-4) lib/lp/code/templates/codeimport-macros.pt (+2/-4) lib/lp/code/templates/codeimport-new.pt (+23/-2) lib/lp/code/templates/codereviewcomment-body.pt (+2/-5) lib/lp/code/templates/codereviewcomment-fragment.pt (+2/-0) lib/lp/code/templates/codereviewcomment-header.pt (+5/-1) lib/lp/code/templates/codereviewnewrevisions-footer.pt (+11/-0) lib/lp/code/templates/codereviewnewrevisions-header.pt (+10/-0) lib/lp/code/templates/person-portlet-teambranches.pt (+3/-4) lib/lp/code/templates/product-branch-summary.pt (+2/-2) lib/lp/code/templates/sourcepackagerecipe-index.pt (+109/-0) lib/lp/code/templates/sourcepackagerecipe-listing.pt (+55/-0) lib/lp/code/templates/sourcepackagerecipe-request-builds.pt (+27/-0) lib/lp/code/templates/sources-list.pt (+2/-2) lib/lp/code/tests/helpers.py (+89/-10) lib/lp/code/tests/test_branch.py (+273/-33) lib/lp/code/tests/test_branchmergeproposal.py (+76/-0) lib/lp/code/tests/test_directbranchcommit.py (+4/-23) lib/lp/code/tests/test_doc.py (+2/-3) lib/lp/code/tests/test_recipebuilder.py (+220/-0) lib/lp/code/tests/test_sourcepackagerecipebuild.py (+125/-0) lib/lp/code/windmill/test_branch_sparks.py (+0/-29) lib/lp/code/windmill/tests/test_branch_bugspeclinks.py (+33/-32) lib/lp/code/windmill/tests/test_branch_popupdiff.py (+143/-0) lib/lp/code/windmill/tests/test_branch_status.py (+70/-0) lib/lp/code/windmill/tests/test_branch_subscriptions.py (+78/-68) lib/lp/code/windmill/tests/test_branchmergeproposal_commitmessage.py (+126/-0) lib/lp/code/windmill/tests/test_branchmergeproposal_review.py (+116/-28) lib/lp/code/windmill/tests/test_productseries_setbranch.py (+58/-0) lib/lp/code/windmill/tests/test_yuitests.py (+21/-0) lib/lp/code/xmlrpc/branch.py (+13/-20) lib/lp/code/xmlrpc/codehosting.py (+121/-184) lib/lp/code/xmlrpc/codeimportscheduler.py (+69/-7) lib/lp/code/xmlrpc/tests/test_branch.py (+76/-8) lib/lp/code/xmlrpc/tests/test_codehosting.py (+275/-489) lib/lp/code/xmlrpc/tests/test_codeimportscheduler.py (+140/-0) lib/lp/codehosting/__init__.py (+17/-5) lib/lp/codehosting/branchdistro.py (+351/-0) lib/lp/codehosting/bzrutils.py (+77/-29) lib/lp/codehosting/codeimport/dispatcher.py (+33/-6) lib/lp/codehosting/codeimport/tests/servers.py (+68/-22) lib/lp/codehosting/codeimport/tests/test_dispatcher.py (+83/-50) lib/lp/codehosting/codeimport/tests/test_foreigntree.py (+4/-4) lib/lp/codehosting/codeimport/tests/test_worker.py (+402/-123) lib/lp/codehosting/codeimport/tests/test_workermonitor.py (+365/-200) lib/lp/codehosting/codeimport/worker.py (+281/-107) lib/lp/codehosting/codeimport/workermonitor.py (+78/-123) lib/lp/codehosting/inmemory.py (+98/-107) lib/lp/codehosting/puller/scheduler.py (+39/-49) lib/lp/codehosting/puller/tests/__init__.py (+52/-1) lib/lp/codehosting/puller/tests/test_acceptance.py (+92/-212) lib/lp/codehosting/puller/tests/test_errors.py (+1/-9) lib/lp/codehosting/puller/tests/test_scheduler.py (+83/-104) lib/lp/codehosting/puller/tests/test_worker.py (+41/-114) lib/lp/codehosting/puller/tests/test_worker_formats.py (+2/-60) lib/lp/codehosting/puller/worker.py (+52/-73) lib/lp/codehosting/rewrite.py (+14/-19) lib/lp/codehosting/scanner/branch_scanner.py (+0/-145) lib/lp/codehosting/scanner/buglinks.py (+2/-4) lib/lp/codehosting/scanner/bzrsync.py (+18/-92) lib/lp/codehosting/scanner/email.py (+14/-13) lib/lp/codehosting/scanner/events.py (+31/-5) lib/lp/codehosting/scanner/mergedetection.py (+40/-10) lib/lp/codehosting/scanner/tests/test_acceptance.py (+0/-132) lib/lp/codehosting/scanner/tests/test_branchscanner.py (+0/-268) lib/lp/codehosting/scanner/tests/test_buglinks.py (+28/-8) lib/lp/codehosting/scanner/tests/test_bzrsync.py (+27/-119) lib/lp/codehosting/scanner/tests/test_email.py (+52/-19) lib/lp/codehosting/scanner/tests/test_formats.py (+0/-123) lib/lp/codehosting/scanner/tests/test_mergedetection.py (+70/-11) lib/lp/codehosting/scripts/modifiedbranches.py (+5/-12) lib/lp/codehosting/scripts/tests/test_modifiedbranches.py (+5/-31) lib/lp/codehosting/sftp.py (+12/-30) lib/lp/codehosting/sshserver/daemon.py (+105/-0) lib/lp/codehosting/sshserver/session.py (+26/-79) lib/lp/codehosting/sshserver/tests/test_daemon.py (+93/-0) lib/lp/codehosting/sshserver/tests/test_session.py (+28/-10) lib/lp/codehosting/tests/helpers.py (+0/-2) lib/lp/codehosting/tests/servers.py (+3/-3) lib/lp/codehosting/tests/test_acceptance.py (+135/-148) lib/lp/codehosting/tests/test_branchdistro.py (+576/-0) lib/lp/codehosting/tests/test_bzrutils.py (+103/-14) lib/lp/codehosting/tests/test_jobs.py (+1/-1) lib/lp/codehosting/tests/test_lpserve.py (+3/-2) lib/lp/codehosting/tests/test_rewrite.py (+18/-5) lib/lp/codehosting/tests/test_sftp.py (+57/-8) lib/lp/codehosting/vfs/__init__.py (+4/-6) lib/lp/codehosting/vfs/branchfs.py (+301/-280) lib/lp/codehosting/vfs/branchfsclient.py (+31/-35) lib/lp/codehosting/vfs/hooks.py (+25/-0) lib/lp/codehosting/vfs/tests/test_branchfs.py (+258/-103) lib/lp/codehosting/vfs/tests/test_branchfsclient.py (+38/-55) lib/lp/codehosting/vfs/tests/test_filesystem.py (+5/-4) lib/lp/codehosting/vfs/tests/test_hooks.py (+63/-0) lib/lp/codehosting/vfs/tests/test_transport.py (+4/-8) lib/lp/codehosting/vfs/transport.py (+12/-32) lib/lp/coop/answersbugs/stories/question-buglink.txt (+18/-19) lib/lp/hardwaredb/browser/configure.zcml (+71/-0) lib/lp/hardwaredb/browser/hwdb.py (+2/-2) lib/lp/hardwaredb/browser/tests/test_views.py (+39/-0) lib/lp/hardwaredb/configure.zcml (+190/-0) lib/lp/hardwaredb/doc/hwdb-access.txt (+5/-5) lib/lp/hardwaredb/doc/hwdb-device-tables.txt (+3/-3) lib/lp/hardwaredb/doc/hwdb-submission.txt (+7/-7) lib/lp/hardwaredb/doc/hwdb.txt (+8/-8) lib/lp/hardwaredb/model/hwdb.py (+1/-1) lib/lp/hardwaredb/scripts/hwdbsubmissions.py (+680/-77) lib/lp/hardwaredb/scripts/tests/test_hwdb_submission_validation.py (+1/-1) lib/lp/hardwaredb/stories/hwdb/01-submit-data.txt (+2/-0) lib/lp/hardwaredb/stories/webservice/xx-hwdb.txt (+1/-1) lib/lp/hardwaredb/tests/test_doc.py (+36/-0) lib/lp/poppy/daemon.py (+62/-0) lib/lp/poppy/filesystem.py (+0/-1) lib/lp/poppy/hooks.py (+6/-8) lib/lp/poppy/server.py (+4/-41) lib/lp/poppy/tests/__init__.py (+5/-0) lib/lp/poppy/tests/filesystem.txt (+11/-4) lib/lp/poppy/tests/helpers.py (+8/-16) lib/lp/poppy/tests/test_poppy.py (+17/-22) lib/lp/registry/browser/__init__.py (+4/-4) lib/lp/registry/browser/announcement.py (+3/-2) lib/lp/registry/browser/configure.zcml (+208/-172) lib/lp/registry/browser/distribution.py (+18/-31) lib/lp/registry/browser/distributionmirror.py (+23/-15) lib/lp/registry/browser/distributionsourcepackage.py (+88/-119) lib/lp/registry/browser/distroseries.py (+103/-80) lib/lp/registry/browser/featuredproject.py (+1/-1) lib/lp/registry/browser/karma.py (+3/-3) lib/lp/registry/browser/mailinglists.py (+13/-4) lib/lp/registry/browser/mentoringoffer.py (+3/-3) lib/lp/registry/browser/menu.py (+1/-1) lib/lp/registry/browser/milestone.py (+39/-16) lib/lp/registry/browser/peoplemerge.py (+127/-40) lib/lp/registry/browser/person.py (+311/-287) lib/lp/registry/browser/personproduct.py (+1/-1) lib/lp/registry/browser/pillar.py (+35/-17) lib/lp/registry/browser/poll.py (+6/-0) lib/lp/registry/browser/product.py (+494/-214) lib/lp/registry/browser/productrelease.py (+1/-6) lib/lp/registry/browser/productseries.py (+671/-152) lib/lp/registry/browser/project.py (+52/-50) lib/lp/registry/browser/sourcepackage.py (+269/-37) lib/lp/registry/browser/structuralsubscription.py (+44/-7) lib/lp/registry/browser/team.py (+28/-20) lib/lp/registry/browser/teammembership.py (+14/-11) lib/lp/registry/browser/tests/announcement-views.txt (+19/-0) lib/lp/registry/browser/tests/browser-views.txt (+4/-4) lib/lp/registry/browser/tests/coc-views.txt (+67/-0) lib/lp/registry/browser/tests/distributionmirror-views.txt (+51/-7) lib/lp/registry/browser/tests/distributionsourcepackage-views.txt (+41/-12) lib/lp/registry/browser/tests/distroseries-views.txt (+3/-0) lib/lp/registry/browser/tests/gpg-views.txt (+3/-3) lib/lp/registry/browser/tests/karmaaction-views.txt (+1/-1) lib/lp/registry/browser/tests/mailinglist-message-views.txt (+74/-0) lib/lp/registry/browser/tests/mailinglist-views.txt (+10/-8) lib/lp/registry/browser/tests/milestone-views.txt (+32/-6) lib/lp/registry/browser/tests/packaging-views.txt (+354/-0) lib/lp/registry/browser/tests/peoplemerge-views.txt (+179/-3) lib/lp/registry/browser/tests/person-admin-views.txt (+1/-2) lib/lp/registry/browser/tests/person-karma-views.txt (+1/-1) lib/lp/registry/browser/tests/person-views.txt (+159/-54) lib/lp/registry/browser/tests/pillar-views.txt (+80/-26) lib/lp/registry/browser/tests/poll-views.txt (+134/-0) lib/lp/registry/browser/tests/product-edit-people-view.txt (+6/-6) lib/lp/registry/browser/tests/product-files-views.txt (+70/-0) lib/lp/registry/browser/tests/product-menus.txt (+10/-35) lib/lp/registry/browser/tests/product-portlet-packages-view.txt (+353/-0) lib/lp/registry/browser/tests/product-views.txt (+78/-8) lib/lp/registry/browser/tests/productrelease-views.txt (+1/-7) lib/lp/registry/browser/tests/productseries-setbranch-view.txt (+417/-0) lib/lp/registry/browser/tests/productseries-views.txt (+167/-71) lib/lp/registry/browser/tests/projectgroupset-views.txt (+3/-3) lib/lp/registry/browser/tests/sourcepackage-views.txt (+294/-14) lib/lp/registry/browser/tests/team-views.txt (+102/-10) lib/lp/registry/browser/tests/teammembership-views.txt (+65/-0) lib/lp/registry/browser/tests/test_breadcrumbs.py (+129/-0) lib/lp/registry/browser/tests/test_gpgkey.py (+30/-0) lib/lp/registry/browser/tests/test_packaging.py (+111/-10) lib/lp/registry/browser/tests/test_person_view.py (+107/-7) lib/lp/registry/browser/tests/test_person_webservice.py (+42/-0) lib/lp/registry/browser/tests/test_sshkey.py (+31/-0) lib/lp/registry/browser/tests/test_structuralsubscription.py (+1/-1) lib/lp/registry/browser/tests/test_team.py (+37/-0) lib/lp/registry/browser/tests/test_views.py (+2/-0) lib/lp/registry/codesofconduct/1.1.txt (+82/-0) lib/lp/registry/configure.zcml (+231/-42) lib/lp/registry/doc/announcement.txt (+5/-5) lib/lp/registry/doc/cache-country-mirrors.txt (+6/-1) lib/lp/registry/doc/commercialsubscription.txt (+14/-6) lib/lp/registry/doc/distribution-mirror.txt (+227/-33) lib/lp/registry/doc/distribution-sourcepackage.txt (+48/-34) lib/lp/registry/doc/distribution.txt (+38/-3) lib/lp/registry/doc/distroseries.txt (+145/-79) lib/lp/registry/doc/featuredproject.txt (+3/-3) lib/lp/registry/doc/gpg-signatures.txt (+14/-13) lib/lp/registry/doc/launchpadlib/project-registry.txt.disabled (+374/-0) lib/lp/registry/doc/mailinglist-email-notification.txt (+8/-5) lib/lp/registry/doc/mailinglist-subscriptions.txt (+4/-3) lib/lp/registry/doc/mailinglist-xmlrpc.txt (+36/-69) lib/lp/registry/doc/mailinglists.txt (+139/-332) lib/lp/registry/doc/mentoringoffer.txt (+4/-4) lib/lp/registry/doc/message-holds-xmlrpc.txt (+9/-9) lib/lp/registry/doc/message-holds.txt (+0/-52) lib/lp/registry/doc/milestone.txt (+48/-5) lib/lp/registry/doc/person-account.txt (+8/-18) lib/lp/registry/doc/person-karma.txt (+13/-10) lib/lp/registry/doc/person-merge.txt (+35/-7) lib/lp/registry/doc/person-notification.txt (+3/-4) lib/lp/registry/doc/person.txt (+188/-85) lib/lp/registry/doc/personlocation.txt (+15/-53) lib/lp/registry/doc/pillar.txt (+16/-12) lib/lp/registry/doc/private-team-roles.txt (+4/-3) lib/lp/registry/doc/private-team-visibility.txt (+93/-0) lib/lp/registry/doc/product.txt (+54/-21) lib/lp/registry/doc/productrelease-file-download.txt (+4/-4) lib/lp/registry/doc/productseries.txt (+33/-57) lib/lp/registry/doc/project.txt (+45/-35) lib/lp/registry/doc/sourceforge-remote-products.txt (+1/-1) lib/lp/registry/doc/sourcepackage.txt (+147/-147) lib/lp/registry/doc/standing.txt (+2/-2) lib/lp/registry/doc/structural-subscriptions.txt (+4/-4) lib/lp/registry/doc/teammembership-email-notification.txt (+49/-9) lib/lp/registry/doc/teammembership.txt (+137/-58) lib/lp/registry/doc/vocabularies.txt (+115/-94) lib/lp/registry/feed/announcement.py (+5/-4) lib/lp/registry/help/home-page-staging-help.html (+5/-5) lib/lp/registry/help/import-pgp-key.html (+5/-5) lib/lp/registry/help/openid.html (+5/-5) lib/lp/registry/help/openpgp-keys.html (+7/-7) lib/lp/registry/help/pgp-key-clearsign.html (+5/-5) lib/lp/registry/help/verify-downloads.html (+5/-5) lib/lp/registry/interfaces/distribution.py (+77/-53) lib/lp/registry/interfaces/distributionmirror.py (+147/-61) lib/lp/registry/interfaces/distributionsourcepackage.py (+6/-5) lib/lp/registry/interfaces/distroseries.py (+95/-161) lib/lp/registry/interfaces/gpg.py (+17/-5) lib/lp/registry/interfaces/mailinglist.py (+11/-38) lib/lp/registry/interfaces/milestone.py (+22/-12) lib/lp/registry/interfaces/packaging.py (+20/-12) lib/lp/registry/interfaces/person.py (+234/-185) lib/lp/registry/interfaces/pillar.py (+1/-1) lib/lp/registry/interfaces/pocket.py (+0/-2) lib/lp/registry/interfaces/product.py (+69/-49) lib/lp/registry/interfaces/productrelease.py (+2/-2) lib/lp/registry/interfaces/productseries.py (+26/-45) lib/lp/registry/interfaces/projectgroup.py (+43/-43) lib/lp/registry/interfaces/series.py (+130/-0) lib/lp/registry/interfaces/sourcepackage.py (+63/-16) lib/lp/registry/interfaces/ssh.py (+10/-5) lib/lp/registry/interfaces/structuralsubscription.py (+7/-1) lib/lp/registry/interfaces/teammembership.py (+20/-4) lib/lp/registry/model/announcement.py (+7/-6) lib/lp/registry/model/codeofconduct.py (+1/-1) lib/lp/registry/model/distribution.py (+176/-114) lib/lp/registry/model/distributionmirror.py (+137/-45) lib/lp/registry/model/distributionsourcepackage.py (+108/-30) lib/lp/registry/model/distroseries.py (+328/-134) lib/lp/registry/model/gpgkey.py (+18/-0) lib/lp/registry/model/karma.py (+11/-10) lib/lp/registry/model/mailinglist.py (+17/-35) lib/lp/registry/model/mentoringoffer.py (+3/-5) lib/lp/registry/model/milestone.py (+17/-5) lib/lp/registry/model/packaging.py (+19/-9) lib/lp/registry/model/person.py (+160/-103) lib/lp/registry/model/personnotification.py (+1/-1) lib/lp/registry/model/personproduct.py (+1/-1) lib/lp/registry/model/pillar.py (+9/-8) lib/lp/registry/model/product.py (+102/-52) lib/lp/registry/model/productrelease.py (+14/-4) lib/lp/registry/model/productseries.py (+67/-43) lib/lp/registry/model/projectgroup.py (+75/-67) lib/lp/registry/model/series.py (+53/-0) lib/lp/registry/model/sourcepackage.py (+72/-51) lib/lp/registry/model/sourcepackagename.py (+3/-0) lib/lp/registry/model/structuralsubscription.py (+31/-11) lib/lp/registry/model/teammembership.py (+17/-8) lib/lp/registry/scripts/distributionmirror_prober.py (+30/-9) lib/lp/registry/scripts/listteammembers.py (+21/-12) lib/lp/registry/scripts/personnotification.py (+82/-0) lib/lp/registry/scripts/productreleasefinder/finder.py (+10/-18) lib/lp/registry/stories/announcements/xx-announcements.txt (+20/-6) lib/lp/registry/stories/distribution/xx-distribution-all-packages.txt (+0/-40) lib/lp/registry/stories/distribution/xx-distribution-packages.txt (+47/-24) lib/lp/registry/stories/distributionmirror/xx-distribution-countrymirrors.txt (+1/-1) lib/lp/registry/stories/distributionmirror/xx-distribution-mirrors.txt (+15/-11) lib/lp/registry/stories/distributionmirror/xx-reassign-distributionmirror.txt (+3/-3) lib/lp/registry/stories/distroseries/xx-distroseries-index.txt (+26/-5) lib/lp/registry/stories/distroseries/xx-show-distroseries-packaging.txt (+119/-13) lib/lp/registry/stories/foaf/xx-changepassword.txt (+0/-62) lib/lp/registry/stories/foaf/xx-createaccount.txt (+0/-166) lib/lp/registry/stories/foaf/xx-login.txt (+0/-83) lib/lp/registry/stories/foaf/xx-person-claim.txt (+0/-148) lib/lp/registry/stories/foaf/xx-reg-with-existing-email.txt (+0/-182) lib/lp/registry/stories/foaf/xx-resetpassword.txt (+0/-338) lib/lp/registry/stories/gpg-coc/02-signcoc.txt (+4/-4) lib/lp/registry/stories/gpg-coc/99-coc-presentation.txt (+3/-3) lib/lp/registry/stories/gpg-coc/reformatted_11_coc.asc (+84/-81) lib/lp/registry/stories/location/personlocation-edit.txt (+27/-59) lib/lp/registry/stories/location/personlocation.txt (+13/-18) lib/lp/registry/stories/location/team-map.txt (+25/-0) lib/lp/registry/stories/mailinglists/admin-approval.txt (+0/-221) lib/lp/registry/stories/mailinglists/lifecycle.txt (+40/-111) lib/lp/registry/stories/mailinglists/moderation.txt (+3/-5) lib/lp/registry/stories/mailinglists/subscriptions.txt (+40/-30) lib/lp/registry/stories/milestone/object-milestones.txt (+31/-17) lib/lp/registry/stories/milestone/xx-milestone-add-and-edit.txt (+11/-2) lib/lp/registry/stories/object/xx-object-branding.txt (+3/-5) lib/lp/registry/stories/packaging/xx-distributionsourcepackage-packaging-concurrent-deletion.txt (+11/-15) lib/lp/registry/stories/packaging/xx-distributionsourcepackage-packaging.txt (+14/-53) lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt (+54/-126) lib/lp/registry/stories/person/merge-people.txt (+63/-6) lib/lp/registry/stories/person/xx-add-sshkey.txt (+4/-4) lib/lp/registry/stories/person/xx-admin-person-review.txt (+61/-3) lib/lp/registry/stories/person/xx-deactivate-account.txt (+8/-44) lib/lp/registry/stories/person/xx-person-bugs.txt (+20/-0) lib/lp/registry/stories/person/xx-person-claim-merge.txt (+17/-2) lib/lp/registry/stories/person/xx-person-edit-jabber-ids.txt (+0/-1) lib/lp/registry/stories/person/xx-person-edit-wikis.txt (+2/-1) lib/lp/registry/stories/person/xx-person-edit.txt (+7/-0) lib/lp/registry/stories/person/xx-person-home.txt (+14/-2) lib/lp/registry/stories/person/xx-person-karma.txt (+1/-1) lib/lp/registry/stories/person/xx-person-working-on.txt (+3/-2) lib/lp/registry/stories/person/xx-user-to-user.txt (+11/-8) lib/lp/registry/stories/pillar/xx-pillar-deactivation.txt (+15/-8) lib/lp/registry/stories/pillar/xx-pillar-sprints.txt (+1/-1) lib/lp/registry/stories/product/xx-launchpad-project-search.txt (+36/-16) lib/lp/registry/stories/product/xx-product-add.txt (+13/-2) lib/lp/registry/stories/product/xx-product-development-focus.txt (+175/-0) lib/lp/registry/stories/product/xx-product-driver.txt (+9/-11) lib/lp/registry/stories/product/xx-product-edit.txt (+24/-20) lib/lp/registry/stories/product/xx-product-files.txt (+17/-15) lib/lp/registry/stories/product/xx-product-index.txt (+47/-2) lib/lp/registry/stories/product/xx-product-launchpad-usage.txt (+40/-64) lib/lp/registry/stories/product/xx-product-package-pages.txt (+51/-22) lib/lp/registry/stories/product/xx-productset.txt (+1/-1) lib/lp/registry/stories/productrelease/xx-productrelease-basics.txt (+3/-9) lib/lp/registry/stories/productrelease/xx-productrelease-delete.txt (+3/-2) lib/lp/registry/stories/productrelease/xx-productrelease-view.txt (+7/-8) lib/lp/registry/stories/productseries/xx-productseries-delete.txt (+27/-5) lib/lp/registry/stories/productseries/xx-productseries-index.txt (+14/-7) lib/lp/registry/stories/productseries/xx-productseries-series.txt (+2/-2) lib/lp/registry/stories/productseries/xx-productseries-set-branch.txt (+147/-0) lib/lp/registry/stories/project/xx-project-add-product.txt (+2/-2) lib/lp/registry/stories/project/xx-project-driver.txt (+2/-3) lib/lp/registry/stories/project/xx-project-edit.txt (+2/-2) lib/lp/registry/stories/project/xx-project-index.txt (+9/-12) lib/lp/registry/stories/standalone/xx-new-profile.txt (+0/-110) lib/lp/registry/stories/standalone/xx-team-restricted.txt (+0/-137) lib/lp/registry/stories/team-polls/create-polls.txt (+4/-4) lib/lp/registry/stories/team-polls/xx-poll-results.txt (+3/-2) lib/lp/registry/stories/team/xx-adminteammerge.txt (+43/-34) lib/lp/registry/stories/team/xx-team-add-my-teams.txt (+40/-38) lib/lp/registry/stories/team/xx-team-claim.txt (+4/-6) lib/lp/registry/stories/team/xx-team-edit.txt (+0/-1) lib/lp/registry/stories/team/xx-team-home.txt (+38/-22) lib/lp/registry/stories/team/xx-team-membership.txt (+31/-6) lib/lp/registry/stories/teammembership/20-managing-members.txt (+14/-5) lib/lp/registry/stories/teammembership/private-team.txt (+3/-5) lib/lp/registry/stories/teammembership/xx-add-member.txt (+16/-14) lib/lp/registry/stories/teammembership/xx-expire-subscription.txt (+1/-1) lib/lp/registry/stories/teammembership/xx-member-renewed-membership.txt (+19/-1) lib/lp/registry/stories/teammembership/xx-private-membership.txt (+16/-16) lib/lp/registry/stories/teammembership/xx-renew-subscription.txt (+2/-2) lib/lp/registry/stories/vouchers/xx-voucher-redemption.txt (+2/-1) lib/lp/registry/stories/webservice/xx-distribution-mirror.txt (+260/-0) lib/lp/registry/stories/webservice/xx-distribution.txt (+104/-0) lib/lp/registry/stories/webservice/xx-distroseries.txt (+12/-1) lib/lp/registry/stories/webservice/xx-people.txt (+6/-0) lib/lp/registry/stories/webservice/xx-person.txt (+162/-1) lib/lp/registry/stories/webservice/xx-private-membership.txt (+4/-3) lib/lp/registry/stories/webservice/xx-project-registry.txt (+84/-21) lib/lp/registry/stories/webservice/xx-source-package.txt (+23/-5) lib/lp/registry/stories/webservice/xx-structuralsubscription.txt (+1/-1) lib/lp/registry/templates/codeofconduct-list.pt (+17/-14) lib/lp/registry/templates/distribution-allpackages.pt (+0/-25) lib/lp/registry/templates/distribution-portlet-lifecycle.pt (+0/-29) lib/lp/registry/templates/distribution-portlet-series.pt (+0/-22) lib/lp/registry/templates/distribution-series-and-milestones.pt (+3/-3) lib/lp/registry/templates/distribution-series.pt (+5/-6) lib/lp/registry/templates/distributionmirror-index.pt (+65/-56) lib/lp/registry/templates/distributionmirror-macros.pt (+19/-16) lib/lp/registry/templates/distributionsourcepackage-index.pt (+24/-55) lib/lp/registry/templates/distributionsourcepackage-portlet-details.pt (+0/-26) lib/lp/registry/templates/distributionsourcepackage-portlet-releases.pt (+0/-18) lib/lp/registry/templates/distroseries-details.pt (+3/-3) lib/lp/registry/templates/distroseries-index.pt (+5/-9) lib/lp/registry/templates/distroseries-needs-packaging.pt (+91/-0) lib/lp/registry/templates/distroseries-packaging.pt (+64/-42) lib/lp/registry/templates/distroseries-portlet-lifecycle.pt (+0/-39) lib/lp/registry/templates/distroseries-portlet-packaging.pt (+76/-0) lib/lp/registry/templates/milestone-index.pt (+21/-13) lib/lp/registry/templates/milestone-portlet-details.pt (+0/-37) lib/lp/registry/templates/object-milestones.pt (+10/-1) lib/lp/registry/templates/object-portlet-milestones.pt (+0/-25) lib/lp/registry/templates/object-portlet-summary.pt (+0/-14) lib/lp/registry/templates/object-timeline-graph.pt (+11/-8) lib/lp/registry/templates/people-newperson.pt (+0/-29) lib/lp/registry/templates/people-requestmerge-multiple.pt (+95/-52) lib/lp/registry/templates/people-requestmerge.pt (+5/-6) lib/lp/registry/templates/person-deactivate-account.pt (+0/-5) lib/lp/registry/templates/person-edit.pt (+3/-21) lib/lp/registry/templates/person-editpgpkeys.pt (+16/-34) lib/lp/registry/templates/person-editsshkeys.pt (+0/-2) lib/lp/registry/templates/person-index.pt (+19/-29) lib/lp/registry/templates/person-macros.pt (+2/-2) lib/lp/registry/templates/person-portlet-contact-details.pt (+8/-3) lib/lp/registry/templates/person-portlet-contributions.pt (+2/-3) lib/lp/registry/templates/person-portlet-currentfocus.pt (+2/-2) lib/lp/registry/templates/person-portlet-emails.pt (+0/-46) lib/lp/registry/templates/person-portlet-map.pt (+10/-10) lib/lp/registry/templates/person-rdf-contents.pt (+1/-1) lib/lp/registry/templates/person-related-software-navlinks.pt (+20/-11) lib/lp/registry/templates/person-review.pt (+2/-1) lib/lp/registry/templates/pillar-involvement-portlet.pt (+30/-3) lib/lp/registry/templates/product-admin.pt (+0/-17) lib/lp/registry/templates/product-distros.pt (+0/-83) lib/lp/registry/templates/product-edit-people.pt (+0/-18) lib/lp/registry/templates/product-edit.pt (+0/-23) lib/lp/registry/templates/product-files.pt (+130/-87) lib/lp/registry/templates/product-index.pt (+41/-9) lib/lp/registry/templates/product-new.pt (+15/-15) lib/lp/registry/templates/product-packages.pt (+108/-43) lib/lp/registry/templates/product-portlet-packages.pt (+49/-22) lib/lp/registry/templates/product-portlet-releases.pt (+0/-23) lib/lp/registry/templates/product-portlet-series.pt (+0/-22) lib/lp/registry/templates/product-rdf.pt (+1/-1) lib/lp/registry/templates/product-review-license.pt (+45/-45) lib/lp/registry/templates/productrelease-add-from-series.pt (+4/-4) lib/lp/registry/templates/productrelease-portlet-data.pt (+6/-8) lib/lp/registry/templates/productrelease-portlet-details.pt (+0/-38) lib/lp/registry/templates/productreleasefile-macros.pt (+1/-1) lib/lp/registry/templates/products-index.pt (+16/-12) lib/lp/registry/templates/products-portlet-details.pt (+0/-19) lib/lp/registry/templates/productseries-codesummary.pt (+5/-5) lib/lp/registry/templates/productseries-delete.pt (+15/-4) lib/lp/registry/templates/productseries-index.pt (+19/-52) lib/lp/registry/templates/productseries-linkbranch.pt (+38/-2) lib/lp/registry/templates/productseries-milestone-table-row.pt (+9/-6) lib/lp/registry/templates/productseries-packaging.pt (+0/-43) lib/lp/registry/templates/productseries-portlet-details.pt (+0/-27) lib/lp/registry/templates/productseries-portlet-packages.pt (+39/-21) lib/lp/registry/templates/productseries-portlet-releases.pt (+0/-29) lib/lp/registry/templates/productseries-setbranch.pt (+129/-0) lib/lp/registry/templates/productseries-ubuntupkg.pt (+29/-51) lib/lp/registry/templates/project-index.pt (+6/-25) lib/lp/registry/templates/project-portlet-lifecycle.pt (+0/-33) lib/lp/registry/templates/project-series-portlet-details.pt (+0/-7) lib/lp/registry/templates/projects-index.pt (+8/-7) lib/lp/registry/templates/signedcodeofconduct-add.pt (+1/-9) lib/lp/registry/templates/sourcepackage-edit-packaging.pt (+17/-5) lib/lp/registry/templates/sourcepackage-index.pt (+8/-53) lib/lp/registry/templates/sourcepackage-packaging.pt (+0/-62) lib/lp/registry/templates/sourcepackage-portlet-associations.pt (+64/-0) lib/lp/registry/templates/sourcepackage-portlet-upstream.pt (+0/-17) lib/lp/registry/templates/sourcepackage-remove-packaging.pt (+34/-0) lib/lp/registry/templates/sourcepackage-upstream-connections.pt (+63/-0) lib/lp/registry/templates/structural-subscriptions-manage.pt (+0/-2) lib/lp/registry/templates/team-add-my-teams.pt (+2/-0) lib/lp/registry/templates/team-delete.pt (+30/-0) lib/lp/registry/templates/team-index.pt (+15/-16) lib/lp/registry/templates/team-mailinglist.pt (+5/-1) lib/lp/registry/templates/team-members.pt (+64/-57) lib/lp/registry/templates/team-mugshots.pt (+26/-11) lib/lp/registry/templates/team-polls.pt (+2/-2) lib/lp/registry/templates/team-portlet-mailinglist.pt (+15/-13) lib/lp/registry/templates/team-portlet-membership.pt (+70/-30) lib/lp/registry/templates/team-portlet-polls.pt (+4/-4) lib/lp/registry/templates/teammembership-index.pt (+21/-11) lib/lp/registry/templates/teammembership-listing-simple.pt (+1/-1) lib/lp/registry/templates/timeline-macros.pt (+5/-4) lib/lp/registry/tests/bug-249185.txt (+5/-4) lib/lp/registry/tests/karma.py (+1/-3) lib/lp/registry/tests/mailinglists_helper.py (+1/-41) lib/lp/registry/tests/structural-subscription-target.txt (+1/-1) lib/lp/registry/tests/test_distribution.py (+30/-2) lib/lp/registry/tests/test_distributionmirror.py (+10/-20) lib/lp/registry/tests/test_distributionmirror_prober.py (+51/-3) lib/lp/registry/tests/test_distroseries.py (+137/-5) lib/lp/registry/tests/test_doc.py (+9/-3) lib/lp/registry/tests/test_doc_product.py (+1/-1) lib/lp/registry/tests/test_doc_project.py (+1/-1) lib/lp/registry/tests/test_karmacache_updater.py (+2/-1) lib/lp/registry/tests/test_listteammembers.py (+36/-9) lib/lp/registry/tests/test_milestone_vocabularies.py (+2/-2) lib/lp/registry/tests/test_mlists.py (+0/-1) lib/lp/registry/tests/test_packaging.py (+95/-10) lib/lp/registry/tests/test_person.py (+245/-18) lib/lp/registry/tests/test_personnotification.py (+78/-0) lib/lp/registry/tests/test_personproduct.py (+1/-1) lib/lp/registry/tests/test_personset.py (+59/-21) lib/lp/registry/tests/test_pillarname_triggers.py (+4/-3) lib/lp/registry/tests/test_prf_finder.py (+57/-38) lib/lp/registry/tests/test_prf_walker.py (+3/-0) lib/lp/registry/tests/test_product.py (+60/-1) lib/lp/registry/tests/test_productseries.py (+275/-0) lib/lp/registry/tests/test_productseries_vocabularies.py (+82/-0) lib/lp/registry/tests/test_project.py (+104/-0) lib/lp/registry/tests/test_project_milestone.py (+8/-7) lib/lp/registry/tests/test_sourcepackage.py (+135/-3) lib/lp/registry/tests/test_structuralsubscriptiontarget.py (+5/-3) lib/lp/registry/tests/test_team.py (+86/-0) lib/lp/registry/tests/test_teammembership.py (+12/-14) lib/lp/registry/vocabularies.py (+71/-63) lib/lp/registry/vocabularies.zcml (+308/-99) lib/lp/registry/windmill/testing.py (+18/-0) lib/lp/registry/windmill/tests/test_add_milestone.py (+86/-89) lib/lp/registry/windmill/tests/test_datetime_picker.py (+66/-52) lib/lp/registry/windmill/tests/test_person_picker.py (+50/-0) lib/lp/registry/windmill/tests/test_plusnew_step1.py (+62/-42) lib/lp/registry/windmill/tests/test_plusnew_step2.py (+87/-62) lib/lp/registry/windmill/tests/test_product.py (+43/-21) lib/lp/registry/windmill/tests/test_product_edit_people.py (+38/-17) lib/lp/registry/windmill/tests/test_project_licenses.py (+141/-125) lib/lp/registry/windmill/tests/test_team_index.py (+70/-0) lib/lp/registry/windmill/tests/test_timeline_graph.py (+76/-62) lib/lp/registry/windmill/tests/test_yuitests.py (+21/-0) lib/lp/scripts/helpers.py (+57/-0) lib/lp/scripts/utilities/apiindex.py (+0/-21) lib/lp/scripts/utilities/importfascist.py (+71/-32) lib/lp/scripts/utilities/jssize.py (+21/-0) lib/lp/scripts/utilities/pageperformancereport.py (+387/-0) lib/lp/scripts/utilities/sanitizedb.py (+194/-75) lib/lp/scripts/utilities/tests/test_sanitizedb.py (+1/-0) lib/lp/services/apachelogparser/base.py (+25/-6) lib/lp/services/apachelogparser/tests/test_apachelogparser.py (+27/-1) lib/lp/services/browser_helpers.py (+8/-0) lib/lp/services/comments/interfaces/conversation.py (+4/-1) lib/lp/services/comments/templates/comment.pt (+1/-1) lib/lp/services/database/configure.zcml (+4/-2) lib/lp/services/database/prejoin.py (+9/-11) lib/lp/services/database/tests/test_prejoin.py (+34/-26) lib/lp/services/doc/limitedlist.txt (+124/-0) lib/lp/services/doc/sprites.txt (+185/-0) lib/lp/services/inlinehelp/javascript/inlinehelp.js (+1/-1) lib/lp/services/job/interfaces/job.py (+31/-0) lib/lp/services/job/model/job.py (+24/-1) lib/lp/services/job/runner.py (+331/-47) lib/lp/services/job/tests/test_job.py (+86/-5) lib/lp/services/job/tests/test_runner.py (+214/-6) lib/lp/services/limitedlist.py (+76/-0) lib/lp/services/mail/basemailer.py (+1/-1) lib/lp/services/mail/mailwrapper.py (+16/-4) lib/lp/services/mail/notificationrecipientset.py (+2/-1) lib/lp/services/mail/sendmail.py (+36/-7) lib/lp/services/mail/tests/test_mailbox.py (+2/-4) lib/lp/services/mailman/doc/contact-address.txt (+2/-2) lib/lp/services/mailman/doc/create-lists.txt (+11/-48) lib/lp/services/mailman/doc/deactivate-lists.txt (+4/-2) lib/lp/services/mailman/doc/modify-lists.txt (+7/-47) lib/lp/services/mailman/doc/postings.txt (+50/-7) lib/lp/services/mailman/doc/reactivate-lists.txt (+1/-1) lib/lp/services/mailman/doc/staging.txt (+6/-4) lib/lp/services/mailman/testing/helpers.py (+0/-4) lib/lp/services/memcache/__init__.py (+4/-0) lib/lp/services/memcache/client.py (+22/-0) lib/lp/services/memcache/configure.zcml (+20/-0) lib/lp/services/memcache/doc/tales-cache.txt (+293/-0) lib/lp/services/memcache/interfaces.py (+13/-0) lib/lp/services/memcache/tales.py (+322/-0) lib/lp/services/memcache/tests/__init__.py (+4/-0) lib/lp/services/memcache/tests/test_doc.py (+71/-0) lib/lp/services/memcache/tests/test_memcache_client.py (+42/-0) lib/lp/services/mime.py (+34/-0) lib/lp/services/openid/browser/configure.zcml (+0/-59) lib/lp/services/openid/browser/openidrpconfig.py (+0/-106) lib/lp/services/openid/configure.zcml (+0/-18) lib/lp/services/openid/doc/openid-rp-config.txt (+0/-163) lib/lp/services/openid/interfaces/openidrpconfig.py (+0/-120) lib/lp/services/openid/model/openidrpconfig.py (+0/-111) lib/lp/services/openid/stories/rpconfig-admin.txt (+0/-190) lib/lp/services/openid/templates/openidrpconfig-add.pt (+0/-24) lib/lp/services/openid/templates/openidrpconfig-edit.pt (+0/-24) lib/lp/services/openid/templates/openidrpconfigset-index.pt (+0/-35) lib/lp/services/osutils.py (+11/-1) lib/lp/services/scripts/base.py (+3/-13) lib/lp/services/scripts/doc/profile.txt (+2/-2) lib/lp/services/scripts/tests/__init__.py (+2/-0) lib/lp/services/scripts/tests/test_all_scripts.py (+4/-2) lib/lp/services/spriteutils.py (+252/-0) lib/lp/services/sshserver/__init__.py (+8/-0) lib/lp/services/sshserver/accesslog.py (+41/-203) lib/lp/services/sshserver/auth.py (+28/-59) lib/lp/services/sshserver/events.py (+144/-0) lib/lp/services/sshserver/service.py (+77/-59) lib/lp/services/sshserver/session.py (+79/-0) lib/lp/services/sshserver/sftp.py (+35/-0) lib/lp/services/sshserver/tests/__init__.py (+8/-0) lib/lp/services/sshserver/tests/keys/ssh_host_key_rsa (+15/-0) lib/lp/services/sshserver/tests/keys/ssh_host_key_rsa.pub (+1/-0) lib/lp/services/sshserver/tests/test_accesslog.py (+72/-151) lib/lp/services/sshserver/tests/test_auth.py (+22/-104) lib/lp/services/sshserver/tests/test_events.py (+91/-0) lib/lp/services/testing/__init__.py (+48/-31) lib/lp/services/tests/test_doc.py (+27/-0) lib/lp/services/tests/test_mime.py (+47/-0) lib/lp/services/tests/test_utils.py (+71/-0) lib/lp/services/tests/test_vocabularies.py (+37/-0) lib/lp/services/tests/testfiles/template.css (+20/-0) lib/lp/services/twistedsupport/processmonitor.py (+69/-0) lib/lp/services/twistedsupport/task.py (+88/-20) lib/lp/services/twistedsupport/tests/test_loggingsupport.py (+3/-3) lib/lp/services/twistedsupport/tests/test_processmonitor.py (+2/-2) lib/lp/services/twistedsupport/tests/test_task.py (+8/-15) lib/lp/services/twistedsupport/tests/test_twistedsupport.py (+2/-2) lib/lp/services/twistedsupport/tests/test_xmlrpc.py (+90/-0) lib/lp/services/twistedsupport/xmlrpc.py (+27/-0) lib/lp/services/utils.py (+143/-0) lib/lp/services/worlddata/browser/configure.zcml (+28/-0) lib/lp/services/worlddata/browser/country.py (+10/-0) lib/lp/services/worlddata/configure.zcml (+2/-0) lib/lp/services/worlddata/doc/language.txt (+60/-3) lib/lp/services/worlddata/doc/vocabularies.txt (+1/-1) lib/lp/services/worlddata/interfaces/country.py (+43/-15) lib/lp/services/worlddata/interfaces/language.py (+69/-35) lib/lp/services/worlddata/javascript/languages.js (+66/-0) lib/lp/services/worlddata/model/country.py (+12/-0) lib/lp/services/worlddata/model/language.py (+40/-12) lib/lp/services/worlddata/stories/webservice/xx-country.txt (+72/-0) lib/lp/services/worlddata/stories/webservice/xx-language.txt (+67/-0) lib/lp/services/worlddata/tests/test_doc.py (+12/-1) lib/lp/services/worlddata/tests/test_language.py (+21/-0) lib/lp/services/worlddata/vocabularies.zcml (+5/-2) lib/lp/services/xmlrpc.py (+40/-0) lib/lp/soyuz/adapters/archivedependencies.py (+61/-35) lib/lp/soyuz/browser/archive.py (+224/-62) lib/lp/soyuz/browser/archivepermission.py (+3/-1) lib/lp/soyuz/browser/archivesubscription.py (+23/-10) lib/lp/soyuz/browser/build.py (+67/-26) lib/lp/soyuz/browser/builder.py (+8/-13) lib/lp/soyuz/browser/configure.zcml (+76/-35) lib/lp/soyuz/browser/distributionsourcepackagerelease.py (+15/-5) lib/lp/soyuz/browser/distroarchseries.py (+2/-8) lib/lp/soyuz/browser/distroseries.py (+18/-7) lib/lp/soyuz/browser/packagesearch.py (+3/-0) lib/lp/soyuz/browser/packageset.py (+19/-0) lib/lp/soyuz/browser/publishing.py (+1/-1) lib/lp/soyuz/browser/queue.py (+12/-1) lib/lp/soyuz/browser/sourcepackagebuilds.py (+0/-4) lib/lp/soyuz/browser/sourcepackagerelease.py (+122/-96) lib/lp/soyuz/browser/tests/archive-views.txt (+89/-79) lib/lp/soyuz/browser/tests/archivesubscription-views.txt (+26/-25) lib/lp/soyuz/browser/tests/binarypackagerelease-views.txt (+2/-2) lib/lp/soyuz/browser/tests/build-views.txt (+88/-3) lib/lp/soyuz/browser/tests/builder-views.txt (+22/-27) lib/lp/soyuz/browser/tests/distribution-views.txt (+9/-0) lib/lp/soyuz/browser/tests/distributionsourcepackagerelease-views.txt (+4/-4) lib/lp/soyuz/browser/tests/publishing-views.txt (+4/-8) lib/lp/soyuz/browser/tests/sourcepackage-views.txt (+2/-2) lib/lp/soyuz/browser/tests/test_archive_admin_view.py (+95/-0) lib/lp/soyuz/browser/tests/test_breadcrumbs.py (+14/-34) lib/lp/soyuz/browser/tests/test_queue.py (+191/-0) lib/lp/soyuz/configure.zcml (+125/-104) lib/lp/soyuz/doc/archive-deletion.txt (+82/-0) lib/lp/soyuz/doc/archive-dependencies.txt (+154/-63) lib/lp/soyuz/doc/archive.txt (+323/-196) lib/lp/soyuz/doc/archiveauthtoken.txt (+51/-39) lib/lp/soyuz/doc/archivepermission.txt (+4/-3) lib/lp/soyuz/doc/archivesubscriber.txt (+58/-34) lib/lp/soyuz/doc/build-estimated-dispatch-time.txt (+31/-29) lib/lp/soyuz/doc/build-failedtoupload-workflow.txt (+8/-2) lib/lp/soyuz/doc/build-notification.txt (+11/-9) lib/lp/soyuz/doc/build.txt (+159/-114) lib/lp/soyuz/doc/buildd-dbnotes.txt (+0/-35) lib/lp/soyuz/doc/buildd-dispatching.txt (+59/-67) lib/lp/soyuz/doc/buildd-mass-retry.txt (+39/-0) lib/lp/soyuz/doc/buildd-queuebuilder-lookup.txt (+3/-3) lib/lp/soyuz/doc/buildd-scoring.txt (+28/-18) lib/lp/soyuz/doc/buildd-sequencer.txt (+0/-243) lib/lp/soyuz/doc/buildd-slave.txt (+10/-18) lib/lp/soyuz/doc/buildd-slavescanner.txt (+307/-363) lib/lp/soyuz/doc/distribution.txt (+27/-9) lib/lp/soyuz/doc/distroarchseries.txt (+17/-3) lib/lp/soyuz/doc/distroarchseriesbinarypackage.txt (+8/-11) lib/lp/soyuz/doc/distroseries-publishing-lookups.txt (+3/-3) lib/lp/soyuz/doc/distroseriesqueue-dist-upgrader.txt (+1/-1) lib/lp/soyuz/doc/distroseriesqueue-translations.txt (+52/-18) lib/lp/soyuz/doc/distroseriesqueue.txt (+21/-30) lib/lp/soyuz/doc/gina-multiple-arch.txt (+8/-8) lib/lp/soyuz/doc/gina.txt (+25/-23) lib/lp/soyuz/doc/hasbuildrecords.txt (+1/-1) lib/lp/soyuz/doc/initialise-from-parent.txt (+22/-2) lib/lp/soyuz/doc/manage-chroot.txt (+2/-2) lib/lp/soyuz/doc/nascentupload-announcements.txt (+8/-8) lib/lp/soyuz/doc/nascentupload.txt (+5/-5) lib/lp/soyuz/doc/package-arch-specific.txt (+2/-3) lib/lp/soyuz/doc/package-cache-script.txt (+1/-1) lib/lp/soyuz/doc/package-cache.txt (+22/-6) lib/lp/soyuz/doc/package-diff.txt (+7/-6) lib/lp/soyuz/doc/packageset.txt (+15/-3) lib/lp/soyuz/doc/packageupload-lookups.txt (+1/-1) lib/lp/soyuz/doc/publishing.txt (+275/-135) lib/lp/soyuz/doc/queuebuilder.txt (+40/-32) lib/lp/soyuz/doc/sampledata-setup.txt (+23/-0) lib/lp/soyuz/doc/sourcepackagerelease-build-lookup.txt (+8/-8) lib/lp/soyuz/doc/sourcepackagerelease.txt (+21/-15) lib/lp/soyuz/doc/soyuz-files.txt (+4/-4) lib/lp/soyuz/doc/soyuz-set-of-uploads.txt (+18/-18) lib/lp/soyuz/doc/soyuz-upload.txt (+22/-27) lib/lp/soyuz/doc/uploadpolicy.txt (+2/-2) lib/lp/soyuz/help/ppa-sources-list.html (+169/-42) lib/lp/soyuz/interfaces/archive.py (+169/-29) lib/lp/soyuz/interfaces/archivearch.py (+11/-0) lib/lp/soyuz/interfaces/archivepermission.py (+23/-2) lib/lp/soyuz/interfaces/binarypackagebuild.py (+40/-234) lib/lp/soyuz/interfaces/binarypackagename.py (+2/-1) lib/lp/soyuz/interfaces/binarypackagerelease.py (+37/-4) lib/lp/soyuz/interfaces/buildfarmbuildjob.py (+21/-0) lib/lp/soyuz/interfaces/buildpackagejob.py (+35/-0) lib/lp/soyuz/interfaces/component.py (+2/-2) lib/lp/soyuz/interfaces/distroarchseries.py (+7/-0) lib/lp/soyuz/interfaces/files.py (+6/-1) lib/lp/soyuz/interfaces/packagecloner.py (+1/-1) lib/lp/soyuz/interfaces/packageset.py (+69/-8) lib/lp/soyuz/interfaces/packagesetgroup.py (+41/-0) lib/lp/soyuz/interfaces/processor.py (+24/-1) lib/lp/soyuz/interfaces/publishing.py (+170/-58) lib/lp/soyuz/interfaces/queue.py (+4/-20) lib/lp/soyuz/interfaces/sourcepackageformat.py (+64/-0) lib/lp/soyuz/interfaces/sourcepackagerelease.py (+20/-0) lib/lp/soyuz/model/archive.py (+297/-62) lib/lp/soyuz/model/archivearch.py (+16/-0) lib/lp/soyuz/model/archivepermission.py (+39/-13) lib/lp/soyuz/model/archivesubscriber.py (+2/-2) lib/lp/soyuz/model/binarypackagebuild.py (+202/-239) lib/lp/soyuz/model/binarypackagebuildbehavior.py (+217/-0) lib/lp/soyuz/model/binarypackagerelease.py (+46/-3) lib/lp/soyuz/model/buildpackagejob.py (+274/-0) lib/lp/soyuz/model/distributionsourcepackagerelease.py (+10/-8) lib/lp/soyuz/model/distroarchseries.py (+13/-5) lib/lp/soyuz/model/files.py (+13/-2) lib/lp/soyuz/model/packagecloner.py (+15/-17) lib/lp/soyuz/model/packagediff.py (+26/-1) lib/lp/soyuz/model/packageset.py (+83/-9) lib/lp/soyuz/model/packagesetgroup.py (+30/-0) lib/lp/soyuz/model/processor.py (+12/-0) lib/lp/soyuz/model/publishedpackage.py (+1/-1) lib/lp/soyuz/model/publishing.py (+401/-316) lib/lp/soyuz/model/queue.py (+190/-86) lib/lp/soyuz/model/sourcepackageformat.py (+56/-0) lib/lp/soyuz/model/sourcepackagerelease.py (+31/-84) lib/lp/soyuz/pas.py (+94/-0) lib/lp/soyuz/scripts/buildd.py (+119/-26) lib/lp/soyuz/scripts/expire_archive_files.py (+90/-21) lib/lp/soyuz/scripts/ftpmaster.py (+39/-39) lib/lp/soyuz/scripts/gina/archive.py (+3/-2) lib/lp/soyuz/scripts/gina/handlers.py (+68/-36) lib/lp/soyuz/scripts/gina/library.py (+5/-2) lib/lp/soyuz/scripts/gina/packages.py (+12/-10) lib/lp/soyuz/scripts/gina/scripts/gina-loggrep (+1/-1) lib/lp/soyuz/scripts/packagecopier.py (+61/-50) lib/lp/soyuz/scripts/ppa_add_missing_builds.py (+136/-0) lib/lp/soyuz/scripts/ppa_apache_log_parser.py (+22/-0) lib/lp/soyuz/scripts/ppareport.py (+1/-1) lib/lp/soyuz/scripts/processaccepted.py (+120/-2) lib/lp/soyuz/scripts/publishdistro.py (+50/-23) lib/lp/soyuz/scripts/queue.py (+12/-8) lib/lp/soyuz/scripts/soyuz_process_upload.py (+12/-6) lib/lp/soyuz/scripts/tests/gina_test_archive/dists/breezy/main/source/Sources (+17/-0) lib/lp/soyuz/scripts/tests/gina_test_archive/dists/hoary/main/source/Sources (+14/-0) lib/lp/soyuz/scripts/tests/gina_test_archive/pool/main/b/bar/bar_1.0-1.dsc (+22/-0) lib/lp/soyuz/scripts/tests/ppa-apache-log-files/ppa.launchpad.net.access-log (+9/-0) lib/lp/soyuz/scripts/tests/sync_source_home/Debian_incoming_main_Sources (+28/-0) lib/lp/soyuz/scripts/tests/sync_source_home/sample1_1.0-1.dsc (+37/-0) lib/lp/soyuz/scripts/tests/test_buildd_cronscripts.py (+11/-15) lib/lp/soyuz/scripts/tests/test_copypackage.py (+338/-102) lib/lp/soyuz/scripts/tests/test_expire_archive_files.py (+162/-108) lib/lp/soyuz/scripts/tests/test_gina.py (+15/-0) lib/lp/soyuz/scripts/tests/test_lpquerydistro.py (+2/-2) lib/lp/soyuz/scripts/tests/test_obsoletedistroseries.py (+8/-10) lib/lp/soyuz/scripts/tests/test_populatearchive.py (+60/-29) lib/lp/soyuz/scripts/tests/test_ppa_add_missing_builds.py (+155/-0) lib/lp/soyuz/scripts/tests/test_ppa_apache_log_parser.py (+134/-0) lib/lp/soyuz/scripts/tests/test_processdeathrow.py (+14/-15) lib/lp/soyuz/scripts/tests/test_processpendingpackagediffs.py (+4/-71) lib/lp/soyuz/scripts/tests/test_processupload.py (+18/-1) lib/lp/soyuz/scripts/tests/test_publishdistro.py (+62/-12) lib/lp/soyuz/scripts/tests/test_queue.py (+11/-8) lib/lp/soyuz/scripts/tests/test_removepackage.py (+14/-14) lib/lp/soyuz/scripts/tests/test_sync_source.py (+106/-29) lib/lp/soyuz/stories/distroseries/add-architecture.txt (+1/-1) lib/lp/soyuz/stories/packaging/package-pages-navigation.txt (+8/-8) lib/lp/soyuz/stories/ppa/xx-copy-packages.txt (+25/-23) lib/lp/soyuz/stories/ppa/xx-delete-packages.txt (+7/-7) lib/lp/soyuz/stories/ppa/xx-edit-dependencies.txt (+13/-12) lib/lp/soyuz/stories/ppa/xx-ppa-files.txt (+43/-35) lib/lp/soyuz/stories/ppa/xx-ppa-navigation.txt (+3/-3) lib/lp/soyuz/stories/ppa/xx-ppa-packages.txt (+103/-49) lib/lp/soyuz/stories/ppa/xx-ppa-private-teams.txt (+2/-2) lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt (+169/-31) lib/lp/soyuz/stories/ppa/xx-private-ppa-presentation.txt (+14/-11) lib/lp/soyuz/stories/ppa/xx-private-ppa-subscription-stories.txt (+51/-45) lib/lp/soyuz/stories/ppa/xx-private-ppa-subscriptions.txt (+74/-38) lib/lp/soyuz/stories/ppa/xx-private-ppas.txt (+20/-14) lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt (+66/-27) lib/lp/soyuz/stories/soyuz/xx-binarypackagerelease-index.txt (+3/-2) lib/lp/soyuz/stories/soyuz/xx-build-record.txt (+37/-14) lib/lp/soyuz/stories/soyuz/xx-buildfarm-index.txt (+6/-6) lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt (+6/-6) lib/lp/soyuz/stories/soyuz/xx-distribution-archives.txt (+7/-3) lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt (+39/-4) lib/lp/soyuz/stories/soyuz/xx-distroarchseries-binpackages.txt (+45/-6) lib/lp/soyuz/stories/soyuz/xx-distroarchseries.txt (+2/-2) lib/lp/soyuz/stories/soyuz/xx-distroseries-binary-packages.txt (+5/-5) lib/lp/soyuz/stories/soyuz/xx-distroseries-index.txt (+2/-2) lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt (+31/-59) lib/lp/soyuz/stories/soyuz/xx-packagepublishinghistory.txt (+49/-0) lib/lp/soyuz/stories/soyuz/xx-person-packages.txt (+85/-64) lib/lp/soyuz/stories/soyuz/xx-private-builds.txt (+48/-78) lib/lp/soyuz/stories/soyuz/xx-queue-pages-delayed-copies.txt (+13/-13) lib/lp/soyuz/stories/soyuz/xx-queue-pages-motu.txt (+7/-7) lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt (+128/-77) lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt (+3/-3) lib/lp/soyuz/stories/webservice/xx-archive.txt (+73/-54) lib/lp/soyuz/stories/webservice/xx-archivedependency.txt (+18/-24) lib/lp/soyuz/stories/webservice/xx-binary-package-publishing.txt (+129/-11) lib/lp/soyuz/stories/webservice/xx-builds.txt (+8/-7) lib/lp/soyuz/stories/webservice/xx-distroarchseries.txt (+13/-0) lib/lp/soyuz/stories/webservice/xx-packageset.txt (+313/-73) lib/lp/soyuz/stories/webservice/xx-source-package-publishing.txt (+112/-19) lib/lp/soyuz/templates/archive-activate.pt (+0/-4) lib/lp/soyuz/templates/archive-builds.pt (+0/-21) lib/lp/soyuz/templates/archive-delete.pt (+32/-0) lib/lp/soyuz/templates/archive-edit-dependencies.pt (+20/-33) lib/lp/soyuz/templates/archive-index.pt (+35/-18) lib/lp/soyuz/templates/archive-macros.pt (+10/-4) lib/lp/soyuz/templates/archive-packages.pt (+4/-3) lib/lp/soyuz/templates/archive-subscribers.pt (+1/-1) lib/lp/soyuz/templates/build-index.pt (+4/-4) lib/lp/soyuz/templates/builder-history.pt (+0/-20) lib/lp/soyuz/templates/builder-index.pt (+6/-40) lib/lp/soyuz/templates/buildfarmbranchjob-current.pt (+10/-0) lib/lp/soyuz/templates/buildfarmbuildjob-current.pt (+8/-0) lib/lp/soyuz/templates/buildfarmjob-current.pt (+9/-0) lib/lp/soyuz/templates/buildqueue-current.pt (+24/-0) lib/lp/soyuz/templates/builds-list.pt (+2/-2) lib/lp/soyuz/templates/builds.pt (+0/-6) lib/lp/soyuz/templates/distribution-portlet-ppa-architectures.pt (+5/-8) lib/lp/soyuz/templates/distributionsourcepackagerelease-changes.pt (+5/-4) lib/lp/soyuz/templates/distroarchseries-builds.pt (+0/-20) lib/lp/soyuz/templates/distroarchseriesbinarypackagerelease-index.pt (+10/-4) lib/lp/soyuz/templates/distroseries-builds.pt (+0/-20) lib/lp/soyuz/templates/distroseries-portlet-latestuploads.pt (+7/-5) lib/lp/soyuz/templates/distroseries-queue.pt (+6/-0) lib/lp/soyuz/templates/distroseriessourcepackagerelease-index.pt (+16/-10) lib/lp/soyuz/templates/packagepublishing-details.pt (+1/-1) lib/lp/soyuz/templates/person-archive-subscription.pt (+2/-3) lib/lp/soyuz/templates/person-archive-subscriptions.pt (+12/-4) lib/lp/soyuz/templates/sourcepackage-builds.pt (+0/-20) lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt (+10/-3) lib/lp/soyuz/templates/sourcepackagerelease-change-summary.pt (+0/-10) lib/lp/soyuz/tests/ppa.py (+6/-8) lib/lp/soyuz/tests/soyuz.py (+84/-13) lib/lp/soyuz/tests/soyuzbuilddhelpers.py (+97/-104) lib/lp/soyuz/tests/test_archive.py (+649/-25) lib/lp/soyuz/tests/test_archivearch.py (+57/-0) lib/lp/soyuz/tests/test_build.py (+116/-11) lib/lp/soyuz/tests/test_buildpackagejob.py (+240/-0) lib/lp/soyuz/tests/test_doc.py (+11/-0) lib/lp/soyuz/tests/test_hasbuildrecords.py (+1/-1) lib/lp/soyuz/tests/test_packagediff.py (+92/-0) lib/lp/soyuz/tests/test_packageset.py (+187/-0) lib/lp/soyuz/tests/test_packageupload.py (+67/-12) lib/lp/soyuz/tests/test_processaccepted.py (+127/-0) lib/lp/soyuz/tests/test_processor.py (+32/-0) lib/lp/soyuz/tests/test_publishing.py (+197/-44) lib/lp/soyuz/tests/test_publishing_models.py (+15/-2) lib/lp/soyuz/tests/test_publishing_top_level_api.py (+10/-10) lib/lp/soyuz/windmill/tests/test_archivesubscribersindex.py (+17/-15) lib/lp/testing/__init__.py (+464/-250) lib/lp/testing/_login.py (+25/-38) lib/lp/testing/_webservice.py (+124/-0) lib/lp/testing/breadcrumbs.py (+40/-56) lib/lp/testing/factory.py (+753/-232) lib/lp/testing/fakemethod.py (+57/-0) lib/lp/testing/faketransaction.py (+35/-0) lib/lp/testing/fixture.py (+15/-4) lib/lp/testing/menu.py (+5/-4) lib/lp/testing/publication.py (+57/-0) lib/lp/testing/tests/test_fakemethod.py (+85/-0) lib/lp/testing/tests/test_fixture.py (+1/-1) lib/lp/testing/tests/test_inlinetests.py (+20/-0) lib/lp/testing/tests/test_zope_test_in_subprocess.py (+131/-0) lib/lp/testing/views.py (+15/-3) lib/lp/testopenid/adapters/openid.py (+32/-0) lib/lp/testopenid/browser/configure.zcml (+82/-0) lib/lp/testopenid/browser/server.py (+287/-0) lib/lp/testopenid/configure.zcml (+28/-0) lib/lp/testopenid/interfaces/server.py (+41/-0) lib/lp/testopenid/stories/basics.txt (+163/-0) lib/lp/testopenid/stories/logging-in.txt (+64/-0) lib/lp/testopenid/stories/tests.py (+22/-0) lib/lp/testopenid/templates/application-index.pt (+5/-0) lib/lp/testopenid/templates/application-xrds.pt (+14/-0) lib/lp/testopenid/templates/auth.pt (+18/-0) lib/lp/testopenid/templates/persistentidentity-index.pt (+14/-0) lib/lp/testopenid/templates/persistentidentity-xrds.pt (+14/-0) lib/lp/testopenid/testing/helpers.py (+74/-0) lib/lp/translations/browser/browser_helpers.py (+4/-6) lib/lp/translations/browser/configure.zcml (+76/-27) lib/lp/translations/browser/customlanguagecode.py (+171/-0) lib/lp/translations/browser/distribution.py (+9/-11) lib/lp/translations/browser/distroseries.py (+106/-46) lib/lp/translations/browser/hastranslationimports.py (+43/-42) lib/lp/translations/browser/language.py (+100/-19) lib/lp/translations/browser/person.py (+2/-0) lib/lp/translations/browser/poexportrequest.py (+35/-0) lib/lp/translations/browser/pofile.py (+20/-2) lib/lp/translations/browser/potemplate.py (+165/-32) lib/lp/translations/browser/product.py (+43/-34) lib/lp/translations/browser/productseries.py (+18/-25) lib/lp/translations/browser/productserieslanguage.py (+0/-57) lib/lp/translations/browser/project.py (+9/-9) lib/lp/translations/browser/serieslanguage.py (+130/-10) lib/lp/translations/browser/tests/distroseries-views.txt (+72/-14) lib/lp/translations/browser/tests/language-views.txt (+122/-8) lib/lp/translations/browser/tests/menu-pages.txt (+0/-230) lib/lp/translations/browser/tests/pofile-views.txt (+20/-2) lib/lp/translations/browser/tests/test_baseexportview.py (+69/-2) lib/lp/translations/browser/tests/test_breadcrumbs.py (+99/-128) lib/lp/translations/browser/tests/test_distroserieslanguage_views.py (+21/-3) lib/lp/translations/browser/tests/test_product_view.py (+58/-11) lib/lp/translations/browser/tests/test_productserieslanguage_views.py (+3/-1) lib/lp/translations/browser/tests/test_translationgroup.py (+69/-0) lib/lp/translations/browser/tests/test_translationimportqueueentry.py (+211/-0) lib/lp/translations/browser/tests/translationmessage-views.txt (+98/-0) lib/lp/translations/browser/translationgroup.py (+24/-18) lib/lp/translations/browser/translationimportqueue.py (+109/-18) lib/lp/translations/browser/translationmessage.py (+49/-2) lib/lp/translations/browser/translations.py (+1/-1) lib/lp/translations/configure.zcml (+49/-5) lib/lp/translations/doc/distroseries-translations-copy.txt (+6/-9) lib/lp/translations/doc/fix_translation_credits.txt (+23/-0) lib/lp/translations/doc/gettext-check-messages.txt (+14/-22) lib/lp/translations/doc/poexport-language-pack.txt (+46/-32) lib/lp/translations/doc/poexport-queue.txt (+6/-3) lib/lp/translations/doc/poexport-request-productseries.txt (+8/-8) lib/lp/translations/doc/poexport-request.txt (+12/-8) lib/lp/translations/doc/poexportqueue-replication-lag.txt (+89/-0) lib/lp/translations/doc/pofile-verify-stats.txt (+2/-2) lib/lp/translations/doc/pofile.txt (+61/-27) lib/lp/translations/doc/poimport-pofile-not-exported-from-rosetta.txt (+5/-3) lib/lp/translations/doc/poimport-pofile-old-po-imported.txt (+6/-4) lib/lp/translations/doc/poimport-pofile-syntax-error.txt (+10/-8) lib/lp/translations/doc/poimport-potemplate-syntax-error.txt (+5/-3) lib/lp/translations/doc/poimport.txt (+31/-37) lib/lp/translations/doc/potemplate.txt (+24/-10) lib/lp/translations/doc/potmsgset.txt (+48/-26) lib/lp/translations/doc/preferred-languages.txt (+9/-6) lib/lp/translations/doc/request_country.txt (+4/-3) lib/lp/translations/doc/rosetta-karma.txt (+7/-7) lib/lp/translations/doc/rosetta-poimport-script.txt (+5/-3) lib/lp/translations/doc/sourcepackagerelease-translations.txt (+3/-2) lib/lp/translations/doc/translationbranchapprover.txt (+1/-41) lib/lp/translations/doc/translationbuildapprover.txt (+82/-0) lib/lp/translations/doc/translationgroup.txt (+37/-0) lib/lp/translations/doc/translationimportqueue.txt (+74/-76) lib/lp/translations/doc/translations-export-to-branch.txt (+33/-7) lib/lp/translations/doc/translationtemplatesbuildbehavior.txt (+111/-0) lib/lp/translations/help/directory-example.html (+53/-0) lib/lp/translations/help/getting-started-for-your-project.html (+5/-5) lib/lp/translations/help/imported-upload.html (+61/-0) lib/lp/translations/help/importing-from-bzr.html (+37/-0) lib/lp/translations/help/new-to-translating.html (+44/-0) lib/lp/translations/help/reviewing.html (+52/-0) lib/lp/translations/help/successful-imports.html (+46/-0) lib/lp/translations/help/translation-groups.html (+5/-5) lib/lp/translations/help/updated-upload.html (+40/-0) lib/lp/translations/interfaces/customlanguagecode.py (+65/-10) lib/lp/translations/interfaces/poexportrequest.py (+31/-9) lib/lp/translations/interfaces/pofile.py (+13/-3) lib/lp/translations/interfaces/potemplate.py (+44/-13) lib/lp/translations/interfaces/potmsgset.py (+85/-10) lib/lp/translations/interfaces/productserieslanguage.py (+7/-2) lib/lp/translations/interfaces/translationgroup.py (+22/-12) lib/lp/translations/interfaces/translationimporter.py (+8/-0) lib/lp/translations/interfaces/translationimportqueue.py (+70/-16) lib/lp/translations/interfaces/translationsoverview.py (+1/-1) lib/lp/translations/interfaces/translationtemplatesbuildjob.py (+36/-0) lib/lp/translations/model/approver.py (+139/-52) lib/lp/translations/model/customlanguagecode.py (+72/-3) lib/lp/translations/model/poexportrequest.py (+90/-37) lib/lp/translations/model/pofile.py (+149/-95) lib/lp/translations/model/potemplate.py (+150/-94) lib/lp/translations/model/potmsgset.py (+127/-42) lib/lp/translations/model/productserieslanguage.py (+10/-1) lib/lp/translations/model/translatablemessage.py (+1/-1) lib/lp/translations/model/translationgroup.py (+31/-17) lib/lp/translations/model/translationimportqueue.py (+186/-101) lib/lp/translations/model/translationmessage.py (+5/-5) lib/lp/translations/model/translationsperson.py (+7/-6) lib/lp/translations/model/translationtemplatesbuildbehavior.py (+121/-0) lib/lp/translations/model/translationtemplatesbuildjob.py (+151/-0) lib/lp/translations/pottery/detect_intltool.py (+41/-0) lib/lp/translations/scripts/fix_translation_credits.py (+96/-0) lib/lp/translations/scripts/message_sharing_migration.py (+212/-81) lib/lp/translations/scripts/po_export_queue.py (+10/-24) lib/lp/translations/scripts/po_import.py (+19/-13) lib/lp/translations/scripts/remove_obsolete_translations.py (+7/-7) lib/lp/translations/scripts/reupload_translations.py (+7/-2) lib/lp/translations/scripts/tests/test-data/minimal.pot (+8/-0) lib/lp/translations/scripts/tests/test_copy_distroseries_translations.py (+2/-10) lib/lp/translations/scripts/tests/test_message_sharing_migration.py (+168/-76) lib/lp/translations/scripts/tests/test_remove_translations.py (+5/-1) lib/lp/translations/scripts/tests/test_reupload_translations.py (+61/-18) lib/lp/translations/scripts/tests/test_translations_import.py (+62/-0) lib/lp/translations/scripts/tests/test_translations_to_branch.py (+72/-6) lib/lp/translations/scripts/tests/test_validate_translations_file.py (+131/-0) lib/lp/translations/scripts/translations_to_branch.py (+58/-16) lib/lp/translations/scripts/validate_translations_file.py (+130/-0) lib/lp/translations/stories/buildfarm/xx-build-summary.txt (+69/-0) lib/lp/translations/stories/distribution/xx-distribution-translations.txt (+10/-10) lib/lp/translations/stories/distroseries/xx-distroseries-language-packs.txt (+87/-24) lib/lp/translations/stories/distroseries/xx-distroseries-translations.txt (+24/-44) lib/lp/translations/stories/importqueue/xx-entry-details.txt (+108/-0) lib/lp/translations/stories/importqueue/xx-entry-error-output.txt (+46/-0) lib/lp/translations/stories/importqueue/xx-translation-import-queue-edit-autofilling.txt (+4/-2) lib/lp/translations/stories/importqueue/xx-translation-import-queue-filtering.txt (+1/-0) lib/lp/translations/stories/importqueue/xx-translation-import-queue.txt (+23/-17) lib/lp/translations/stories/productseries/xx-productseries-templates.txt (+0/-65) lib/lp/translations/stories/productseries/xx-productseries-translations-settings.txt (+5/-1) lib/lp/translations/stories/productseries/xx-productseries-translations.txt (+142/-42) lib/lp/translations/stories/project/xx-project-translations.txt (+1/-1) lib/lp/translations/stories/standalone/custom-language-codes.txt (+277/-0) lib/lp/translations/stories/standalone/xx-language.txt (+73/-11) lib/lp/translations/stories/standalone/xx-person-editlanguages.txt (+13/-13) lib/lp/translations/stories/standalone/xx-pofile-details.txt (+53/-1) lib/lp/translations/stories/standalone/xx-pofile-export.txt (+3/-3) lib/lp/translations/stories/standalone/xx-pofile-translate-dismiss-suggestions.txt (+1/-1) lib/lp/translations/stories/standalone/xx-pofile-translate-legal-warning.txt (+1/-1) lib/lp/translations/stories/standalone/xx-pofile-translate-message-filtering.txt (+2/-2) lib/lp/translations/stories/standalone/xx-pofile-translate-needs-review-flags-preserved.txt (+62/-3) lib/lp/translations/stories/standalone/xx-pofile-translate-newlines-check.txt (+2/-2) lib/lp/translations/stories/standalone/xx-pofile-translate.txt (+87/-11) lib/lp/translations/stories/standalone/xx-potemplate-admin.txt (+106/-2) lib/lp/translations/stories/standalone/xx-potemplate-edit.txt (+118/-19) lib/lp/translations/stories/standalone/xx-potemplate-index.txt (+235/-22) lib/lp/translations/stories/standalone/xx-product-translations.txt (+90/-45) lib/lp/translations/stories/standalone/xx-rosetta-homepage.txt (+1/-1) lib/lp/translations/stories/standalone/xx-rosetta-sourcepackage-list.txt (+1/-1) lib/lp/translations/stories/standalone/xx-series-templates.txt (+182/-27) lib/lp/translations/stories/standalone/xx-serieslanguage-index.txt (+189/-1) lib/lp/translations/stories/standalone/xx-sourcepackage-export.txt (+1/-1) lib/lp/translations/stories/standalone/xx-translationmessage-translate.txt (+59/-10) lib/lp/translations/stories/standalone/xx-translations-to-complete.txt (+25/-0) lib/lp/translations/stories/translationfocus/xx-product-translationfocus.txt (+87/-0) lib/lp/translations/stories/translationgroups/15-product-translation-group.txt (+3/-2) lib/lp/translations/stories/translationgroups/30-show-group-translation-targets.txt (+7/-0) lib/lp/translations/stories/translationgroups/46-test-distro-structured-permissions.txt (+2/-2) lib/lp/translations/stories/translationgroups/xx-change-translation-policy.txt (+92/-12) lib/lp/translations/stories/translations/55-rosetta-potemplates.txt (+3/-2) lib/lp/translations/stories/webservice/xx-translationfocus.txt (+34/-0) lib/lp/translations/stories/webservice/xx-translationimportqueue.txt (+17/-2) lib/lp/translations/templates/currenttranslationmessage-translate-one.pt (+22/-25) lib/lp/translations/templates/customlanguagecode-add.pt (+29/-0) lib/lp/translations/templates/customlanguagecode-index.pt (+46/-0) lib/lp/translations/templates/customlanguagecodes-index.pt (+80/-0) lib/lp/translations/templates/distribution-language-pack-admin-info.pt (+2/-2) lib/lp/translations/templates/distribution-translations.pt (+19/-15) lib/lp/translations/templates/distroseries-langchart.pt (+21/-1) lib/lp/translations/templates/distroseries-language-packs.pt (+59/-22) lib/lp/translations/templates/distroseries-translations.pt (+27/-20) lib/lp/translations/templates/hastranslationgroup-portlet-translation-groups-and-permission.pt (+4/-5) lib/lp/translations/templates/language-index.pt (+19/-33) lib/lp/translations/templates/language-portlet-top-contributors.pt (+3/-3) lib/lp/translations/templates/languageset-index.pt (+76/-35) lib/lp/translations/templates/object-pots.pt (+2/-2) lib/lp/translations/templates/object-templates.pt (+86/-45) lib/lp/translations/templates/person-translations-relicensing.pt (+1/-1) lib/lp/translations/templates/person-translations.pt (+3/-5) lib/lp/translations/templates/pofile-details.pt (+9/-5) lib/lp/translations/templates/pofile-export.pt (+11/-5) lib/lp/translations/templates/pofile-portlet-details.pt (+11/-11) lib/lp/translations/templates/pofile-translate-contributors.pt (+5/-3) lib/lp/translations/templates/pofile-translate.pt (+9/-63) lib/lp/translations/templates/pofile-upload.pt (+3/-3) lib/lp/translations/templates/potemplate-index.pt (+11/-11) lib/lp/translations/templates/product-portlet-not-using-launchpad.pt (+23/-0) lib/lp/translations/templates/product-portlet-obsolete-translatables.pt (+1/-1) lib/lp/translations/templates/product-portlet-translatables.pt (+15/-3) lib/lp/translations/templates/product-translations.pt (+42/-87) lib/lp/translations/templates/productseries-translations-bzr-import.pt (+4/-18) lib/lp/translations/templates/productseries-translations-languages.pt (+35/-3) lib/lp/translations/templates/productseries-translations-settings.pt (+37/-21) lib/lp/translations/templates/productseries-translations-upload.pt (+34/-19) lib/lp/translations/templates/productseries-translations.pt (+27/-19) lib/lp/translations/templates/project-translations.pt (+3/-3) lib/lp/translations/templates/rosetta-index.pt (+1/-9) lib/lp/translations/templates/serieslanguage-index.pt (+39/-27) lib/lp/translations/templates/sourcepackage-translations.pt (+16/-8) lib/lp/translations/templates/translation-import-queue-macros.pt (+63/-37) lib/lp/translations/templates/translationgroup-index.pt (+3/-2) lib/lp/translations/templates/translationgroup-portlet-projects.pt (+3/-3) lib/lp/translations/templates/translationimportqueue-index.pt (+9/-2) lib/lp/translations/templates/translationimportqueueentry-index.pt (+15/-2) lib/lp/translations/templates/translationimportqueueentry-portlet-details.pt (+43/-36) lib/lp/translations/templates/translationmessage-suggestions.pt (+1/-1) lib/lp/translations/templates/translationmessage-translate.pt (+7/-21) lib/lp/translations/templates/translations-export.pt (+5/-0) lib/lp/translations/templates/translations-macros.pt (+74/-4) lib/lp/translations/tests/test_autoapproval.py (+268/-86) lib/lp/translations/tests/test_pofile.py (+458/-83) lib/lp/translations/tests/test_potemplate.py (+13/-0) lib/lp/translations/tests/test_potmsgset.py (+278/-4) lib/lp/translations/tests/test_pottery_detect_intltool.py (+293/-0) lib/lp/translations/tests/test_productserieslanguage.py (+31/-15) lib/lp/translations/tests/test_rosetta_branches_script.py (+2/-2) lib/lp/translations/tests/test_shared_potemplate.py (+11/-38) lib/lp/translations/tests/test_suggestions.py (+11/-1) lib/lp/translations/tests/test_translatablemessage.py (+4/-1) lib/lp/translations/tests/test_translationbranchapprover.py (+110/-25) lib/lp/translations/tests/test_translationbuildapprover.py (+255/-0) lib/lp/translations/tests/test_translationgroup.py (+65/-0) lib/lp/translations/tests/test_translationimportqueue.py (+306/-0) lib/lp/translations/tests/test_translations_to_review.py (+3/-1) lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py (+287/-0) lib/lp/translations/tests/test_translationtemplatesbuildjob.py (+283/-0) lib/lp/translations/tests/test_vpoexport.py (+0/-62) lib/lp/translations/utilities/doc/gettext_mo_exporter.txt (+7/-5) lib/lp/translations/utilities/doc/launchpad_write_tarfile.txt (+6/-3) lib/lp/translations/utilities/doc/pluralforms.txt (+1/-1) lib/lp/translations/utilities/doc/templatenames.txt (+42/-0) lib/lp/translations/utilities/gettext_po_exporter.py (+65/-46) lib/lp/translations/utilities/gettext_po_parser.py (+4/-3) lib/lp/translations/utilities/mozilla_xpi_importer.py (+4/-1) lib/lp/translations/utilities/pluralforms.py (+48/-30) lib/lp/translations/utilities/rosettastats.py (+1/-1) lib/lp/translations/utilities/template.py (+56/-0) lib/lp/translations/utilities/tests/helpers.py (+3/-1) lib/lp/translations/utilities/tests/test_file_importer.py (+24/-0) lib/lp/translations/utilities/tests/test_gettext_po_exporter.py (+101/-27) lib/lp/translations/utilities/tests/test_pluralforms.py (+70/-0) lib/lp/translations/utilities/tests/test_templatenames.py (+61/-0) lib/lp/translations/utilities/tests/test_translation_importer.py (+25/-0) lib/lp/translations/utilities/tests/test_xpi_import.py (+3/-1) lib/lp/translations/utilities/tests/test_xpi_manifest.py (+21/-10) lib/lp/translations/utilities/tests/test_xpi_po_exporter.py (+3/-1) lib/lp/translations/utilities/translation_export.py (+1/-1) lib/lp/translations/utilities/translation_import.py (+21/-18) lib/lp/translations/utilities/xpi_manifest.py (+7/-0) lib/lp/translations/windmill/testing.py (+18/-0) lib/lp/translations/windmill/tests/disabled_test_productseries_templates.py (+25/-42) lib/lp/translations/windmill/tests/test_documentation_links.py (+50/-71) lib/lp/translations/windmill/tests/test_import_queue.py (+125/-58) lib/lp/translations/windmill/tests/test_import_queue_error_output.py.disabled (+14/-29) lib/lp/translations/windmill/tests/test_languages.py (+102/-0) lib/lp/translations/windmill/tests/test_pofile_translate.py (+251/-0) lib/lp/translations/windmill/tests/test_serieslanguages.py (+78/-0) lib/lp_sitecustomize.py (+30/-0) lib/pprint25.py (+0/-315) lib/psycopg.py (+0/-9) lib/schoolbell/README.txt (+0/-7) lib/schoolbell/__init__.py (+0/-38) lib/schoolbell/browser.py (+0/-71) lib/schoolbell/icalendar.py (+0/-1128) lib/schoolbell/interfaces.py (+0/-396) lib/schoolbell/mixins.py (+0/-314) lib/schoolbell/simple.py (+0/-96) lib/schoolbell/tests/__init__.py (+0/-1) lib/schoolbell/tests/test_icalendar.py (+0/-782) lib/schoolbell/tests/test_schoolbell.py (+0/-74) lib/schoolbell/utils.py (+0/-164) lp-sfood-packages (+35/-0) script-testing.zcml (+8/-0) script.zcml (+5/-1) scripts/branch-distro.py (+39/-0) scripts/branch-rewrite.py (+1/-1) scripts/bug-export.py (+3/-3) scripts/bug-import.py (+3/-3) scripts/bugzilla-import.py (+3/-8) scripts/cache-country-mirrors.py (+7/-5) scripts/clean-sourceforge-project-entries.py (+1/-1) scripts/close-account.py (+21/-13) scripts/code-import-worker-monitor.py (+20/-9) scripts/code-import-worker.py (+27/-6) scripts/convert-person-to-team.py (+1/-1) scripts/copy-translations-from-parent.py (+1/-1) scripts/entitlements-to-lp.py (+2/-5) scripts/find-email-clusters.py (+2/-3) scripts/ftpmaster-tools/_syncorigins.py (+2/-2) scripts/ftpmaster-tools/archive-cruft-check.py (+1/-1) scripts/ftpmaster-tools/archive-integrity-check.py (+1/-1) scripts/ftpmaster-tools/archive-override-check.py (+1/-1) scripts/ftpmaster-tools/buildd-mass-retry.py (+10/-4) scripts/ftpmaster-tools/change-override.py (+1/-1) scripts/ftpmaster-tools/copy-package.py (+1/-1) scripts/ftpmaster-tools/dak_utils.py (+4/-154) scripts/ftpmaster-tools/initialise-from-parent.py (+9/-9) scripts/ftpmaster-tools/lp-query-distro.py (+1/-1) scripts/ftpmaster-tools/lp-remove-package.py (+1/-1) scripts/ftpmaster-tools/manage-chroot.py (+1/-1) scripts/ftpmaster-tools/obsolete-distroseries.py (+1/-1) scripts/ftpmaster-tools/ppa-report.py (+1/-1) scripts/ftpmaster-tools/queue (+1/-1) scripts/ftpmaster-tools/remove-package.py (+11/-11) scripts/ftpmaster-tools/sync-source.py (+113/-96) scripts/ftpmaster-tools/unembargo-package.py (+1/-1) scripts/get-stacked-on-branches.py (+1/-1) scripts/gina.py (+41/-45) scripts/import-debian-bugs.py (+1/-1) scripts/import-packagenames.py (+2/-2) scripts/import-zope-specs.py (+4/-4) scripts/librarian-report.py (+39/-6) scripts/linkreport.py (+2/-2) scripts/list-team-members (+6/-5) scripts/make-static.py (+0/-15) scripts/memcached-stats.py (+117/-0) scripts/merge-email-clusters.py (+2/-3) scripts/migrate-bugzilla-initialcontacts.py (+1/-1) scripts/migrate-librarian-content-md5.py (+1/-1) scripts/mirror-branch.py (+1/-2) scripts/mlist-import.py (+4/-4) scripts/mlist-sync.py (+4/-4) scripts/modified-branches.py (+1/-1) scripts/populate-archive.py (+1/-1) scripts/ppa-add-missing-builds.py (+16/-0) scripts/process-accepted.py (+9/-103) scripts/process-death-row.py (+1/-1) scripts/process-upload.py (+1/-1) scripts/publish-distro.py (+1/-1) scripts/rosetta/check-distroseries-translations-diffs.py (+1/-1) scripts/rosetta/fix_translation_credits.py (+28/-0) scripts/rosetta/gettext_check_messages.py (+1/-1) scripts/rosetta/message-sharing-merge.py (+2/-2) scripts/rosetta/message-sharing-populate-test.py (+1/-1) scripts/rosetta/message-sharing-populate.py (+1/-1) scripts/rosetta/pottery-generate-intltool.py (+15/-0) scripts/rosetta/remove-obsolete-translations.py (+1/-1) scripts/rosetta/remove-translations-by.py (+1/-1) scripts/rosetta/remove-upstream-translations.py (+2/-3) scripts/rosetta/reupload-translations.py (+1/-1) scripts/rosetta/share-jaunty-translations.py (+1/-1) scripts/rosetta/validate-translations-file.py (+18/-0) scripts/script-monitor-nagios.py (+6/-6) scripts/script-monitor.py (+4/-4) scripts/sourceforge-import.py (+6/-11) scripts/start-loggerhead.py (+177/-0) scripts/stop-loggerhead.py (+33/-0) scripts/update-bzr-version-info.sh (+1/-1) scripts/update-stacked-on.py (+11/-46) scripts/upload2librarian.py (+3/-2) setup.py (+14/-2) sourcecode/Makefile (+11/-4) standard_template.py (+2/-2) standard_test_template.py (+2/-3) test_on_merge.py (+13/-7) utilities/apidoc-index.pt (+56/-0) utilities/check-configs.py (+1/-1) utilities/check-content-interfaces.py (+1/-1) utilities/check-db-revision.py (+22/-0) utilities/check-sampledata.py (+1/-1) utilities/check-scripts.py (+3/-2) utilities/community-contributions.py (+415/-160) utilities/create-lp-wadl-and-apidoc.py (+63/-19) utilities/ec2 (+3/-7) utilities/findimports.py (+4/-6) utilities/flaky.py (+1/-1) utilities/generate-external-bug-status-docs (+1/-1) utilities/get-branch-info (+1/-1) utilities/launchpad-database-setup (+6/-5) utilities/less-oops.sh (+9/-0) utilities/list-person-references.py (+3/-1) utilities/lp-deps.py (+35/-0) utilities/lp.pylintrc (+1/-1) utilities/lsconf.py (+4/-4) utilities/make-dummy-hosted-branches (+1/-1) utilities/make-lp-user (+117/-12) utilities/migrater/file-ownership.txt (+2/-1) utilities/migrater/migrater.py (+10/-5) utilities/mock-code-import (+1/-1) utilities/on-edge (+160/-0) utilities/page-performance-report.ini (+35/-0) utilities/page-performance-report.py (+18/-0) utilities/paste (+3/-5) utilities/pgbackup.py (+1/-1) utilities/pgcreate.py (+1/-1) utilities/pgkillactive.py (+1/-1) utilities/pgkillidle.py (+1/-1) utilities/pglogwatch.py (+1/-1) utilities/pgmassacre.py (+20/-4) utilities/pgrestore.py (+1/-1) utilities/pgstats.py (+1/-1) utilities/qa-ready (+108/-0) utilities/rocketfuel-setup (+6/-79) utilities/sanitize-db.py (+1/-1) utilities/sourcedeps.conf (+16/-21) utilities/soyuz-sampledata-setup.py (+422/-0) utilities/start-dev-soyuz.sh (+21/-0) utilities/summarizelogs.py (+1/-1) utilities/top-tests.py (+1/-1) utilities/update-revisionauthor-email.py (+1/-1) utilities/update-sourcecode (+1/-1) utilities/windmill.py (+0/-15) utilities/xxxreport.py (+1/-1) version.txt (+1/-1) versions.cfg (+125/-90) |
||||
To merge this branch: | bzr merge lp:~bac/launchpad/bug-574142 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Francis J. Lacoste (community) | release-critical | Approve | |
Curtis Hovey (community) | Approve | ||
Brad Crittenden | Pending | ||
Review via email: mp+24625@code.launchpad.net |
Description of the change
A recent change to ProductInvolvedMenu improperly uses the ProductSeries
not the Product. A ProductSeries can not be adapted to IBranchTarget.
Pre-imp:
Call with Curtis.
Tests:
bin/test -vvm lp.registry -t productseries-
-t pillar-views.txt -t xx-productserie
Full diff at http://
To post a comment you must log in.
Thanks for adding the additional tests. I don't think we will make this mistake again. This is good to land and I will as for an RC (Bjorn already agreed that the issue is worthy of an RC).