feat: 支持 Python 3.8+ (0.3.0)
publish-dlp-io / publish (push) Failing after 2s

- requires-python >=3.8, classifiers 增加 3.8/3.9
- 代码经 ast feature_version=(3,8) 校验, 无 3.9+ 专属语法; str|None 等注解由 future annotations 延迟求值
- CI 测试/构建/smoke 矩阵扩展为 3.8-3.14, 裸资产数 6→8
- 注意: Windows runner 需预装 Python 3.8 与 3.9 (py launcher)
This commit is contained in:
p40000043244@byd.com
2026-08-03 15:30:33 +08:00
parent 457e4eed3f
commit d34861be93
6 changed files with 22 additions and 20 deletions
+2 -2
View File
@@ -42,7 +42,7 @@ class PackageClassifier(Enum):
class WorkflowStep(Enum):
CLONE_TAG = "Clone immutable package tag"
TEST_MATRIX = "Test Python 3.10-3.14"
TEST_MATRIX = "Test Python 3.8-3.14"
BUILD = "Build and check distribution"
SMOKE = "Smoke test release artifacts"
RELEASE = "Create Gitea release with wheels"
@@ -108,7 +108,7 @@ def test_pyproject_declares_structured_public_package_contract() -> None:
project = config["project"]
assert PackageName(canonicalize_name(project["name"])) is PackageName.DLP_IO
assert SpecifierSet(project["requires-python"]) == SpecifierSet(">=3.10")
assert SpecifierSet(project["requires-python"]) == SpecifierSet(">=3.8")
assert {DynamicField(item) for item in project["dynamic"]} == {
DynamicField.VERSION
}