Skip to content

MIP and PyPI publishing: medialink, sayso and midiports reach users - #106

Merged
bdbarnett merged 2 commits into
mainfrom
laneA-install-dotgithub
Nov 8, 2026
Merged

bdbarnett merged 2 commits into
mainfrom
laneA-install-dotgithub

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Refs PyDevices/pydevices#381 and PyDevices/pydevices#445.

The v0.7.9 MIP publication died at no shared description for own-package 'medialink', so the index still holds v0.7.8 and has no medialink. The applibs profile never listed sayso, so it was missing too. Separately, the sync looked for midiports and the usb-* packages at the repository root, where they no longer are (packages/, packages/usb/), so the next publication would have stopped there. This PR gives medialink its description, adds sayso to applibs, and finds top-level packages in all three places.

It also lets a top-level package ride inside pydevices-desktop on PyPI: a section in mip-split.toml marked pypi-desktop = true has the files its package.json lists copied into the wheel, with any pinned upstream URL fetched, so pip install pydevices-desktop can ship midiports together with adafruit_midi at the tag mip uses (and without Adafruit's Blinka). Both scripts accept the new key.

What I ran: the unit tests (131 pass) and ruff. I ran the MIP sync for pydevices and applibs into a copy of the index repository, built its index, served it, and mip.install of medialink, sayso and midiports worked on the unix port, and import medialink, sayso ran. I built both wheels with the script against the pydevices change that sets the key, and in a clean venv pip install pydevices-desktop gave working import midiports, adafruit_midi and, with the Pillow requirement, jpegio and pngio. Nothing is live until a new publishing-vN tag is cut and the pydevices workflows point at it; I did not tag.

The MIP sync stopped at 'no shared description for own-package medialink',
so the index never gained medialink, and it listed no sayso among the
applibs. It also looked for top-level packages at the repository root, where
midiports and the usb-* packages no longer live (packages/ now). It now
describes medialink, adds sayso, and finds packages under packages/ and
packages/usb/.

pydevices-desktop on PyPI can also carry a top-level package: a section
marked pypi-desktop = true in mip-split.toml has the files its package.json
lists copied in, pinned upstream URLs fetched (adafruit_midi, for
midiports).

Ran: the unit tests; the MIP sync for pydevices and applibs into a copy of
the index repository, built its index, and mip-installed medialink, sayso
and midiports from it on the unix port; built both wheels and installed
pydevices-desktop in a clean venv.
@bdbarnett
bdbarnett merged commit 18a51aa into main Nov 8, 2026
8 checks passed
@bdbarnett
bdbarnett deleted the laneA-install-dotgithub branch November 8, 2026 05:50
bdbarnett added a commit to PyDevices/pydevices that referenced this pull request Nov 8, 2026
…t_midi (#453)

* midiports: pip install pydevices-desktop brings midiports and adafruit_midi

On CPython the only way to get midiports was mip or a hand-copied folder,
and adafruit_midi came from Adafruit's own package, which pulls in Blinka.
midiports is marked pypi-desktop in mip-split.toml, so the release builds
pydevices-desktop with the files packages/midiports/package.json lists:
midiports, and adafruit_midi at the same pinned tag mip uses.

Needs the release tooling that reads the key (PyDevices/.github#106).
Ran: tests/test_mip_split.py, test_libbuild.py, libbuild check; installed
the wheel built from this tree in a clean venv and imported midiports and
adafruit_midi.

* midiports: leave the stack page row to land with its data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant