Skip to content

Finalize version 1.0.0 - #19

Merged
OVVO-Financial merged 4 commits into
mainfrom
claude/intelligent-johnson-6ctwxv
Jun 14, 2026
Merged

Finalize version 1.0.0#19
OVVO-Financial merged 4 commits into
mainfrom
claude/intelligent-johnson-6ctwxv

Conversation

@OVVO-Financial

Copy link
Copy Markdown
Owner

What

Finalizes the release version for the first real PyPI publish:

  • pyproject.toml: version 1.0.0a01.0.0; classifier Development Status :: 3 - Alpha5 - Production/Stable.
  • src/nns/__init__.py: bump hardcoded __version__ to 1.0.0 (it had drifted — nothing enforced parity).
  • Add tests/tools/test_version_sync.py to assert nns.__version__ equals pyproject [project].version, so they can't silently diverge again.

Validation

After merge, the real release is one tag away: git tag v1.0.0 && git push origin v1.0.0 (once the pypi.org Trusted Publisher + pypi environment exist).

https://claude.ai/code/session_012bjk4Y5eT1Sva8tNJjqUSw


Generated by Claude Code

claude added 4 commits June 14, 2026 14:29
cibuildwheel defaults the x86_64 macOS deployment target to 10.9, but
nanobind's C++17 runtime uses aligned new/delete which requires macOS
10.13+. Every macOS wheel job failed to compile nanobind (nb_type.cpp:
'aligned deallocation function ... only available on macOS 10.13 or
newer'). Pin the deployment target to 10.14 for the macOS builds.
cibuildwheel's default Linux image is manylinux2014 (glibc 2.17), but
numpy/scipy only publish manylinux_2_27/_2_28 wheels. In the glibc 2.17
test container those wheels are incompatible, so pip falls back to
compiling scipy from source, which needs OpenBLAS/Fortran that aren't
present, and the wheel smoke-test fails. Our runtime deps already require
glibc >= 2.27, so manylinux2014 wheels were never installable anyway.

Build and test the x86_64 Linux wheels on manylinux_2_28 to match the
dependencies' wheel floor. musllinux_1_2 (the cibuildwheel default) is
pinned explicitly; it already has matching numpy/scipy wheels.
Resolve the two placeholder SHAs in sync/nns_source.json by matching the
vendored bytes to upstream history:

- r_commit 905b8bbd: the OVVO-Financial/NNS commit that introduced the
  exact vendored tools/NNS_13.0.tar.gz blob (parent carried a different
  tarball). Version 13.0 / Date 2026-06-10, Packaged 2026-06-11 03:14 UTC.
- core_commit 7f93df9d: the OVVO-Financial/NNS-core commit that authored
  the exact vendored extern/NNS-core include/src/CMakeLists objects (its
  parent had different include/src). A later commit carries the identical
  core forward unchanged.

The release provenance gate now passes for a real tagged release.

test_unknown_provenance_fails_real_release previously ran the gate against
the committed manifest and relied on it carrying placeholder provenance.
Point it at a fixture manifest so it tests the unknown-provenance failure
behavior without depending on the real manifest being unfilled.
Drop the pre-release suffix (1.0.0a0 -> 1.0.0) and update the trove
classifier from Development Status :: 3 - Alpha to 5 - Production/Stable.

Bump the hardcoded nns.__version__ to match; nothing enforced parity
between it and pyproject before, so add tests/tools/test_version_sync.py
to assert nns.__version__ equals the pyproject project.version.

twine check --strict passes on the 1.0.0 sdist.
@OVVO-Financial
OVVO-Financial merged commit a129c7b into main Jun 14, 2026
4 checks passed
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.

2 participants