github_url = "https://github.com/pylint-dev/pylint"

[version]
current = "4.0.8"
regex = '''
^(?P<major>0|[1-9]\d*)
\.
(?P<minor>0|[1-9]\d*)
\.
(?P<patch>0|[1-9]\d*)
(?:-?(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
'''

[git]
message_template = "Bump pylint to {new_version}, update changelog"
tag_template = "v{new_version}"

# For each file to patch, add a [[file]] config
# section containing the path of the file, relative to the
# tbump.toml location.
[[file]]
src = "pylint/__pkginfo__.py"

# You can specify a list of commands to
# run after the files have been patched
# and before the git commit is made

[[before_commit]]
name = "Clean-up / normalize functional tests output"
cmd = "python tests/test_functional.py --update-functional-output"

[[before_commit]]
name = "Normalize file ending"
cmd = "git add --renormalize ."

[[before_commit]]
name = "Upgrade changelog"
cmd = "python3 script/bump_changelog.py {new_version}"

[[before_commit]]
name = "Upgrade and check doc"
cmd = "tox -e docs||echo 'Hack so this command does not fail'"

[[before_commit]]
name = "Upgrade the pylintrc examples"
cmd = "pylint --rcfile=/dev/null --generate-rcfile > examples/pylintrc"

[[before_commit]]
name = "Upgrade the toml examples"
cmd = "pylint --rcfile=/dev/null --generate-toml-config > examples/pyproject.toml"

[[before_commit]]
name = "Normalize the contributors-txt configuration"
cmd = "contributors-txt-normalize-configuration -a script/.contributors_aliases.json -o script/.contributors_aliases.json"

[[before_commit]]
name = "Upgrade the contributors list"
cmd = "python3 script/create_contributor_list.py"

[[before_commit]]
name = "Apply pre-commit"
cmd = "pre-commit run --all-files||echo 'Hack so this command does not fail'"

[[before_commit]]
name = "Confirm changes"
cmd = "read -p 'Continue (y)? ' -n 1 -r; echo; [[ ! $REPLY =~ ^[Yy]$ ]] && exit 1 || exit 0"

# Or run some commands after the git tag and the branch
# have been pushed:
#  [[after_push]]
#  name = "publish"
#  cmd = "./publish.sh"
