mirror of https://github.com/mingrammer/diagrams
gh-pages
master
dependabot/npm_and_yarn/playground/multi-5d8f4a45bd
dependabot/npm_and_yarn/playground/multi-d1bf4958b3
filipeaaoliveira/02-packaging
add-payment-saas
1027-feature-request-apigee-icon
v0.10.0
v0.11.0
v0.12.0
v0.13.0
v0.13.1
v0.14.0
v0.15.0
v0.16.0
v0.17.0
v0.18.0
v0.19.0
v0.19.1
v0.2.0
v0.2.1
v0.2.3
v0.20.0
v0.21.0
v0.21.1
v0.22.0
v0.23.1
v0.23.2
v0.23.3
v0.23.4
v0.24.0
v0.24.1
v0.24.2
v0.24.3
v0.24.4
v0.25.0
v0.25.1
v0.3.0
v0.4.0
v0.5.0
v0.6.0
v0.6.1
v0.6.2
v0.6.3
v0.6.4
v0.6.5
v0.7.0
v0.7.1
v0.7.2
v0.7.3
v0.7.4
v0.8.0
v0.8.1
v0.8.2
v0.9.0
${ item.name }
${ noResults }
1 Commits (filipeaaoliveira/02-packaging)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
95d0eaa77d |
fix: verify built artifacts and gate release tags against pyproject version
The test job installs from the source tree, where diagrams/cli.py and resources/ are always present, so two broken releases went out green: - 0.24.1-0.24.4 declared a `diagrams = diagrams.cli:main` console script while diagrams/cli.py did not exist, so `pipx install diagrams` installed an executable that could only raise ModuleNotFoundError (#1149). - 0.25.0 moved to a PEP 621 [project] table with no [build-system] table, so pip built with setuptools and shipped a wheel with zero icons. It does not raise: the CLI exits 0 and renders an 8 KB image of empty boxes. Separately, the v0.24.4 tag was placed one commit before the version bump, so the tag said 0.24.4 while pyproject.toml said 0.24.3 (#1183). Nothing compared the two. Add tests/test_packaging.py, which asserts against installed metadata and on-disk files rather than the checkout: every declared console-script entry point imports, every Node subclass's icon resolves through the production Node._load_icon path, and diagrams.__version__ matches the distribution metadata. A setUpModule guard skips the module, with an instruction, when `import diagrams` does not resolve to the installed distribution, so an unpacked sdist or a shadowed checkout cannot pass it vacuously. Add .github/workflows/package.yml to build both artifacts, inspect the sdist listing, install the wheel into a clean venv and run those invariants against the install, plus the console script end to end. Add scripts/check_release_version.py and a tag-version job that fails a release whose tag does not name the version in pyproject.toml. The version stays a single literal in pyproject.toml; diagrams.__version__ now reads it back via importlib.metadata, reporting 0.0.0.dev0 when the imported package is not the installed copy rather than echoing the wrong release number. Split [tool.hatch.build] into per-target tables so the sdist also carries tests/ and scripts/check_release_version.py, letting packagers verify a build from the tarball without cloning. Turn diagrams/gis/cplusplus.py into a deprecation shim aliasing diagrams.gis.cli.Mapnik. The new icon test caught it: resources/gis/cplusplus was never committed alongside the generated module in #847, so gis.cplusplus.Mapnik has always rendered a blank node. docs/nodes/gis.md, generated by the same autogen.sh run, already omits the module and documents Mapnik at diagrams.gis.cli.Mapnik, which has a real icon. |
1 week ago |