You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lens.apache.org by "amareshwarisr ." <am...@gmail.com> on 2015/08/03 08:25:57 UTC
Re: incubator-lens git commit: LENS-541 : Lens patch-review tool
(Yash Sharma via Rajat Khandelwal)
Rajat,
Is the commit correct? Seems not. May be the file was not attached on the
jira? The one i reviewed has doc changes not a .py file.
On Mon, Aug 3, 2015 at 11:51 AM, <ya...@apache.org> wrote:
> Repository: incubator-lens
> Updated Branches:
> refs/heads/master bffa78c97 -> 898e0a82e
>
>
> LENS-541 : Lens patch-review tool (Yash Sharma via Rajat Khandelwal)
>
>
> Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/898e0a82
> Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/898e0a82
> Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/898e0a82
>
> Branch: refs/heads/master
> Commit: 898e0a82ee7880747ffeaef2fa21b50dfaa96bbf
> Parents: bffa78c
> Author: Rajat Khandelwal <pr...@apache.org>
> Authored: Mon Aug 3 11:49:05 2015 +0530
> Committer: Yash Sharma <ya...@snapdeal.com>
> Committed: Mon Aug 3 11:49:05 2015 +0530
>
> ----------------------------------------------------------------------
> tools/scripts/lens-patch-review.py | 130 ++++++++++++++++++++++++++++++++
> 1 file changed, 130 insertions(+)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/898e0a82/tools/scripts/lens-patch-review.py
> ----------------------------------------------------------------------
> diff --git a/tools/scripts/lens-patch-review.py
> b/tools/scripts/lens-patch-review.py
> new file mode 100644
> index 0000000..48cf478
> --- /dev/null
> +++ b/tools/scripts/lens-patch-review.py
> @@ -0,0 +1,130 @@
> +#!/usr/bin/env python
> +
> +# Licensed to the Apache Software Foundation (ASF) under one
> +# or more contributor license agreements. See the NOTICE file
> +# distributed with this work for additional information
> +# regarding copyright ownership. The ASF licenses this file
> +# to you under the Apache License, Version 2.0 (the
> +# "License"); you may not use this file except in compliance
> +# with the License. You may obtain a copy of the License at
> +#
> +# http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +
> +
> +# Modified based on Kafka's patch review tool
> +
> +# Required Modules:
> +# - python-argparse
> +
> +import argparse
> +import sys
> +import os
> +import time
> +import datetime
> +import tempfile
> +from jira.client import JIRA
> +
> +def get_jira():
> + options = {
> + 'server': 'https://issues.apache.org/jira'
> + }
> + # read the config file
> + home=jira_home=os.getenv('HOME')
> + home=home.rstrip('/')
> + jira_config = dict(line.strip().split('=') for line in open(home +
> '/jira.ini'))
> + jira = JIRA(options,basic_auth=(jira_config['user'],
> jira_config['password']))
> + return jira
> +
> +def main():
> + ''' main(), shut up, pylint '''
> + popt = argparse.ArgumentParser(description='Apache Lens patch review
> tool')
> + popt.add_argument('-b', '--branch', action='store', dest='branch',
> required=True, help='Tracking branch to create diff against')
> + popt.add_argument('-j', '--jira', action='store', dest='jira',
> required=True, help='JIRA corresponding to the reviewboard')
> + popt.add_argument('-s', '--summary', action='store', dest='summary',
> required=False, help='Summary for the reviewboard')
> + popt.add_argument('-d', '--description', action='store',
> dest='description', required=False, help='Description for reviewboard')
> + popt.add_argument('-r', '--rb', action='store', dest='reviewboard',
> required=False, help='Review board that needs to be updated')
> + popt.add_argument('-t', '--testing-done', action='store',
> dest='testing', required=False, help='Text for the Testing Done section of
> the reviewboard')
> + popt.add_argument('-db', '--debug', action='store_true',
> required=False, help='Enable debug mode')
> + popt.add_argument('-rbu', '--reviewboard-user', action='store',
> dest='reviewboard_user', required=True, help='Review board user name')
> + popt.add_argument('-rbp', '--reviewboard-password', action='store',
> dest='reviewboard_password', required=True, help='Review board user
> password')
> + popt.add_argument('-v', '--version', action='store', dest='version',
> required=False, help='Version for patch')
> + opt = popt.parse_args()
> +
> + patch_file=tempfile.gettempdir() + "/" + opt.jira + "." + opt.version +
> ".patch"
> + if opt.reviewboard:
> + ts = time.time()
> + st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
> + patch_file=tempfile.gettempdir() + "/" + opt.jira + '_' + st +
> '.patch'
> +
> + git_remote_update="git remote update"
> + print "Updating your remote branches to pull the latest changes"
> + p=os.popen(git_remote_update)
> + p.close()
> +
> + rb_command="post-review --publish --tracking-branch " + opt.branch + "
> --target-groups=lens --bugs-closed=" + opt.jira
> + rb_command=rb_command + " --username " + opt.reviewboard_user + "
> --password " + opt.reviewboard_password
> +
> + if opt.debug:
> + rb_command=rb_command + " --debug"
> + summary="Patch for " + opt.jira
> + if opt.summary:
> + summary=opt.summary
> + rb_command=rb_command + " --summary \"" + summary + "\""
> + if opt.description:
> + rb_command=rb_command + " --description \"" + opt.description + "\""
> + if opt.reviewboard:
> + rb_command=rb_command + " -r " + opt.reviewboard
> + if opt.testing:
> + rb_command=rb_command + " --testing-done=\"" + opt.testing + "\""
> + if opt.debug:
> + print rb_command
> + p=os.popen(rb_command)
> + rb_url=""
> + for line in p:
> + print line
> + if line.startswith('http'):
> + rb_url = line
> + elif line.startswith("There don't seem to be any diffs"):
> + print 'ERROR: Your reviewboard was not created/updated since there
> was no diff to upload. The reasons that can cause this issue are 1) Your
> diff is not checked into your local branch. Please check in the diff to the
> local branch and retry 2) You are not specifying the local branch name as
> part of the --branch option. Please specify the remote branch name obtained
> from git branch -r'
> + p.close()
> + sys.exit(1)
> + elif line.startswith("Your review request still exists, but the diff
> is not attached") and not opt.debug:
> + print 'ERROR: Your reviewboard was not created/updated. Please run
> the script with the --debug option to troubleshoot the problem'
> + p.close()
> + sys.exit(1)
> + p.close()
> + if opt.debug:
> + print 'rb url=',rb_url
> +
> + git_command="git diff " + opt.branch + " > " + patch_file
> + if opt.debug:
> + print git_command
> + p=os.popen(git_command)
> + p.close()
> +
> + print 'Creating diff against', opt.branch, 'and uploading patch to
> JIRA',opt.jira
> + jira=get_jira()
> + issue = jira.issue(opt.jira)
> + attachment=open(patch_file)
> + jira.add_attachment(issue,attachment)
> + attachment.close()
> +
> + comment="Created reviewboard "
> + if not opt.reviewboard:
> + print 'Created a new reviewboard ',rb_url
> + else:
> + print 'Updated reviewboard',opt.reviewboard
> + comment="Updated reviewboard "
> +
> + comment = comment + rb_url
> + jira.add_comment(opt.jira, comment)
> +
> +if __name__ == '__main__':
> + sys.exit(main())
> +
>
>
Re: incubator-lens git commit: LENS-541 : Lens patch-review tool
(Yash Sharma via Rajat Khandelwal)
Posted by Yash Sharma <ya...@gmail.com>.
Great.
On Mon, Aug 3, 2015 at 12:16 PM, amareshwarisr . <am...@gmail.com>
wrote:
> Parked https://issues.apache.org/jira/browse/LENS-708
>
> On Mon, Aug 3, 2015 at 12:14 PM, Yash Sharma <ya...@gmail.com> wrote:
>
>> Oh. I was confused with the via thing. So I used the style in the commit
>> doc. It had the name of author after via.
>> Will update doc as well :)
>>
>> Thanks
>>
>> On Mon, Aug 3, 2015 at 12:11 PM, Rajat Khandelwal <pr...@apache.org>
>> wrote:
>>
>>> Yes. And the via thing is wrong in your commit message. It's other way
>>> round.
>>>
>>> On Mon, Aug 3, 2015, 11:59 Yash Sharma <ya...@gmail.com> wrote:
>>>
>>>> Oh my bad. The most recent file is named LENS-541_01.patch.
>>>> I picked the one with name LENS-541.03.patch.
>>>>
>>>> On Mon, Aug 3, 2015 at 11:55 AM, amareshwarisr . <amareshwari@gmail.com
>>>> > wrote:
>>>>
>>>>> Rajat,
>>>>>
>>>>> Is the commit correct? Seems not. May be the file was not attached on
>>>>> the jira? The one i reviewed has doc changes not a .py file.
>>>>>
>>>>> On Mon, Aug 3, 2015 at 11:51 AM, <ya...@apache.org> wrote:
>>>>>
>>>>>> Repository: incubator-lens
>>>>>> Updated Branches:
>>>>>> refs/heads/master bffa78c97 -> 898e0a82e
>>>>>>
>>>>>>
>>>>>> LENS-541 : Lens patch-review tool (Yash Sharma via Rajat Khandelwal)
>>>>>>
>>>>>>
>>>>>> Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
>>>>>> Commit:
>>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/898e0a82
>>>>>> Tree:
>>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/898e0a82
>>>>>> Diff:
>>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/898e0a82
>>>>>>
>>>>>> Branch: refs/heads/master
>>>>>> Commit: 898e0a82ee7880747ffeaef2fa21b50dfaa96bbf
>>>>>> Parents: bffa78c
>>>>>> Author: Rajat Khandelwal <pr...@apache.org>
>>>>>> Authored: Mon Aug 3 11:49:05 2015 +0530
>>>>>> Committer: Yash Sharma <ya...@snapdeal.com>
>>>>>> Committed: Mon Aug 3 11:49:05 2015 +0530
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> tools/scripts/lens-patch-review.py | 130
>>>>>> ++++++++++++++++++++++++++++++++
>>>>>> 1 file changed, 130 insertions(+)
>>>>>> ----------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/898e0a82/tools/scripts/lens-patch-review.py
>>>>>> ----------------------------------------------------------------------
>>>>>> diff --git a/tools/scripts/lens-patch-review.py
>>>>>> b/tools/scripts/lens-patch-review.py
>>>>>> new file mode 100644
>>>>>> index 0000000..48cf478
>>>>>> --- /dev/null
>>>>>> +++ b/tools/scripts/lens-patch-review.py
>>>>>> @@ -0,0 +1,130 @@
>>>>>> +#!/usr/bin/env python
>>>>>> +
>>>>>> +# Licensed to the Apache Software Foundation (ASF) under one
>>>>>> +# or more contributor license agreements. See the NOTICE file
>>>>>> +# distributed with this work for additional information
>>>>>> +# regarding copyright ownership. The ASF licenses this file
>>>>>> +# to you under the Apache License, Version 2.0 (the
>>>>>> +# "License"); you may not use this file except in compliance
>>>>>> +# with the License. You may obtain a copy of the License at
>>>>>> +#
>>>>>> +# http://www.apache.org/licenses/LICENSE-2.0
>>>>>> +#
>>>>>> +# Unless required by applicable law or agreed to in writing, software
>>>>>> +# distributed under the License is distributed on an "AS IS" BASIS,
>>>>>> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>>>>>> implied.
>>>>>> +# See the License for the specific language governing permissions and
>>>>>> +# limitations under the License.
>>>>>> +
>>>>>> +
>>>>>> +# Modified based on Kafka's patch review tool
>>>>>> +
>>>>>> +# Required Modules:
>>>>>> +# - python-argparse
>>>>>> +
>>>>>> +import argparse
>>>>>> +import sys
>>>>>> +import os
>>>>>> +import time
>>>>>> +import datetime
>>>>>> +import tempfile
>>>>>> +from jira.client import JIRA
>>>>>> +
>>>>>> +def get_jira():
>>>>>> + options = {
>>>>>> + 'server': 'https://issues.apache.org/jira'
>>>>>> + }
>>>>>> + # read the config file
>>>>>> + home=jira_home=os.getenv('HOME')
>>>>>> + home=home.rstrip('/')
>>>>>> + jira_config = dict(line.strip().split('=') for line in open(home +
>>>>>> '/jira.ini'))
>>>>>> + jira = JIRA(options,basic_auth=(jira_config['user'],
>>>>>> jira_config['password']))
>>>>>> + return jira
>>>>>> +
>>>>>> +def main():
>>>>>> + ''' main(), shut up, pylint '''
>>>>>> + popt = argparse.ArgumentParser(description='Apache Lens patch
>>>>>> review tool')
>>>>>> + popt.add_argument('-b', '--branch', action='store', dest='branch',
>>>>>> required=True, help='Tracking branch to create diff against')
>>>>>> + popt.add_argument('-j', '--jira', action='store', dest='jira',
>>>>>> required=True, help='JIRA corresponding to the reviewboard')
>>>>>> + popt.add_argument('-s', '--summary', action='store',
>>>>>> dest='summary', required=False, help='Summary for the reviewboard')
>>>>>> + popt.add_argument('-d', '--description', action='store',
>>>>>> dest='description', required=False, help='Description for reviewboard')
>>>>>> + popt.add_argument('-r', '--rb', action='store',
>>>>>> dest='reviewboard', required=False, help='Review board that needs to be
>>>>>> updated')
>>>>>> + popt.add_argument('-t', '--testing-done', action='store',
>>>>>> dest='testing', required=False, help='Text for the Testing Done section of
>>>>>> the reviewboard')
>>>>>> + popt.add_argument('-db', '--debug', action='store_true',
>>>>>> required=False, help='Enable debug mode')
>>>>>> + popt.add_argument('-rbu', '--reviewboard-user', action='store',
>>>>>> dest='reviewboard_user', required=True, help='Review board user name')
>>>>>> + popt.add_argument('-rbp', '--reviewboard-password',
>>>>>> action='store', dest='reviewboard_password', required=True, help='Review
>>>>>> board user password')
>>>>>> + popt.add_argument('-v', '--version', action='store',
>>>>>> dest='version', required=False, help='Version for patch')
>>>>>> + opt = popt.parse_args()
>>>>>> +
>>>>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + "." +
>>>>>> opt.version + ".patch"
>>>>>> + if opt.reviewboard:
>>>>>> + ts = time.time()
>>>>>> + st =
>>>>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
>>>>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + '_' + st +
>>>>>> '.patch'
>>>>>> +
>>>>>> + git_remote_update="git remote update"
>>>>>> + print "Updating your remote branches to pull the latest changes"
>>>>>> + p=os.popen(git_remote_update)
>>>>>> + p.close()
>>>>>> +
>>>>>> + rb_command="post-review --publish --tracking-branch " + opt.branch
>>>>>> + " --target-groups=lens --bugs-closed=" + opt.jira
>>>>>> + rb_command=rb_command + " --username " + opt.reviewboard_user + "
>>>>>> --password " + opt.reviewboard_password
>>>>>> +
>>>>>> + if opt.debug:
>>>>>> + rb_command=rb_command + " --debug"
>>>>>> + summary="Patch for " + opt.jira
>>>>>> + if opt.summary:
>>>>>> + summary=opt.summary
>>>>>> + rb_command=rb_command + " --summary \"" + summary + "\""
>>>>>> + if opt.description:
>>>>>> + rb_command=rb_command + " --description \"" + opt.description +
>>>>>> "\""
>>>>>> + if opt.reviewboard:
>>>>>> + rb_command=rb_command + " -r " + opt.reviewboard
>>>>>> + if opt.testing:
>>>>>> + rb_command=rb_command + " --testing-done=\"" + opt.testing + "\""
>>>>>> + if opt.debug:
>>>>>> + print rb_command
>>>>>> + p=os.popen(rb_command)
>>>>>> + rb_url=""
>>>>>> + for line in p:
>>>>>> + print line
>>>>>> + if line.startswith('http'):
>>>>>> + rb_url = line
>>>>>> + elif line.startswith("There don't seem to be any diffs"):
>>>>>> + print 'ERROR: Your reviewboard was not created/updated since
>>>>>> there was no diff to upload. The reasons that can cause this issue are 1)
>>>>>> Your diff is not checked into your local branch. Please check in the diff
>>>>>> to the local branch and retry 2) You are not specifying the local branch
>>>>>> name as part of the --branch option. Please specify the remote branch name
>>>>>> obtained from git branch -r'
>>>>>> + p.close()
>>>>>> + sys.exit(1)
>>>>>> + elif line.startswith("Your review request still exists, but the
>>>>>> diff is not attached") and not opt.debug:
>>>>>> + print 'ERROR: Your reviewboard was not created/updated. Please
>>>>>> run the script with the --debug option to troubleshoot the problem'
>>>>>> + p.close()
>>>>>> + sys.exit(1)
>>>>>> + p.close()
>>>>>> + if opt.debug:
>>>>>> + print 'rb url=',rb_url
>>>>>> +
>>>>>> + git_command="git diff " + opt.branch + " > " + patch_file
>>>>>> + if opt.debug:
>>>>>> + print git_command
>>>>>> + p=os.popen(git_command)
>>>>>> + p.close()
>>>>>> +
>>>>>> + print 'Creating diff against', opt.branch, 'and uploading patch to
>>>>>> JIRA',opt.jira
>>>>>> + jira=get_jira()
>>>>>> + issue = jira.issue(opt.jira)
>>>>>> + attachment=open(patch_file)
>>>>>> + jira.add_attachment(issue,attachment)
>>>>>> + attachment.close()
>>>>>> +
>>>>>> + comment="Created reviewboard "
>>>>>> + if not opt.reviewboard:
>>>>>> + print 'Created a new reviewboard ',rb_url
>>>>>> + else:
>>>>>> + print 'Updated reviewboard',opt.reviewboard
>>>>>> + comment="Updated reviewboard "
>>>>>> +
>>>>>> + comment = comment + rb_url
>>>>>> + jira.add_comment(opt.jira, comment)
>>>>>> +
>>>>>> +if __name__ == '__main__':
>>>>>> + sys.exit(main())
>>>>>> +
>>>>>>
>>>>>>
>>>>>
>>>>
>>
>
Re: incubator-lens git commit: LENS-541 : Lens patch-review tool
(Yash Sharma via Rajat Khandelwal)
Posted by "amareshwarisr ." <am...@gmail.com>.
Parked https://issues.apache.org/jira/browse/LENS-708
On Mon, Aug 3, 2015 at 12:14 PM, Yash Sharma <ya...@gmail.com> wrote:
> Oh. I was confused with the via thing. So I used the style in the commit
> doc. It had the name of author after via.
> Will update doc as well :)
>
> Thanks
>
> On Mon, Aug 3, 2015 at 12:11 PM, Rajat Khandelwal <pr...@apache.org>
> wrote:
>
>> Yes. And the via thing is wrong in your commit message. It's other way
>> round.
>>
>> On Mon, Aug 3, 2015, 11:59 Yash Sharma <ya...@gmail.com> wrote:
>>
>>> Oh my bad. The most recent file is named LENS-541_01.patch.
>>> I picked the one with name LENS-541.03.patch.
>>>
>>> On Mon, Aug 3, 2015 at 11:55 AM, amareshwarisr . <am...@gmail.com>
>>> wrote:
>>>
>>>> Rajat,
>>>>
>>>> Is the commit correct? Seems not. May be the file was not attached on
>>>> the jira? The one i reviewed has doc changes not a .py file.
>>>>
>>>> On Mon, Aug 3, 2015 at 11:51 AM, <ya...@apache.org> wrote:
>>>>
>>>>> Repository: incubator-lens
>>>>> Updated Branches:
>>>>> refs/heads/master bffa78c97 -> 898e0a82e
>>>>>
>>>>>
>>>>> LENS-541 : Lens patch-review tool (Yash Sharma via Rajat Khandelwal)
>>>>>
>>>>>
>>>>> Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
>>>>> Commit:
>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/898e0a82
>>>>> Tree:
>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/898e0a82
>>>>> Diff:
>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/898e0a82
>>>>>
>>>>> Branch: refs/heads/master
>>>>> Commit: 898e0a82ee7880747ffeaef2fa21b50dfaa96bbf
>>>>> Parents: bffa78c
>>>>> Author: Rajat Khandelwal <pr...@apache.org>
>>>>> Authored: Mon Aug 3 11:49:05 2015 +0530
>>>>> Committer: Yash Sharma <ya...@snapdeal.com>
>>>>> Committed: Mon Aug 3 11:49:05 2015 +0530
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>> tools/scripts/lens-patch-review.py | 130
>>>>> ++++++++++++++++++++++++++++++++
>>>>> 1 file changed, 130 insertions(+)
>>>>> ----------------------------------------------------------------------
>>>>>
>>>>>
>>>>>
>>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/898e0a82/tools/scripts/lens-patch-review.py
>>>>> ----------------------------------------------------------------------
>>>>> diff --git a/tools/scripts/lens-patch-review.py
>>>>> b/tools/scripts/lens-patch-review.py
>>>>> new file mode 100644
>>>>> index 0000000..48cf478
>>>>> --- /dev/null
>>>>> +++ b/tools/scripts/lens-patch-review.py
>>>>> @@ -0,0 +1,130 @@
>>>>> +#!/usr/bin/env python
>>>>> +
>>>>> +# Licensed to the Apache Software Foundation (ASF) under one
>>>>> +# or more contributor license agreements. See the NOTICE file
>>>>> +# distributed with this work for additional information
>>>>> +# regarding copyright ownership. The ASF licenses this file
>>>>> +# to you under the Apache License, Version 2.0 (the
>>>>> +# "License"); you may not use this file except in compliance
>>>>> +# with the License. You may obtain a copy of the License at
>>>>> +#
>>>>> +# http://www.apache.org/licenses/LICENSE-2.0
>>>>> +#
>>>>> +# Unless required by applicable law or agreed to in writing, software
>>>>> +# distributed under the License is distributed on an "AS IS" BASIS,
>>>>> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>>>>> implied.
>>>>> +# See the License for the specific language governing permissions and
>>>>> +# limitations under the License.
>>>>> +
>>>>> +
>>>>> +# Modified based on Kafka's patch review tool
>>>>> +
>>>>> +# Required Modules:
>>>>> +# - python-argparse
>>>>> +
>>>>> +import argparse
>>>>> +import sys
>>>>> +import os
>>>>> +import time
>>>>> +import datetime
>>>>> +import tempfile
>>>>> +from jira.client import JIRA
>>>>> +
>>>>> +def get_jira():
>>>>> + options = {
>>>>> + 'server': 'https://issues.apache.org/jira'
>>>>> + }
>>>>> + # read the config file
>>>>> + home=jira_home=os.getenv('HOME')
>>>>> + home=home.rstrip('/')
>>>>> + jira_config = dict(line.strip().split('=') for line in open(home +
>>>>> '/jira.ini'))
>>>>> + jira = JIRA(options,basic_auth=(jira_config['user'],
>>>>> jira_config['password']))
>>>>> + return jira
>>>>> +
>>>>> +def main():
>>>>> + ''' main(), shut up, pylint '''
>>>>> + popt = argparse.ArgumentParser(description='Apache Lens patch
>>>>> review tool')
>>>>> + popt.add_argument('-b', '--branch', action='store', dest='branch',
>>>>> required=True, help='Tracking branch to create diff against')
>>>>> + popt.add_argument('-j', '--jira', action='store', dest='jira',
>>>>> required=True, help='JIRA corresponding to the reviewboard')
>>>>> + popt.add_argument('-s', '--summary', action='store',
>>>>> dest='summary', required=False, help='Summary for the reviewboard')
>>>>> + popt.add_argument('-d', '--description', action='store',
>>>>> dest='description', required=False, help='Description for reviewboard')
>>>>> + popt.add_argument('-r', '--rb', action='store', dest='reviewboard',
>>>>> required=False, help='Review board that needs to be updated')
>>>>> + popt.add_argument('-t', '--testing-done', action='store',
>>>>> dest='testing', required=False, help='Text for the Testing Done section of
>>>>> the reviewboard')
>>>>> + popt.add_argument('-db', '--debug', action='store_true',
>>>>> required=False, help='Enable debug mode')
>>>>> + popt.add_argument('-rbu', '--reviewboard-user', action='store',
>>>>> dest='reviewboard_user', required=True, help='Review board user name')
>>>>> + popt.add_argument('-rbp', '--reviewboard-password', action='store',
>>>>> dest='reviewboard_password', required=True, help='Review board user
>>>>> password')
>>>>> + popt.add_argument('-v', '--version', action='store',
>>>>> dest='version', required=False, help='Version for patch')
>>>>> + opt = popt.parse_args()
>>>>> +
>>>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + "." +
>>>>> opt.version + ".patch"
>>>>> + if opt.reviewboard:
>>>>> + ts = time.time()
>>>>> + st =
>>>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
>>>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + '_' + st +
>>>>> '.patch'
>>>>> +
>>>>> + git_remote_update="git remote update"
>>>>> + print "Updating your remote branches to pull the latest changes"
>>>>> + p=os.popen(git_remote_update)
>>>>> + p.close()
>>>>> +
>>>>> + rb_command="post-review --publish --tracking-branch " + opt.branch
>>>>> + " --target-groups=lens --bugs-closed=" + opt.jira
>>>>> + rb_command=rb_command + " --username " + opt.reviewboard_user + "
>>>>> --password " + opt.reviewboard_password
>>>>> +
>>>>> + if opt.debug:
>>>>> + rb_command=rb_command + " --debug"
>>>>> + summary="Patch for " + opt.jira
>>>>> + if opt.summary:
>>>>> + summary=opt.summary
>>>>> + rb_command=rb_command + " --summary \"" + summary + "\""
>>>>> + if opt.description:
>>>>> + rb_command=rb_command + " --description \"" + opt.description +
>>>>> "\""
>>>>> + if opt.reviewboard:
>>>>> + rb_command=rb_command + " -r " + opt.reviewboard
>>>>> + if opt.testing:
>>>>> + rb_command=rb_command + " --testing-done=\"" + opt.testing + "\""
>>>>> + if opt.debug:
>>>>> + print rb_command
>>>>> + p=os.popen(rb_command)
>>>>> + rb_url=""
>>>>> + for line in p:
>>>>> + print line
>>>>> + if line.startswith('http'):
>>>>> + rb_url = line
>>>>> + elif line.startswith("There don't seem to be any diffs"):
>>>>> + print 'ERROR: Your reviewboard was not created/updated since
>>>>> there was no diff to upload. The reasons that can cause this issue are 1)
>>>>> Your diff is not checked into your local branch. Please check in the diff
>>>>> to the local branch and retry 2) You are not specifying the local branch
>>>>> name as part of the --branch option. Please specify the remote branch name
>>>>> obtained from git branch -r'
>>>>> + p.close()
>>>>> + sys.exit(1)
>>>>> + elif line.startswith("Your review request still exists, but the
>>>>> diff is not attached") and not opt.debug:
>>>>> + print 'ERROR: Your reviewboard was not created/updated. Please
>>>>> run the script with the --debug option to troubleshoot the problem'
>>>>> + p.close()
>>>>> + sys.exit(1)
>>>>> + p.close()
>>>>> + if opt.debug:
>>>>> + print 'rb url=',rb_url
>>>>> +
>>>>> + git_command="git diff " + opt.branch + " > " + patch_file
>>>>> + if opt.debug:
>>>>> + print git_command
>>>>> + p=os.popen(git_command)
>>>>> + p.close()
>>>>> +
>>>>> + print 'Creating diff against', opt.branch, 'and uploading patch to
>>>>> JIRA',opt.jira
>>>>> + jira=get_jira()
>>>>> + issue = jira.issue(opt.jira)
>>>>> + attachment=open(patch_file)
>>>>> + jira.add_attachment(issue,attachment)
>>>>> + attachment.close()
>>>>> +
>>>>> + comment="Created reviewboard "
>>>>> + if not opt.reviewboard:
>>>>> + print 'Created a new reviewboard ',rb_url
>>>>> + else:
>>>>> + print 'Updated reviewboard',opt.reviewboard
>>>>> + comment="Updated reviewboard "
>>>>> +
>>>>> + comment = comment + rb_url
>>>>> + jira.add_comment(opt.jira, comment)
>>>>> +
>>>>> +if __name__ == '__main__':
>>>>> + sys.exit(main())
>>>>> +
>>>>>
>>>>>
>>>>
>>>
>
Re: incubator-lens git commit: LENS-541 : Lens patch-review tool
(Yash Sharma via Rajat Khandelwal)
Posted by Yash Sharma <ya...@gmail.com>.
Oh. I was confused with the via thing. So I used the style in the commit
doc. It had the name of author after via.
Will update doc as well :)
Thanks
On Mon, Aug 3, 2015 at 12:11 PM, Rajat Khandelwal <pr...@apache.org> wrote:
> Yes. And the via thing is wrong in your commit message. It's other way
> round.
>
> On Mon, Aug 3, 2015, 11:59 Yash Sharma <ya...@gmail.com> wrote:
>
>> Oh my bad. The most recent file is named LENS-541_01.patch.
>> I picked the one with name LENS-541.03.patch.
>>
>> On Mon, Aug 3, 2015 at 11:55 AM, amareshwarisr . <am...@gmail.com>
>> wrote:
>>
>>> Rajat,
>>>
>>> Is the commit correct? Seems not. May be the file was not attached on
>>> the jira? The one i reviewed has doc changes not a .py file.
>>>
>>> On Mon, Aug 3, 2015 at 11:51 AM, <ya...@apache.org> wrote:
>>>
>>>> Repository: incubator-lens
>>>> Updated Branches:
>>>> refs/heads/master bffa78c97 -> 898e0a82e
>>>>
>>>>
>>>> LENS-541 : Lens patch-review tool (Yash Sharma via Rajat Khandelwal)
>>>>
>>>>
>>>> Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
>>>> Commit:
>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/898e0a82
>>>> Tree:
>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/898e0a82
>>>> Diff:
>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/898e0a82
>>>>
>>>> Branch: refs/heads/master
>>>> Commit: 898e0a82ee7880747ffeaef2fa21b50dfaa96bbf
>>>> Parents: bffa78c
>>>> Author: Rajat Khandelwal <pr...@apache.org>
>>>> Authored: Mon Aug 3 11:49:05 2015 +0530
>>>> Committer: Yash Sharma <ya...@snapdeal.com>
>>>> Committed: Mon Aug 3 11:49:05 2015 +0530
>>>>
>>>> ----------------------------------------------------------------------
>>>> tools/scripts/lens-patch-review.py | 130
>>>> ++++++++++++++++++++++++++++++++
>>>> 1 file changed, 130 insertions(+)
>>>> ----------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/898e0a82/tools/scripts/lens-patch-review.py
>>>> ----------------------------------------------------------------------
>>>> diff --git a/tools/scripts/lens-patch-review.py
>>>> b/tools/scripts/lens-patch-review.py
>>>> new file mode 100644
>>>> index 0000000..48cf478
>>>> --- /dev/null
>>>> +++ b/tools/scripts/lens-patch-review.py
>>>> @@ -0,0 +1,130 @@
>>>> +#!/usr/bin/env python
>>>> +
>>>> +# Licensed to the Apache Software Foundation (ASF) under one
>>>> +# or more contributor license agreements. See the NOTICE file
>>>> +# distributed with this work for additional information
>>>> +# regarding copyright ownership. The ASF licenses this file
>>>> +# to you under the Apache License, Version 2.0 (the
>>>> +# "License"); you may not use this file except in compliance
>>>> +# with the License. You may obtain a copy of the License at
>>>> +#
>>>> +# http://www.apache.org/licenses/LICENSE-2.0
>>>> +#
>>>> +# Unless required by applicable law or agreed to in writing, software
>>>> +# distributed under the License is distributed on an "AS IS" BASIS,
>>>> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>>>> implied.
>>>> +# See the License for the specific language governing permissions and
>>>> +# limitations under the License.
>>>> +
>>>> +
>>>> +# Modified based on Kafka's patch review tool
>>>> +
>>>> +# Required Modules:
>>>> +# - python-argparse
>>>> +
>>>> +import argparse
>>>> +import sys
>>>> +import os
>>>> +import time
>>>> +import datetime
>>>> +import tempfile
>>>> +from jira.client import JIRA
>>>> +
>>>> +def get_jira():
>>>> + options = {
>>>> + 'server': 'https://issues.apache.org/jira'
>>>> + }
>>>> + # read the config file
>>>> + home=jira_home=os.getenv('HOME')
>>>> + home=home.rstrip('/')
>>>> + jira_config = dict(line.strip().split('=') for line in open(home +
>>>> '/jira.ini'))
>>>> + jira = JIRA(options,basic_auth=(jira_config['user'],
>>>> jira_config['password']))
>>>> + return jira
>>>> +
>>>> +def main():
>>>> + ''' main(), shut up, pylint '''
>>>> + popt = argparse.ArgumentParser(description='Apache Lens patch review
>>>> tool')
>>>> + popt.add_argument('-b', '--branch', action='store', dest='branch',
>>>> required=True, help='Tracking branch to create diff against')
>>>> + popt.add_argument('-j', '--jira', action='store', dest='jira',
>>>> required=True, help='JIRA corresponding to the reviewboard')
>>>> + popt.add_argument('-s', '--summary', action='store', dest='summary',
>>>> required=False, help='Summary for the reviewboard')
>>>> + popt.add_argument('-d', '--description', action='store',
>>>> dest='description', required=False, help='Description for reviewboard')
>>>> + popt.add_argument('-r', '--rb', action='store', dest='reviewboard',
>>>> required=False, help='Review board that needs to be updated')
>>>> + popt.add_argument('-t', '--testing-done', action='store',
>>>> dest='testing', required=False, help='Text for the Testing Done section of
>>>> the reviewboard')
>>>> + popt.add_argument('-db', '--debug', action='store_true',
>>>> required=False, help='Enable debug mode')
>>>> + popt.add_argument('-rbu', '--reviewboard-user', action='store',
>>>> dest='reviewboard_user', required=True, help='Review board user name')
>>>> + popt.add_argument('-rbp', '--reviewboard-password', action='store',
>>>> dest='reviewboard_password', required=True, help='Review board user
>>>> password')
>>>> + popt.add_argument('-v', '--version', action='store', dest='version',
>>>> required=False, help='Version for patch')
>>>> + opt = popt.parse_args()
>>>> +
>>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + "." +
>>>> opt.version + ".patch"
>>>> + if opt.reviewboard:
>>>> + ts = time.time()
>>>> + st =
>>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
>>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + '_' + st +
>>>> '.patch'
>>>> +
>>>> + git_remote_update="git remote update"
>>>> + print "Updating your remote branches to pull the latest changes"
>>>> + p=os.popen(git_remote_update)
>>>> + p.close()
>>>> +
>>>> + rb_command="post-review --publish --tracking-branch " + opt.branch +
>>>> " --target-groups=lens --bugs-closed=" + opt.jira
>>>> + rb_command=rb_command + " --username " + opt.reviewboard_user + "
>>>> --password " + opt.reviewboard_password
>>>> +
>>>> + if opt.debug:
>>>> + rb_command=rb_command + " --debug"
>>>> + summary="Patch for " + opt.jira
>>>> + if opt.summary:
>>>> + summary=opt.summary
>>>> + rb_command=rb_command + " --summary \"" + summary + "\""
>>>> + if opt.description:
>>>> + rb_command=rb_command + " --description \"" + opt.description +
>>>> "\""
>>>> + if opt.reviewboard:
>>>> + rb_command=rb_command + " -r " + opt.reviewboard
>>>> + if opt.testing:
>>>> + rb_command=rb_command + " --testing-done=\"" + opt.testing + "\""
>>>> + if opt.debug:
>>>> + print rb_command
>>>> + p=os.popen(rb_command)
>>>> + rb_url=""
>>>> + for line in p:
>>>> + print line
>>>> + if line.startswith('http'):
>>>> + rb_url = line
>>>> + elif line.startswith("There don't seem to be any diffs"):
>>>> + print 'ERROR: Your reviewboard was not created/updated since
>>>> there was no diff to upload. The reasons that can cause this issue are 1)
>>>> Your diff is not checked into your local branch. Please check in the diff
>>>> to the local branch and retry 2) You are not specifying the local branch
>>>> name as part of the --branch option. Please specify the remote branch name
>>>> obtained from git branch -r'
>>>> + p.close()
>>>> + sys.exit(1)
>>>> + elif line.startswith("Your review request still exists, but the
>>>> diff is not attached") and not opt.debug:
>>>> + print 'ERROR: Your reviewboard was not created/updated. Please
>>>> run the script with the --debug option to troubleshoot the problem'
>>>> + p.close()
>>>> + sys.exit(1)
>>>> + p.close()
>>>> + if opt.debug:
>>>> + print 'rb url=',rb_url
>>>> +
>>>> + git_command="git diff " + opt.branch + " > " + patch_file
>>>> + if opt.debug:
>>>> + print git_command
>>>> + p=os.popen(git_command)
>>>> + p.close()
>>>> +
>>>> + print 'Creating diff against', opt.branch, 'and uploading patch to
>>>> JIRA',opt.jira
>>>> + jira=get_jira()
>>>> + issue = jira.issue(opt.jira)
>>>> + attachment=open(patch_file)
>>>> + jira.add_attachment(issue,attachment)
>>>> + attachment.close()
>>>> +
>>>> + comment="Created reviewboard "
>>>> + if not opt.reviewboard:
>>>> + print 'Created a new reviewboard ',rb_url
>>>> + else:
>>>> + print 'Updated reviewboard',opt.reviewboard
>>>> + comment="Updated reviewboard "
>>>> +
>>>> + comment = comment + rb_url
>>>> + jira.add_comment(opt.jira, comment)
>>>> +
>>>> +if __name__ == '__main__':
>>>> + sys.exit(main())
>>>> +
>>>>
>>>>
>>>
>>
Re: incubator-lens git commit: LENS-541 : Lens patch-review tool
(Yash Sharma via Rajat Khandelwal)
Posted by Rajat Khandelwal <pr...@apache.org>.
Yes. And the via thing is wrong in your commit message. It's other way
round.
On Mon, Aug 3, 2015, 11:59 Yash Sharma <ya...@gmail.com> wrote:
> Oh my bad. The most recent file is named LENS-541_01.patch.
> I picked the one with name LENS-541.03.patch.
>
> On Mon, Aug 3, 2015 at 11:55 AM, amareshwarisr . <am...@gmail.com>
> wrote:
>
>> Rajat,
>>
>> Is the commit correct? Seems not. May be the file was not attached on the
>> jira? The one i reviewed has doc changes not a .py file.
>>
>> On Mon, Aug 3, 2015 at 11:51 AM, <ya...@apache.org> wrote:
>>
>>> Repository: incubator-lens
>>> Updated Branches:
>>> refs/heads/master bffa78c97 -> 898e0a82e
>>>
>>>
>>> LENS-541 : Lens patch-review tool (Yash Sharma via Rajat Khandelwal)
>>>
>>>
>>> Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
>>> Commit:
>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/898e0a82
>>> Tree:
>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/898e0a82
>>> Diff:
>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/898e0a82
>>>
>>> Branch: refs/heads/master
>>> Commit: 898e0a82ee7880747ffeaef2fa21b50dfaa96bbf
>>> Parents: bffa78c
>>> Author: Rajat Khandelwal <pr...@apache.org>
>>> Authored: Mon Aug 3 11:49:05 2015 +0530
>>> Committer: Yash Sharma <ya...@snapdeal.com>
>>> Committed: Mon Aug 3 11:49:05 2015 +0530
>>>
>>> ----------------------------------------------------------------------
>>> tools/scripts/lens-patch-review.py | 130
>>> ++++++++++++++++++++++++++++++++
>>> 1 file changed, 130 insertions(+)
>>> ----------------------------------------------------------------------
>>>
>>>
>>>
>>> http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/898e0a82/tools/scripts/lens-patch-review.py
>>> ----------------------------------------------------------------------
>>> diff --git a/tools/scripts/lens-patch-review.py
>>> b/tools/scripts/lens-patch-review.py
>>> new file mode 100644
>>> index 0000000..48cf478
>>> --- /dev/null
>>> +++ b/tools/scripts/lens-patch-review.py
>>> @@ -0,0 +1,130 @@
>>> +#!/usr/bin/env python
>>> +
>>> +# Licensed to the Apache Software Foundation (ASF) under one
>>> +# or more contributor license agreements. See the NOTICE file
>>> +# distributed with this work for additional information
>>> +# regarding copyright ownership. The ASF licenses this file
>>> +# to you under the Apache License, Version 2.0 (the
>>> +# "License"); you may not use this file except in compliance
>>> +# with the License. You may obtain a copy of the License at
>>> +#
>>> +# http://www.apache.org/licenses/LICENSE-2.0
>>> +#
>>> +# Unless required by applicable law or agreed to in writing, software
>>> +# distributed under the License is distributed on an "AS IS" BASIS,
>>> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>>> implied.
>>> +# See the License for the specific language governing permissions and
>>> +# limitations under the License.
>>> +
>>> +
>>> +# Modified based on Kafka's patch review tool
>>> +
>>> +# Required Modules:
>>> +# - python-argparse
>>> +
>>> +import argparse
>>> +import sys
>>> +import os
>>> +import time
>>> +import datetime
>>> +import tempfile
>>> +from jira.client import JIRA
>>> +
>>> +def get_jira():
>>> + options = {
>>> + 'server': 'https://issues.apache.org/jira'
>>> + }
>>> + # read the config file
>>> + home=jira_home=os.getenv('HOME')
>>> + home=home.rstrip('/')
>>> + jira_config = dict(line.strip().split('=') for line in open(home +
>>> '/jira.ini'))
>>> + jira = JIRA(options,basic_auth=(jira_config['user'],
>>> jira_config['password']))
>>> + return jira
>>> +
>>> +def main():
>>> + ''' main(), shut up, pylint '''
>>> + popt = argparse.ArgumentParser(description='Apache Lens patch review
>>> tool')
>>> + popt.add_argument('-b', '--branch', action='store', dest='branch',
>>> required=True, help='Tracking branch to create diff against')
>>> + popt.add_argument('-j', '--jira', action='store', dest='jira',
>>> required=True, help='JIRA corresponding to the reviewboard')
>>> + popt.add_argument('-s', '--summary', action='store', dest='summary',
>>> required=False, help='Summary for the reviewboard')
>>> + popt.add_argument('-d', '--description', action='store',
>>> dest='description', required=False, help='Description for reviewboard')
>>> + popt.add_argument('-r', '--rb', action='store', dest='reviewboard',
>>> required=False, help='Review board that needs to be updated')
>>> + popt.add_argument('-t', '--testing-done', action='store',
>>> dest='testing', required=False, help='Text for the Testing Done section of
>>> the reviewboard')
>>> + popt.add_argument('-db', '--debug', action='store_true',
>>> required=False, help='Enable debug mode')
>>> + popt.add_argument('-rbu', '--reviewboard-user', action='store',
>>> dest='reviewboard_user', required=True, help='Review board user name')
>>> + popt.add_argument('-rbp', '--reviewboard-password', action='store',
>>> dest='reviewboard_password', required=True, help='Review board user
>>> password')
>>> + popt.add_argument('-v', '--version', action='store', dest='version',
>>> required=False, help='Version for patch')
>>> + opt = popt.parse_args()
>>> +
>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + "." + opt.version
>>> + ".patch"
>>> + if opt.reviewboard:
>>> + ts = time.time()
>>> + st =
>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
>>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + '_' + st +
>>> '.patch'
>>> +
>>> + git_remote_update="git remote update"
>>> + print "Updating your remote branches to pull the latest changes"
>>> + p=os.popen(git_remote_update)
>>> + p.close()
>>> +
>>> + rb_command="post-review --publish --tracking-branch " + opt.branch +
>>> " --target-groups=lens --bugs-closed=" + opt.jira
>>> + rb_command=rb_command + " --username " + opt.reviewboard_user + "
>>> --password " + opt.reviewboard_password
>>> +
>>> + if opt.debug:
>>> + rb_command=rb_command + " --debug"
>>> + summary="Patch for " + opt.jira
>>> + if opt.summary:
>>> + summary=opt.summary
>>> + rb_command=rb_command + " --summary \"" + summary + "\""
>>> + if opt.description:
>>> + rb_command=rb_command + " --description \"" + opt.description + "\""
>>> + if opt.reviewboard:
>>> + rb_command=rb_command + " -r " + opt.reviewboard
>>> + if opt.testing:
>>> + rb_command=rb_command + " --testing-done=\"" + opt.testing + "\""
>>> + if opt.debug:
>>> + print rb_command
>>> + p=os.popen(rb_command)
>>> + rb_url=""
>>> + for line in p:
>>> + print line
>>> + if line.startswith('http'):
>>> + rb_url = line
>>> + elif line.startswith("There don't seem to be any diffs"):
>>> + print 'ERROR: Your reviewboard was not created/updated since
>>> there was no diff to upload. The reasons that can cause this issue are 1)
>>> Your diff is not checked into your local branch. Please check in the diff
>>> to the local branch and retry 2) You are not specifying the local branch
>>> name as part of the --branch option. Please specify the remote branch name
>>> obtained from git branch -r'
>>> + p.close()
>>> + sys.exit(1)
>>> + elif line.startswith("Your review request still exists, but the
>>> diff is not attached") and not opt.debug:
>>> + print 'ERROR: Your reviewboard was not created/updated. Please
>>> run the script with the --debug option to troubleshoot the problem'
>>> + p.close()
>>> + sys.exit(1)
>>> + p.close()
>>> + if opt.debug:
>>> + print 'rb url=',rb_url
>>> +
>>> + git_command="git diff " + opt.branch + " > " + patch_file
>>> + if opt.debug:
>>> + print git_command
>>> + p=os.popen(git_command)
>>> + p.close()
>>> +
>>> + print 'Creating diff against', opt.branch, 'and uploading patch to
>>> JIRA',opt.jira
>>> + jira=get_jira()
>>> + issue = jira.issue(opt.jira)
>>> + attachment=open(patch_file)
>>> + jira.add_attachment(issue,attachment)
>>> + attachment.close()
>>> +
>>> + comment="Created reviewboard "
>>> + if not opt.reviewboard:
>>> + print 'Created a new reviewboard ',rb_url
>>> + else:
>>> + print 'Updated reviewboard',opt.reviewboard
>>> + comment="Updated reviewboard "
>>> +
>>> + comment = comment + rb_url
>>> + jira.add_comment(opt.jira, comment)
>>> +
>>> +if __name__ == '__main__':
>>> + sys.exit(main())
>>> +
>>>
>>>
>>
>
Re: incubator-lens git commit: LENS-541 : Lens patch-review tool
(Yash Sharma via Rajat Khandelwal)
Posted by Yash Sharma <ya...@gmail.com>.
Oh my bad. The most recent file is named LENS-541_01.patch.
I picked the one with name LENS-541.03.patch.
On Mon, Aug 3, 2015 at 11:55 AM, amareshwarisr . <am...@gmail.com>
wrote:
> Rajat,
>
> Is the commit correct? Seems not. May be the file was not attached on the
> jira? The one i reviewed has doc changes not a .py file.
>
> On Mon, Aug 3, 2015 at 11:51 AM, <ya...@apache.org> wrote:
>
>> Repository: incubator-lens
>> Updated Branches:
>> refs/heads/master bffa78c97 -> 898e0a82e
>>
>>
>> LENS-541 : Lens patch-review tool (Yash Sharma via Rajat Khandelwal)
>>
>>
>> Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
>> Commit:
>> http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/898e0a82
>> Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/898e0a82
>> Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/898e0a82
>>
>> Branch: refs/heads/master
>> Commit: 898e0a82ee7880747ffeaef2fa21b50dfaa96bbf
>> Parents: bffa78c
>> Author: Rajat Khandelwal <pr...@apache.org>
>> Authored: Mon Aug 3 11:49:05 2015 +0530
>> Committer: Yash Sharma <ya...@snapdeal.com>
>> Committed: Mon Aug 3 11:49:05 2015 +0530
>>
>> ----------------------------------------------------------------------
>> tools/scripts/lens-patch-review.py | 130 ++++++++++++++++++++++++++++++++
>> 1 file changed, 130 insertions(+)
>> ----------------------------------------------------------------------
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/898e0a82/tools/scripts/lens-patch-review.py
>> ----------------------------------------------------------------------
>> diff --git a/tools/scripts/lens-patch-review.py
>> b/tools/scripts/lens-patch-review.py
>> new file mode 100644
>> index 0000000..48cf478
>> --- /dev/null
>> +++ b/tools/scripts/lens-patch-review.py
>> @@ -0,0 +1,130 @@
>> +#!/usr/bin/env python
>> +
>> +# Licensed to the Apache Software Foundation (ASF) under one
>> +# or more contributor license agreements. See the NOTICE file
>> +# distributed with this work for additional information
>> +# regarding copyright ownership. The ASF licenses this file
>> +# to you under the Apache License, Version 2.0 (the
>> +# "License"); you may not use this file except in compliance
>> +# with the License. You may obtain a copy of the License at
>> +#
>> +# http://www.apache.org/licenses/LICENSE-2.0
>> +#
>> +# Unless required by applicable law or agreed to in writing, software
>> +# distributed under the License is distributed on an "AS IS" BASIS,
>> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>> +# See the License for the specific language governing permissions and
>> +# limitations under the License.
>> +
>> +
>> +# Modified based on Kafka's patch review tool
>> +
>> +# Required Modules:
>> +# - python-argparse
>> +
>> +import argparse
>> +import sys
>> +import os
>> +import time
>> +import datetime
>> +import tempfile
>> +from jira.client import JIRA
>> +
>> +def get_jira():
>> + options = {
>> + 'server': 'https://issues.apache.org/jira'
>> + }
>> + # read the config file
>> + home=jira_home=os.getenv('HOME')
>> + home=home.rstrip('/')
>> + jira_config = dict(line.strip().split('=') for line in open(home +
>> '/jira.ini'))
>> + jira = JIRA(options,basic_auth=(jira_config['user'],
>> jira_config['password']))
>> + return jira
>> +
>> +def main():
>> + ''' main(), shut up, pylint '''
>> + popt = argparse.ArgumentParser(description='Apache Lens patch review
>> tool')
>> + popt.add_argument('-b', '--branch', action='store', dest='branch',
>> required=True, help='Tracking branch to create diff against')
>> + popt.add_argument('-j', '--jira', action='store', dest='jira',
>> required=True, help='JIRA corresponding to the reviewboard')
>> + popt.add_argument('-s', '--summary', action='store', dest='summary',
>> required=False, help='Summary for the reviewboard')
>> + popt.add_argument('-d', '--description', action='store',
>> dest='description', required=False, help='Description for reviewboard')
>> + popt.add_argument('-r', '--rb', action='store', dest='reviewboard',
>> required=False, help='Review board that needs to be updated')
>> + popt.add_argument('-t', '--testing-done', action='store',
>> dest='testing', required=False, help='Text for the Testing Done section of
>> the reviewboard')
>> + popt.add_argument('-db', '--debug', action='store_true',
>> required=False, help='Enable debug mode')
>> + popt.add_argument('-rbu', '--reviewboard-user', action='store',
>> dest='reviewboard_user', required=True, help='Review board user name')
>> + popt.add_argument('-rbp', '--reviewboard-password', action='store',
>> dest='reviewboard_password', required=True, help='Review board user
>> password')
>> + popt.add_argument('-v', '--version', action='store', dest='version',
>> required=False, help='Version for patch')
>> + opt = popt.parse_args()
>> +
>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + "." + opt.version
>> + ".patch"
>> + if opt.reviewboard:
>> + ts = time.time()
>> + st =
>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d_%H:%M:%S')
>> + patch_file=tempfile.gettempdir() + "/" + opt.jira + '_' + st +
>> '.patch'
>> +
>> + git_remote_update="git remote update"
>> + print "Updating your remote branches to pull the latest changes"
>> + p=os.popen(git_remote_update)
>> + p.close()
>> +
>> + rb_command="post-review --publish --tracking-branch " + opt.branch + "
>> --target-groups=lens --bugs-closed=" + opt.jira
>> + rb_command=rb_command + " --username " + opt.reviewboard_user + "
>> --password " + opt.reviewboard_password
>> +
>> + if opt.debug:
>> + rb_command=rb_command + " --debug"
>> + summary="Patch for " + opt.jira
>> + if opt.summary:
>> + summary=opt.summary
>> + rb_command=rb_command + " --summary \"" + summary + "\""
>> + if opt.description:
>> + rb_command=rb_command + " --description \"" + opt.description + "\""
>> + if opt.reviewboard:
>> + rb_command=rb_command + " -r " + opt.reviewboard
>> + if opt.testing:
>> + rb_command=rb_command + " --testing-done=\"" + opt.testing + "\""
>> + if opt.debug:
>> + print rb_command
>> + p=os.popen(rb_command)
>> + rb_url=""
>> + for line in p:
>> + print line
>> + if line.startswith('http'):
>> + rb_url = line
>> + elif line.startswith("There don't seem to be any diffs"):
>> + print 'ERROR: Your reviewboard was not created/updated since there
>> was no diff to upload. The reasons that can cause this issue are 1) Your
>> diff is not checked into your local branch. Please check in the diff to the
>> local branch and retry 2) You are not specifying the local branch name as
>> part of the --branch option. Please specify the remote branch name obtained
>> from git branch -r'
>> + p.close()
>> + sys.exit(1)
>> + elif line.startswith("Your review request still exists, but the diff
>> is not attached") and not opt.debug:
>> + print 'ERROR: Your reviewboard was not created/updated. Please run
>> the script with the --debug option to troubleshoot the problem'
>> + p.close()
>> + sys.exit(1)
>> + p.close()
>> + if opt.debug:
>> + print 'rb url=',rb_url
>> +
>> + git_command="git diff " + opt.branch + " > " + patch_file
>> + if opt.debug:
>> + print git_command
>> + p=os.popen(git_command)
>> + p.close()
>> +
>> + print 'Creating diff against', opt.branch, 'and uploading patch to
>> JIRA',opt.jira
>> + jira=get_jira()
>> + issue = jira.issue(opt.jira)
>> + attachment=open(patch_file)
>> + jira.add_attachment(issue,attachment)
>> + attachment.close()
>> +
>> + comment="Created reviewboard "
>> + if not opt.reviewboard:
>> + print 'Created a new reviewboard ',rb_url
>> + else:
>> + print 'Updated reviewboard',opt.reviewboard
>> + comment="Updated reviewboard "
>> +
>> + comment = comment + rb_url
>> + jira.add_comment(opt.jira, comment)
>> +
>> +if __name__ == '__main__':
>> + sys.exit(main())
>> +
>>
>>
>