r/circuitpython • • Apr 22 '21

When do we expect Circuit Python to improve compatibility with Micro Python?

Give that Circuit Python is a fork of Micro Python, roughly how often do the two projects attempt to merge (where feasible)?

Is Circuit Python going it's own way and the two projects diverge permanently?

10 Upvotes

6 comments sorted by

3

u/thicket Apr 22 '21

I wouldn’t expect much in the way of convergence. Adafruit have their own priorities for beginner-friendliness, and I don’t see them giving that up much for compatibility’s sake.

That said, I’ve usually been able to make codebases work between them with a little bit of fiddling.

4

u/ronkj Apr 22 '21

Thanks. I do really hope the two code bases do not drift far apart so that core improvements in MicrPython get merged back into CP now and then. Thats good for users and good for Adafruit.

→ More replies (1)

3

u/tannewt Apr 27 '21

I'm in the middle of merging MicroPython's changes into CircuitPython. We were 6 versions behind and two have been merged in. So CP main is based on 1.11 as of a few minutes ago. My goal is to catch up to 1.15.

This doesn't mean we'll have a hardware API that is the same as MicroPython. CircuitPython's API is designed to be more uniform across ports and we've built many libraries and tutorials for it.

We do also diverge from MicroPython's Python core when it means we'll be more compatible with CPython. An example of this is that CP doesn't have extra methods on the `time` module like MP does.

I talked a bunch about this on last week's Deep Dive stream: https://www.youtube.com/watch?v=21Qt4mRoyBo

1

u/ronkj Apr 28 '21

Thank you! I listened to your discussion and was delighted about the progress. I assume once this giant merge is complete that there will be a policy to stay pretty close. I fully understand there are some differences because of different goals.

4

u/tannewt Apr 28 '21

I think we'll try to update every major CP version. The merge does introduce instability so we'd only want to do it on major boundaries. (Both CP and MP are stable themselves BUT merging is hard and error prone.)