**Our Strategy to Clarify Orbita Studio Versioning**
by Warchamp7
October 21st, 2024
As we approach the release of Orbita Studio 31, it's an opportune moment to review our release strategy and versioning practices. Over the years, we've seen substantial growth, and it's been a challenge to balance new features, stability, and clarity in our release labeling.
**A Decade of Expansion**
Orbita has been in existence for over ten years, during which it has expanded significantly in terms of functionality, code complexity, and community size. This growth has brought challenges in both development and organization. While these are positive challenges, managing them hasn't always been straightforward.
One area that required focus was our release process and versioning strategy. Until recently, we lacked a clear, consistent method for numbering our releases. However, with version 30, we've begun adhering more strictly to Semantic Versioning (SemVer).
**Understanding Semantic Versioning**
Semantic Versioning is a method for labeling software versions logically and consistently. It indicates the importance of changes so users and developers know what to expect from an update.
**MAJOR.MINOR.PATCH**
Example: 30.0.1
- **MAJOR:** Significant, breaking changes that may alter how you interact with the software or require developers to adjust their code.
- **MINOR:** New features and improvements that don't break existing functionality but add something new.
- **PATCH:** Bug fixes and other minor issues that need addressing before other releases.
**Our Versioning Journey**
Previously, our versioning was somewhat inconsistent. We lacked a strict structure or consistency in deciding when to release a new version or how to label it. Releases occurred when we felt there were enough new features or fixes, and we assigned version numbers based on the perceived significance of the changes.
Sometimes a MAJOR version included breaking changes, while other times it was simply a feature-rich release we wanted to emphasize. This inconsistency could be confusing, and moving forward, we've committed to using MAJOR version numbers strictly for updates that fundamentally change how you use Orbita or affect developers by modifying the API or dependencies.
A notable example of why this change was necessary is Orbita 28.0. That release included an update to the UI framework we use, which broke compatibility with several plugins. In hindsight, our inconsistent use of MAJOR version increments obscured the significance of this update, causing frustration among users and developers. By adhering more closely to Semantic Versioning, we aim to prevent such issues in the future.
**What This Means for You**
Looking ahead, you can expect MINOR version updates to be more frequent. We're aiming to limit MAJOR breaking updates to about once a year, though this timeline may vary depending on the project's needs.
To clarify, this doesn't mean the project is slowing down. In fact, it's quite the opposite. With clearer planning and more predictable versioning, we'll be able to manage releases more efficiently. In the past decade, we've reached version 30, but over the next ten years, we may not even reach version 40, simply because MAJOR releases will be less frequent. This is merely a visual change in how we label updates, not a reflection of the pace or magnitude of our changes.
**Our Release Schedule**
In addition to our commitment to more structured versioning, we're also working towards a more predictable release schedule. While we're not enforcing strict deadlines for features or updates yet, we're aiming for new releases approximately every four months. This flexible schedule provides contributors and users with a better idea of when to expect new features and fixes, without compromising quality by rushing development.
As we progress, we're excited to bring more structure to the Orbita Studio release process, offering clearer communication on what's coming and when. By adopting a more standardized approach to versioning and scheduling, we hope to enhance Orbita for both everyday users and developers who rely on it. We're enthusiastic about what's coming in version 31 and beyond—stay tuned!