Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 3 additions & 42 deletions .github/workflows/pr_to_master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest]
steps:

- uses: actions/checkout@v4
Expand All @@ -50,58 +50,19 @@ jobs:
- uses: ilammy/msvc-dev-cmd@v1
if: matrix.os == 'windows-latest'

- name: Install Python
uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
pypy3.9
pypy3.10

- name: Build wheels
uses: pypa/cibuildwheel@v2.16
uses: pypa/cibuildwheel@v2.22
env:
# Skip trying to test arm64 builds on Intel Macs
CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64"

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: bdist-${{ matrix.os }}
path: wheelhouse/*.whl
compression-level: 0

build_arch_wheels:
name: Build wheels on Linux ${{ matrix.arch }}
runs-on: ubuntu-20.04
strategy:
matrix:
arch: [aarch64]
steps:

- uses: actions/checkout@v4
with:
submodules: true

- uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS: ${{ matrix.arch }}

- name: Verify clean directory
run: git diff --exit-code
shell: bash

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: bdist-linux-${{ matrix.arch }}
name: bdist-${{ matrix.os }}
path: wheelhouse/*.whl
compression-level: 0
45 changes: 3 additions & 42 deletions .github/workflows/push_to_master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest]
steps:

- uses: actions/checkout@v4
Expand All @@ -50,59 +50,20 @@ jobs:
- uses: ilammy/msvc-dev-cmd@v1
if: matrix.os == 'windows-latest'

- name: Install Python
uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
pypy3.9
pypy3.10

- name: Build wheels
uses: pypa/cibuildwheel@v2.16
uses: pypa/cibuildwheel@v2.22
env:
# Skip trying to test arm64 builds on Intel Macs
CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64"

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: bdist-${{ matrix.os }}
path: wheelhouse/*.whl
compression-level: 0

build_arch_wheels:
name: Build wheels on Linux ${{ matrix.arch }}
runs-on: ubuntu-20.04
strategy:
matrix:
arch: [aarch64]
steps:

- uses: actions/checkout@v4
with:
submodules: true

- uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS: ${{ matrix.arch }}

- name: Verify clean directory
run: git diff --exit-code
shell: bash

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: bdist-linux-${{ matrix.arch }}
name: bdist-${{ matrix.os }}
path: wheelhouse/*.whl
compression-level: 0

Expand Down
45 changes: 3 additions & 42 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest]
steps:

- uses: actions/checkout@v
Expand All @@ -53,59 +53,20 @@ jobs:
- uses: ilammy/msvc-dev-cmd@v1
if: matrix.os == 'windows-latest'

- name: Install Python
uses: actions/setup-python@v5
with:
python-version: |
3.9
3.10
3.11
3.12
pypy3.9
pypy3.10

- name: Build wheels
uses: pypa/cibuildwheel@v2.16
uses: pypa/cibuildwheel@v2.22
env:
# Skip trying to test arm64 builds on Intel Macs
CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64"

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: bdist-${{ matrix.os }}
path: wheelhouse/*.whl
compression-level: 0

build_arch_wheels:
name: Build wheels on Linux ${{ matrix.arch }}
runs-on: ubuntu-20.04
strategy:
matrix:
arch: [aarch64]
steps:

- uses: actions/checkout@v4
with:
submodules: true

- uses: docker/setup-qemu-action@v3
with:
platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS: ${{ matrix.arch }}

- name: Verify clean directory
run: git diff --exit-code
shell: bash

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: bdist-linux-${{ matrix.arch }}
name: bdist-${{ matrix.os }}
path: wheelhouse/*.whl
compression-level: 0

Expand Down
6 changes: 3 additions & 3 deletions INSTALL-windows.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# How to install python-rtmidi from source on Windows

These instructions should work for installing `python-rtmidi` from source with
Python 3.8+ in the 64-bit or 32-bit versions (you can run the latter on Windows
Python 3.9+ in the 64-bit or 32-bit versions (you can run the latter on Windows
64-bit versions with no problems).

Please follow all the steps below in the exact order.
Expand All @@ -10,8 +10,8 @@ Please follow all the steps below in the exact order.

You probably need administrator rights for some or all of the following steps.

1. Install the latest release of Python (3.12 at the time of writing, at least
3.8+) from <https://www.python.org/downloads/windows/> to the default
1. Install the latest release of Python (3.13 at the time of writing, at least
3.9+) from <https://www.python.org/downloads/windows/> to the default
location (e.g. `C:\Python312`). You can install either or both the 32-bit
and the 64-bit version.

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Windows (MultiMedia System) operating systems.
provides a thin wrapper around the RtMidi C++ interface. The API is basically
the same as the C++ one but with the naming scheme of classes, methods and
parameters adapted to the Python PEP-8 conventions and requirements of the
Python package naming structure. **python-rtmidi** supports Python 3 (3.8+).
Python package naming structure. **python-rtmidi** supports Python 3 (3.9+).

The [documentation] provides installation instructions, a history of changes
per release and an API reference.
Expand Down
13 changes: 7 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ classifiers = [
"Operating System :: MacOS :: MacOS X",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Multimedia :: Sound/Audio :: MIDI",
"Topic :: Software Development :: Libraries :: Python Modules",
]
Expand Down Expand Up @@ -63,11 +63,11 @@ file = "LICENSE.md"
[tool.black]
line-length = 99
target-version = [
"py38",
"py39",
"py310",
"py311",
"py312",
"py313",
]

[tool.isort]
Expand Down Expand Up @@ -96,10 +96,11 @@ manylinux-aarch64-image = "manylinux_2_28"
test-requires = "pytest"
test-command = "pytest -v -m ci {package}/tests"

# Install system library
[tool.cibuildwheel.linux]
build = ["cp3{9,10,11,12}-manylinux*", "pp3{9,10}-manylinux*"]
build = ["cp3{9,10,11,12,13}-manylinux*", "pp3{9,10,11}-manylinux*"]
archs = ["auto64"]
enable = ["pypy"]
# Install system libraries
before-all = [
"dnf -y install alsa-lib-devel alsa-utils",
"curl -o jack2-1.9.22.tar.gz https://codeload.github.com/jackaudio/jack2/tar.gz/refs/tags/v1.9.22",
Expand All @@ -112,9 +113,9 @@ before-all = [
repair-wheel-command = "auditwheel repair --exclude libasound.so.2 --lib-sdir . -w {dest_dir} {wheel}"

[tool.cibuildwheel.macos]
build = "cp3{9,10,11,12}-macosx*"
build = "cp3{9,10,11,12,13}-macosx*"
archs = ["x86_64", "arm64"]

[tool.cibuildwheel.windows]
build = "cp3{9,10,11,12}-win*"
build = "cp3{9,10,11,12,13}-win*"
archs = ["AMD64"]
2 changes: 1 addition & 1 deletion src/_rtmidi.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ and Windows (MultiMedia System) operating systems.
provides a thin wrapper around the RtMidi C++ interface. The API is basically
the same as the C++ one but with the naming scheme of classes, methods and
parameters adapted to the Python PEP-8 conventions and requirements of the
Python package naming structure. **python-rtmidi** supports Python 3 (3.8+).
Python package naming structure. **python-rtmidi** supports Python 3 (3.9+).


Usage example
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = flake8, py38, py39, py310, py311, py312
envlist = flake8, py39, py310, py311, py312, py313
skip_missing_interpreters = True
isolated_build = True

Expand Down