mirror of
https://git.pumpin.online/funkpower/typikon.git
synced 2026-10-22 18:57:13 +00:00
An adversarial review of the release, and four of its findings were things
PyPI never lets you replace once uploaded.
- rust-version said 1.74. clap has needed 1.85 since 4.6, and cargo
hard-errors rather than warning, so the sdist advertised a floor it could
not build on. docs/releasing.md sends macOS and Windows users to that
sdist.
- The wheel was classified Development Status :: 4 - Beta on a release the
changelog calls stable, with none of the Python version classifiers PyPI
indexes on.
- Six README links were relative. PyPI resolves them against the project
page, so every one 404'd there, as they do on the live 0.2.0 page now.
- in that order packs the wheel into the
sdist. The tarball on disk was 431KB with an x86-64 binary inside it.
Also: twine upload gains --skip-existing, so a retry after a partial upload
finishes rather than dying on a version that cannot be reused; twine check
gains the renderer that makes it parse the description at all, without which
it returns None and reports PASSED; and the README no longer claims a
twenty-year sweep the test did not run, because 366 * 21 / 4 is five years.
The test now runs the twenty-one it was named for.
The crates.io name belongs to an unrelated project, which the README now says
rather than leaving a reader to find out from cargo.
53 lines
2.0 KiB
TOML
53 lines
2.0 KiB
TOML
[build-system]
|
|
requires = ["maturin>=1.9,<2.0"]
|
|
build-backend = "maturin"
|
|
|
|
[project]
|
|
name = "typikon"
|
|
description = "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched"
|
|
readme = "README.md"
|
|
license = "GPL-2.0-only"
|
|
license-files = ["LICENSE"]
|
|
requires-python = ">=3.9"
|
|
keywords = ["orthodox", "liturgical", "calendar", "byzantine", "pascha", "fasting"]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Environment :: Console",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: End Users/Desktop",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
"Programming Language :: Rust",
|
|
"Topic :: Religion",
|
|
"Topic :: Software Development :: Libraries",
|
|
"Typing :: Typed",
|
|
]
|
|
# maturin takes it from Cargo.toml, so there is one place to bump.
|
|
dynamic = ["version"]
|
|
|
|
[project.urls]
|
|
Homepage = "https://git.pumpin.online/funkpower/typikon"
|
|
Repository = "https://git.pumpin.online/funkpower/typikon"
|
|
Changelog = "https://git.pumpin.online/funkpower/typikon/src/branch/main/CHANGELOG.md"
|
|
Documentation = "https://git.pumpin.online/funkpower/typikon/src/branch/main/docs/calendars.md"
|
|
Issues = "https://git.pumpin.online/funkpower/typikon/issues"
|
|
|
|
[tool.maturin]
|
|
bindings = "pyo3"
|
|
module-name = "typikon._typikon"
|
|
# Mixed layout: the compiled module is private and python/typikon wraps it, which
|
|
# is what lets the wheel carry py.typed and a stub file. A bare extension module
|
|
# has nowhere to put either.
|
|
python-source = "python"
|
|
# The crate also builds a CLI, and the pyo3 dependency is optional so that
|
|
# `cargo build` of it does not try to link against a Python that is not there.
|
|
# This is the only place the feature gets turned on.
|
|
features = ["python"]
|
|
strip = true
|