Skip to content

Commit

Permalink
fix: address PR feedback for parser_angular.py
Browse files Browse the repository at this point in the history
- `angular_parser_default_level_bump` should have plain-english
  settings
- rename `TYPES` variable to `LONG_TYPE_NAMES`
  • Loading branch information
charlesthomas authored and relekang committed Nov 21, 2021
1 parent 298eebb commit f7bc458
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
3 changes: 2 additions & 1 deletion semantic_release/defaults.cfg
@@ -1,6 +1,7 @@
[semantic_release]
parser_angular_allowed_types=build,chore,ci,docs,feat,fix,perf,style,refactor,test
parser_angular_default_level_bump=0
parser_angular_default_level_bump=no-release
# valid options: no-release, patch, minor, major
parser_angular_minor_types=feat
parser_angular_patch_types=fix,perf
branch=master
Expand Down
24 changes: 19 additions & 5 deletions semantic_release/history/parser_angular.py
Expand Up @@ -6,7 +6,7 @@
import logging
import re

from ..errors import UnknownCommitMessageStyleError
from ..errors import ImproperConfigurationError, UnknownCommitMessageStyleError
from ..helpers import LoggedFunction
from ..settings import config
from .parser_helpers import ParsedCommit, parse_paragraphs, re_breaking
Expand All @@ -17,12 +17,19 @@
allowed_types = config.get('parser_angular_allowed_types').split(',')

# types with long names in changelog
TYPES = {
LONG_TYPE_NAMES = {
"feat": "feature",
"docs": "documentation",
"perf": "performance",
}

LEVEL_BUMPS = {
'no-release': 0,
'patch': 1,
'minor': 2,
'major': 3
}

re_parser = re.compile(
r"(?P<type>" + "|".join(allowed_types) + ")"
r"(?:\((?P<scope>[^\n]+)\))?"
Expand Down Expand Up @@ -71,18 +78,25 @@ def parse_commit_message(message: str) -> ParsedCommit:
if match
]

level_bump = int(config.get('parser_angular_default_level_bump'))
default_level_bump = config.get('parser_angular_default_level_bump').lower()
if default_level_bump not in LEVEL_BUMPS.keys():
raise ImproperConfigurationError(
f"{default_level_bump} is not a valid option for "
f"parser_angular_default_level_bump.\n"
f"valid options are: {', '.join(LEVEL_BUMPS.keys())}"
)
level_bump = LEVEL_BUMPS[default_level_bump]
if parsed_break or breaking_descriptions:
level_bump = 3 # Major
elif parsed_type in MINOR_TYPES:
level_bump = 2 # Minor
elif parsed_type in PATCH_TYPES:
level_bump = 1 # Patch

parsed_type_long = TYPES.get(parsed_type, parsed_type)
parsed_type_long = LONG_TYPE_NAMES.get(parsed_type, parsed_type)
# first param is the key you're getting from the dict,
# second param is the default value
# allows only putting types with a long name in the TYPES dict
# allows only putting types with a long name in the LONG_TYPE_NAMES dict

return ParsedCommit(
level_bump,
Expand Down

0 comments on commit f7bc458

Please sign in to comment.