Releases: thegamecracks/link-python
Release list
v1.3.0a2
This pre-release introduces pre-built wheels for Windows ARM64 and improves the readme with more API documentation. See v1.3.0a1 for significant changes.
By default, pip will not download this release unless you specify the exact version or use the --pre release flag:
pip install LinkPython-extern==1.3.0a2
pip install --pre LinkPython-externFull Changelog: v1.3.0a1...v1.3.0a2
v1.3.0a1
This pre-release introduces significant changes to the build process, including bumping Ableton Link 3.1.5 => 4.0, replacing setuptools with scikit-build-core, and dropping support for Python 3.8.
By default, pip will not download this release unless you opt-in with one of the following:
pip install LinkPython-extern==1.3.0a1
pip install --pre LinkPython-externAs the release of Python 3.15 approaches this year (see Status of Python versions), I want to hold off on publishing the final release of LinkPython-extern v1.3.0 until Python's 3.15 release candidates are available and cibuildwheel / pybind11 adds support for them.
There are no changes to the library's API. Please send in an issue or PR if you would like more of Link's functionality to be exposed! Because honestly, I'm not cut out for this project 😅
Changed
-
Drop support for Python 3.8, inline with cibuildwheel v4.0 dropping support (commit)
In theory, the library could still build for 3.8 as pybind11 hasn't dropped support for it. However, since we can't distribute Python 3.8 wheels as easily, it's safer to raise the minimum Python version. This ensures pip on Python 3.8 will continue to install v1.2.1 from prebuilt wheels instead of trying to compile this library from source.
-
Replace setuptools-scm dynamic versioning with static versioning (commit)
-
Replace setuptools build system with scikit-build-core (commit)
These two changes should make the build process significantly less error-prone to weird issues like failing to copy the resulting library during
pip install ./uv sync, or exceeding MAX_PATH characters (260) on Windows due to long version names. -
Lock dependencies with
uv.lock, for contributors wanting to use Astral uv for development -
Bump pybind11
3.0.1=>3.0.4(bug fixes only, Python 3.15 support is yet to come)
Full Changelog: v1.2.1...v1.3.0a1
v1.2.1
This release bumps Ableton Link 3.1.3 -> 3.1.5 and removes the package's [tests] extra in favour of a dev dependency group (PEP 735).
Contributors that wish to build the package from source and run pytest should now use pip install --group dev ., rather than pip install .[tests]. End users can no longer use pip install LinkPython-extern[tests] to install pytest.
Full Changelog: v1.2.0...v1.2.1
v1.2.0
This release adds support for CPython 3.14, and experimental support for 3.14 free-threaded builds and sub-interpreters. Ableton Link has been upgraded from 3.0.6 -> 3.1.3 and pybind11 from 2.13.6 -> 3.0.1.
Pre-built wheels are available on PyPI and can be installed with pip install LinkPython-extern==1.2.0.
Python 3.7 support has been dropped as pybind11 and cibuildwheel 3.0.0+ no longer support it. If you require this package on Python 3.7, you must install LinkPython-extern==1.1.1.
Full Changelog: v1.1.1...v1.2.0
v1.1.1
This release fixes the project not building on newer versions of CMake by specifying 4.0 as the maximum CMake version in CMakeLists.txt.
Pre-built wheels are available on PyPI and can be installed with pip install LinkPython-extern==1.1.1, which now includes the Linux platforms armv7l, aarch64, ppc64le, and s390x. On Windows, ARM64 remains unsupported.
v1.1.0
This release introduces a few new methods to the API, type stubs to help provide documentation and type-checking, and preliminary support for Python 3.13. Pre-built wheels are available on PyPI and can be installed with pip install LinkPython-extern==1.1.0.
The new methods added are:
SessionState.forceBeatAtTime(beat, time, quantum)SessionState.timeForIsPlaying()SessionState.requestBeatAtStartPlayingTime(beat, quantum)SessionState.setIsPlayingAndRequestBeatAtTime(isPlaying, time, beat, quantum)Link.captureAppSessionState()- Canonical name provided by Link, deprecates
Link.captureSessionState()
- Canonical name provided by Link, deprecates
Link.commitAppSessionState()- Canonical name provided by Link, deprecates
Link.commitSessionState()
- Canonical name provided by Link, deprecates
As a consequence of adding type stubs, the underlying extension module has been renamed to _link.
Python 3.6 support has been dropped due to the new build system configuration. setuptools-scm is now used for versioning.
v1.1.0a1
This pre-release introduces a few new methods to the API along with type stubs to help provide documentation and type-checking. Pre-built wheels are available on PyPI and can be installed with pip install LinkPython-extern==1.1.0a1.
The new methods added are:
SessionState.forceBeatAtTime(beat, time, quantum)SessionState.timeForIsPlaying()SessionState.requestBeatAtStartPlayingTime(beat, quantum)SessionState.setIsPlayingAndRequestBeatAtTime(isPlaying, time, beat, quantum)Link.captureAppSessionState()- Canonical name provided by Link, deprecates
Link.captureSessionState()
- Canonical name provided by Link, deprecates
Link.commitAppSessionState()- Canonical name provided by Link, deprecates
Link.commitSessionState()
- Canonical name provided by Link, deprecates
As a consequence of adding type stubs, the underlying extension module has been renamed to _link.
Python 3.6 support has been dropped due to the new build system configuration. setuptools-scm is now used for versioning.
v1.0.4
This release bumps pybind11 2.10.4 -> 2.11.1, adding support for Python 3.12.
Due to #2, upgrading Link 3.0.6 -> 3.1.0 has been indefinitely postponed until the issue can be resolved.
Full Changelog: v1.0.3...v1.0.4
v1.0.4a1
This release updates pybind11 2.10.4 -> 2.11.1, introducing beta support for Python 3.12. Pre-built wheels are available on PyPI and can be installed using pip install LinkPython-extern==1.0.4a1.
Full Changelog: v1.0.3...v1.0.4a1
v1.0.3
This release updates Link 3.0.5 -> 3.0.6 and pybind11 2.10.1 -> 2.10.4, and also provides prebuilt wheels for Apple Silicon hardware.
Full Changelog: v1.0.2...v1.0.3