RoyalZSoftware
Back to Blog

Advent Calendar #5 - When to start versioning?

Alexander Panov 2023-12-05 2 min read
Advent Calendar #5 - When to start versioning?

This was probably the most interesting question I had back then when I wasn't used to it.

When to start

Obviously: Starting right away with the correct SemVer scheme would leave you with Version 83.3.0 after a few months of development. The actual problem we are looking at is that the API is not stable at the beginning. That's where the term rapid development enters the room.

Rapid development phase

In the rapid development phase of a project, nothing is stable. Breaking changes can be introduced every once in a while and there is no guarantee that the client code written yesterday, will work tomorrow.

Key takeaway: Start after rapid development

It only makes sense to version, once the software is somewhat stable. That means, if you are working on the first thousand lines of code, it might not make sense to create a version from there on.

Real-world analogy

I have worked on royalzsoftware/royal-data-ts and documented breaking changes in the CHANGELOG.md.

The only real reason why I started versioning early on, was because I had a client project, where I wanted to implement it.

Signalizing the stable API

It is a convention to release version 1.0.0 once the API is stable. You would use 0.X.X for the rapid development phase.

Conclusion

Great that you've read this short post. With that, you're taking a step in the right direction of versioning your software properly. Key takeaway: Start versioning once your API is stable.

More articles

Building a Web Server in Go: A Beginner's Guide

Building a Web Server in Go: A Beginner's Guide

Oleksandr Vlasov 2024-11-26 3 min read
React Hooks — createContext, useContext, useMemo

React Hooks — createContext, useContext, useMemo

Oleksandr Vlasov 2024-10-23 4 min read
Mastering Git Rebase Interactive: Squashing Commits for a Clean History

Mastering Git Rebase Interactive: Squashing Commits for a Clean History

Alexander Panov 2024-10-21 2 min read