I'd also like to be able to make a 'sdist_pyboard' setuptools extension that automates pushing code to the pyboard in one shot from a python project.
For the next feature, I was thinking of making a micropython-lib installer.
It would be able to install/update specfic modules from micropython-lib directly onto the pyboard, for example:
CODE: SELECT ALL
Would download the appropriate modules from https://github.com/micropython/micropython-lib
, and then transfer them over to the pyboard.
Would anybody actually use this kind of feature?
Before you spend too much time on that, I'd suggest to study "prior art", however little we have of it in that regard. So, how I envisioned deployment process for uPy applications: There're developed on a host machine in comfort. When they're ready to be pushed to target, you run pip-micropython tool in a special mode which creates snapshot of all modules used by an app in a subdir. Then you just copy files to target by whatever means you have/like - be it cp, scp, rsync or whatever. Then you just run with sys.path properly configured. If you need to automate this, shell and make are your best friends.
I made (and announced this on forum) couple of apps made in this vein:
They're made not for pyboard, but for embedded linux systems, but then the only difference is how you transfer files to the target (and well, maybe the way to setup sys.path - on POSIX system, this can be done with MICROPYPATH environment var, on pyboard - in different, perhaps less convenient way, but then it's something to improve for pyboard).
I'm personally very happy with this process. What I'm thinking about further, is how to make PyPI modules installable right on target. I'm not going to port pip to uPy, so it needs to be rewritten from scratch (to do only what's needed to do of course). That's why I'm working on builtin zlib module for uPy (to be able to uncompress tarballs). But then again it's more useful fot bigger systems like Linux, for pyboard, the process above should be good enough - the only thing to elaborate and optimize is means to transfer files to pyboard.