Merging upstream version 0.19.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
61e6dccee9
commit
2efee3d3ab
111 changed files with 2058 additions and 1676 deletions
202
pyproject.toml
202
pyproject.toml
|
@ -1,5 +1,203 @@
|
|||
[build-system]
|
||||
requires = ["hatchling", "hatch-vcs"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "gitlint"
|
||||
dynamic = ["version", "dependencies", "urls"]
|
||||
description = "Git commit message linter written in python, checks your commit messages for style."
|
||||
readme = "README.md"
|
||||
|
||||
license = "MIT"
|
||||
requires-python = ">=3.7"
|
||||
authors = [{ name = "Joris Roovers" }]
|
||||
keywords = [
|
||||
"git",
|
||||
"gitlint",
|
||||
"lint", #
|
||||
]
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Operating System :: OS Independent",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3.7",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: Implementation :: CPython",
|
||||
"Programming Language :: Python :: Implementation :: PyPy",
|
||||
"Topic :: Software Development :: Quality Assurance",
|
||||
"Topic :: Software Development :: Testing",
|
||||
]
|
||||
|
||||
[tool.hatch.version]
|
||||
source = "vcs"
|
||||
|
||||
[tool.hatch.build]
|
||||
exclude = ["*"]
|
||||
|
||||
[tool.hatch.metadata.hooks.vcs.urls]
|
||||
Homepage = "https://jorisroovers.github.io/gitlint"
|
||||
Documentation = "https://jorisroovers.github.io/gitlint"
|
||||
Source = "https://github.com/jorisroovers/gitlint"
|
||||
Changelog = "https://github.com/jorisroovers/gitlint/blob/main/CHANGELOG.md"
|
||||
# TODO(jorisroovers): Temporary disable until fixed in hatch-vcs (see #460)
|
||||
# 'Source Archive' = "https://github.com/jorisroovers/gitlint/archive/{commit_hash}.zip"
|
||||
# 'Source Commit' = "https://github.com/jorisroovers/gitlint/tree/{commit_hash}"
|
||||
|
||||
# Use metadata hooks specified in 'hatch_build.py'
|
||||
# (this line is critical when building wheels, when building sdist it seems optional)
|
||||
[tool.hatch.metadata.hooks.custom]
|
||||
|
||||
# Environments #########################################################################################################
|
||||
# NOTE: By default all environments inherit from the 'default' environment
|
||||
|
||||
# DEV
|
||||
# Workaround for editable install:
|
||||
# https://github.com/pypa/hatch/issues/588
|
||||
[tool.hatch.envs.dev]
|
||||
description = """
|
||||
Dev environment (running gitlint itself from source)
|
||||
"""
|
||||
pre-install-commands = [
|
||||
"pip install -e ./gitlint-core", #
|
||||
]
|
||||
|
||||
[tool.hatch.envs.dev.scripts]
|
||||
fullclean = [
|
||||
"rm .coverage .coverage.lcov",
|
||||
"rm -rf site dist .pytest_cache",
|
||||
"rm -rf gitlint-core/dist gitlint-core/build gitlint-core/.pytest_cache",
|
||||
"rm -rf qa/__pycache__ qa/.pytest_cache",
|
||||
]
|
||||
|
||||
# TEST
|
||||
[tool.hatch.envs.test]
|
||||
description = """
|
||||
Test environment (unit tests, formatting, lint)
|
||||
"""
|
||||
skip-install = true
|
||||
dependencies = [
|
||||
"gitlint-core[trusted-deps] @ {root:uri}/gitlint-core",
|
||||
"black==23.1.0",
|
||||
"pytest==7.2.1",
|
||||
"pytest-cov==4.0.0",
|
||||
"python-coveralls==2.9.3",
|
||||
"ruff==0.0.252",
|
||||
"radon==5.1.0",
|
||||
"pdbr==0.8.2; sys_platform != \"win32\"",
|
||||
]
|
||||
|
||||
[tool.hatch.envs.test.scripts]
|
||||
unit-tests = [
|
||||
"pytest --cov=gitlint-core --cov-report=term --cov-report=lcov:.coverage.lcov -rw -s {args:gitlint-core}",
|
||||
]
|
||||
u = "unit-tests"
|
||||
unit-tests-no-cov = "pytest -rw -s {args:gitlint-core}"
|
||||
format = "black --check --diff {args:.}"
|
||||
lint = "ruff {args:gitlint-core/gitlint qa}"
|
||||
autoformat = "black {args:.}"
|
||||
autofix = [
|
||||
"ruff --fix {args:gitlint-core/gitlint qa}",
|
||||
"autoformat", #
|
||||
]
|
||||
|
||||
all = [
|
||||
"unit-tests",
|
||||
"format",
|
||||
"lint", #
|
||||
]
|
||||
stats = ["./tools/stats.sh"]
|
||||
|
||||
# QA
|
||||
[tool.hatch.envs.qa]
|
||||
description = """
|
||||
Integration test environment.
|
||||
Run a set of integration tests against any gitlint binary (not just the one from local source).
|
||||
"""
|
||||
detached = true
|
||||
dependencies = [
|
||||
"pytest==7.2.1",
|
||||
"arrow==1.2.3",
|
||||
"sh==1.14.3; sys_platform != \"win32\"",
|
||||
"pdbr==0.8.2; sys_platform != \"win32\"",
|
||||
]
|
||||
|
||||
[tool.hatch.envs.qa.scripts]
|
||||
# The integration tests can be ran against any gitlint binary, e.g. one installed from pypi (for post-release testing)
|
||||
# This is why by default we don't install the local dev version of gitlint in the qa environment
|
||||
# To run integration tests against the dev version of gitlint, use install-local first
|
||||
install-local = "pip install -e ./gitlint-core[trusted-deps]"
|
||||
integration-tests = "pytest -rw -s {args:qa}"
|
||||
i = "integration-tests"
|
||||
|
||||
|
||||
# DOCS
|
||||
[tool.hatch.envs.docs]
|
||||
description = """
|
||||
Documentation environment. Run docs build and serve commands.
|
||||
"""
|
||||
detached = true
|
||||
dependencies = [
|
||||
"mkdocs==1.4.2", #
|
||||
]
|
||||
|
||||
[tool.hatch.envs.docs.scripts]
|
||||
build = "mkdocs build --clean --strict"
|
||||
serve = "mkdocs serve"
|
||||
|
||||
# Tool config ##########################################################################################################
|
||||
|
||||
[tool.black]
|
||||
target_version = ['py36', 'py37', 'py38','py39','py310']
|
||||
target_version = ['py37', 'py38', 'py39', 'py310']
|
||||
line-length = 120
|
||||
# extend-exclude: keep excluding files from .gitignore in addition to the ones specified
|
||||
extend-exclude = "gitlint-core/gitlint/tests/samples/user_rules/import_exception/invalid_python.py"
|
||||
extend-exclude = "gitlint-core/gitlint/tests/samples/user_rules/import_exception/invalid_python.py"
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py37"
|
||||
extend-exclude = [
|
||||
"gitlint-core/gitlint/tests/samples/user_rules/import_exception/invalid_python.py",
|
||||
]
|
||||
|
||||
ignore = [
|
||||
"E501", # Never enforce `E501` (line length violations) - taken care of by black
|
||||
"SIM108", # Use ternary operator instead of if-else-block
|
||||
"PLR0913", # Too many arguments to function call
|
||||
]
|
||||
|
||||
select = [
|
||||
"F", # PyFlakes
|
||||
"E", # Pycodestyle
|
||||
"W", # Pycodestyle
|
||||
"I", # isort (import order)
|
||||
"YTT", # flake8-2020 (misuse of sys.version)
|
||||
"S", # flake8-bandit (security)
|
||||
"B", # flake8-bugbear
|
||||
"C4", # flake8-comprehensions (correct use of comprehensions)
|
||||
"T10", # flake8-debugger (no debug statements)
|
||||
"T20", # flake8-print (no print statements)
|
||||
"SIM", # flake8-simplify (use simple code)
|
||||
"TID", # flake8-tidy-imports (correct import syntax)
|
||||
"ARG", # flake8-unused-arguments (no unused function arguments)
|
||||
"DTZ", # flake8-datetimez (correct datetime usage)
|
||||
"ERA", # eradicate (no commented out code)
|
||||
"UP", # pyupgrade (modern python syntax)
|
||||
"PLC", # pylint
|
||||
"PLE", # pylint
|
||||
"PLR", # pylint
|
||||
"PLW", # pylint
|
||||
"PIE", # flake8-pie
|
||||
"RUF", # ruff specific
|
||||
]
|
||||
|
||||
[tool.coverage.run]
|
||||
branch = true # measure branch coverage in addition to statement coverage
|
||||
|
||||
[tool.coverage.report]
|
||||
fail_under = 97
|
||||
show_missing = true
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue