Skip to content

Commit 055b544

Browse files
mayeuthenryiii
authored andcommitted
Fix version returned by versioneer when "post" is already in an existing tag
1 parent 505f8d0 commit 055b544

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

versioneer.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1283,7 +1283,22 @@ def render_pep440_post(pieces):
12831283
if pieces["closest-tag"]:
12841284
rendered = pieces["closest-tag"]
12851285
if pieces["distance"] or pieces["dirty"]:
1286-
rendered += ".post%d" % pieces["distance"]
1286+
if ".post" in rendered:
1287+
# update the existing post tag
1288+
start = rendered.index(".post") + 5
1289+
if len(rendered) == start:
1290+
rendered += "%d" % pieces["distance"]
1291+
else:
1292+
end = start + 1
1293+
while end <= len(rendered) and rendered[start:end].isdigit():
1294+
end += 1
1295+
end -= 1
1296+
distance = pieces["distance"]
1297+
if start != end:
1298+
distance += int(rendered[start:end])
1299+
rendered = rendered[:start] + "%d" % distance + rendered[end:]
1300+
else:
1301+
rendered += ".post%d" % pieces["distance"]
12871302
if pieces["dirty"]:
12881303
rendered += ".dev0"
12891304
rendered += plus_or_dot(pieces)

0 commit comments

Comments
 (0)