Conversation
A mip-split.toml section can now say own-package = true: that lib/
package leaves the pydevices MIP package and publishes beside it, with
its requires as require() lines. PyPI is unchanged except that a
section's pypi-extras become optional dependencies of the pydevices
wheel. bledev is the first user (pydevices docs/ble.md section 3):
mip.install("bledev") brings aioble, and pip install "pydevices[ble]"
brings bleak. Unknown section keys now fail the sync.
Checked end to end: the sync against the bledev branch, the index build
with those manifests, and a mip install of bledev from that index on an
ESP32-S3, which installed bledev and aioble and imported.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This teaches the pydevices publisher two
mip-split.tomlkeys that bledev needs (pydevices workspace docs/ble.md §3):own-package = truemoves alib/package out of thepydevicesMIP package. It publishes beside it asmicropython/pydevices/<name>, and itsrequiresbecomerequire()lines. bledev uses it so a board without a radio doesn't carry BLE, and somip.install("bledev")brings aioble with it.pypi-extrasadds optional dependencies to thepydeviceswheel. bledev's{ ble = ["bleak>=1.0"] }becomespip install "pydevices[ble]". bledev itself stays inside the wheel.An unknown key in a section now fails the sync. So does
requireswithoutown-package, because a package inside pydevices has no manifest to put them in. Without the flag, nothing changes: the tests include that control.Checked end to end: I ran the sync against PyDevices/pydevices#78, built the MIP index from its output with
tools/build.py, and installedbledevfrom that index onto an ESP32-S3. The install brought/lib/bledevand/lib/aioble, and both imported.tests/passes (42), 7 of them new.To take effect: after the merge, this needs a new
publishing-v*tag, andpydevices/.github/workflows/publish-release-packages.ymlneeds its pin moved to that tag. Until then pydevices keeps shipping bledev insidepydevices.