Skip to main content

Versions & Channels

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

Summary

ChannelBranchAPI LevelStabilityRecommended For
Releasemaster8HighestAuto-assigned to most users
Canarymaster8Very HighAuto-assigned to a small number of users
Stagingmaster8MediumCore/plugin developers, testing-inclined users
v9v99LowCore/plugin developers who want to get a head start on v9

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. For the current release version of Dalamud (7.x), the current API level is 8.

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
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.
  • v9: This channel tracks the latest commits to the v9 branch. This branch is the current development branch for Dalamud v9, and is recommended only for developers to use, as it has breaking changes (including an API level bump). You can view information on what's new in v9 here.

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.
  • v9: The development branch for Dalamud v9.

Footnotes

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