forked from commitizen-tools/commitizen
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefaults.py
More file actions
126 lines (112 loc) · 3.26 KB
/
Copy pathdefaults.py
File metadata and controls
126 lines (112 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
from __future__ import annotations
import pathlib
import sys
from collections import OrderedDict
from typing import Any, Iterable, MutableMapping
if sys.version_info < (3, 8):
from typing_extensions import TypedDict
else:
from typing import TypedDict
# Type
Questions = Iterable[MutableMapping[str, Any]]
class CzSettings(TypedDict, total=False):
bump_pattern: str
bump_map: OrderedDict[str, str]
bump_map_major_version_zero: OrderedDict[str, str]
change_type_order: list[str]
questions: Questions
example: str | None
schema_pattern: str | None
schema: str | None
info_path: str | pathlib.Path
info: str
message_template: str
commit_parser: str | None
changelog_pattern: str | None
change_type_map: dict[str, str] | None
class Settings(TypedDict, total=False):
name: str
version: str | None
version_files: list[str]
version_provider: str | None
version_scheme: str | None
version_type: str | None
tag_format: str
bump_message: str | None
allow_abort: bool
allowed_prefixes: list[str]
changelog_file: str
changelog_incremental: bool
changelog_start_rev: str | None
changelog_merge_prerelease: bool
update_changelog_on_bump: bool
use_shortcuts: bool
style: list[tuple[str, str]] | None
customize: CzSettings
major_version_zero: bool
pre_bump_hooks: list[str] | None
post_bump_hooks: list[str] | None
prerelease_offset: int
name: str = "cz_conventional_commits"
config_files: list[str] = [
"pyproject.toml",
".cz.toml",
".cz.json",
"cz.json",
".cz.yaml",
"cz.yaml",
]
DEFAULT_SETTINGS: Settings = {
"name": "cz_conventional_commits",
"version": None,
"version_files": [],
"version_provider": "commitizen",
"version_scheme": None,
"tag_format": "$version", # example v$version
"bump_message": None, # bumped v$current_version to $new_version
"allow_abort": False,
"allowed_prefixes": [
"Merge",
"Revert",
"Pull request",
"fixup!",
"squash!",
],
"changelog_file": "CHANGELOG.md",
"changelog_incremental": False,
"changelog_start_rev": None,
"changelog_merge_prerelease": False,
"update_changelog_on_bump": False,
"use_shortcuts": False,
"major_version_zero": False,
"pre_bump_hooks": [],
"post_bump_hooks": [],
"prerelease_offset": 0,
}
MAJOR = "MAJOR"
MINOR = "MINOR"
PATCH = "PATCH"
bump_pattern = r"^(((BREAKING[\-\ ]CHANGE|feat|fix|refactor|perf)(\(.+\))?(!)?)|\w+!):"
bump_map = OrderedDict(
(
(r"^.+!$", MAJOR),
(r"^BREAKING[\-\ ]CHANGE", MAJOR),
(r"^feat", MINOR),
(r"^fix", PATCH),
(r"^refactor", PATCH),
(r"^perf", PATCH),
)
)
bump_map_major_version_zero = OrderedDict(
(
(r"^.+!$", MINOR),
(r"^BREAKING[\-\ ]CHANGE", MINOR),
(r"^feat", MINOR),
(r"^fix", PATCH),
(r"^refactor", PATCH),
(r"^perf", PATCH),
)
)
change_type_order = ["BREAKING CHANGE", "Feat", "Fix", "Refactor", "Perf"]
bump_message = "bump: version $current_version → $new_version"
commit_parser = r"^((?P<change_type>feat|fix|refactor|perf|BREAKING CHANGE)(?:\((?P<scope>[^()\r\n]*)\)|\()?(?P<breaking>!)?|\w+!):\s(?P<message>.*)?" # noqa