There are four major components of Xamarin's platform
product: the Android SDK, the iOS SDK, our Xamarin Studio IDE
and our Visual Studio extension.
In the past, we used to release each component
independently, but last year we realized that developing and
testing each component against the other ones was getting too
expensive, too slow and introduced gratuitous errors.
So we switched to a new style of releases where all the
components ship together at the same time. We call these
We have been tuning the cycle releases. We started with
time-based releases on a monthly basis, with the idea that
any part of the platform that wanted to be released could
catch one of these cycles, or wait for the next cycle if they
did not have anything ready.
While the theory was great, the internal dependencies of
these components was difficult to break, so our cycles started
taking longer and longer.
On top of the cycles, we would always prepare builds for
new versions of Android and iOS, so we could do same-day
releases of the stacks. These are developed against our
current stable cycle release, and shipped when we need to.
We are now switching to feature-based releases. This
means that we are now waiting for features to be stable, with
long preview periods to ensure that no regressions are
Because feature based releases can take as long as it is
needed to ship a feature, we have introduced Service Releases
on top of our cycles.
Our Current Releases
To illustrate this scenario, let me show what our current
platform looks like.
We released our Cycle 5 to coincide with the Build
conference, back in April 29th. This was our last timed
release (we call this C5).
Since then we have shipped three service releases which
contain important bug fixes and minor features (C5-SR1, SR2
and SR3), with a fourth being cooked in the oven right now
During this time, we have issued parallel previews of
Android M and iOS 9 support, those are always built on top of
the latest stable cycle. Our next iOS 9 preview for example,
will be based on the C5-SR4.
We just branched all of our products for the next upgrade
to the platform, Cycle 6.
This is the cycle that is based
4.2.0 and which contains a major upgrade to our Visual
Studio support for iOS and plenty of improvements to Xamarin
Studio. I will cover some of my favorite features in Cycle 6
in future posts.