# Tutorial: Multi-Version API

Most projects start out with an alpha API that changes release to release.
However, eventually, most projects needs to move to a more stable API.
Once your API is stable though, you cannot make breaking changes to it.
That's where API versions come into play.

Make some changes to the `CronJob` API spec and make sure all the
different versions are supported by the CronJob project.

If you have not already, make sure you have gone through the base [CronJob
Tutorial](/cronjob-tutorial/cronjob-tutorial.md).

<aside class="note" role="note">

<p class="note-title">Following Along vs Jumping Ahead</p>

Note that most of this tutorial is generated from literate Go files that
form a runnable project, and live in the book source directory:
[docs/book/src/multiversion-tutorial/testdata/project][tutorial-source].

</aside>

Next, figure out what changes to make...

[tutorial-source]: https://github.com/kubernetes-sigs/kubebuilder/tree/master/docs/book/src/multiversion-tutorial/testdata/project
