~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/fixed-in.py

  • Committer: Vincent Ladeuil
  • Date: 2010-09-28 08:43:07 UTC
  • mto: (5490.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 5492.
  • Revision ID: v.ladeuil+lp@free.fr-20100928084307-q750dysyvzy5cp8p
Recognize release dates.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
    def __init__(self, news):
19
19
        self.news = news
20
20
        # Temporary attributes used by the parser
21
 
        self.relese = None
 
21
        self.release = None
 
22
        self.date = None
22
23
        self.may_be_release = None
23
24
        self.release_markup = None
24
25
        self.entry = ''
42
43
        if self.may_be_release is not None and self.lrs == self.release_markup:
43
44
            # The release is followed by the right markup
44
45
            self.release = self.may_be_release[self.release_prefix_length:]
 
46
            # Wait for the associated date
 
47
            self.date = None
 
48
            return True
 
49
        return False
 
50
 
 
51
    def try_date(self):
 
52
        if self.release is None:
 
53
            return False
 
54
        date_re = re.compile(':%s: (NOT RELEASED YET|\d{4}-\d{2}-\d{2})'
 
55
                             % (self.release,))
 
56
        match = date_re.match(self.lrs)
 
57
        if  match is not None:
 
58
            self.date = match.group(1)
 
59
            return True
 
60
        # The old fashion way
 
61
        released_re = re.compile(':Released:\s+(\d{4}-\d{2}-\d{2})')
 
62
        match = released_re.match(self.lrs)
 
63
        if  match is not None:
 
64
            self.date = match.group(1)
45
65
            return True
46
66
        return False
47
67
 
80
100
                         authors = par[:start]
81
101
                    for bug_match in bugs:
82
102
                        bug_number = bug_match.group(0)
83
 
                        yield (bug_number, authors, self.release, self.entry)
 
103
                        yield (bug_number, authors,
 
104
                               self.release, self.date, self.entry)
84
105
        # We've consumed the entry
85
106
        self.entry = ''
86
107
 
94
115
                    continue
95
116
            finally:
96
117
                self.may_be_release = None
 
118
            if self.try_date():
 
119
                continue
97
120
            if self.add_line_to_entry():
98
121
                continue
99
122
            for b in self.extract_bugs_from_entry():
118
141
    try:
119
142
        seen = 0
120
143
        for b in parser.parse_bugs():
121
 
            #(number, release, date, author, entry) = b
122
 
            (number, authors, release, entry,) = b
123
 
            (date,) = ('2010-01-01',)
 
144
            (number, authors, release, date, entry,) = b
124
145
            # indent entry
125
146
            entry = '\n'.join(['    ' + l for l in entry.splitlines()])
126
147
            if number[1:] == bug: # Strip the leading '#'
127
 
                print 'Bug %s was fixed in bzr-%s by %s:' % (
128
 
                    number, release, authors)
 
148
                print 'Bug %s was fixed in bzr-%s/%s by %s:' % (
 
149
                    number, release, date, authors)
129
150
                print entry
130
151
            seen += 1
131
152
    finally: