Beamable’s New Versioning System: Clarity and Flexibility for Our Developers

Beamable’s New Versioning System: Clarity and Flexibility for Our Developers

At Beamable, we’re committed to making the development experience as smooth as possible, and that starts with how we manage our software versions. In our latest update, we’re making some important changes to our versioning system. Here’s a breakdown of what you need to know:

Semantic Versioning: A Commitment to Clarity

We’re embracing semantic versioning as our guiding principle. This means that you can expect no breaking changes in minor or patch releases. By sticking to this structure, we ensure that any changes we make won’t disrupt your project unless explicitly marked as a major update.

However, this might result in more frequent major versions than what you’re used to. While major releases often sound daunting, they signal that we’re introducing significant improvements or structural changes, like new technologies or features.

What Each Release Means

To help you navigate updates with confidence, here’s a simple breakdown of the types of releases you’ll see from Beamable:

  • Patch Releases: These are small, targeted bug fixes. Think of them as quick, isolated fixes for very specific issues—like squashing a null reference bug in a particular function. Patches are designed to be safe and straightforward to apply.
  • Minor Releases: A bit more substantial, minor releases could include groups of bug fixes, feature enhancements, or even new features. These updates are often low-risk, focusing on improving your development experience without overhauling systems.
  • Major Releases: These signify larger changes, often including breaking changes that impact how systems are designed or function. For example, when we expand a feature set—like introducing new technology into Unity (such as the Unity Stand Alone Micro Services feature)—you’ll see a major release. These are opportunities to unlock powerful new capabilities, but they may require changes on your end.

Named / Flagship Releases!

In addition to the standard version numbers, we use named releases (now referred to as flagship releases) to signify particularly important milestones. These labels act as “tags” on a version, highlighting major moments in Beamable’s development. For instance, you might see a release labeled “Beamable Mercury,” but that doesn’t necessarily correspond to a major version. It’s just a tag to signify a significant update.

Managing Updates in Your Workflow

While we’re working hard to make updating as smooth as possible, we understand that integrating updates into live or in-development projects can be tricky. Here’s how you can manage Beamable updates across different stages:

  • In-Development Projects: Feel free to incorporate new minor and patch releases regularly to benefit from the latest bug fixes and features. If a major release arrives, take the time to assess whether the changes will impact your project before upgrading. When you do, try and keep in mind that major upgrades after release are inherently harder to do than before release.
  • Live Ops Projects: For live projects, be cautious with updates, especially major releases. We recommend creating a separate test environment to validate any updates before rolling them out to your live environment. We recommend scheduling dedicated time to upgrade whenever you can afford and will get something out of the latest release. Delaying updates too much might force you to do it at inconvenient times and can have an impact in the time bug-fixes become available due to backporting constraints.
  • Maintenance Mode Projects: If your project is in maintenance mode and only receiving minor bug fixes, be conservative with updates. Stick to patch releases to ensure stability, and only consider larger updates if absolutely necessary.

A Final Word

While we’ve set up this versioning system with careful planning, we also understand that software can be unpredictable. Even with the best intentions, bug fixes might occasionally introduce behavioral changes. As a best practice, always treat updates with a degree of caution and thoroughly test new releases within your workflow.

We’re excited about these changes and believe they’ll help keep Beamable both reliable and flexible as we continue to evolve our platform.

Let us know what you think, and feel free to reach out if you have any suggestions on how we can make this process even smoother for your team!

Happy developing!