# Getting to 1.0

## Introduction

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.

## Process

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.

## Requirements for 0.99

- Clean up connectors.
- New UDP API. [Possibly this will be done post-1.0]
- Make necessary changes to Application - whatever changes glyph wanted to make with authorizers and services.
- Finalize Deferred APIs. [Done, I think - glyph?]
- Low-level socket APIs - people want to turn off Nagle's algorithm and set other settings on sockets that are currently not supported. we need to formalize a method for this. [Can be done post-1.0, Nagle will be checked in right after 0.19.0]
- Support binding client sockets to specific interfaces.

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.

## Requirements for 1.0

These are non-API-related changes that need to be made before 1.0 is released.

- Move all bin/ scripts to twisted/scripts.