We just went through all of this back with Cupcake/Android 1.5 a few months ago, but since some people seem to be screwing it up again, let’s take this once more, from the top, with feeling:
Tasty treats are not releases. Donut is not Android 2.0.
Donut is what software developers refer to as a “development branch”. It is a place where candidate features — ones that pass some basic muster — get blended together, along with submitted patches, for integration testing and other forms of quality assurance.
With Android, this is even more complicated, due to the fact that only some things are developed in the open source repository. Jean-Baptiste Queru (JBQ) is busily migrating code from the internal Google repository into the public one in the donut branch.
Regardless, Donut represents a bucket of code, with new capabilities beyond previous releases. However, not everything in Donut will ship in the next Android upgrade, whether that be “2.0” or “1.6” or “5000” or “System V” or whatever. Some things will be held back because they do not pass testing and QA, or because something they depend on will be held back, or any of a thousand other reasons.
Donut is in the open source repository specifically so that contributors, like Al Sutton, can do builds, create test SDKs, and otherwise help push Android forward. It is also for OEMs to use for integration testing with their own drivers, custom software, and other technology that make up their devices.
It is not a promise of immediate functionality.
So, when you see lists of features found in Donut, the most you can say is that they are things being worked on by the core Android team, OEMs, and the public. You cannot be certain that they will make it into the next Android upgrade, or the one after that. Some features will, some won’t. This is perfectly normal for a project of Android’s size and happens to all sorts of projects, open source and otherwise.
My request to Android bloggers and the media: please represent Donut properly. It is not a release. Everything found when you build any given revision off the Donut branch may not be in the next Android release. If you convince the public that, say, Android 2.0 has multi-touch, and it turns out that may be incorrect, all you do is anger Android users and therefore harm the Android project. Just represent Donut, Eclair, Flan, and the like as what they are: works in progress.
In other words, take tasty treats with a grain of salt.