[build-system]
requires = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "rhodecode-vcsserver"
description = "Version Control System Server for RhodeCode"
authors = [
    {name = "RhodeCode GmbH", email = "support@rhodecode.com"},
]

license = {text = "GPL V3"}
requires-python = ">=3.10"
dynamic = ["version", "readme", "dependencies", "optional-dependencies"]
classifiers = [
    'Development Status :: 6 - Mature',
    'Intended Audience :: Developers',
    'Operating System :: OS Independent',
    'Topic :: Software Development :: Version Control',
    'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
    'Programming Language :: Python :: 3.10',
]

[project.entry-points."paste.app_factory"]
main = "vcsserver.http_main:main"


[tool.setuptools]
packages = ["vcsserver"]

[tool.setuptools.dynamic]
readme = {file = ["README.rst"], content-type = "text/rst"}
version = {file = "vcsserver/VERSION"}
dependencies = {file = ["requirements.txt"]}
optional-dependencies.tests = {file = ["requirements_test.txt"]}

[tool.ruff]
lint.select = [
    # Pyflakes
    "F",
    # Pycodestyle
    "E",
    "W",
    # isort
    "I001"
]
lint.ignore = [
    "E501",  # line too long, handled by black
]
# Same as Black.
line-length = 120

[tool.ruff.lint.isort]
known-first-party = ["vcsserver"]

[tool.ruff.format]

# Like Black, use double quotes for strings.
quote-style = "double"

# Like Black, indent with spaces, rather than tabs.
indent-style = "space"

# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"

[tool.bumpversion]
current_version = "5.4.0"
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
serialize = ["{major}.{minor}.{patch}"]
search = "{current_version}"
replace = "{new_version}"
regex = false
ignore_missing_version = false
ignore_missing_files = false
tag = false
sign_tags = false
tag_name = "v{new_version}"
tag_message = "release(version-bump): {current_version} → {new_version}"
allow_dirty = false
commit = false
message = "release(version-bump): {current_version} → {new_version}"
commit_args = ""
setup_hooks = []
pre_commit_hooks = []
post_commit_hooks = []
