Skip to content

Add PyPI distribution infrastructure (pydqm)#19

Merged
zanderteller merged 10 commits into
mainfrom
feature/pip-install
Jan 30, 2026
Merged

Add PyPI distribution infrastructure (pydqm)#19
zanderteller merged 10 commits into
mainfrom
feature/pip-install

Conversation

@zanderteller

Copy link
Copy Markdown
Owner

Summary

Enable standard pip install pydqm via PyPI with pre-built binary wheels.

Changes

  • Build system: Add scikit-build-core + CMake for C++ compilation during pip install
  • CI/CD: GitHub Actions workflows for building wheels (cibuildwheel) and publishing to PyPI
  • Package name: pydqm on PyPI (imports as dqm) - the name dqm was already taken
  • Supported platforms: Linux x86_64, macOS Apple Silicon (arm64)
  • Python versions: 3.10, 3.11, 3.12, 3.13

Files

  • cpp/CMakeLists.txt - CMake build configuration
  • pyproject.toml - scikit-build-core backend, PyPI metadata
  • cpp/Makefile - Updated to auto-detect Homebrew libomp on macOS
  • .github/workflows/build-wheels.yml - cibuildwheel CI
  • .github/workflows/publish.yml - PyPI trusted publishing
  • docs/installation.rst - Rewritten for pip install
  • README.rst - Added installation section
  • dqm/__init__.py - Added __version__
  • .gitignore - Added dist/

Notes

  • macOS users need brew install libomp (OpenMP not bundled in wheel)
  • Intel Mac and Windows users can build from source (documented)
  • After merge, create release v0.1.0 to trigger PyPI publish

Test plan

  • Local wheel build and install works
  • CI builds pass (Linux + macOS)
  • All 24 unit tests pass on CI
  • Manual test of downloaded wheel

🤖 Generated with Claude Code

zanderteller and others added 10 commits January 29, 2026 08:47
- add scikit-build-core build system with CMake for C++ compilation
- add GitHub Actions workflows for building wheels (cibuildwheel)
- update Makefile to auto-detect Homebrew libomp on macOS
- rewrite installation docs for pip install
- package name is 'pydqm' on PyPI, imports as 'dqm'

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- add workflow_call trigger to build-wheels.yml for reusability
- add TestPyPI publishing option with manual trigger
- fix package name in test install (dqm -> pydqm)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- remove macos-13 (retired), use macos-latest only
- remove CIBW_BEFORE_ALL_LINUX (libgomp already available)
- fix macOS delocate to exclude libomp.dylib
- bump macOS deployment target to 11.0 (required for arm64)
- drop Python 3.9, add Python 3.13
- update pyproject.toml to match

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- add libomp install step to Standard Installation for macOS
- update Python requirement to 3.10
- improve troubleshooting for libomp errors
- note that keg-only warning is expected

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- add __version__ to dqm package via importlib.metadata
- add Python 3.13 to pyproject.toml classifiers
- update build-wheels.yml comment about Python versions
- add TODO comment to TestPyPI job
- simplify version check in installation docs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@zanderteller zanderteller merged commit 3c0b9d3 into main Jan 30, 2026
11 checks passed
@zanderteller zanderteller deleted the feature/pip-install branch January 30, 2026 05:09
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