KNOWLEDGE BASE
Log In    |    Knowledge Base    |    4D Home
Tech Tip: 4D Versionings, Releases, and Branches
PRODUCT: 4D | VERSION: 20 R | PLATFORM: Mac & Win
Published On: May 13, 2024

The 4D applications have various versions and build released constantly to push bug fixes, updates, and changes. With multiple versions and terminology this can get confusing. Below is an explanation of these terms and what they mean based on the filters of the download site at product-download.4d.com.

There are various identifiers of 4D versioning. Applying the terms from software semantic versioning of XX.YY.ZZ where XX is the Main number, YY is the Minor number, and ZZ is the Patch number.

4D Versioning numbers

Product Number (Main Number)

This is similar to a Main version number and 4D examples are 4D 18, 4D 19, 4D 20.

Release Number (Minor Number)

There are two types of Minor version numbers which can be confusing at first. The product number and release type can be filtered from the Product Release drop-down:


LTS Release: The LTS stands for long term support. These can all be considered the same product with no major changes in between each minor version number besides bug fixes or any major security fixes. These are the ".x" portion of the identifier such as 20.1, 20.2, and 20.3. Short hands for LTS can be something like 20.x.

Feature Release: Feature releases can be considered as a Beta for the next Main Version. Instead of using a Minor Version number it uses "Rx" instead such as 20R2, 20R3, and 20R4. Each Feature release provides access to a new subset of features intended for the next Main version. For example if the next main version should have features A, B, C, D, E, F, G, H, and I, 20R2 might enable A and B, then 20R3 will add on C and D and so forth until the last feature release is provided before the next new main version is released. These releases are sometimes refered to as R-releases and something like 20Rx due to the naming convention.

These minor release numbers can be specified in the Release drop-down:


Build Number (Patch Number)

The 4D applications are continuously developed and a build is generated almost daily. Most of these are considered "Nightly Builds". Because of a build is generated continuously it is not possible to apply extensive testing to each build so nightly builds do not receive as much testing. Currently they use a six (6) digit number to identify the builds. For a version, the builds will increment for each new build. So a build, N, should contain all of the fixes and updates from the builds before it including some build like N-100. Because there are so many builds, the filter is not a drop-down and is instead an entry for the specific number:


Branches

4D is developed using a branching strategy like in Git. There are multiple branches available concurrently and these are:

Main

The main branch, this is the main branch of 4D that features get merged into and the following branches get pulled from. There are not builds from this publicly released but each of the branches below are pulled from this branch.

LTS

This is the LTS branch. The entire LTS line of a single main version share the same branch. For example every build of 4D 20 LTS will be on this branch. When the time comes a specific build will be chosen to become the official release (20.0, 20.1, 20.2, etc) which will receive the most testing. In between a build might be selected to become a Hotfix (20.1 HF1) which is similar to an official release receiving extensive testing. Because this is all a single branch and only applying bugfixes, this is considered the Long Term Support releases. These releases are intended for deployments where rapid upgrades/changes to the version of 4D are not applicable due to restrictions such as long testing phases are such.

Feature Release

Each feature release (alternative minor versioning) is its own branch. This means that even though they share the same Main version number they are not on the same branch. Like the LTS line, there is a build selected to be the official feature release with extensive testing performed. Nightly builds will also be in this branch with some builds selected to be the Hotfix. These releases are intended for deployments where it is acceptable to upgrade and release a new version of 4D quickly. When a new Feature release is available the old one is considered obsolete and will no longer receive updates, fixes, or nightly builds. Any fixes will instead be applied to the newer release.

Beta Release

When a Feature Release is released the beta of the next feature release or the new main version is made available. These start out like just nightly builds and when the time comes, a build will be selected to become an official release or the next main LTS. As such there can be an LTS Beta or a Feature Release Beta based on the intended next release.

Release Categories

Official Release

This is an official release which is published on the main 4D website under the products download page. The page typically lists downloads for the Current LTS, the Current Feature Release, and any currently supported older LTSes. These releases are a build that have been selected for strenuous testing.


Nightly Builds

As mentioned, builds are generated continuously. Almost daily, a nightly build is released and is available to partners on product-download.4d.com. While not tested as the other releases, these provided the quickest access to bug fixes as official releases and hot fixes are not released as often.

Hotfixes

When enough time has passed, there are enough bug fixes, or a major fix or change has been made, a hot fix in between minor versions may be released. This is like an official release where a build is selected and tested but does not increment the LTS or Feature release minor versioning.

The release categories take into account the branches and can be filtered from the "Category" drop-down: