Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions docs/Versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,67 @@ The version number of the current stable release can be found
## Release cadence
See [Release Management](ReleaseManagement.md)

## Updating the Version for a Release

When preparing a release, follow these steps to update the version number across the codebase. This applies both when creating an initial release branch (updating `main`) and when preparing patch releases on release branches:

### Prerequisites
- Node.js (check [js/.nvmrc](../js/.nvmrc) for the required version)
- npm (comes with Node.js)
- Python 3

Verify your setup:
```bash
node --version # Should match the version in js/.nvmrc
npm --version # Should be v8.0 or newer
```

### Steps

1. **Update the VERSION_NUMBER file**

Edit [VERSION_NUMBER](../VERSION_NUMBER) in the repository root to reflect the new version (e.g., `1.23.3`).

2. **Run the version update script**

From the repository root, run:
```bash
python tools/python/update_version.py
```

This script automatically updates version numbers in:
- `docs/Versioning.md` - Adds a new row to the version table
- `docs/python/README.rst` - Adds release notes entry
- `onnxruntime/__init__.py` - Python package version
- `js/` packages - All NPM package versions and lock files

3. **Update the C API static_assert (Manual Step)**

The script does **not** update the version check in the C API. You must manually update the `static_assert` in [onnxruntime/core/session/onnxruntime_c_api.cc](../onnxruntime/core/session/onnxruntime_c_api.cc).

Search for `static_assert(std::string_view(ORT_VERSION)` and update the version string:
```cpp
static_assert(std::string_view(ORT_VERSION) == "X.Y.Z",
"ORT_Version change detected, please follow below steps to ensure OrtApi is updated properly");
```
Replace `X.Y.Z` with your new version number. The comments following this assert explain additional steps if new APIs were added to this release.
4. **Review all changes**
Review all modified files. Verify:
- Version numbers are correct in all updated files
- The release notes URL format is correct (e.g., `https://github.com/Microsoft/onnxruntime/releases/tag/vX.Y.Z`)
5. **Commit and create PR**
Commit all changes and create a PR targeting `main` or a release branch as appropriate.
### Notes
- The version table in this file and the ONNX opset compatibility information on [onnxruntime.ai](https://onnxruntime.ai/docs/reference/compatibility.html#onnx-opset-support) are the canonical sources for version compatibility information.
- For ONNX version/opset/IR reference numbers, see the [ONNX Versioning documentation](https://github.com/onnx/onnx/blob/main/docs/Versioning.md#released-versions).
# Compatibility
## Backwards compatibility
Expand Down
Loading