Twisted 1.0 is not going to be stable. What is going to be stable are specific APIs, namely twisted.internet. Other parts of Twisted are still too immature to be considered stable, and will be worked on in later versions.
The goal of this release, then, is to have twisted.internet
in a state where it is a
suitable replacement for asyncore/Medusa. That means it should
be stable API-wise, have as many tests as we can possibly write
for it, and be well documented.
We will, as soon as the twisted.internet
APIs are stable, switch
to version 0.99.0. At this point, our goal is to document,
write tests and fix bugs in twisted.internet
- all changes must API
compatible from this point onwards.
Changes to other parts of Twisted are acceptable, as long as they follow are usual policies.
1.0 will be released when we feel that the level of bugs is sufficiently low, and the amount of documentation and unit tests is sufficiently high.
I don't think we need to mark all modules for API stability level. I think we only need to mark modules that *are* stable, if they're not stable, "semi-stable" isn't useful, since we may yet think of some major changes that will make it less stable.
So, another requirement is marking all modules whose API is stable as such, the rest of the modules can be left unmarked.
These are non-API-related changes that need to be made before 1.0 is released.