FossilRepo

fossilrepo / pyproject.toml
Blame History Raw 108 lines
1
[project]
2
name = "fossilrepo"
3
version = "0.1.0"
4
description = "Self-hosted Fossil SCM forge — code hosting, issues, wiki, and continuous backups in one command."
5
license = "MIT"
6
requires-python = ">=3.12"
7
readme = "README.md"
8
authors = [
9
{ name = "CONFLICT LLC", email = "[email protected]" },
10
]
11
keywords = ["fossil", "scm", "vcs", "code-hosting", "self-hosted", "forge"]
12
classifiers = [
13
"Development Status :: 3 - Alpha",
14
"Environment :: Web Environment",
15
"Framework :: Django",
16
"Framework :: Django :: 5.1",
17
"Intended Audience :: Developers",
18
"Intended Audience :: System Administrators",
19
"License :: OSI Approved :: MIT License",
20
"Operating System :: POSIX :: Linux",
21
"Programming Language :: Python :: 3.12",
22
"Topic :: Software Development :: Version Control",
23
]
24
dependencies = [
25
"django>=5.1,<6.0",
26
"psycopg2-binary>=2.9",
27
"redis>=5.0",
28
"celery[redis]>=5.4",
29
"django-celery-results>=2.5",
30
"django-celery-beat>=2.7",
31
"django-import-export>=4.0",
32
"django-simple-history>=3.7",
33
"django-ratelimit>=4.1",
34
"django-health-check>=3.18",
35
"django-constance[database]>=4.1",
36
"django-storages[s3]>=1.14",
37
"django-ses>=4.1",
38
"django-cors-headers>=4.4",
39
"gunicorn>=23.0",
40
"whitenoise>=6.7",
41
"boto3>=1.35",
42
"sentry-sdk[django]>=2.14",
43
"click>=8.1",
44
"rich>=13.0",
45
"markdown>=3.6",
46
"requests>=2.31",
47
"cryptography>=43.0",
48
"mcp>=1.0",
49
]
50
51
[project.urls]
52
Homepage = "https://fossilrepo.dev"
53
Documentation = "https://fossilrepo.dev"
54
Repository = "https://github.com/ConflictHQ/fossilrepo"
55
Issues = "https://github.com/ConflictHQ/fossilrepo/issues"
56
Demo = "https://fossilrepo.io"
57
58
[project.scripts]
59
fossilrepo-ctl = "ctl.main:cli"
60
fossilrepo-mcp = "mcp_server.__main__:run"
61
62
[project.optional-dependencies]
63
dev = [
64
"ruff>=0.7",
65
"pytest>=8.3",
66
"pytest-django>=4.9",
67
"pytest-cov>=5.0",
68
"coverage>=7.6",
69
"freezegun>=1.4",
70
"pip-audit>=2.7",
71
]
72
73
[tool.ruff]
74
target-version = "py312"
75
line-length = 140
76
77
[tool.ruff.lint]
78
select = ["E", "F", "I", "W", "UP", "B", "SIM", "N"]
79
ignore = ["E501"]
80
81
[tool.ruff.lint.isort]
82
known-first-party = ["config", "core", "accounts", "organization", "projects", "pages", "fossil", "testdata", "ctl", "mcp_server"]
83
84
[tool.ruff.format]
85
quote-style = "double"
86
87
[tool.pytest.ini_options]
88
DJANGO_SETTINGS_MODULE = "config.settings"
89
python_files = ["tests.py", "test_*.py"]
90
python_classes = ["Test*"]
91
python_functions = ["test_*"]
92
addopts = "-v --tb=short --strict-markers"
93
94
[tool.coverage.run]
95
source = ["core", "accounts", "organization", "projects", "pages", "fossil"]
96
omit = ["*/migrations/*", "*/tests/*", "*/testdata/*", "manage.py", "startup.py"]
97
98
[tool.coverage.report]
99
fail_under = 80
100
show_missing = true
101
102
[tool.hatch.build.targets.wheel]
103
packages = ["ctl", "core", "accounts", "organization", "projects", "pages", "fossil", "config", "mcp_server"]
104
105
[build-system]
106
requires = ["hatchling"]
107
build-backend = "hatchling.build"
108

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button