Tags: sylam/derivus
Tags
Package correctly for PyPI and add the publish workflow Building the wheel rather than reading setup.py surfaced three defects that would each have shipped broken: - All three console scripts were dead. find_packages() shipped only the derivus package, but the entry points target flat modules beside it, so bootstrap/derivus_batch/derivus_docs were absent from the wheel entirely. Declared them via py_modules. - DV_Docs had no main() to call, only an __main__ block. Extracted one to match derivus_batch/derivus_bootstrap, and rooted it at cwd: installed as a console script the module lives in site-packages, which has no docs_src. - pyparsing (config.py) was undeclared and only arriving as a transitive dependency of matplotlib, which nothing shipped actually imports. Dependencies now state what the package imports. matplotlib moves to [interactive]; python-markdown-math is dropped as stale (it provides mdx_math, referenced nowhere — the generated config uses pymdownx.arithmatex with the material theme) and the real docs toolchain becomes a [docs] extra. Also: rename bootstrap.py -> derivus_bootstrap.py so installing does not drop a generically-named module into site-packages, stop shipping excel_integration as an importable top-level package, and correct the README, which claimed Derivus was not on PyPI and required python >= 3.6 against setup.py's >= 3.8. Version 0.4.2: the previous 0.4.2.alpha normalises to a pre-release, which pip skips unless asked with --pre. Publishing uses OIDC trusted publishing, no stored token. The upload job is separate so it alone holds id-token: write, and is gated on the tag matching derivus/_version.py, the CLI modules being present in the wheel, and twine check --strict. Verified: wheel installed into a clean venv loads all three entry points, imports from a non-repo cwd, and builds docs from a checkout. Suite 570 passed, 3 xfailed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>