Skip to content

Bump version: 1.1.4 -> 1.2.0 - #35

Merged
gouwens merged 1 commit into
mainfrom
worktree-release-1.2.0
Aug 31, 2026
Merged

gouwens merged 1 commit into
mainfrom
worktree-release-1.2.0

Conversation

@gouwens

@gouwens gouwens commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Prepares the v1.2.0 release. Version is bumped in pyproject.toml (the only place it
lives, since .bumpversion.cfg was removed in the uv conversion) and uv.lock is
relocked to match.

A minor bump rather than a patch: several fixes since v1.1.4 change results, not just
internals, so downstream analysis code should not pick this up silently from a ~=1.1.0
pin.

Results that change

Silent-wrong behaviour now raises

  • Invalid kind or scale raises ValueError instead of returning zeros or hitting
    UnboundLocalError (Unrecognised arguments fail silently or obscurely #21).
  • An unordered lookup column raises ValueError naming the first out-of-order entry,
    rather than letting searchsorted return wrong voxels.

Other fixes

Performance

  • _matching_voxel_indices resolves membership from the binary search instead of a
    full-column scan, and the ordering check is memoised per array — this was 12.5 s per
    coordinate against the 61.9M-row closest_surface_voxel_lookup.h5.

Packaging and tests

  • Project converted to uv (uv_build backend); packaging regressions from that
    conversion fixed, documentation URL added to project metadata.
  • Test suite added: mini-CCF fixtures build a ~20 KB structurally faithful atlas, so
    the projector classes are testable without the multi-hundred-MB assets. CI gates PRs
    on x86-64 and ARM64 across Python 3.9 and 3.13. An opt-in real_data tier asserts
    the fixture's format claims against the real files.

Verification

  • uv run pytest: 366 passed, 36 skipped (the skips are the opt-in real_data tier).
  • python -m build produces ccf_streamlines-1.2.0.tar.gz and the matching wheel;
    installed into a clean environment, all nine modules import and __version__
    reports 1.2.0.

Merging this and publishing a v1.2.0 GitHub release triggers python-publish.yml,
which builds and uploads to PyPI via trusted publishing.

🤖 Generated with Claude Code

A minor bump rather than a patch: several fixes since v1.1.4 change
results, not just internals. Right-hemisphere queries move by one voxel
in both IsocortexCoordinateProjector and angle.find_closest_streamline,
project_volume no longer writes its sentinel into the caller's array,
and an invalid `kind`/`scale` or an unordered lookup column now raises
ValueError where it used to return zeros or the wrong voxels.

.bumpversion.cfg went away in the uv conversion, so pyproject.toml is
edited by hand and uv.lock relocked to match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gouwens
gouwens merged commit 4b7a133 into main Aug 31, 2026
4 checks passed
@gouwens
gouwens deleted the worktree-release-1.2.0 branch August 31, 2026 22:50
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