Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

just testing #32453

Closed
gvanrossum opened this issue Jun 22, 2000 · 9 comments
Closed

just testing #32453

gvanrossum opened this issue Jun 22, 2000 · 9 comments
Assignees

Comments

@gvanrossum
Copy link
Member

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:

    assignee = 'https://github.com/gvanrossum'
    closed_at = <Date 2009-03-06.13:54:51.680>
    created_at = <Date 2000-06-22.16:26:21.000>
    labels = []
    title = 'just testing'
    updated_at = <Date 2009-03-06.13:54:51.680>
    user = 'https://github.com/gvanrossum'

    bugs.python.org fields:

    activity = <Date 2009-03-06.13:54:51.680>
    actor = 'ajaksu2'
    assignee = 'gvanrossum'
    closed = True
    closed_date = None
    closer = None
    components = ['None']
    creation = <Date 2000-06-22.16:26:21.000>
    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
    Copy link
    Member Author

    No description provided.

    @gvanrossum gvanrossum self-assigned this Jun 22, 2000
    @gvanrossum gvanrossum self-assigned this Jun 22, 2000
    @gvanrossum
    Copy link
    Member Author

    didn't keep his finger on his nose

    @gvanrossum
    Copy link
    Member Author

    does it stay?

    @gvanrossum
    Copy link
    Member Author

    wish we could expunge the deleted ones

    @gvanrossum
    Copy link
    Member Author

    closing this one again

    @nobody
    Copy link
    Mannequin

    nobody mannequin commented Jul 13, 2000

    Testing.

    @devdanzin
    Copy link
    Mannequin

    devdanzin mannequin commented Mar 6, 2009

    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
    Copy link
    Member Author

    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

    @devdanzin
    Copy link
    Mannequin

    devdanzin mannequin commented Mar 6, 2009

    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

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 9, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    None yet
    Projects
    None yet
    Development

    No branches or pull requests

    1 participant