Synergex’s release strategy for Synergy/DE products is based on the common principle of long-term support (LTS) releases. LTS releases provide a very stable platform that is supported for an extended period of time. (They only receive quality, security, and platform updates—no new features.) The latest technologies and enhancements are delivered via “feature releases,” which build up to the next LTS release. Feature releases are also fully tested and production ready but have more code changes than LTS releases. Read on for more information about
Long-term support releases provide a new level of stability because the code base will not be altered for any new features or enhancements. Subsequent updates to the LTS release will be for quality improvements or required security enhancements only. Also, you’ll know the support period of the current LTS version and when the next LTS version will be released in advance, so you can plan your updates accordingly.
The primary characteristics of a Synergy LTS release are
LTS releases are labeled with a version number, an odd major revision number, a minor revision number, and an incrementing build number (for example, 22.214.171.1240). Build numbers for LTS releases continue from the feature releases that preceded them.
Because Synergy has close ties with and many dependencies on Microsoft .NET, we’ve broadly aligned our release schedule with the .NET release schedule (which also uses an LTS strategy with a two-year cadence). Our first LTS version, Synergy/DE 12.1, was released April 2022. It included support for Microsoft .NET 6 whose LTS release was the previous November. We intend to release future LTS releases closer to Microsoft’s .NET release date, e.g., the next LTS release, Synergy/DE 12.3, is planned for the end of 2023.
While LTS releases offer many benefits for production environments, many developers want 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 access to new features and enhancements and 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 released Synergy software prior to LTS releases.
Feature releases will typically be made available on all supported platforms, but if the changes in any release do not apply to a particular platform, no release will be made for that platform.
Feature releases are fully tested, 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. Fixes to a feature release will only be made in the next feature release build.
Feature releases are labeled with a version number, an even major revision number, a minor revision number, and an incrementing build number (for example, 126.96.36.1990). Build numbers for feature releases reset to 1000 with each new feature release series.
Our first feature release was Synergy 188.8.131.5272 in September 2021. This version number may seem a little strange, but remember that feature releases build up to the next LTS release. The 12.0 release started the process of delivering the new features and enhancements that would become the upcoming 12.1 LTS release.
Shortly after an LTS release (e.g., 12.1), the first feature release occurs (e.g., 12.2), which leads up to the next LTS release (e,g., 12.3). For approximately two years after the LTS release, you will see releases in both the LTS and feature release branches (12.1 and 12.2), but not necessarily at the same time. For example, there may be a feature release, followed by an update to the LTS release a month later.
The information above refers to “support periods” for LTS and feature releases. When a version is supported, that means Synergex will still provide updates for it. Unsupported versions, aka retired versions, no longer receive updates. If you’re using a retired version and you need a fix, you’ll need to update to a current version.
Note that when a version is unsupported, you can still contact our Developer Support team for assistance (although our ability to assist you may be limited). And you can still purchase licenses for and download that version. Unsupported only refers to the ability to get product updates for that version.
There are two types of supported versions: current and mature. Current versions receive all fixes and security updates. Mature versions receive critical fixes only (i.e., for “production down” issues). There will be one or two current Synergy/DE versions at any given time. Immediately after each LTS release, before the next feature release, the LTS release will be the only current version. After the next feature release, that and the LTS release will both be current releases. There will also be one or two mature versions at any given time. When a new LTS version is released, the previous LTS version becomes mature, where it stays supported for at least four years before being retired. And when a new feature or LTS release comes out, the previous feature release (if there was one) becomes mature for three months before being retired.
Synergy/DE 11.1.1 was the last Synergy/DE version before Synergex’s first LTS release (12.1). Version 11.1.1 will be supported like an LTS release, i.e., as a mature version (receiving critical fixes) for at least four years. Versions prior to 11.1.1 (e.g., 10.3.x) are retired.
Note that for Synergy DBL Integration with Visual Studio (SDI), there’s always only one current version and no mature versions. When any new SDI build is released, the previous SDI build is immediately retired. Also, Synergy/DE’s runtime version targeting enables developers to use the latest and greatest SDI and feature-release tools while deploying to an LTS (or feature release) production platform.
LTS releases provide the following benefits over Synergex’s pre-LTS release strategy:
Synergy products previously did not have 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 makes it easier for them to plan their releases—specifically, when to adopt new Synergy versions—because they will know when to expect new Synergy releases in advance.
Similar to the release cadence, the support window for Synergy versions was also undefined. Our commitment was to support (i.e., provide updates for) the current and previous releases; earlier versions were technically unsupported.
As our development practices became more agile, so did the way we released software. 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. Our current strategy resolves this issue.