Skip to main content

Versions & Channels

Dalamud has two major concepts in terms of versioning: API Level and Channel/Track.

Summary

ChannelBranchAPI LevelStabilityRecommended For
Releasemaster10HighestAuto-assigned to most users
Canarymaster10Very HighAuto-assigned to a small number of users
Stagingmaster10MediumCore/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.

note

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 LevelFirst Dalamud VersionFirst Game Version.NET VersionFirst Commit
1010.0.0.0Patch 7.0.NET 8.02024-07-05
99.0.0.0Patch 6.5.NET 7.02023-10-05
87.4.0.0Patch 6.3.NET 7.02023-01-10
77.0.0.0Patch 6.2.NET 6.02022-08-23
66.4.0.0Patch 6.1.NET 5.02022-04-13
56.1.0.0Patch 6.0.NET 5.02021-12-04
46.0.0.17?Patch 5.57hf?.NET 5.02021-07-12
35.2.3.5?Patch 5.45?.NET 4.7.22021-04-01
25.1.1.2?Patch 5.4?.NET 4.7.22020-12-08
14.9.8.21Patch 5.25?.NET 4.7.22020-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 to master, 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

  1. This was the first commit to introduce the DALAMUD_API_LEVEL constant. The more you know! ✨