Are you considering using a dotCMS Long-Term Support (LTS) version? In this blog post, we'll delve into a bit of dotCMS history, the potential benefits, and the drawbacks of using dotCMS LTS to help you make an informed decision.
What is an LTS version?
LTS stands for Long-Term Support. It refers to a version of dotCMS that receives support including security updates, and bugfixes for a minimum period of 18 months.
You can read more about our LTS versions and download currently supported ones from the dotCMS documentation site.
A little dotCMS release history
Let’s take a quick trip back in time. dotCMS is a constantly growing platform with a robust open-source codebase. Folks are able to see our source code, make their own builds, and release them to their own environments. Inevitably, something goes wrong along the way, and help is needed. With so many potential versions of dotCMS out there in use it’s hard to find an exact setup like yours. It’s also unclear if the version you are running is still supported or if you’ll need to upgrade to get patches. To help solve for these cases, we introduced LTS (Long-Term Support) versioning in July 2020.
LTS versions have seen excellent adoption from our users. In fact, we typically have more than 75% of our dotCMS cloud customers running on versions less than 18 months old. The reduced number of versions in use at a given time has made the support lifecycle and planning for upgrades simpler and more predictable.
The simplified versioning has also allowed dotCMS to improve our testing tooling and increase coverage, which when combined with significant investments made in how we do engineering in 2023 and 2024, have resulted in more reliable patching and fewer defects that make it out negatively impact our customers and their users.
Below is a simplified view of our code change flow today.
Advantages of running a dotCMS LTS
As mentioned previously, the most significant advantage of running on a dotCMS LTS is the peace of mind you have knowing that you’ll get backported security fixes and bugfixes for the duration of the designated support period.
There are a few other things our customers tell us they love about LTS versions.
The 18-month support period allows for ample time to plan and organize around the next dotCMS upgrade. This is especially valuable for teams that don’t have high confidence in their automated testing or don’t have access to the technical resources needed to adapt to new versions.
Patch releases to an LTS don’t add new features, so there is minimal investment needed in retraining users.
Risks and misconceptions
While LTS versions are a good choice for certain customers, they aren’t an optimal fit for everyone. Here’s why:
Unrealized value
Since new features are not backported, you and your users will not be able to take advantage of the value our new capabilities can offer. The innovations flowing from our team will be out of reach for you until you upgrade. Whether it’s new ways to help content creators and developers collaborate, deeper insights via analytics, a significant performance boost, or refined user experiences that make all your users' day just a bit brighter; on an LTS it will all be one big project away.
A slight delay in security and bug patches
All of our development here at dotCMS starts off the current state of our codebase in the here and now. This keeps our changes small and predictable for our own teams and sites. Consequently, any security fixes or bugfixes we complete get built and released to our current releases first (as soon as they’re ready). Then we work our way back chronologically through supported LTS versions. The result is that it takes a bit longer for our LTS customers to receive these backports and fixes.
More stable code, means higher uptime right?
Architects and technical leads often presume that fewer software changes result in a more stable service. These same stakeholders often deduce that a more stable codebase will result in a more available service.
For a moment, let’s put aside any value that net-new features and fixes bring and look at a wider picture. If the software doesn’t change at all, it is by definition more stable. But as an organizational leader, can I truly control change?
Modern solutions do not stand alone. To deliver the rich capabilities users demand, software solutions are composed of many interdependent software components. Each of these components can independently undergo change, thereby making software change an axiom.
It’s easy to be overtaken by events in these scenarios, and adapting after the fact is exponentially more difficult because systems and processes that interact with stagnant software become brittle, which is to say, they start to build in expectations that the system will never change—and when they fail, they fail catastrophically. Even worse, recovery takes longer with more difficulty because expertise has eroded over time and recovery playbooks are largely untested. In the end, this results in the opposite results we intended, lower uptime, more unhappy users, and exhausted staff. It follows then that to provide reliable solutions that delight users, an organizational leader must embrace frequent change.
Deferring change doesn’t make it go away
Upgrading between LTS versions can be a significant undertaking for organizations. These upgrades typically involve substantial changes and testing, demanding considerable time and effort. This "big bang" approach can disrupt operations and force organizations to address all the technical debt they've accumulated in one go. This can be overwhelming, similar to paying off all the interest on a home in one lump sum right before moving.
What’s next?
I hope this blog post has helped you better understand the advantages and potential drawbacks of using the dotCMS LTS release track. Whether you decide to use an LTS version or a current release, we hope that you enjoy what we’ve built.
If you're looking for the latest features, security patches, and bug fixes, we recommend checking out the latest versions of our current release. You can also explore our LTS releases if you prefer a more stable codebase with longer support periods. You’ll find both here, along with some helper tooling to get dotCMS up and running locally.
And don't forget to keep an eye out for our upcoming blog post in late February 2025, where we'll dive deeper into the current release track and its benefits. In the meantime, feel free to reach out to our support team if you have any questions or need further assistance.