Skip to content

build: prepare the 0.3.0 release - #29

Merged
JesperDramsch merged 5 commits into
mainfrom
build/release-0.3.0
Oct 12, 2026
Merged

JesperDramsch merged 5 commits into
mainfrom
build/release-0.3.0

Conversation

@JesperDramsch

@JesperDramsch JesperDramsch commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Everything 0.3.0 needs apart from the release itself. Five commits:

  1. build:
    • requires-python >=3.11, tensorflow>=2.15, numpy.
    • Drops scipy and scikit-learn, which nothing imports.
    • Python classifiers become 3.11 to 3.13.
    • The README becomes the PyPI description (readme = "README.md").
    • Removes requirements.txt, which duplicated the dependencies and is no longer used.
  2. ci: trusted publishing.
    • publish.yml uses the PyPI environment and id-token: write, matching the trusted publisher on pypi.org, instead of the 2022 API token.
    • It now runs only when a GitHub release is published; workflow_dispatch is gone, so no branch can be uploaded by hand.
  3. ci: package check. A new job builds the sdist and wheel, runs twine check --strict, and installs the wheel with current pip. 0.2.3's invalid metadata is what makes pip 24.1 and later skip it; this job would have caught that.
  4. docs: CITATION.cff. It now validates against CFF 1.2.0; before, cffconvert rejected it.
    • The article details move into preferred-citation (journal, volume, article number and year, all matching Crossref).
    • ORCIDs become URLs, and DOIs lose the resolver prefix.
  5. docs: README.
    • The interim Keras 3 note is replaced by the current status, with no version numbers that would go stale.
    • Requirements are updated, and the old "very much in Alpha" sentences are removed.
    • Components that still fail are listed, each checked today on Keras 3 (TensorFlow 2.21) and Keras 2 (TensorFlow 2.15.1). norm.LayerNormalization works on both now, so it isn't listed.

Verification

  • CI on this PR: all green.
    • Keras 3 on Python 3.11 to 3.13 and both Keras 2 jobs: 18 passed each.
    • lint and pre-commit.ci pass.
    • package: twine PASSED for wheel and sdist, and pip 26.2.1 installed the wheel with its dependencies.
  • Local: validate-pyproject and cffconvert --validate pass; 18 tests pass on Keras 3; pre-commit hooks clean.

After merging

  1. I draft the v0.3.0 release; you click Publish. The tag gives version 0.3.0 through setuptools-scm, and the publish job uploads it.
  2. Once 0.3.0 is on PyPI, the repository secrets PYPI_API_TOKEN, PYPI_USERNAME and PYPI_PASSWORD can be deleted. Password uploads have been refused by PyPI since 2023.

Still open for the classifier: it says Development Status :: 3 - Alpha. I left it, since several modules don't work; change it if you see it differently.

scipy and scikit-learn are not imported anywhere. requirements.txt duplicated the dependency list and is no longer used by CI. The README is now the PyPI description.
Uses the PyPI environment and an OIDC token instead of the stored API token, and publishes only from a published GitHub release.
Moves the article details into preferred-citation, writes ORCIDs as URLs and DOIs without the resolver prefix. The paper metadata matches Crossref.
Replaces the interim Keras 3 note with the current status and requirements, and lists the components that still fail, each checked on Keras 3 and Keras 2.
@JesperDramsch
JesperDramsch merged commit 335e473 into main Oct 12, 2026
8 checks passed
@JesperDramsch
JesperDramsch deleted the build/release-0.3.0 branch October 12, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant