Skip to content

Commit c4afde2

Browse files
committed
Modernize build system to PEP 517-compliant setuptools
Introduce setuptools based command classes that aim to eventually replace Makefile-based builds. This enables standard 'pip install .' workflows. Main changes: - Move all build steps (binaries, API packages, web frontend) into CustomBuild command class - Add pyproject.toml for PEP 517 compliance - Add type hints throughout Builds are triggered by default by standard setup.py workflow events, making the package installable via standard Python packaging tools.
1 parent 6e69da3 commit c4afde2

File tree

3 files changed

+1723
-83
lines changed

3 files changed

+1723
-83
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44

55
build
66
build_dist
7+
dist
78
venv
89
venv_dev
910
Makefile.local
11+
*.egg-info
1012

1113
/web/server/vue-cli/dist
1214

pyproject.toml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
[build-system]
2+
requires = [
3+
"setuptools>=64.0",
4+
"wheel",
5+
]
6+
build-backend = "setuptools.build_meta"
7+
8+
[project]
9+
name = "codechecker"
10+
version = "6.28.0"
11+
description = "CodeChecker is an analyzer tooling, defect database and viewer extension"
12+
readme = "docs/README.md"
13+
requires-python = ">=3.9"
14+
license = {text = "Apache-2.0 WITH LLVM-exception"}
15+
authors = [
16+
{name = "CodeChecker Team (Ericsson)", email = "codechecker-tool@googlegroups.com"}
17+
]
18+
keywords = ["codechecker", "plist", "sarif"]
19+
classifiers = [
20+
"Development Status :: 5 - Production/Stable",
21+
"Environment :: Console",
22+
"Environment :: Web Environment",
23+
"Intended Audience :: Developers",
24+
# License classifier removed - using license expression instead (PEP 639)
25+
"Operating System :: MacOS",
26+
"Operating System :: POSIX",
27+
"Operating System :: POSIX :: Linux",
28+
"Programming Language :: Python :: 3 :: Only",
29+
"Topic :: Software Development :: Bug Tracking",
30+
"Topic :: Software Development :: Quality Assurance",
31+
]
32+
# Declare fields that are defined dynamically in setup.py
33+
dynamic = ["dependencies", "scripts"]
34+
35+
# Note: Dependencies are dynamically read from requirements.txt files in setup.py
36+
# via get_requirements() function, so they are not listed here statically.
37+
# Entry points (scripts) are also defined in setup.py.
38+
39+
[project.urls]
40+
Documentation = "http://codechecker.readthedocs.io"
41+
"Issue Tracker" = "http://github.com/Ericsson/CodeChecker/issues"
42+
Homepage = "https://github.com/Ericsson/CodeChecker"

0 commit comments

Comments
 (0)