Thank you for your interest in contributing! This is a macOS-focused community fork of the official dmPython driver. Contributions that improve macOS support, the Go DPI bridge, CI, and documentation are especially welcome.
This fork focuses on:
- macOS ARM64 support via the Go-based DPI bridge
- CI/CD for building and releasing macOS wheels
- Documentation and packaging improvements
For issues with the core dmPython C code or other platforms, please consider reporting them to the upstream project.
- Go 1.21+ — for building the DPI bridge (
dpi_bridge/) - Python 3.9 – 3.13 — any supported version
- DPI header files — obtain from a Dameng database installation and place in
./dpi_include/
# Clone your fork
git clone https://github.com/<your-username>/dmPython.git
cd dmPython
# Build the Go bridge + C extension
python setup.py build_ext --inplace
# Or build a wheel
pip install build
python -m build --wheel# Verify the extension loads
python -c "import dmPython; print(dmPython.version)"- Fork the repository and create a feature branch from
main. - Make your changes with clear, focused commits.
- Ensure the project builds successfully.
- Open a pull request against
mainwith a clear description of the change.
- C code: Follow the existing style in the repository. No reformatting of unchanged code.
- Go code (
dpi_bridge/): Usegofmt. - Python code: Follow PEP 8.
When reporting a bug, please include:
- macOS version and architecture (
uname -m) - Python version (
python --version) - dmPython version (
python -c "import dmPython; print(dmPython.version)") - Dameng database version (if applicable)
- Steps to reproduce the issue
By contributing, you agree that your contributions will be licensed under the Mulan PSL v2.