/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tools/check-newsbugs.py

  • Committer: Richard Wilbur
  • Date: 2016-02-04 19:07:28 UTC
  • mto: This revision was merged to the branch mainline in revision 6618.
  • Revision ID: richard.wilbur@gmail.com-20160204190728-p0zvfii6zase0fw7
Update COPYING.txt from the original http://www.gnu.org/licenses/gpl-2.0.txt  (Only differences were in whitespace.)  Thanks to Petr Stodulka for pointing out the discrepancy.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
    from launchpadlib.launchpad import Launchpad
8
8
    from lazr.restfulclient import errors
9
9
except ImportError:
10
 
    print("Please install launchpadlib from lp:launchpadlib")
 
10
    print "Please install launchpadlib from lp:launchpadlib"
11
11
    sys.exit(1)
12
12
try:
13
13
    import hydrazine
14
14
except ImportError:
15
 
    print("Please install hydrazine from lp:hydrazine")
 
15
    print "Please install hydrazine from lp:hydrazine"
16
16
    sys.exit(1)
17
17
 
18
18
 
21
21
 
22
22
if len(args) == 1:
23
23
    print ("Usage: check-newsbugs [--launchpad][--webbrowser] "
24
 
           "doc/en/release-notes/brz-x.y.txt")
25
 
    print("Options:")
26
 
    print("--launchpad     Print out Launchpad mail commands for closing bugs ")
27
 
    print("                that are already fixed.")
28
 
    print("--webbrowser    Open launchpad bug pages for bugs that are already ")
29
 
    print("                fixed.")
 
24
           "doc/en/release-notes/bzr-x.y.txt")
 
25
    print "Options:"
 
26
    print "--launchpad     Print out Launchpad mail commands for closing bugs "
 
27
    print "                that are already fixed."
 
28
    print "--webbrowser    Open launchpad bug pages for bugs that are already "
 
29
    print "                fixed."
30
30
    sys.exit(1)
31
31
 
32
32
 
33
33
def report_notmarked(bug, task, section):
34
 
    print()
35
 
    print("Bug %d was mentioned in NEWS but is not marked fix released:" % (bug.id, ))
36
 
    print("Launchpad title: %s" % bug.title)
37
 
    print("NEWS summary: ")
38
 
    print(section)
 
34
    print
 
35
    print "Bug %d was mentioned in NEWS but is not marked fix released:" % (bug.id, )
 
36
    print "Launchpad title: %s" % bug.title
 
37
    print "NEWS summary: "
 
38
    print section
39
39
    if "--launchpad" in options or "-l" in options:
40
 
        print("  bug %d" % bug.id)
41
 
        print("  affects %s" % task.bug_target_name)
42
 
        print("  status fixreleased")
 
40
        print "  bug %d" % bug.id
 
41
        print "  affects %s" % task.bug_target_name
 
42
        print "  status fixreleased"
43
43
    if "--webbrowser" in options or "-w" in options:
44
44
        import webbrowser
45
45
        webbrowser.open('http://pad.lv/%s>' % (bug.id,))
54
54
    # Pattern to find bug numbers
55
55
    bug_pattern = re.compile("\#([0-9]+)")
56
56
    ret = set()
57
 
    with open(path, 'r') as f:
 
57
    f = open(path, 'r')
 
58
    try:
58
59
        section = ""
59
60
        for l in f.readlines():
60
61
            if l.strip() == "":
69
70
            else:
70
71
                section += l
71
72
        return ret
 
73
    finally:
 
74
        f.close()
72
75
 
73
76
 
74
77
def print_bug_url(bugno):
75
 
    print('<URL:http://pad.lv/%s>' % (bugno,))
 
78
    print '<URL:http://pad.lv/%s>' % (bugno,)
76
79
 
77
80
launchpad = hydrazine.create_session()
78
81
bugnos = read_news_bugnos(args[1])
79
82
for bugno, section in bugnos:
80
83
    try:
81
84
        bug = launchpad.bugs[bugno]
82
 
    except errors.HTTPError as e:
 
85
    except errors.HTTPError, e:
83
86
        if e.response.status == 401:
84
87
            print_bug_url(bugno)
85
88
            # Private, we can't access the bug content
86
 
            print('%s is private and cannot be accessed' % (bugno,))
 
89
            print '%s is private and cannot be accessed' % (bugno,)
87
90
            continue
88
91
        raise
89
92
 
90
 
    found_brz = False
 
93
    found_bzr = False
91
94
    fix_released = False
92
95
    for task in bug.bug_tasks:
93
96
        parts = task.bug_target_name.split('/')
97
100
        else:
98
101
            project = parts[0]
99
102
            distribution = parts[1]
100
 
        if project == "brz":
101
 
            found_brz = True
 
103
        if project == "bzr":
 
104
            found_bzr = True
102
105
            if not fix_released and task.status == "Fix Released":
103
106
                # We could check that the NEWS section and task_status are in
104
107
                # sync, but that would be overkill. (case at hand: bug #416732)
105
108
                fix_released = True
106
109
 
107
 
    if not found_brz:
 
110
    if not found_bzr:
108
111
        print_bug_url(bugno)
109
 
        print("Bug %d was mentioned in NEWS but is not marked as affecting brz" % bugno)
 
112
        print "Bug %d was mentioned in NEWS but is not marked as affecting bzr" % bugno
110
113
    elif not fix_released:
111
114
        print_bug_url(bugno)
112
115
        report_notmarked(bug, task, section)