python-trio / python-trio/trio
Backwards-incompatible changes - SUBSCRIBE TO THIS THREAD if you use trio!
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.3k
- Forks
- 431
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 6
Description
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.0and~= 0.1.0will disallow upgrading to0.2.0,~=allows upgrading to0.1.1but== 0.1.0does not. Our intention is that0.x.yand0.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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the issue body and its comment thread. The payload names no files, tests, or implementation entry points, and it defines no concrete change or acceptance criteria; it is a long-running announcement and feedback thread rather than a self-contained contribution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 10/100