python / cpython

The Python programming language
https://www.python.org/
Other
60.06k stars 29.09k forks source link

just testing #32453

Closed gvanrossum closed 15 years ago

gvanrossum commented 23 years ago
BPO 400608
Nosy @gvanrossum, @devdanzin
Files
  • None: None
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields: ```python assignee = 'https://github.com/gvanrossum' closed_at = created_at = labels = [] title = 'just testing' updated_at = user = 'https://github.com/gvanrossum' ``` bugs.python.org fields: ```python activity = actor = 'ajaksu2' assignee = 'gvanrossum' closed = True closed_date = None closer = None components = ['None'] creation = creator = 'gvanrossum' dependencies = [] files = ['2460'] hgrepos = [] issue_num = 400608 keywords = ['patch'] message_count = 9.0 messages = ['32809', '32810', '32811', '32812', '32813', '32814', '83237', '83239', '83243'] nosy_count = 3.0 nosy_names = ['gvanrossum', 'nobody', 'ajaksu2'] pr_nums = [] priority = 'normal' resolution = None stage = None status = 'closed' superseder = None type = None url = 'https://bugs.python.org/issue400608' versions = [] ```

    gvanrossum commented 23 years ago
    3772858d-27d8-44b0-a664-d68674859f36 commented 23 years ago

    Testing.

    gvanrossum commented 23 years ago

    didn't keep his finger on his nose

    gvanrossum commented 23 years ago

    does it stay?

    gvanrossum commented 23 years ago

    wish we could expunge the deleted ones

    gvanrossum commented 23 years ago

    closing this one again

    90baf024-6604-450d-8341-d796fe6858f3 commented 15 years ago

    Reviewers: ,

    Message: While this is a test issue, the attached diff is a crude first draft of a patched upload.py that makes linking to the Python Tracker a bit easier.

    Here's the command line and output: $ python static/upload.py -R 400608 -F msg32813 Upload server: [...] Loaded authentication cookies [...] Issue created. URL: http://codereview.appspot.com/25073 Uploading base file for static/upload.py

    And the help is: $ python static/upload.py -h | tail -n5 Link options: -R ROUNDUP, --roundup=ROUNDUP Python tracker issue number to link with. -F FETCHDESCR, --fetch_descr=FETCHDESCR Tracker file or message to fetch description from.

    I like it :)

    Description: wish we could expunge the deleted ones

    Please review this at http://codereview.appspot.com/25073

    Affected files: M static/upload.py

    Index: static/upload.py \=================================================================== --- static/upload.py (revision 402) +++ static/upload.py (working copy) @@ -61,7 +61,31 @@ # Max size of patch or base file. MAX_UPLOAD_SIZE = 900 * 1024

    +fields = {'issue':'title', 'msg':'content', 'file':'description', } +def fetch_item(nodeid, kind='issue', tracker='http://bugs.python.org'): + query_tpl = [('@action', 'export_csv'), ('@filter', 'id'), + ('id', nodeid), ('@columns', fields[kind])] + item_url = '/%s?%s' % (kind, urllib.urlencode(query_tpl)) + content = urllib.urlopen(tracker + item_url).read().split('\r\n') + if content[0] == 'title': + return '[issue%s] %s' % (nodeid, content[1].strip()) + elif content[0] == 'content' or content[0] == 'description': + return content[1].strip()

    +def fetch(nodeid): + try: + result = fetch_item(int(nodeid)) + except ValueError: + if nodeid.startswith('msg'): + nodeid = nodeid.replace('msg', '') + result = fetch_item(int(nodeid), 'msg') + elif nodeid.startswith('file'): + nodeid = nodeid.replace('file', '') + result = fetch_item(int(nodeid), 'file') + else: + raise + return result + def GetEmail(prompt): """Prompts the user for their email address and returns it.

    @@ -453,6 +477,14 @@
      group.add_option("--send_mail", action="store_true",
                       dest="send_mail", default=False,
                       help="Send notification email to reviewers.")
    +# Link options
    +group = parser.add_option_group("Link options")
    +group.add_option("-R", "--roundup", action="store", dest="roundup",
    +                 metavar="ROUNDUP", default=None,
    +                 help="Python tracker issue number to link with.")
    +group.add_option("-F", "--fetch_descr", action="store", dest="fetch_descr",
    +                 metavar="FETCHDESCR", default=None,
    +                 help="Tracker file or message to fetch description from.")
    
      def GetRpcServer(options):
    @@ -1291,7 +1323,10 @@
          prompt = "Message describing this patch set: "
        else:
          prompt = "New issue subject: "
    -  message = options.message or raw_input(prompt).strip()
    +  if options.roundup:
    +    message = fetch(options.roundup)
    +  else:
    +    message = options.message or raw_input(prompt).strip()
        if not message:
          ErrorExit("A non-empty message is required")
        rpc_server = GetRpcServer(options)
    @@ -1307,11 +1342,16 @@
            if "@" in reviewer and not reviewer.split("@")[1].count(".") == 1:
              ErrorExit("Invalid email address: %s" % reviewer)
          form_fields.append(("reviewers", options.reviewers))
    +  tracker_email = 'report@bugs.python.org,'
        if options.cc:
          for cc in options.cc.split(','):
            if "@" in cc and not cc.split("@")[1].count(".") == 1:
              ErrorExit("Invalid email address: %s" % cc)
    -    form_fields.append(("cc", options.cc))
    +    if options.roundup:
    +      cc = tracker_email + options.cc
    +    form_fields.append(("cc", cc))
    +  elif options.roundup:
    +    form_fields.append(("cc", tracker_email[:-1]))
        description = options.description
        if options.description_file:
          if options.description:
    @@ -1319,6 +1359,9 @@
          file = open(options.description_file, 'r')
          description = file.read()
          file.close()
    +  elif options.fetch_descr:
    +    # XXX Add error handling as above
    +    description = fetch(options.fetch_descr)
        if description:
          form_fields.append(("description", description))
        # Send a hash of all the base file so the server can determine if a copy
    gvanrossum commented 15 years ago

    This is specific to the Python tracker, which Rietveld tries to avoid. You could maintain this as a locally modified version, but a better approach would be to make just enough changes to upload.py itself so that you can write the rest of this script as a *wrapper* around upload.py. That's how the Chrome people manage their workflow, and that's a generally recommended approach: the wrapper does the project-specific stuff, passing everything to upload.py for the actual interaction with Rietveld.

    PS. What do you mean by "wish we could expunge the deleted ones"? If you delete a Rietveld issue it is really gone. If you merely close it, you can still delete it later. But I'm probably missing something.

    http://codereview.appspot.com/25073

    90baf024-6604-450d-8341-d796fe6858f3 commented 15 years ago

    Thanks for the feedback, Guido!

    gvanrossum wrote:

    You could maintain this as a locally modified version, but a better approach would be to make just enough changes to upload.py itself so that you can write the rest of this script as a *wrapper* around upload.py.

    Yes, a wrapper is an option. MvL suggested a patch[1] and for this initial implementation it makes things simpler. IIUC, in this case upload.py would need no changes, as we simply populate existing options with fetched values.

    PS. What do you mean by "wish we could expunge the deleted ones"?  If you delete a Rietveld issue it is really gone.  If you merely close it, you can still delete it later.  But I'm probably missing something.

    Yes, you're missing the fact that you were the one saying "wish we could expunge the deleted ones" :)

    upload.py fetched that from http://bugs.python.org/msg32813 because I told it to: python static/upload.py -R 400608 -F msg32813

    [1] http://mail.python.org/pipermail/tracker-discuss/2009-March/001875.html