Backwards-incompatible changes - SUBSCRIBE TO THIS THREAD if you use trio! · Issue #1 · python-trio/trio (original) (raw)
Stability is great for users! It lets them focus on solving their problem without worrying about their platform shifting under their feet. But stability is also bad for users! It means that anywhere an API is error-prone or hard to use or missing important functionality, they're stuck with it. Making the optimal trade-off here is tricky and context-dependent.
Trio is a very young project, that contains lots of new ideas, and that doesn't have much code built on top of it yet. So as we build things with it we'll probably discover places where the API is less awesome than desired, and for now we'll be relatively aggressive about fixing them. Hopefully we won't discover any real stinkers, but you never know. Then over time we'll gradually transition over to become more stable as we flush out the bad stuff and get more users.
This means that if you're an early adopter of Trio, it'd be good to have some strategy to make this as painless as possible. Our suggestions:
- Pin your version. For example, in your
install_requires=
orrequirements.txt
, do not write:trio >= 0.1.0
. Instead, write:trio ~= 0.1.0
.- You can also use
==
if you prefer. The difference is that while both== 0.1.0
and~= 0.1.0
will disallow upgrading to0.2.0
,~=
allows upgrading to0.1.1
but== 0.1.0
does not. Our intention is that0.x.y
and0.x.(y+1)
will be backwards compatible.
- You can also use
- Please do report back on how trio is working out for you, e.g. by posting a comment on this issue.
- Especially any rough spots you ran into where the API wasn't as helpful as it could be.
- Especially if you didn't run into any rough spots, because that information is incredibly valuable in helping us decide when to declare things stable!
- Subscribe to this issue (for example, by pressing the little "Subscribe" button in the right column →). We'll bring up backwards-incompatible changes here before we make them, so this will give you fair warning and a chance to give feedback.