-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
103 lines (90 loc) · 3.06 KB
/
Copy pathpyproject.toml
File metadata and controls
103 lines (90 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "welchost"
version = "1.4.1"
description = "Create and manage a Ghostty terminal welcome screen"
readme = "README.md"
requires-python = ">=3.11"
license = { text = "MIT" }
authors = [{ name = "Welchost Contributors" }]
keywords = ["ghostty", "terminal", "welcome", "tui", "ascii-art", "figlet"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Terminals",
]
dependencies = [
"typer>=0.12",
"rich>=13",
"textual>=0.60",
"pyfiglet>=1.0",
"jinja2>=3.1",
"tomli-w>=1.0",
"certifi>=2023.7",
]
[project.optional-dependencies]
dev = [
"pytest>=8",
"pytest-asyncio>=0.23",
"textual-dev>=0.60",
"watchdog>=4.0",
"commitizen>=3.29",
"pre-commit>=3.8",
"python-semantic-release>=9.14,<11",
"ruff>=0.8",
"build>=1.2",
"twine>=5.1",
]
[project.urls]
Homepage = "https://github.com/scoobynko/welchost"
Repository = "https://github.com/scoobynko/welchost"
Issues = "https://github.com/scoobynko/welchost/issues"
[project.scripts]
welchost = "welchost.cli:app"
[tool.hatch.build]
# _secrets.py is .gitignored (it holds the CI-injected PostHog key), but
# hatchling honors .gitignore — so force it into the build when CI has written it.
# This MUST live in the global [tool.hatch.build] table (not under targets.wheel)
# so it applies to BOTH the wheel AND the sdist: Homebrew installs from the sdist,
# so a wheel-only artifact would leave brew users with no key. Absent in a normal
# checkout, this glob simply matches nothing.
artifacts = ["src/welchost/_secrets.py"]
[tool.hatch.build.targets.wheel]
packages = ["src/welchost"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "W"]
ignore = ["B008"] # Typer uses function calls in argument defaults
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
addopts = "--tb=short -q"
[tool.semantic_release]
version_toml = ["pyproject.toml:project.version"]
version_variables = ["src/welchost/__init__.py:__version__"]
branch = "main"
changelog_file = "CHANGELOG.md"
build_command = "pip install build && python -m build"
dist_path = "dist/"
upload_to_pypi = false
upload_to_release = true
tag_format = "v{version}"
[tool.semantic_release.remote]
# Push the version bump over the plain (SSH) remote that actions/checkout
# configured from RELEASE_SSH_KEY, instead of an https://<GH_TOKEN>@github URL.
# The SSH deploy key is a bypass actor on the protected-main ruleset; the token
# (github-actions[bot]) is not, so token pushes are rejected with GH013.
ignore_token_for_push = true
[tool.semantic_release.commit_parser_options]
allowed_tags = ["feat", "fix", "chore", "docs", "test", "refactor", "perf", "ci"]
minor_tags = ["feat"]
patch_tags = ["fix", "chore", "perf", "refactor"]