4D Versioning: Feature Releases & LTS Releases Explained!

Automatically translated from English

If you’ve struggled to differentiate between Feature Releases (e.g., 4D v19 R6) and the LTS releases β€” previously known as dot releases or .x versions (e.g., 4D v19.6), you’ve come to the right place to learn more.

As you might know, 4D has two product lines:

  • Feature Releases such as the 4D v19 R6 that can be used when you want to get your hands on state-of-the-art technology and new functionalities as soon as possible. You have access to Feature Releases:
    • via subscription,
    • if you have a 4D maintenance contract,
    • or if you are a 4D partner.

    Even better, being a 4D partner with silver, gold, or platinum status also gives you access to beta versions.
    With Features Releases, you get, obviously, new features, AND lately, we have added monthly Hot Fixes to the current Feature Release πŸŽ‰

  • LTS versions are often called “dot releases” or “.x versions,” such as the 4D v19.6, where you get bug fixes in nightly builds β€”shared on the 4D forums.

    So, to summarize, the difference between the Feature Release and LTS versions lies in the new features available with Feature Releases and the integration process of bug fixes.

Note: This blog post explains the new 4D product release cycle, the reason behind changing the naming convention, and the intervals of our product releases.

example

4D v19.1 is a minor update of 4D v19 LTS. 4D v19.2 is another minor update, only containing bug fixes.

4D v19 R2 contains bug fixes and new features compared to 4D v19 LTS. 4D v19 R3 contains more features and bug fixes based on 4D v19 R2. All those new features will be available with 4D v20 in the LTS branch. They will not be included in v19.x.

Here is a diagram that explains the process:

Bug fix integration process

When we fix a bug, we first do it in an internal version called “main.” This code branch is used for new developments and bug fixes. When a bug is fixed, the QA team validates the fix, ensuring that there are no unexpected side effects; a few days later, the code change is also committed to the LTS branch, included in the next nightly build (available to 4D partners) and included in the next minor update, such as 4D v19.2.

All code changes related to bug fixes from “main” are part of the next feature release. As long a feature release is still in the “beta” state, code changes that fix critical bugs or regressions are also committed to the beta.

As the release date of the next version of the feature release approaches, we stop the integration, as each code change may introduce an undetected and unwanted side effect that is missed during testing. A longer testing period reduces this risk, so we are cautious.

When a Feature Release is published, only for highly significant, blocking bugs, we do include code changes with the next monthly hotfix. This gives us more time to test those and reduces the risk of undetected side effects.

What to choose?

If you are wondering what the best option is, there is no answer as it’s your choice:

  1. If you want stability with a fast canal of bug fixes via nightly build, LTS is the answer.
  2. Suppose you want to get your hands on state-of-the-art technology and new functionalities as soon as possible. In that case, Feature Releases are perfect, especially since now you have the monthly hotfixes, which also provide certain stability.

We explained the differences between the two product lines, so it’s up to you to decide what best suits your needs.

Contact us via the 4D forums if you have any further questions 😊

Avatar

β€’ Product Marketing Manager β€’

Intissar joined 4D in 2017 as a Product Marketing Manager. She works closely with the product, marketing, engineering, and technical support teams to highlight the β€˜why’, the β€˜how’, and the β€˜what’ of new and updated features to different audiences. This close proximity allows her to craft messaging frameworks, and write in-depth content and code samples for the 4D blog and website.

After graduating with an engineer's degree in Computer Science from VINCI university, Intissar worked in several startups as a software engineer. Her hands-on experience includes software specification, design, and development, user training and support, and team management.