ONNX v1.19.0 is now available with exciting new features! We would like to thank everyone who contributed to this release!
Please visit onnx.ai to learn more about ONNX and associated projects.
Key Updates
IR Version 12
- Added FLOAT8E8M0 type
ai.onnx Opset 24
- Added Swish op
- Added TensorScatter op and updated Attention op for in-place KV cache updates
- Enabled FLOAT8E8M0 for QuantizeLinear, DequantizeLinear, Cast, CastLike, Constant, ConstantOfShape, Identity, Reshape, Shape, Size, If, Loop, Scan, Flatten, Pad, Squeeze, Unsqueeze, and Transpose.
- Enabled BF16 for TopK and SplitToSequence.
- Other
- Added dependency on ml-dtypes
BUILD_ONNX_PYTHON
symbol is deprecated (we be removed for 1.20). Please, useONNX_BUILD_PYTHON
instead.
What's Changed
Breaking Changes and Deprecations
- Deprecate printable_graph in helper by @justinchuby in #6803
- Remove deprecated mapping constants by @justinchuby in #6914
- Remove re2 dependency by @cbourjau in #7083
- Use ml_dtypes everywhere by @justinchuby in #7089
Spec and Operator
- Clarify the
axes
input of [un]Squeeze to be 1D tensors by @justinchuby in #6888 - Clarify that variable shadowing is not allowed by @justinchuby in #6955
- Clarify Mod operator by @cbourjau in #6973
- Fix typo regarding Attention scale in the spec by @yuanyao-nv in #6984
- Clarify default value for
ratio
input of Dropout operator by @robertknight in #7032 - Correct
dtype
attribute docs for EyeLike operator by @robertknight in #7031 - Update float8 table for the Cast op spec by @justinchuby in #7085
- Document Multi-Device Configuration proto specifications in IR.md by @Copilot in #7056
- Add FLOAT8E8M0 data type by @yuanyao-nv in #7030
- Enable float8e8m0 for Q/DQ, and other ops by @yuanyao-nv in #7120
- Update the saturating behavior for E4M3FNUZ/E5M2FNUZ in Cast and CastLike by @justinchuby in #7130
- Fix ELU and Softplus operators to support tensors of any shape by @Copilot in #7136
- Fix Shape operator specification: correct range bounds and document start > end behavior by @Copilot in #7132
- Fix Attention 3D, reference implementation and c++ expansion by @xadupre in #7142
- Fix RMS norm function definition by @justinchuby in #7135
- Fix spec for ReduceSumSquare and other reduce ops when noop_with_empty_axes is set by @Copilot in #7137
- Add bf16 support to TopK and SplitToSequence by @gramalingam in #7158
- Add Swish operator by @isdanni in #7172
- Add TensorScatter op for in-place kv cache update by @yuanyao-nv in #7114
- Fix Resize operator document by @kcvlex in #6686
Reference Implementation
- Fix Resize reference operator by @xadupre in #7105
- fixed erf for empty inputs by @konstantin-pueckler-qc in #7170
- Fix Softmax reference for inputs of length 1 by @konstantin-pueckler-qc in #7169
- Fix return type of HardSigmoid in reference implementation by @konstantin-pueckler-qc in #7168
- Fix hardmax reference implementation by @konstantin-pueckler-qc in #7167
- [Reference] Fix constant of shape when input value is 0d by @justinchuby in #7177
Utilities and Tools
- Support set schema inference function in python by @OYCN in #5940
- Improve model Extractor by @justinchuby in #6920
- Fix: prefixing of graphs when
rename_inputs=False/rename_outputs=False
by @KarelZe in #6994 - Fix Einsum shape inference segfault for scalar inputs by @Copilot in #7055
- Add support for constructing functions with graph attributes by @Copilot in #7112
- Make some op-level shape inference functions public by @titaiwangms in #7091
- Implement saturate_cast in numpy helper by @justinchuby in #7143
- Add
.txtpb
as a support text proto format in serialization by @justinchuby in #7161
Build, CI and Tests
- Use ONNX_WERROR=ON in all jobs by @cyyever in #6825
- Cleanup CMake scripts by @cyyever in #6828
- Better support of sanitizers by @cyyever in #6826
- Remove the pull trigger in source dist test by @justinchuby in #6861
- Use CONFIG to find protobuf by @ktf in #6840
- Update to checkout submodules properly by @justinchuby in #6884
- Improve lint CI by @justinchuby in #6899
- Remove win arm64 from main.yml by @andife in #6906
- Enhance Build Process and CI Configuration (combine pipelines) by @andife in #6926
- Update and rename Install_test.yml to install_test.yml by @andife in #6950
- Update CMake to 3.24 and use LINK_LIBRARY:WHOLE_ARCHIVE by @cyyever in #6934
- replace requirements_release with requirements_release_build in codeql.yml by @andife in #6958
- Add backend node testing for Lpnormalization op by @jagadeeshvx in #6997
- Refine pybind11 integration by @cyyever in #7024
- Use pybind11_add_module by @cyyever in #7034
- Update input and output tensors in pb files to match the model by @amarin16 in #7074
- Generate the test data that should be in the repo but was omitted by @justinchuby in #7099
- Fix cast test cases by @justinchuby in #7102
- Test ArgMax with multiple maximal values and
select_last_index = 0
by @meilofveeningen-rl in #7104 - Add more test cases with attention by @xadupre in #7117
- Update CMakeLists.txt to prevent ICE protobuf failure by @justinchuby in #7121
- Fix shared module name when cross-compiling by @zboszor in #7026
- Add missing symbols for onnx-mlir by @Sunny-Anand in #7179
- improve condition in create_release.yml by @andife in #7196
Documentation
- Update CIPipelines.md by @justinchuby in #6885
- Update IRv10 brief docs by @justinchuby in #6963
- Fix some typos in documentation by @bentheiii in #7156
- [Docs] Add tip blocks referencing ir-py project for Python APIs by @Copilot in #7109
Other Changes
- Merge Windows CI jobs by @cyyever in #6827
- Improve source build testing by @andife in #6831
- use HEAD_SHA instead of HEAD_REF in auto_update_doc.yml by @mshudrak in #6809
- Fix clang-tidy warnings by @cyyever in #6832
- Update pypa / manylinux2014_x86_64 in release_linux_x86_64.yml to 2025.03.22-2 by @andife in #6833
- Fix the ONNX_BUILD_CUSTOM_PROTOBUF bug introduced by PR#6495. by @cainbit in #6830
- Bump protobuf to v30.1 by @cyyever in #6804
- Remove onnx/onnx-data_pb.h by @cyyever in #6836
- replace quansight-labs/setup-python with actions/setup-python by @ngoldbaum in #6837
- integrate release_mac_freethreading into release_mac by @andife in #6841
- Bump protobuf to v30.2 by @cyyever in #6839
- Improve pyproject.toml and add py.typed by @cyyever in #6843
- Bump ruff to 0.11 and types-protobuf to 5.29.1.20250315 by @cyyever in #6846
- Bump actions/setup-python from 5.4.0 to 5.5.0 by @dependabot[bot] in #6853
- Bump actions/upload-artifact from 4.6.1 to 4.6.2 by @dependabot[bot] in #6852
- Bump actions/download-artifact from 4.1.9 to 4.2.1 by @dependabot[bot] in #6856
- Bump clang-format to 20 by @cyyever in #6850
- Fix external data bug in version converter by @yuanyao-nv in #6847
- Bump github/codeql-action from 3.28.11 to 3.28.13 by @dependabot[bot] in #6858
- Bump editorconfig-checker from 3.2.0 to 3.2.1 by @dependabot[bot] in #6860
- Bump reviewdog/action-misspell from 1.26.1 to 1.26.3 by @dependabot[bot] in #6857
- Bump reviewdog/action-shellcheck from 1.29.0 to 1.30.0 by @dependabot[bot] in #6854
- Added selection option to enable both release and preview builds in the create_release.yml workflow by @andife in #6851
- Add Publishing Workflow for onnx to Test PyPI (https://test.pypi.org/project/onnx/) by @andife in #6849
- Bump reviewdog/action-cpplint from 1.8.0 to 1.9.2 by @dependabot[bot] in #6855
- Remove pyi generators by @yadunand-kamath in #6863
- Update win_no_exception_ci.yml by @andife in #6872
- remove not used condition in preview_source_dist_test.yml by @andife in #6873
- Update OnnxReleases.md by @andife in #6871
- Remove ipython, twine from requirements*.txt by @andife in #6874
- Update release_linux_aarch64.yml by @andife in #6876
- Update and rename release_win.yml to release_win_x86_64.yml by @andife in #6875
- remove jupyter from requirements-dev.txt by @andife in #6878
- Remove outdated comments in clang-tidy config by @cyyever in #6882
- Use std::filesystem to simplify code by @cyyever in #6402
- Add support for Free-Threading in Linux Wheel Builds by @andife in #6835
- Integrate freethreading parts from separate file into main by @andife in #6889
- Update VERSION_NUMBER to 1.19 by @andife in #6890
- Update versioning in the main branch after release branch cut by @andife in #6892
- Link privately to protobuf static libraries by @cyyever in #6881
- Update release_linux_aarch64 to include 3.13t by @andife in #6893
- Remove nbval dependency, replaces #6896 by @xadupre in #6897
- Consolidate Freethreading Requirements into Main Requirements Files for Enhanced Tooling by @cyyever in #6844
- Delete pyproject_pylint.toml by @justinchuby in #6903
- Add native ARM64 Windows Builds by @andife in #6904
- reduce length of names in create_release.yml by @andife in #6909
- better condition and explanations in create_release.yml by @andife in #6910
- Add workflow dispatch option to publish whl to pypi onnx by @andife in #6819
- Update and rename release_win_freethreading.yml to release_win_x64_fr… by @andife in #6911
- Use Native Runner für linux Aarch64 whl (public preview runner available) by @andife in #6907
- Export symbols used by PyTorch by @cyyever in #6915
- Export more symbols used by PyTorch by @cyyever in #6916
- Use Python3::Interpreter instead of Python3_EXECUTABLE by @cyyever in #6918
- Simplify CMake code by @cyyever in #6927
- Define PYBIND11_DETAILED_ERROR_MESSAGES by @justinchuby in #6929
- Bump ruff from 0.11.2 to 0.11.8 by @dependabot[bot] in #6937
- Bump actions/setup-python from 5.5.0 to 5.6.0 by @dependabot[bot] in #6940
- Bump actions/download-artifact from 4.1.9 to 4.3.0 by @dependabot[bot] in #6939
- Bump types-protobuf from 5.29.1.20250315 to 5.29.1.20250403 by @dependabot[bot] in #6938
- Bump github/codeql-action from 3.28.13 to 3.28.16 by @dependabot[bot] in #6941
- Bump codecov/codecov-action from 5.4.0 to 5.4.2 by @dependabot[bot] in #6944
- Bump stefanzweifel/git-auto-commit-action from 5.1.0 to 5.2.0 by @dependabot[bot] in #6942
- Bump ZedThree/clang-tidy-review from 0.20.1 to 0.21.0 by @dependabot[bot] in #6943
- Use requirements-release_build in entrypoint.sh by @andife in #6945
- Replace requirements-release.txt with requirements-release_build.txt by @andife in #6946
- Update OnnxReleases.md (add remove of rc packages at test.pypi) by @andife in #6948
- Bump clang-format from 20.1.0 to 20.1.3 by @dependabot[bot] in #6936
- Fix typos in multiple files by @co63oc in #6953
- Fix typos in multiple files by @co63oc in #6956
- [feat] Introduce source_date_epoch for reproducible builds (wheels, linux) by @andife in #6947
- Add workflow to generate release notes by @ramkrishna2910 in #6961
- Update test_backend_reference.py by @andife in #6967
- Display types on cast node test errors by @emmanuel-ferdman in #6970
- Update protobuf to 6.31.0 by @cyyever in #6975
- Privately link pybind11 by @cyyever in #6974
- Fix CMake EXPORT by @cyyever in #6978
- Extend function inliner to support schema-defined functions (redo) by @gramalingam in #6976
- Update google test to v1.17.0 by @cyyever in #6977
- Add Release Roadmap and deprecation policy to RELEASE-MANAGEMENT.md by @andife in #6969
- Set eol in gitattributes by @cyyever in #6979
- Simplify CMake code and fix some issues by @cyyever in #6968
- Update stale workflow to not close issues that should stay open by @justinchuby in #6986
- Removes one duplicated unit test by @xadupre in #6989
- Use [[maybe_unused]] by @cyyever in #6988
- Fix IR 11 release comment of onnx.in.proto by @take-cheeze in #7001
- Update links to community meetups in README.md by @andife in #7004
- Fix dubious ownership in repository at '/github/workspace' by @andife in #6949
- Formatting: Update create_release.yml by @andife in #7005
- Simplify proto source file generation by @cyyever in #6992
- Fix symbol refinition in unity builds by @cyyever in #7006
- Bump ossf/scorecard-action from 2.4.1 to 2.4.2 by @dependabot[bot] in #7015
- Bump ruff from 0.11.8 to 0.11.12 by @dependabot[bot] in #7019
- Bump mypy from 1.15.0 to 1.16.0 by @dependabot[bot] in #7016
- Bump codecov/codecov-action from 5.4.2 to 5.4.3 by @dependabot[bot] in #7013
- Bump clang-format from 20.1.3 to 20.1.5 by @dependabot[bot] in #7017
- Bump github/codeql-action from 3.28.16 to 3.28.18 by @dependabot[bot] in #7014
- [feat] linux wheels python 3.14-dev by @andife in #6951
- fix broken links to automatic upgrade and downgrade tests in AddNewOp.md by @alx256 in #7023
- [feat] mac wheels python 3.14-dev by @andife in #7021
- Shorten names in create_release/release_linux for better UX in github ui by @andife in #7027
- fix typo in Update RELEASE-MANAGEMENT.md by @andife in #7029
- Update auto_update_doc.yml by @andife in #7035
- Add test of UNITY_BUILD in main.yml by @cyyever in #7007
- use python 3.13.3 (instead of 3.13.4) in release_win_aarch64.yml by @andife in #7033
- python 3.14-dev for release_win_aarch64.yml by @andife in #7028
- Add ml_dtypes as a requirement by @justinchuby in #7045
- Add Pixi development environment by @cbourjau in #7044
- use newest python 3.13 version in release_win_aarch64.yml by @andife in #7046
- Replace requirements-release with requirements-release_build in weekly_modelzoo.yml by @andife in #7039
- Update and rename pixi-build.yml to pixi_build.yml by @andife in #7047
- clean up unnecessary dependencies in entrypoint.sh by @andife in #7051
- Fix extra-semi-stmt warnings by @cyyever in #6771
- remove outdated comment in requirements-dev.txt by @andife in #7060
- fix typo in RELEASE-MANAGEMENT.md by @andife in #7062
- Create copilot-setup-steps.yml by @justinchuby in #7061
- Restore ONNX_VERIFY_PROTO3 by @cyyever in #7064
- weekly_modelzoo.yml (mac -> linux runner) by @andife in #7069
- Cleanup onnx_proto CMake code by @cyyever in #7065
- add fail-fast to release_mac.yml by @andife in #7077
- run pixi_build.yml only weekly by @andife in #7078
- Reduce macos runs in main.yml by @andife in #7076
- Bump prefix-dev/setup-pixi from 0.8.8 to 0.8.10 by @dependabot[bot] in #7093
- Bump mypy from 1.16.0 to 1.16.1 by @dependabot[bot] in #7097
- Bump stefanzweifel/git-auto-commit-action from 5.2.0 to 6.0.1 by @dependabot[bot] in #7092
- Bump github/codeql-action from 3.28.18 to 3.29.2 by @dependabot[bot] in #7094
- Bump ruff from 0.11.12 to 0.12.1 and improve style by @dependabot[bot] in #7095
- Bump clang-format from 20.1.5 to 20.1.7 by @dependabot[bot] in #7096
- Bump protobuf to 6.31.1 by @cyyever in #7086
- Bump types-protobuf from 5.29.1.20250403 to 6.30.2.20250516 by @dependabot[bot] in #7018
- Use specific version for mac os runner by @andife in #7115
- Switch order of steps in release_win_x86_64.yml by @andife in #7125
- add top level permissions (Update pixi_build.yml) by @andife in #7126
- define top level permission (Update copilot-setup-steps.yml) by @andife in #7127
- add python 3.14-dev (release_win_x86_64.yml) by @andife in #7149
- Add documentation for building and publishing whls to pypi (OnnxReleases.md) by @andife in #7147
- no pytest for 3.13t (release_win_x86_64.yml) by @andife in #7150
- Update release.yml module: CI pipelines by @justinchuby in #7171
- Update RELEASE-MANAGEMENT.md by @andife in #7160
- add missing call-win_arm64 (Update create_release.yml) by @andife in #7173
- turn off some tests for 3.13t, 3.14-dev by @andife in #7162
- Add kv_nonpad_seqlen input to Attention by @yuanyao-nv in #7164
- Make stale bot ignore "contributions welcome" issues by @justinchuby in #7180
- update versions for 1.19 release by @yuanyao-nv in #7182
- Update version to 1.19.0rc1 by @yuanyao-nv in #7183
- fix condition for publishing to release pypi by @andife in #7200
- Cherrypick from main: Add markdown file and diagram for in-place KV cache (#7205) by @yuanyao-nv in #7210
- [1.19] Revert "Use [[maybe_unused]] (#6988)" by @titaiwangms in #7227
- [1.19] Fix unreachable code by @titaiwangms in #7229
- Update version number to 1.19.0rc2 by @yuanyao-nv in #7236
- Cherry-pick Attention fix from main and upgrade version to 1.19.0rc3 by @yuanyao-nv in #7241
- Update version to 1.19.0 for final release by @yuanyao-nv in #7247
New Contributors
- @mshudrak made their first contribution in #6809
- @cainbit made their first contribution in #6830
- @ngoldbaum made their first contribution in #6837
- @yadunand-kamath made their first contribution in #6863
- @ktf made their first contribution in #6840
- @co63oc made their first contribution in #6953
- @jagadeeshvx made their first contribution in #6997
- @alx256 made their first contribution in #7023
- @robertknight made their first contribution in #7032
- @amarin16 made their first contribution in #7074
- @KarelZe made their first contribution in #6994
- @Copilot made their first contribution in #7056
- @meilofveeningen-rl made their first contribution in #7104
- @bentheiii made their first contribution in #7156
- @zboszor made their first contribution in #7026
- @kcvlex made their first contribution in #6686
- @Sunny-Anand made their first contribution in #7179
Full Changelog: v1.18.0...v1.19.0