Skip to content

Commit 4a2ac50

Browse files
committed
Add PyPI packaging metadata and Trusted Publishing workflow
Complete project metadata (readme, urls, classifiers, keywords) for the PyPI page, absolute README image URL so it renders off-repo, and a release-triggered publish workflow using OIDC Trusted Publishing (no stored token). Build and twine check pass; wheel verified in a clean environment.
1 parent e4c07d9 commit 4a2ac50

3 files changed

Lines changed: 65 additions & 1 deletion

File tree

.github/workflows/publish.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
- uses: actions/setup-python@v5
14+
with:
15+
python-version: "3.12"
16+
- name: Build sdist and wheel
17+
run: |
18+
pip install build
19+
python -m build
20+
- name: Check distributions
21+
run: |
22+
pip install twine
23+
twine check dist/*
24+
- name: Upload build artifacts
25+
uses: actions/upload-artifact@v4
26+
with:
27+
name: dist
28+
path: dist/
29+
30+
publish:
31+
needs: build
32+
runs-on: ubuntu-latest
33+
environment:
34+
name: pypi
35+
url: https://pypi.org/project/test-data-workbench/
36+
permissions:
37+
id-token: write # OIDC token for PyPI Trusted Publishing; no stored secret
38+
steps:
39+
- name: Download build artifacts
40+
uses: actions/download-artifact@v4
41+
with:
42+
name: dist
43+
path: dist/
44+
- name: Publish to PyPI
45+
uses: pypa/gh-action-pypi-publish@release/v1

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Point it at a database. Get realistic, relationally intact test data back.
1010

1111
Test Data Workbench reflects an unknown schema, classifies what each table represents, and emits working Python generators for it: dependency-ordered, referentially consistent, and readable. The output is not a black box; it is plain generator code you can read, edit, and commit.
1212

13-
<p align="center"><img src="docs/assets/tdw-demo.svg" alt="tdw demo: schema analysis, PII flagging, and generator deployment against a SQLite database"></p>
13+
<p align="center"><img src="https://raw.githubusercontent.com/VolanticSystems/test-data-workbench/main/docs/assets/tdw-demo.svg" alt="tdw demo: schema analysis, PII flagging, and generator deployment against a SQLite database"></p>
1414

1515
**Documentation:** https://volanticsystems.github.io/test-data-workbench/
1616

pyproject.toml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,22 @@ build-backend = "hatchling.build"
66
name = "test-data-workbench"
77
version = "1.0.0"
88
description = "Schema-adaptive test data generator: point it at a database, get realistic relational test data back"
9+
readme = "README.md"
910
requires-python = ">=3.10"
1011
license = "Apache-2.0"
1112
authors = [{name = "Volantic Systems"}]
13+
keywords = ["test-data", "synthetic-data", "fixtures", "sqlalchemy", "faker", "code-generation", "testing", "database"]
14+
classifiers = [
15+
"Development Status :: 5 - Production/Stable",
16+
"Intended Audience :: Developers",
17+
"Programming Language :: Python :: 3",
18+
"Programming Language :: Python :: 3.10",
19+
"Programming Language :: Python :: 3.11",
20+
"Programming Language :: Python :: 3.12",
21+
"Topic :: Software Development :: Testing",
22+
"Topic :: Database",
23+
"Operating System :: OS Independent",
24+
]
1225
dependencies = [
1326
"fastapi>=0.104.1",
1427
"uvicorn>=0.24.0",
@@ -22,6 +35,12 @@ dependencies = [
2235
"rich>=13.7.0",
2336
]
2437

38+
[project.urls]
39+
Homepage = "https://github.com/VolanticSystems/test-data-workbench"
40+
Documentation = "https://volanticsystems.github.io/test-data-workbench/"
41+
Repository = "https://github.com/VolanticSystems/test-data-workbench"
42+
Issues = "https://github.com/VolanticSystems/test-data-workbench/issues"
43+
2544
[project.scripts]
2645
tdw = "test_data_workbench.cli.main:main"
2746

0 commit comments

Comments
 (0)