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

Proposed by Jonathan Lange
Status: Merged
Approved by: Martin Packman
Approved revision: no longer in the source branch.
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 Approve
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.
Revision history for this message
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
Revision history for this message
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

Revision history for this message
Martin Pool (mbp) wrote :

>Which NEWS file?

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

--
Martin

Revision history for this message
Jonathan Lange (jml) wrote :

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

Revision history for this message
Martin Pool (mbp) wrote :

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

Martin

Revision history for this message
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.

Revision history for this message
Jonathan Lange (jml) wrote :

sent to pqm by email

Revision history for this message
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 *********