Skip to content

Logistics for ONNX Release 1.10

Michał Karzyński edited this page Oct 22, 2021 · 32 revisions

ONNX Release 1.10.0

Release Manager: Rajeev Rao

Target Release date: Week of 07/31/21

Timetable

  • 07/09 - Create v1.10.0 release wiki with release schedule. (Done)
  • 07/09 - Document all 1.10 planned work items for the release in this wiki.
  • 07/15 - Code freeze. All PRs must be validated and merged by this date. (Done)
  • 07/16 - Validate all new ops with ORT. Flush CI/CD pipeline. (Ashwini?)
  • 07/19 - Resolve pipeline failures, if any, and integrate any critical late PRs. (Done)
  • 07/20 - Cut the release branch. (Done - 07/21)
  • 07/20 - Create test packages. See onnx v1.9.100 (Done - 07/21)
  • 07/20 - Request partner validation of test packages. (Done - 07/21)
  • 07/30 - Complete ORT/partner/converters/community validation and approvals. (Done - 07/30)
  • 07/30 - ONNX v1.10.0 release and announcements.

References

Changelog

Operator updates in opset 15

Op Name Description Validation status ONNX PR
Optional Add new operators for Optional type Done PR (https://github.com/microsoft/onnxruntime/pull/8339/) #3567
CastLike Add new CastLike function operator Done PR(https://github.com/microsoft/onnxruntime/pull/8458) #3558
Bernoulli Add new Bernoulli function operator The test data is for informational purposes only. Validated the function expansion in ort. PR (https://github.com/microsoft/onnxruntime/pull/8458) #3431
Pow bfloat16 support for Pow operator No changes to test data. Only data type addition. #3412
Shape Extend shape op to return slice Done (https://github.com/microsoft/onnxruntime/pull/8442) #3412
BatchNormalization add additional type constraints for scale and bias in BN No change to test data #3545

New functionality

Description PR Status Notes
Update ONNX release, IR, and opset versions for v1.10.0 #3587 Merged
Extend Shape op to add optional attributes start/end #3580 Merged
Add new operators for Optional type #3567 Merged Optional(), OptionalHasElement, OptionalGetElement - for enabling export of customer models with optional type.
Add new CastLike function operator #3558 Merged
New version converter tests #3344 Merged Lot of interest in using version converters. Prefer to include in release.
Update spec documentation for model local functions #3575 Merged Change expected behavior when name conflict arises between an operator and a model local function with a specified domain.
Add additional type constraints for scale and bias in BatchNormalization #3545 Merged
Update protobuf version to 3.16 #3571 Merged ORT did as well
Checker updates for model local functions #3569 Merged
bfloat16 support for Pow operator #3412 Merged
Symbolic shapes #1 - symbol generation #3518 Merged Symbolic shape inference
Symbolic shapes #2 - data propagation #3551 Merged
Symbolic shape inference support-3: more ops for data propagation #3593 Merged
Export parser methods to python #3540 Merged
Extend model proto to include model local functions #3532 Merged
Add new Bernoulli function operator #3431 Merged Required for HuggingFace Transformer model export from ORTModule.
Introduce Optional type #3407 Merged
Add UnionShape for SparseTensor #3461 Merged
Allow checker and shape inference for serialized models #3403 Merged
Extend strict_model for ONNX checker #3348 Merged
Introduce SparseTensor type #3398 Merged

Shape inference enhancements

Description PR Status Notes
Update Reshape shape inference #3592 Merged
Fix shape inference of Squeeze #3516 Merged
Add shape inference for NonZero #3364 Merged
Add shape inference for dynamic QuantizeLinear #3539 Merged

Bugfixes and infrastructure improvements

Description PR Status Notes
make_sequence_value_info API alias for backwards compatibility #3612 Review Ashwini, Jacky
Make symbol generation optional #3599 Merged
Add requirements.txt to onnx repo #3448 Merged
Add aarch64 wheel build support #3414 Merged
Spec clarification for MatMulInteger and QLinearMatMul (#3585)
Version converter support for recursion into subgraphs #3474 Merged
Fix shape inference for Squeeze without axes #3465 Merged
Update ONNX examples to python3 #3450 Merged
Add new type constrains for variance and mean in BatchNormalization #3415 Merged
Specify population variance for BatchNormalization #3402 Merged
Always set the output of Shape to be rank-1 #3394 Merged Even when the input shape is unavailable, the output of Shape will always be a rank-1 vector.
BatchNormalization outputs updated for training mode #3379 Merged
Add README contents to package description #3376 Merged
Bugfix for proto utils and update checker error messages #3373 Merged

Skipped PRs

Description PR Status Notes
Accumulate for Scatter/Gather #3484 Review Ambiguity around handling of duplicated indices; perhaps best separated into two PRs (spec clarification, support accumulate).
onnx_proto symbols visibility clean-up #3371 Review Part of #3319
Experimental operator debug spew to std::cerr #2239 Review

TODO: Add manual verification into pipelines

The following testing can be added into release pipelines after producing the wheel to let release manager be aware.

  1. Test with the latest ORT with onnx/test/test_with_ort.py
  2. Test with different versions of dependencies (protobuf, numpy). Take protobuf as an example: test with 3.11.3 and the latest one.

Summary

Work items

Description Owner Status
Run local sanity tests Rajeev Rao Done
Cut v1.10 release branch Rajeev Rao Done
Validate PyPI test packages Rajeev Rao, Ashwini Khade, Jacky Chen Done
Partner validation of test packages Various Done
Validate Opset 15 with ORT Ashwini Khade Ashwini Khade
Create release summary Rajeev Rao Done
Publish ONNX v1.10.0 Rajeev Rao

Partner validation requests

ONNX v1.10.0 Release Notes

ONNX v1.10.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 Updates

Opset version 15

API

Infrastructure

Bug fixes

Installation

You can upgrade to the latest release using pip install onnx --upgrade or build from source following the README instructions.

Notes

  • Be aware of protobuf version gap issue (like building onnx with protobuf>=3.12 is not compatible with older protobuf)

ONNX v1.10.1 Release Notes

ONNX v1.10.1 is a patch release based on v1.10.0.

Bug fix:

  • Include requirements.txt in source distribution (#3623)

ONNX v1.10.2 Release Notes

ONNX v1.10.2 is a patch release based on v1.10.1.

Bug fixes included:

  • Fix compilation error on older compilers (#3683)
  • Stricter check for Shape's input: check input type (#3757)
  • Fix Linux aarch64 CI failure due to the latest pytest (#3736)

Contributors

Thanks to these individuals for their contributions in this release: @jcwchen, @askhade, @gramalingam, @neginraoof, @matteosal, @postrational, @garymm, @yuslepukhin, @fdwr, @jackwish, @manbearian, @etusien, @impactaky, @rajeevsrao, @prasanthpul, @take-cheeze, @chudegao, @mindest, @yufenglee, @annajung, @hwangdeyu, @calvinmccarter-at-lightmatter, @ashbhandare, @xuzijian629, @IceTDrinker, @mrry

Clone this wiki locally