Harden packaging for a public release
Add the GPLv3 text (the package declared the licence but never shipped it), a py.typed marker, and an sdist include/exclude allowlist so the distribution carries only src/, docs/, README, LICENSE and pyproject. reference/ is a clone of the GPL FreeRouting Java tree kept purely as a porting reference and must never be redistributed inside this package; tests, caches and build output are excluded too. Switch to the PEP 639 SPDX licence expression with license-files, widen the classifiers, and add an -o alias for -do. Rewrite the README around the engine matrix: what each track and pass actually does, and what this is not (no FreeRouting density parity on dense boards, and --diagonal is a recovery and shortening pass, not a diagonal-native search).
This commit is contained in:
+46
-3
@@ -7,15 +7,30 @@ name = "freeroute"
|
||||
version = "0.1.0"
|
||||
description = "Native Python PCB autorouter — a Java-free port of the FreeRouting engine (Specctra DSN in, SES out)"
|
||||
readme = "README.md"
|
||||
license = { text = "GPL-3.0-or-later" }
|
||||
license = "GPL-3.0-or-later"
|
||||
license-files = ["LICENSE"]
|
||||
authors = [{ name = "Ryan Malloy", email = "ryan@supported.systems" }]
|
||||
keywords = ["pcb", "autorouter", "routing", "specctra", "dsn", "ses", "kicad", "eda"]
|
||||
keywords = [
|
||||
"pcb",
|
||||
"autorouter",
|
||||
"routing",
|
||||
"specctra",
|
||||
"dsn",
|
||||
"ses",
|
||||
"kicad",
|
||||
"eda",
|
||||
"freerouting",
|
||||
]
|
||||
classifiers = [
|
||||
"Development Status :: 2 - Pre-Alpha",
|
||||
"Development Status :: 3 - Alpha",
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: Developers",
|
||||
"Intended Audience :: Manufacturing",
|
||||
"Operating System :: OS Independent",
|
||||
"Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
|
||||
"Typing :: Typed",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3 :: Only",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
@@ -27,6 +42,8 @@ dependencies = []
|
||||
[project.urls]
|
||||
"Homepage" = "https://git.supported.systems/warehack.ing/freeroute"
|
||||
"Repository" = "https://git.supported.systems/warehack.ing/freeroute"
|
||||
"Issues" = "https://git.supported.systems/warehack.ing/freeroute/issues"
|
||||
# The Java engine this is a port of; freeroute ships no upstream code.
|
||||
"Upstream" = "https://github.com/freerouting/freerouting"
|
||||
|
||||
[project.scripts]
|
||||
@@ -42,6 +59,32 @@ dev = [
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/freeroute"]
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
# Ship the package, the licence, and the docs — nothing else. `reference/` is a
|
||||
# clone of the GPL FreeRouting Java tree used only as a porting reference; it is
|
||||
# never committed and must never be redistributed inside this package.
|
||||
include = [
|
||||
"/src",
|
||||
"/docs",
|
||||
"/README.md",
|
||||
"/LICENSE",
|
||||
"/pyproject.toml",
|
||||
]
|
||||
exclude = [
|
||||
"/reference",
|
||||
"/tests",
|
||||
"/.github",
|
||||
"/dist",
|
||||
"/build",
|
||||
"/CLAUDE.md",
|
||||
"**/.env",
|
||||
"**/__pycache__",
|
||||
"**/*.py[cod]",
|
||||
"**/.pytest_cache",
|
||||
"**/.ruff_cache",
|
||||
"**/.coverage",
|
||||
]
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py310"
|
||||
line-length = 100
|
||||
|
||||
Reference in New Issue
Block a user