Merge lp:~jml/bzr/rubberstamp into lp:bzr

Proposed by Jonathan Lange on 2012-10-22
Status: Merged
Approved by: Martin Packman on 2012-10-25
Approved revision: 6576
Merged at revision: 6571
Proposed branch: lp:~jml/bzr/rubberstamp
Merge into: lp:bzr
Diff against target: 86 lines (+30/-3)
3 files modified
bzrlib/plugins/launchpad/cmds.py (+2/-1)
bzrlib/plugins/launchpad/lp_propose.py (+19/-1)
doc/en/release-notes/bzr-2.6.txt (+9/-1)
To merge this branch: bzr merge lp:~jml/bzr/rubberstamp
Reviewer Review Type Date Requested Status
Martin Pool 2012-10-22 Approve on 2012-10-22
Review via email: mp+130850@code.launchpad.net

Commit message

Set approved revision and vote "Approve" when using lp-propose --approve

Description of the change

The common use case for me using lp-propose --approve is when I'm creating a merge proposal that will then be taken up by another system, like tarmac, for processing and landing.

This branch caters to that use case by voting "Approve" and by setting the approved revision. Both of these enable the default tarmac set up to land the merge proposal. Altogether, this makes 'lp-propose --approve' something of a rubberstamping operation.

To post a comment you must log in.
Martin Pool (mbp) wrote :
Download full text (3.8 KiB)

That seems like a good feature? Could anyone be surprised by the change and
want the old behavior? Maybe not.

It should be in NEWS.

  vote approve
On 23 Oct 2012 03:30, "Jonathan Lange" <email address hidden> wrote:

> Jonathan Lange has proposed merging lp:~jml/bzr/rubberstamp into lp:bzr.
>
> Commit message:
> Set approved revision and vote "Approve" when using lp-propose --approve
>
> Requested reviews:
> bzr-core (bzr-core)
>
> For more details, see:
> https://code.launchpad.net/~jml/bzr/rubberstamp/+merge/130850
>
> The common use case for me using lp-propose --approve is when I'm creating
> a merge proposal that will then be taken up by another system, like tarmac,
> for processing and landing.
>
> This branch caters to that use case by voting "Approve" and by setting the
> approved revision. Both of these enable the default tarmac set up to land
> the merge proposal. Altogether, this makes 'lp-propose --approve'
> something of a rubberstamping operation.
>
>
> --
> https://code.launchpad.net/~jml/bzr/rubberstamp/+merge/130850
> Your team bzr-core is requested to review the proposed merge of
> lp:~jml/bzr/rubberstamp into lp:bzr.
>
> === modified file 'bzrlib/plugins/launchpad/cmds.py'
> --- bzrlib/plugins/launchpad/cmds.py 2012-07-23 19:19:05 +0000
> +++ bzrlib/plugins/launchpad/cmds.py 2012-10-22 16:29:21 +0000
> @@ -293,7 +293,8 @@
> Option('message', short_name='m', type=unicode,
> help='Commit message.'),
> Option('approve',
> - help='Mark the proposal as approved
> immediately.'),
> + help=('Mark the proposal as approved
> immediately, '
> + 'setting the approved revision to
> tip.')),
> Option('fixes', 'The bug this proposal fixes.', str),
> ListOption('review', short_name='R', type=unicode,
> help='Requested reviewer and optional type.')]
>
> === modified file 'bzrlib/plugins/launchpad/lp_propose.py'
> --- bzrlib/plugins/launchpad/lp_propose.py 2012-02-26 15:43:02 +0000
> +++ bzrlib/plugins/launchpad/lp_propose.py 2012-10-22 16:29:21 +0000
> @@ -137,6 +137,15 @@
> })
> return body
>
> + def get_source_revid(self):
> + """Get the revision ID of the source branch."""
> + source_branch = self.source_branch.bzr
> + source_branch.lock_read()
> + try:
> + return source_branch.last_revision()
> + finally:
> + source_branch.unlock()
> +
> def check_proposal(self):
> """Check that the submission is sensible."""
> if self.source_branch.lp.self_link ==
> self.target_branch.lp.self_link:
> @@ -180,6 +189,15 @@
> error_lines.append(line)
> raise Exception(''.join(error_lines))
>
> + def approve_proposal(self, mp):
> + revid = self.get_source_revid()
> + self.call_webservice(
> + mp.createComment,
> + vote=u'Approve',
> + subject='', # Use the default subject.
> + content=u"Rubberstamp! Proposer approve...

Read more...

review: Approve
Jonathan Lange (jml) wrote :

On 22 October 2012 19:26, Martin Pool <email address hidden> wrote:
> Review: Approve
>

Thanks!

> That seems like a good feature? Could anyone be surprised by the change and
> want the old behavior? Maybe not.
>

That's my thinking. Complete with question marks.

> It should be in NEWS.
>

Which NEWS file?

jml

Martin Pool (mbp) wrote :

>Which NEWS file?

I really mean doc/en/release-notes/bzr-2.6.txt, which we merged NEWS into.

--
Martin

lp:~jml/bzr/rubberstamp updated on 2012-10-23
6576. By Jonathan Lange on 2012-10-23

NEWS update

Jonathan Lange (jml) wrote :

NEWS has been updated. What else needs to happen before this gets merged?

Martin Pool (mbp) wrote :

I think you have commit rights? Please go ahead and merge it.

Martin

Jonathan Lange (jml) wrote :

I don't know how to tell if I have commit rights. My pqm-submit failed with being unable to verify the key. Have asked mgz on IRC to merge.

Jonathan Lange (jml) wrote :

sent to pqm by email

Martin Packman (gz) wrote :

sent to pqm by email

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bzrlib/plugins/launchpad/cmds.py'
2--- bzrlib/plugins/launchpad/cmds.py 2012-07-23 19:19:05 +0000
3+++ bzrlib/plugins/launchpad/cmds.py 2012-10-23 10:25:24 +0000
4@@ -293,7 +293,8 @@
5 Option('message', short_name='m', type=unicode,
6 help='Commit message.'),
7 Option('approve',
8- help='Mark the proposal as approved immediately.'),
9+ help=('Mark the proposal as approved immediately, '
10+ 'setting the approved revision to tip.')),
11 Option('fixes', 'The bug this proposal fixes.', str),
12 ListOption('review', short_name='R', type=unicode,
13 help='Requested reviewer and optional type.')]
14
15=== modified file 'bzrlib/plugins/launchpad/lp_propose.py'
16--- bzrlib/plugins/launchpad/lp_propose.py 2012-02-26 15:43:02 +0000
17+++ bzrlib/plugins/launchpad/lp_propose.py 2012-10-23 10:25:24 +0000
18@@ -137,6 +137,15 @@
19 })
20 return body
21
22+ def get_source_revid(self):
23+ """Get the revision ID of the source branch."""
24+ source_branch = self.source_branch.bzr
25+ source_branch.lock_read()
26+ try:
27+ return source_branch.last_revision()
28+ finally:
29+ source_branch.unlock()
30+
31 def check_proposal(self):
32 """Check that the submission is sensible."""
33 if self.source_branch.lp.self_link == self.target_branch.lp.self_link:
34@@ -180,6 +189,15 @@
35 error_lines.append(line)
36 raise Exception(''.join(error_lines))
37
38+ def approve_proposal(self, mp):
39+ revid = self.get_source_revid()
40+ self.call_webservice(
41+ mp.createComment,
42+ vote=u'Approve',
43+ subject='', # Use the default subject.
44+ content=u"Rubberstamp! Proposer approves of own proposal.")
45+ self.call_webservice(mp.setStatus, status=u'Approved', revid=revid)
46+
47 def create_proposal(self):
48 """Perform the submission."""
49 prerequisite_branch = self._get_prerequisite_branch()
50@@ -203,7 +221,7 @@
51 commit_message=self.commit_message, reviewers=reviewers,
52 review_types=review_types)
53 if self.approve:
54- self.call_webservice(mp.setStatus, status='Approved')
55+ self.approve_proposal(mp)
56 if self.fixes:
57 if self.fixes.startswith('lp:'):
58 self.fixes = self.fixes[3:]
59
60=== modified file 'doc/en/release-notes/bzr-2.6.txt'
61--- doc/en/release-notes/bzr-2.6.txt 2012-10-13 15:05:46 +0000
62+++ doc/en/release-notes/bzr-2.6.txt 2012-10-23 10:25:24 +0000
63@@ -15,6 +15,9 @@
64
65 .. These may require users to change the way they use Bazaar.
66
67+* ``bzr lp-propose --approve`` now also adds an "Approve" vote to the merge
68+ proposal. (Jonathan Lange)
69+
70 New Features
71 ************
72
73@@ -43,7 +46,12 @@
74
75 * Local configurations files (i.e. accessed on the local file system like
76 ``bazaar.conf`` and ``locations.conf``) are now shared, reducing the
77- number of IOs when querying a configuation option. (Vincent Ladeuil, #832042)
78+ number of IOs when querying a configuation option. (Vincent Ladeuil,
79+ #832042)
80+
81+* ``bzr lp-propose --approve`` now correctly specifies the approved revision
82+ and provides an "Approve" vote from the proposer, allowing for smoother
83+ interaction with downstream merge tools. (Jonathan Lange)
84
85 Bug Fixes
86 *********