Daily Thought - 2024-05-31
Hey, I'm Hanno! These are my daily thoughts on Crosscut, the programming language I'm creating. If you have any questions, comments, or feedback, please get in touch!
This thought was published before Crosscut was called Crosscut! If it refers to "Caterpillar", that is the old name, just so you know.
Semantic versioning is a widespread practice, to manage breaking changes and communicate which releases contain them. Version 2.0 contains breaking changes. Version 2.1 doesn't, nor does any other 2.x release. You don't have to worry again until 3.0.
In my experience, this can work pretty well. But for a large project, it seems to be limiting. There could be new features, that are experimental and still subject to change. Older ones, that are stable and mature. Even older ones that you want to change again, because you now understand all their flaws.
I think that trying to address this all with a single semantic version number might be too coarse-grained. Rust, for example, seems to acknowledge this, by using using additional mechanisms (a nightly channel with unstable features, and the limited but effective edition mechanism). I wonder, if there's a simpler way for Caterpillar.
Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email whenever I post a new one.