Skip to content

chore/repo housekeeping - #2

Merged
dimitri-yatsenko merged 9 commits into
datajoint:mainfrom
d-v-b:chore/repo-housekeeping
Jan 30, 2026
Merged

dimitri-yatsenko merged 9 commits into
datajoint:mainfrom
d-v-b:chore/repo-housekeeping

Conversation

@d-v-b

@d-v-b d-v-b commented Jan 30, 2026

Copy link
Copy Markdown
Contributor

Organizes package according to best practices recommended by https://learn.scientific-python.org/development/guides/packaging-simple/

and adds simple docs

@dimitri-yatsenko dimitri-yatsenko left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Approved ✅

Comprehensive modernization following scientific-python best practices. Well done!

Summary of Changes

Build & Packaging:

  • ✅ Dynamic versioning via hatch-vcs (replaces hardcoded __version__)
  • ✅ Modern pyproject.toml configuration
  • ✅ noxfile.py for task automation (lint, test, docs, build)

CI/CD:

  • ✅ New ci.yml with multi-OS (ubuntu, windows, macos), multi-Python (3.10-3.14) matrix
  • ✅ New cd.yml for PyPI publishing with attestation
  • ✅ Dependabot for automated dependency updates
  • ✅ Concurrency controls to cancel stale runs

Code Quality:

  • ✅ Comprehensive pre-commit config (ruff, mypy, codespell, prettier, blacken-docs)
  • ✅ py.typed marker for PEP 561 compliance
  • ✅ Type annotations added throughout

Code Fixes:

  • ✅ zarr.open() → zarr.open_array() (correct API for arrays)
  • ✅ Fixed logging format strings (%s instead of f-strings)
  • ✅ Reproducible tests with rng = np.random.default_rng(42)
  • ✅ Docker availability check in conftest.py

Documentation:

  • ✅ MkDocs setup with material theme
  • ✅ Comprehensive usage examples in docs/index.md
  • ✅ CONTRIBUTING.md guide

Minor Notes

  1. Python 3.14 in CI matrix - Not released yet; CI may fail until it's available. Consider using 3.13 until 3.14 is released, or add allow-prereleases: true (which is already there, so should be fine).

  2. Test PyPI in cd.yml - Line 60 has repository-url: https://test.pypi.org/legacy/ with comment "Remove this line to publish to PyPI". Make sure to update before first production release.

LGTM! 🚀

@dimitri-yatsenko
dimitri-yatsenko merged commit 9ba1988 into datajoint:main Jan 30, 2026
11 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