RELEASED_RE = re.compile(r"^\*\(Released (?P<day>[A-Z][a-z]{2}),"
r" (?P<date>.+)\)\*$")
UNRELEASED_RE = re.compile(r"^\*\(unreleased\)\*$")
-VERSION_RE = re.compile(r"^Version (\d+(\.\d+)+( (beta|rc)\d+)?)$")
+VERSION_RE = re.compile(r"^Version (\d+(\.\d+)+( (alpha|beta|rc)\d+)?)$")
#: How many days release timestamps may be in the future
TIMESTAMP_FUTURE_DAYS_MAX = 3
def ReqNLines(req, count_empty, lineno, line):
- """Check if we have N empty lines.
+ """Check if we have N empty lines before the current one.
"""
if count_empty < req:
(lineno, line, req, count_empty))
+def IsAlphaVersion(version):
+ return "alpha" in version
+
+
+def UpdateAllowUnreleased(allow_unreleased, version_match, release):
+ if not allow_unreleased:
+ return False
+ if IsAlphaVersion(release):
+ return True
+ version = version_match.group(1)
+ if version == release:
+ return False
+ return True
+
+
def main():
# Ensure "C" locale is used
curlocale = locale.getlocale()
Error("Line %s: Duplicate release %s found" %
(fileinput.filelineno(), version))
found_versions.add(version)
- if version == release:
- allow_unreleased = False
+ allow_unreleased = UpdateAllowUnreleased(allow_unreleased, version_match,
+ release)
unreleased_match = UNRELEASED_RE.match(line)
if unreleased_match and not allow_unreleased: