← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~wallyworld/launchpad/branch-transitively_private-attribute into lp:launchpad

 

The proposal to merge lp:~wallyworld/launchpad/branch-transitively_private-attribute into lp:launchpad has been updated.

Description changed to:

This branch can only be deployed after the following db-devel branches have been deployed to lp.net:
lp:~wallyworld/launchpad/branch-privacy-trigger
lp:~wallyworld/launchpad/branch-transitively-private-column
A branch to provide a garbo job to populate the transitively_private column for existing branches.

Bug 568121 requires that public branches stacked on private branches are shown as private. This mp introduces a new Branch attribute: transitively_private. The attribute is maintained by a db trigger and allows both queries and application code to use a common attribute for determining whether a branch is truly private. This branch allows some previously deployed code to recursively look at stacked on branches to populate the "private" attribute to be replaced with a delegated call to transitively_private.

== Implementation ==

Essentially: simply replace uses of Branch.private with Branch.transitively_private in Storm queries and also hand coded SQL.
Also a bit of code to ensure that when branch.setPrivate() is called, branch.transitively_private is invalidated on that instance so that it is reloaded from the db.

== Tests ==

Existing tests using private branches were altered so that some of the private branches were made transitively private.

Changed tests in:
  - test_branchcollection
  - test_branchlookup
  - test_revision
  - test_branchmergeproposal
  - test_branch

Plus added tests:
  TestUpdateRevisionCacheForBranch
  - test_revisions_for_transitive_private_branch_marked_private
  - test_existing_transitive_private_revisions_with_public_branch

  TestGetByLPPath
  - test_transitive_private_branch
  - test_transitive_private_linked_branch

== Lint ==

 Linting changed files:
  lib/lp/code/model/branch.py
  lib/lp/code/model/branchcollection.py
  lib/lp/code/model/branchlookup.py
  lib/lp/code/model/branchmergeproposal.py
  lib/lp/code/model/revision.py
  lib/lp/code/model/tests/test_branch.py
  lib/lp/code/model/tests/test_branchcollection.py
  lib/lp/code/model/tests/test_branchlookup.py
  lib/lp/code/model/tests/test_branchmergeproposal.py
  lib/lp/code/model/tests/test_revision.py
  lib/lp/registry/model/distribution.py
  lib/lp/registry/tests/test_person.py
  lib/lp/testing/factory.py

./lib/lp/code/model/tests/test_branchcollection.py
     759: local variable 'mp' is assigned to but never used
     770: local variable 'mp' is assigned to but never used
./lib/lp/code/model/tests/test_revision.py
     312: local variable 'b1' is assigned to but never used
     506: local variable 'rev2' is assigned to but never used
     529: local variable 'rev2' is assigned to but never used
     537: local variable 'rev3' is assigned to but never used
     556: local variable 'rev1' is assigned to but never used
     565: local variable 'rev2' is assigned to but never used
     635: local variable 'last_scanned_id' is assigned to but never used

For more details, see:
https://code.launchpad.net/~wallyworld/launchpad/branch-transitively_private-attribute/+merge/75325
-- 
https://code.launchpad.net/~wallyworld/launchpad/branch-transitively_private-attribute/+merge/75325
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wallyworld/launchpad/branch-transitively_private-attribute into lp:launchpad.


References