30

I spent 15 years developing a tool to make sense of software version numbers

Over 15 years ago, I had a strange idea: what if software version numbers weren’t just arbitrary labels, but followed deeper patterns - almost like coordinates in a space?

I noticed some hidden rules behind how version numbers evolve, and that led me to build something I call CodeCompath: a tool for generating and visualizing software versions based on those rules. It’s a quiet project, not flashy - but to me, it represents a long, slow unfolding of an idea I couldn’t let go of.

Here’s a short demo: https://youtu.be/leL6y5uHXEg

And here’s a longer explanation if you're curious about the thought process: https://youtu.be/8R0HMyHwm-c

I know this is a niche topic, but I’ve put a lot of myself into it over the years. If you’re someone who cares about versioning, patterns, or systems thinking - I’d love to hear your thoughts.

Out of curiosity, what's the difference between this and semantic versioning[0]?

[0]https://semver.org/

3 days agofitzzy

Yeah I tried to watch the first demo video, but it wasn’t clear to me the problem that this solves and why this is better than some alternatives. It really needs a 60 second elevator pitch.

I don’t know how versions being coordinates in space helps me solve any of my problems.

2 days agostephenbez

It would help to explain this in writing. Short few sentences summary explanation “like im a child”.

Otherwise it looks like a complicated solution to an artificial problem nobody care about. With all due respect.

2 days agoaristofun

The short, 3 minute, demo [video] is from 2022, the longer explanation video is from 2021.

For the people less inclined to watch a 28 minute explanation video, do you have a text overview of your idea as well?

2 days agomrngm

Tl;dr would be nice, as others mentioned. I could see using a variant of the concept to visualize code changes. Have a circle divided into pie slices that represent however you organize your microservices, packages, components, modules or classes. Then distance from the center represents time or reverse time. You could then quickly see changes over time, which areas of the codebase is affected, etc.