![]() |
RT-Thread RTOS
An open source embedded real-time operating system
|
| Item | Details |
|---|---|
| Document version | 1.0 |
| Date | 2026-10-27 |
| Scope | RT-Thread mainline release planning, release publication, and stable branch maintenance |
| Companion document | Release Process |
Release cadence: In principle, a Z release is published every month. A Y release is published every 3–6 months, depending on accumulated features and maintenance resources. X releases have no fixed schedule.
Official releases use the following format:
Examples: v6.0.0, v6.1.0, and v6.1.1.
The version number must be consistent across source version macros, the Git tag, the release, and deliverable names:
| Item | Example |
|---|---|
| Git tag | v6.1.0 |
RT_VERSION_MAJOR | 6 |
RT_VERSION_MINOR | 1 |
RT_VERSION_PATCH | 0 |
Routine commits do not increment the official version number. Development snapshots must be identified by the target version, full Git SHA, and build records, and must not be labeled as published official releases.
| Component | Purpose | Typical RT-Thread changes |
|---|---|---|
X: major | Major features or an overhaul of the overall technical architecture | A new kernel, reworked core kernel mechanisms, a new device or driver framework, system architecture changes, coordinated upgrades across core subsystems, or major API/ABI or configuration changes requiring user migration |
Y: minor | Feature extensions to the existing kernel and frameworks; released every 3–6 months, depending on accumulated features and resources | New kernel or component APIs, driver framework capabilities, file system or networking capabilities, architecture or chip family support, or a set of BSP or component features that forms a complete deliverable |
Z: patch | Focused fixes, support, and local improvements; in principle, released every month | Bug and security fixes, local feature improvements, performance or resource optimizations, individual BSP adaptations, build fixes, and documentation fixes |
An increment of X requires a comprehensive review and decision for changes such as:
Related supporting features must be included in the same major release plan.
Increment Y for changes that meet the following conditions:
An isolated feature, local parameter extension, or optimization of a single implementation does not automatically trigger a Y increment. Features must meet the delivery scope defined by the release milestone and have corresponding test evidence. The Y release cycle is 3–6 months; once selected, the specific cycle must be stated in the release goals. Features that cannot complete validation within that cycle must be deferred to the next release.
Increment Z for changes that meet the following conditions:
A Z release must not introduce new public APIs, complete components, driver frameworks, architectural frameworks, or planned incompatible changes. If an individual BSP introduces a new driver framework, device model, or public API, the change requires a Y or X increment.
When a release contains multiple types of changes, use the highest impact level to determine its version number:
| Combination of changes | Classification |
|---|---|
| Major kernel/framework changes + new components + bug fixes | X |
| New component/API/platform capabilities + local fixes | Y |
| Bug fixes + individual BSP adaptations + performance optimizations | Z |
| Documentation, tests, CI, or release materials only | No official version increment |
Do not determine version numbers by commit count, PR count, lines of code, or development cycle length. Use feature boundaries, user impact, architectural impact, and completeness of delivery.
Basis for release: periodic evaluation + accumulated features.
Developers are advised to use X/Y releases. Z releases serve as intermediate stabilization points for traceability.
To be discussed.
| Item | Requirement |
|---|---|
| Maintenance approach | Manual work + CI, with staffing focused on BSP and driver maintenance |
| Main purpose | Stabilize and release major driver framework and kernel API changes, as well as support for new architectures and frameworks |
| Release frequency | A 3–6 month cycle, with core maintainers reviewing and deciding whether to release |
Release strategy:
Prerequisite: the mainline has an initial, reasonably complete automated workflow in place.
| Item | Requirement |
|---|---|
| Maintenance approach | Primarily QEMU + CI automation |
| Test scope | The kernel, components, and drivers supported by simulation |
| Main purpose | Stabilize the mainline periodically through small releases that support traceability |
| Release frequency | Monthly evaluation, with a human decision on whether to trigger a release |
Release strategy:
The overall pass rate does not have to reach 100%, but known issues must be listed so maintainers can assess them before making the release decision.
See the Release Process for release stages and responsibilities.
X, Y, or Z classification based on feature impact.Z releases backward from a one-month cycle. For Y releases, choose a 3–6 month cycle according to feature scope and available resources. Confirm test capabilities and maintenance staffing before defining the feature scope.X-level change is identified, reassess the release goals, migration cost, and release date.Y release target per release cycle. Do not accept untested large features at the last minute to meet a release date. Defer features that have not completed validation to the next release.Z release approximately one month before release. Begin stabilizing features for a Y release approximately one month before release, and confirm X.Y before the freeze.X- or Y-level changes discovered after the freeze from the current release. Replan them for a major release or the next minor release on a 3–6 month cycle, respectively.X.Y.0, or to X.Y.Z on a stable branch.X.Y.Z+1 release. Do not modify the original tag, release contents, or deliverables.| Cycle | Main activity |
|---|---|
| 1 month | Publish a Z release focused on defects, security issues, local optimizations, and BSP adaptations |
| 3–6 months | Publish a Y release when its feature set, test scope, and maintenance resources meet the requirements |
X releases | Plan separately according to readiness for kernel, framework, or system-level upgrades, without a fixed cycle |
No release type requires a fixed publication date. A release may be deferred if blockers remain within its guaranteed support scope. Do not force a release by reducing promised testing, narrowing the support scope, or skipping reviews of high-risk changes. Once the cycle for a Y release is selected, do not shorten it to accommodate last-minute features.
The following changes require a compatibility review:
Compatibility changes must record affected users or components, migration methods, representative BSPs, and known limitations. X releases must provide migration instructions. Y and Z releases must also explicitly document changes to default behavior or resource usage in the release notes.
X/Y/Z classification.X-level changes.Y-level features are independently deliverable and have completed testing.Z-level changes introduce no new public APIs, complete components, or framework capabilities.RT_VERSION_MAJOR/MINOR/PATCH matches the Git tag.