Using SemVer

Where I Learn to Version My Projects

Writing
Version
Coding
Author

Tony E. Lin

Published

January 7, 2026

Introductions

Happy New Year!

Every new year brings another chance to set new habits. Of course, I always fail, but it doesn’t stop me from trying!

This month I wanted to write about versioning my projects. As a self-taught coder, the idea plays on my mind. In fact, I stress about it. As I release projects, I tend to second guess myself and imagine if I missed anything. I usually do. My track record to get everything right the first time isn’t great. That means I stress a lot about how to label my projects. Should I start at version 1.0? Or should I label it as 0.1? How about 0.0.1 just to be safe?

SemVer

A quick Google search led me to Semantic Versioning (SemVer). This technique offers a few tips for setting versions to your projects. It is in short three points as follows:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backward compatible manner
  3. PATCH version when you make backward compatible bug fixes

Figure adapted from https://www.baeldung.com/cs/semantic-versioning

That is simple enough and aligns with what I suspected already. It is good to see it confirmed. Essentially, these rules mesh with issues I had - the future “to-dos” for my project. Once I check these off, the project can be bumped to version X.x.x. I think this is a decent solution for my projects.

Of course, rules can be broken. Based on my gut feeling, I could push my projects to a specific version. My projects have to follow the truthiness of themselves.

SemVer in action

With that in mind, I have done a few things with the Pharmacophore-Toolkit. First, I added a GitHub documentation page (check it out here!). This makeas it easier to refer to the API as well as view the tutorial notebooks.

With that, I have completed my initial goals for the project. This milestone allowed me to bump it up to version 1.0.0.

Good to check that off my list. And if there is time in my future, I’d love to add a few more things (activity cliffs anyone?). We’ll see if time allows!