Repository navigation
Conversation
mip takes every file from the one index it's given and ignores a package's upstream key, so a package on the OmniPython index can't bring what it needs from micropython-lib. A board with no network can't run omip on itself. mpftp omip NAME does the same walk from the host: ours, then micropython-lib, then whatever the package names under upstream. Everything downloads before the first write. mpftp omip --self copies omip.py on, on CircuitPython too, where named packages stay with circup. mpftp mip means what it meant. Ran cli/tests/test_omip.py, and the command itself against real MicroPython on a pseudo terminal. No real board was run.
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.
mpftp omip NAMEinstalls an OmniPython package and what it needs, from the computer, so the board needs no network. It looks on the OmniPython index, then micropython-lib, then follows the package'supstreamkey to micropython-lib, the same orderomipuses on a board.mpftp omip --selfcopiesomip.pyon, on CircuitPython as well, through the drive when it's mounted. Naming a package on CircuitPython is refused and points atmpftp circup.mpftp mipstill means what it meant, and a test pins that it ignoresupstream.It's a new command because
mipis one index and no more. Everything downloads before the first write, so a package or a file that can't be had leaves the board as it was. The editor and the browser interface still offermipandcircup; that's a roadmap line.To check it,
cli/tests/test_omip.pyruns the real session and mpremote's helpers against real HTTP servers, with a folder standing in for the board. Four planted faults each fail it: upstream ignored, upstream looked up on the wrong index, the lookup order swapped, and writing before the downloads finish. I also ran the command itself on real MicroPython, the unix build answering a small raw REPL on a pseudo terminal, against a local build of the index that carriesupstream, with micropython.org as the real upstream.mpftp omip bledevlanded 15 bledev files and 9 aioble files, andimport aiobleworked with a stand-inbluetoothmodule, which the unix build doesn't have.mpftp mip bledevfrom the same index landed the 15 and no aioble.mpftp omip --selffetched from GitHub andimport omipworked. A missing package exits 1 and names both indexes.Not verified: a real board over USB or Wi-Fi, and CircuitPython beyond the unit tests, which use a temporary folder for the drive and a fake serial transport.