Win2D is rapidly approaching a V1 release – just a few loose ends to tidy up first.
In some ways “release” doesn’t mean much for an agile project like this, where we’ve been shipping new versions roughly every two weeks. We will bump the version number from 0.0.x to 1.0.0, post an “ok, here is V1” announcement, then go right back to work adding more features (as you can see from the backlog, we have plenty still to do).
For us V1 means that:
- We have finished enough features to allow the creation of rich, interesting apps
- We believe in the design of these features, and don’t plan on changing them any more
- The implementation is robust and high quality
We aren’t promising 100% compatibility from V1 until the end of time, but want to provide a stable API with far fewer breaking changes than you have seen so far. Which begs the question, how do we maintain a stable V1 feature set in parallel with ongoing development of experimental new things? The ability to try things out, ship early and often, and respond to feedback has been valuable to this project, so I don’t want to lose that.
The traditional option is to maintain two branches: current stable and experimental vNext. But we are a small team, and maintaining two things in parallel is a tax that would slow our overall progress. This could also dilute the value of customer feedback, as many customers would no longer be using the version we were actively working on.
Instead, I propose we just plow ahead with a single version. Two weeks after releasing V1, we will ship a 1.1.0 update, which will add experimental new features over the top of the stable V1 feature set. We will document which APIs are stable versus new and liable to change, but everything will live together in a single branch and we will only ship a single latest-and-greatest NuGet package. This means Win2D will not follow semantic versioning, because we’ll have no way to indicate via a single version number that some parts of the package are stable while others are experimental.
Please share any thoughts or concerns in the comments below.