Synergex has recently implemented a new product life cycle management policy for our Synergy products, based around the now-common principle of long-term support (LTS) releases. This document explains what that means to Synergy/DE developers.
Introducing these changes will provide the following benefits to Synergy customers and developers:
Synergy products have not previously had a pre-set release cadence; we released a new version when we felt significant new functionality or a technology change justified doing so. As a result, the time between releases could vary from as little as a few months for minor releases (e.g., 9.3 in December 2009 and 9.5 in November 2010) to several years between major releases (10.1 in December 2012 and 11.1 in September 2019).
While this probably worked fine for most end-user customers, it could be challenging for ISV customers releasing their products on predetermined schedules. A known release cadence will make it easier for them to plan their releases—specifically, when to adopt new Synergy versions—because they will know when to expect a new Synergy release in advance.
Similar to the release cadence, the support window for the current Synergy version was also previously undefined. Our commitment has always been to support the current and previous major or minor releases (currently 10.3.3 and 11.1.1); earlier versions are technically unsupported.
In this context, “supported” refers to the versions of the product for which we issued patches if a customer found a severe problem, not to the ability to call the Developer Support team for assistance. Our developer support engineers will always try to help supported customers, regardless of product version.
As our development practices became more agile in recent years, so did the way we released software. Until recently, every release we published (even “patch letter” releases) typically included new or updated functionality in addition to quality enhancements.
While this is great for developers who want access to the latest and greatest features, the strategy sometimes wasn’t great for product stability. It’s a fact of life in software development that new or altered code means an opportunity for new bugs, but it’s frustrating if that happens in the context of a patch letter release that is supposed to fix bugs, not introduce new ones.
Long-term support releases provide customers with a stable platform on which to deploy production systems. In advance, you will know the support period of the current LTS version and when the next LTS version will be released. Additionally, customers can have confidence in the enhanced stability of the platform because the code base of the LTS release will not be altered for any new features or enhancements until the next LTS release takes place.
The primary characteristics of a Synergy LTS release are
Once released, the code base of the LTS release will not be altered for new features or enhanced functionality. Subsequent releases will be for quality improvement or required security enhancements only.
LTS releases are labeled with a version number, an odd major revision number, a minor revision number, and an incrementing build number (for example 18.104.22.168). Build numbers reset with each LTS release. There will be no patch letter releases under the new scheme.
Synergy has close ties with and many dependencies on Microsoft .NET. For that reason, we will broadly align our release schedule with the .NET release schedule (which also uses an LTS strategy with a two-year cadence).
Our first LTS release will be Synergy 12.1, which is scheduled for late 2021 to broadly coincide with the .NET 6 LTS release. Subsequent LTS releases will be Synergy 12.3 LTS in late 2023, Synergy 12.5 LTS in late 2025, and so on.
While LTS releases offer many benefits for production environments, many developers require access to the “latest and greatest” recently developed features, and that demand is addressed by “feature releases.”
The primary characteristics of a Synergy feature release are
Feature releases are interim releases (occurring between LTS releases) that provide early access to new features and enhancements that will become part of the next LTS release. They may include partial (but usable) implementations of new features. Feature releases also address quality and security issues identified within the feature release branch.
Occurring on a more frequent cadence than LTS releases, there may be several feature releases each year. Think of feature releases as being similar to the way we have released our Synergy software in the recent years leading up to this change.
Feature releases will typically be made available on all supported platforms, but if the changes in any release do not apply to or are not usable on a particular platform, no release will be made for that platform.
Feature releases are fully tested to the best of our ability, but developers should bear in mind that quality may be lower in areas where new code has been added or significant changes have been made. Quality will solidify as developers exercise the new or updated features and as our automated test suites are extended.
The support period for feature releases is much shorter than for LTS releases, ending three months after the next feature or LTS release.
Feature releases are labeled with a version number, an even major revision number, a minor revision number, and an incrementing build number (for example, 22.214.171.124).
Our first feature release, Synergy 126.96.36.19972, took place on September 10, 2021. This version number may seem a little strange at first, but remember that feature releases build up to the next LTS release. The 12.0 release starts the process of delivering the new features and enhancements that will become part of the upcoming 12.1 LTS release.
On the other hand, this first release may not seem unusual, as we transition from 11.1 to 12.0 and then to 12.1 later in the year. But shortly after the 12.1 LTS release, the first 12.2 feature release will occur (leading up to the 12.3 LTS release in 2023). For the next two years, you will see releases in both the 12.1 and 12.2 release branches, not necessarily at the same time. For example, there may be a 12.2 feature release in March, followed by a 12.1 LTS release in April!