Versions & Channels
Dalamud has two major concepts in terms of versioning: API Level and Channel/Track.
Summary
Channel | Branch | API Level | Stability | Recommended For |
---|---|---|---|---|
Release | master | 10 | Highest | Auto-assigned to most users |
Canary | master | 10 | Very High | Auto-assigned to a small number of users |
Staging | master | 10 | Medium | Core/plugin developers, testing-inclined users |
API Level
The API Level is a number that is incremented whenever a breaking change is made to the Dalamud API. This means that plugins that were compiled against an older API Level will not work with newer versions of Dalamud.
History
For Dalamud v9 and higher, the API Level will always match the major version number - i.e. Dalamud 9.0.0 will have API Level 9, Dalamud 10.0.0 will have API Level 10, etc.
Before Dalamud v9, the API level did not have a direct relation to the Dalamud version. The API level was incremented whenever a breaking change was made to the Dalamud API, or for major game patches.
Historical API Levels
Interested in taking a trip down Dalamud memory lane? Here's a best-effort table of historical API levels.
The first commit/date of each API level is not necessarily when the API bump was released, but rather when the first commit was made that incremented the API level.
API Level | First Dalamud Version | First Game Version | .NET Version | First Commit |
---|---|---|---|---|
10 | 10.0.0.0 | Patch 7.0 | .NET 8.0 | 2024-07-05 |
9 | 9.0.0.0 | Patch 6.5 | .NET 7.0 | 2023-10-05 |
8 | 7.4.0.0 | Patch 6.3 | .NET 7.0 | 2023-01-10 |
7 | 7.0.0.0 | Patch 6.2 | .NET 6.0 | 2022-08-23 |
6 | 6.4.0.0 | Patch 6.1 | .NET 5.0 | 2022-04-13 |
5 | 6.1.0.0 | Patch 6.0 | .NET 5.0 | 2021-12-04 |
4 | 6.0.0.17? | Patch 5.57hf? | .NET 5.0 | 2021-07-12 |
3 | 5.2.3.5? | Patch 5.45? | .NET 4.7.2 | 2021-04-01 |
2 | 5.1.1.2? | Patch 5.4? | .NET 4.7.2 | 2020-12-08 |
1 | 4.9.8.21 | Patch 5.25? | .NET 4.7.2 | 2020-06-11 |
Branches & Channels
Branches and channels are two different concepts, but they are closely related. Branches are the actual git branches that Dalamud is developed on, while Channels control the updates that users receive on their clients.
Channels
Dalamud has several release channels, each with their own update cadence and
stability guarantees. XIVLauncher will automatically update to the latest
version of the channel you are currently on, but you can switch channel at any
time through the "Branch Switcher" option in the /xldev
> Dalamud
menu.
- Release: The default channel. This channel is updated with the latest stable release of Dalamud. This channel is recommended for most users.
- Canary: Newly tagged Dalamud releases are pushed to this channel. Canary is automatically assigned to a small subset of users from the Release channel. This channel should be just as stable as Release, but its existence helps us catch any serious issues with a new stable Dalamud release before it reaches all users worldwide.
- Staging (
stg
): This channel is updated with the latest commits tomaster
, before a release version is tagged. New features are made available here before being moved to Canary/Release.
Branches
Channels don't always correspond to a single branch. For example, Release,
Canary, and Staging channels all track the master
branch, just at different
cadences. Not every branch has an associated channel, either.
The current main branches are:
master
: The main development branch for Dalamud. This branch is used for all releases, and is the default branch for all pull requests.
Footnotes
-
This was the first commit to introduce the
DALAMUD_API_LEVEL
constant. The more you know! ✨ ↩