34
34
from jinja2 import Environment , PackageLoader
35
35
36
36
from commitizen import defaults
37
+ from commitizen .bump import normalize_tag
37
38
from commitizen .exceptions import InvalidConfigurationError
38
39
from commitizen .git import GitCommit , GitTag
39
40
@@ -284,22 +285,22 @@ def incremental_build(new_content: str, lines: List, metadata: Dict) -> List:
284
285
285
286
286
287
def get_smart_tag_range (
287
- tags : List [GitTag ], start : str , end : Optional [str ] = None
288
+ tags : List [GitTag ], newest : str , oldest : Optional [str ] = None
288
289
) -> List [GitTag ]:
289
290
"""Smart because it finds the N+1 tag.
290
291
291
292
This is because we need to find until the next tag
292
293
"""
293
294
accumulator = []
294
295
keep = False
295
- if not end :
296
- end = start
296
+ if not oldest :
297
+ oldest = newest
297
298
for index , tag in enumerate (tags ):
298
- if tag .name == start :
299
+ if tag .name == newest :
299
300
keep = True
300
301
if keep :
301
302
accumulator .append (tag )
302
- if tag .name == end :
303
+ if tag .name == oldest :
303
304
keep = False
304
305
try :
305
306
accumulator .append (tags [index + 1 ])
@@ -309,43 +310,43 @@ def get_smart_tag_range(
309
310
return accumulator
310
311
311
312
312
- def get_start_and_end_rev (
313
- tags : List [GitTag ], version : str , tag_format : str , create_tag : Callable
313
+ def get_oldest_and_newest_rev (
314
+ tags : List [GitTag ], version : str , tag_format : str
314
315
) -> Tuple [Optional [str ], Optional [str ]]:
315
316
"""Find the tags for the given version.
316
317
317
318
`version` may come in different formats:
318
319
- `0.1.0..0.4.0`: as a range
319
320
- `0.3.0`: as a single version
320
321
"""
321
- start : Optional [str ] = None
322
- end : Optional [str ] = None
322
+ oldest : Optional [str ] = None
323
+ newest : Optional [str ] = None
323
324
try :
324
- start , end = version .split (".." )
325
+ oldest , newest = version .split (".." )
325
326
except ValueError :
326
- end = version
327
+ newest = version
327
328
328
- end_tag = create_tag ( end , tag_format = tag_format )
329
+ newest_tag = normalize_tag ( newest , tag_format = tag_format )
329
330
330
- start_tag = None
331
- if start :
332
- start_tag = create_tag ( start , tag_format = tag_format )
331
+ oldest_tag = None
332
+ if oldest :
333
+ oldest_tag = normalize_tag ( oldest , tag_format = tag_format )
333
334
334
- tags_range = get_smart_tag_range (tags , start = end_tag , end = start_tag )
335
- if len ( tags_range ) == 0 :
335
+ tags_range = get_smart_tag_range (tags , newest = newest_tag , oldest = oldest_tag )
336
+ if not tags_range :
336
337
return None , None
337
338
338
- start_rev : Optional [str ] = tags_range [- 1 ].name
339
- end_rev = end_tag
339
+ oldest_rev : Optional [str ] = tags_range [- 1 ].name
340
+ newest_rev = newest_tag
340
341
341
342
# check if it's the first tag created
342
343
# and it's also being requested as part of the range
343
- if start_rev == tags [- 1 ].name and start_rev == start_tag :
344
- return None , end_rev
344
+ if oldest_rev == tags [- 1 ].name and oldest_rev == oldest_tag :
345
+ return None , newest_rev
345
346
346
347
# when they are the same, and it's also the
347
- # first tag crated
348
- if start_rev == end_rev :
349
- return None , end_rev
348
+ # first tag created
349
+ if oldest_rev == newest_rev :
350
+ return None , newest_rev
350
351
351
- return start_rev , end_rev
352
+ return oldest_rev , newest_rev
0 commit comments