Skip to content

Conversation

@crypto-a
Copy link
Owner

No description provided.

dependabot bot and others added 30 commits September 2, 2025 08:51
Similar to microsoft#2464. Does not support all the cases but we can add them in
other PRs.

---------

Signed-off-by: xadupre <xadupre@microsoft.com>
Co-authored-by: Justin Chu <justinchuby@users.noreply.github.com>
…2536)

According to
https://onnx.ai/onnx/operators/onnx__SplitToSequence.html#summary, `If
the argument split is not specified, a default scalar value of 1 is used
as the value of split`, and this is the only case when `keepdims` can be
set to `0`.

Fixes microsoft#2533
)

Organize all rules into a directory that is not with the rewriter
infrastructure:

- `onnxscript.rewriter.rules.common.*` for existing rules
- `onnxscript.rewriter.rules.fusion.*` for onnx fusion rules

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Simplify the graph when input rank is 4, in which case we don't need to
do any shape manipulation.

Fix pytorch/pytorch#162061

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Suggested by microsoft#2466, I
updated the constant folder logic to allow

**Constant folding customization:**

* Replaced the `always_fold_ops` parameter with a `should_fold` callable
that determines on a per-node basis whether folding should occur. This
allows users to specify more complex folding policies and makes the API
more explicit. (`FoldConstantsPass`, `fold_constants`)
[[1]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L902-R904)
[[2]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L913-R918)
[[3]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L1248-R1268)
[[4]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L1263-R1285)
[[5]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L1276-R1295)

**Logging and diagnostics improvements:**

* Upgraded logging throughout the folding process to provide more
informative messages, including reasons for skipping nodes (e.g.,
control flow, non-deterministic ops, large inputs, or graph inputs) and
explicit logging when `should_fold` returns a decision.
[[1]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L964-R958)
[[2]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L990-R984)
[[3]](diffhunk://#diff-99f13fcef1aa8c8c81fd51b7a71477572a86c91ed0dc8e618e18644d70fdf8b5L1075-R1141)

**Code cleanup and minor fixes:**

* Removed the unused `_update_type` function.

Fix microsoft#2466

cc @iksnagreb

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Previously sizes coming in as `SymInt[]` are first concatenated as INT64
then used. This created inefficiencies where we could not process any
static dims from the size list and had to treat the whole shape as
dynamic. In aten_expand, this meant we needed to add `Abs` on the shape.

This change updates the functions that take `SymInt[]` such that they
are no longer turned into INT64 first. I updated aten_expand to process
constant `-1` values so an `Abs` is not required. I also added a helper
`merge_dims` to create constants for consecutive constant dims first
before concatinating.

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
…oft#2540)

See issue microsoft#2539 for a better explanation. 

I know crazy stuff right =^).
This is a follow up of microsoft#2540
to add a test described in
microsoft#2539.

Fix microsoft#2539

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Split input (SymbolicTensor) could have no const_value, but with shape
that gives us information of how many outputs an op.Split should return.
…ft#2500)

This PR adds the following transformation:

- Min(Min(X)) -> Min(X)
- Max(Max(X)) -> Max(X)
- Min(Max(X)) -> Clip(X)
- Max(Min(X)) -> Clip(X)
Following (microsoft#2301),
`flatten_to_reshape_rule` rule set is introduced to reduce the following
list of operators:
- Reshape ∘ Flatten  -> Reshape
- Flatten ∘ Reshape  -> Reshape

Note to support this changes: 
- `ReshapeReshape` rule is updated to support more cases.
- `Flatten2Reshape` rule is introduced to convert Flatten ops into
Reshape when possible.
Allows passing a node name when defining a rewrite. fixes
microsoft#2435

---------

Co-authored-by: Justin Chu <justinchuby@users.noreply.github.com>
…#2550)

split is an optional input to op.SplitToSequence.
Because there will be breaking changes in this release
This PR adds `fuse_batchnorm` rules to default rules.

---------

Co-authored-by: Justin Chu <justinchuby@users.noreply.github.com>
Close microsoft#2468 

- Absorbs Affine into Conv:
  - Mul + Add + Conv ==> Conv
  - Conv + Mul + Add ==> Conv
- Fuse HardSwish:
  - Add + Clip + Div ==> HardSigmoid
  - HardSigmoid + Mul ==> HardSwish
- Add + Clip + Mul + Div ==> HardSwish (Since the order of operator
matters, I have to create different rewrite pattern for this)

May not be generic enough, but works for us in `paddleOCRv4` model.

Another question is hardswish is introduced in opset-v14, will
onnxscript handles older opset version or rewrite rules take care of
this?

---------

Co-authored-by: Kaiyu Shi <kaiyu@bytedance.com>
)

Fix rewriter CI tests for the latest onnx-ir version (currently in
main). Since the latest onnx-ir is now returning tuples for repeated
attributes, we need to update the comparison logic to account for that.

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Fix pytorch/pytorch#162570

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
1. Support `enable_gqa`
2. Align PyTorch setting to unsupport Q, K, and V when they are not 4D:
https://github.com/pytorch/pytorch/blob/62843c14bbf694f5722fd6e1075da4792507fe42/torch/onnx/_internal/exporter/_torchlib/ops/nn.py#L131-L133

NOTE: torch.nn.functional.scaled_dot_product_attention actually supports
3D, and even Q-3D with K and V - 4D in op tests.
…oft#2382)

This PR implements the missing
`torch.ops.prims.broadcast_in_dim.default` operation that appears in
BERT_pytorch and other PyTorch models.

## Overview

The `broadcast_in_dim` operation is a primitive that broadcasts a tensor
to a target shape by specifying which dimensions of the output
correspond to the input tensor dimensions. This is different from
standard broadcasting operations.

## Implementation Details

**Function signature:**
```python
def prims_broadcast_in_dim(
    a: TensorType, shape: INT64, broadcast_dimensions: Sequence[int]
) -> TensorType:
```

**Parameters:**
- `a`: Input tensor to broadcast
- `shape`: Target output shape  
- `broadcast_dimensions`: Specifies which dimensions of the output shape
correspond to the input tensor dimensions

**Example:**
```python
# Input tensor: [3, 4]
# Target shape: [2, 3, 5, 4] 
# broadcast_dimensions: [1, 3]
# Result: Input dimension 0 (size 3) maps to output dimension 1
#         Input dimension 1 (size 4) maps to output dimension 3
#         Output dimensions 0 and 2 are broadcasted (filled from size 1)
```
Fixes microsoft#2218. Fix pytorch/pytorch#135343

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: justinchuby <11205048+justinchuby@users.noreply.github.com>
Co-authored-by: Justin Chu <justinchuby@users.noreply.github.com>
Since onnxruntime defines `SimplifiedLayerNormalization` incorrectly in
the standard domain, the checker will fail.

Fixing this for Olive.
Use ir.val to replace ir.Input because ir.Input was deprecated

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
It is obsolete and the capability is covered by the simple pattern
matcher.

---------

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
titaiwangms and others added 29 commits November 4, 2025 17:13
…icrosoft#2679)

Fixes microsoft#2673

---------

Co-authored-by: Justin Chu <justinchuby@users.noreply.github.com>
Fixes pytorch/pytorch#166797

The original naming collides when there are multiple matched patterns
sharing the same parent node. This PR changes the naming to depend on
their own Conv weight name, which should be non-duplicated identifier.

~~NOTE: I don't know if my understanding is correct. It seems x is an
input of the pattern, which x.name + "_bias" collides with `max_pool`
bias (see the pic in the original issue)? If we check the output model
after _fuse_batchnorm.py, the bias would be correct with a name `val_17`
(the name may be collided and given by NameAuthority?). However, when
the following rule _remove_optional_bias tries to fetch the bias, it
would see all zero for some reasons.~~
Introduce basic infrastructure for merging metadata props (for use in
rewriter/optimizer etc.) A basic version added to rewriter.

TODO:
* Allow user control over this: should this be configurable at the level
of a RewriteRuleSet? Or, perhaps at a global level (given that ORT
fusions uses a number of rewrite-rule-sets for various reasons)?
* This
[line](https://github.com/microsoft/onnxscript/blob/1a27df145b7ec03da7d316a38c2cb005cf0a45b7/onnxscript/rewriter/ort_fusions/_core.py#L148)
should also be factored out or made user-controllable in some fashion.
Otherwise, the metadata gets lost anyway.

---------

Signed-off-by: Ganesan Ramalingam <grama@microsoft.com>
This fixes the issue of 
```
  return [op.Squeeze(out, [dim]) for out in outputs]
                                              ^^^^^^^
TypeError: 'SymbolicTensor' object is not iterable
```
when trying to export LSTM modules in `torch`.
This also already appeared in torch issues in
pytorch/pytorch#126339


The core seems to be the changes in microsoft#2597.
To my understanding the split returns a single `SymbolicTensor` instead
of a sequence when `dim=1`.
The fix implemented here is the casting of the return type to a list.


I struggled with writing a test that reproduces this nicely in here, any
guidance on that would be welcome.

---------

Co-authored-by: Justin Chu <justinchuby@users.noreply.github.com>
Add option to clear metadata in ort fusion. Otherwise, we lose all
metadata after running ORT fusion

---------

Signed-off-by: Ganesan Ramalingam <grama@microsoft.com>
Implement SDPA via MHA. This handles the case when earlier fusion rules
do not map larger patterns containing SDPA into MHA or GQA or Attention
(from ORT contrib ops). It implements SDPA via MHA.

---------

Signed-off-by: Ganesan Ramalingam <grama@microsoft.com>
Fix the error: `<class 'AttributeError'>: 'int' object has no attribute
'dtype'` by splitting the implementation out for `operator.*` ops.

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
Fixed pytorch/pytorch#147052

```bash
$ python -m pytest tests/function_libs/torch_lib/ops_test.py -k ops_aten_stft
====================================================================================================================================================================================================== test session starts ======================================================================================================================================================================================================
platform linux -- Python 3.13.1, pytest-8.4.1, pluggy-1.6.0
Using --randomly-seed=371864411
rootdir: /home/moatom/github/onnxscript
configfile: pyproject.toml
plugins: randomly-3.16.0, xdist-3.8.0, subtests-0.14.2, cov-6.2.1, hypothesis-6.138.2
collected 2158 items / 2154 deselected / 4 selected                                                                                                                                                                                                                                                                                                                                                                             

tests/function_libs/torch_lib/ops_test.py s..x                                                                                                                                                                                                                                                                                                                                                                     [100%]

======================================================================================================================================================================================================= warnings summary ========================================================================================================================================================================================================
onnxscript/converter.py:457: 429 warnings
tests/function_libs/torch_lib/ops_test.py: 15 warnings
  /home/moatom/github/onnxscript/onnxscript/converter.py:457: DeprecationWarning: Expression.__init__ got an unexpected keyword argument 'lineno'. Support for arbitrary keyword arguments is deprecated and will be removed in Python 3.15.
    expr = ast.Expression(expr, lineno=expr.lineno, col_offset=expr.col_offset)

onnxscript/converter.py:457: 429 warnings
tests/function_libs/torch_lib/ops_test.py: 15 warnings
  /home/moatom/github/onnxscript/onnxscript/converter.py:457: DeprecationWarning: Expression.__init__ got an unexpected keyword argument 'col_offset'. Support for arbitrary keyword arguments is deprecated and will be removed in Python 3.15.
    expr = ast.Expression(expr, lineno=expr.lineno, col_offset=expr.col_offset)

tests/function_libs/torch_lib/ops_test.py::TestOutputConsistencyFullGraphCPU::test_output_match_opinfo__ops_aten_stft_cpu_float32
tests/function_libs/torch_lib/ops_test.py::TestOutputConsistencyFullGraphCPU::test_output_match_opinfo__ops_aten_stft_cpu_float32
tests/function_libs/torch_lib/ops_test.py::TestOutputConsistencyFullGraphCPU::test_output_match_opinfo__ops_aten_stft_cpu_float32
  /home/moatom/github/onnxscript/tests/function_libs/torch_lib/ops_test_common.py:329: DeprecationWarning: __array__ implementation doesn't accept a copy keyword, so passing copy=False failed. __array__ must implement 'dtype' and 'copy' keyword arguments. To learn more, see the migration guide https://numpy.org/devdocs/numpy_2_0_migration_guide.html#adapting-to-changes-in-the-copy-keyword
    value = np.array(value.cpu())

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
==================================================================================================================================================================================================== short test summary info ====================================================================================================================================================================================================
SKIPPED [1] tests/function_libs/torch_lib/ops_test.py:101: Traced functions does not have a function proto
=================================================================================================================================================================== 2 passed, 1 skipped, 2154 deselected, 1 xfailed, 891 warnings, 7 subtests passed in 4.42s ===================================================================================================================================================================

```
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Co-authored-by: G. Ramalingam <grama@microsoft.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Fixes microsoft#2687

---------

Signed-off-by: Yuan Yao <yuanyao@nvidia.com>
…ner (microsoft#2676)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.2 to 0.14.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.14.3</h2>
<h2>Release Notes</h2>
<p>Released on 2025-10-30.</p>
<h3>Preview features</h3>
<ul>
<li>Respect <code>--output-format</code> with <code>--watch</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21097">#21097</a>)</li>
<li>[<code>pydoclint</code>] Fix false positive on explicit exception
re-raising (<code>DOC501</code>, <code>DOC502</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21011">#21011</a>)</li>
<li>[<code>pyflakes</code>] Revert to stable behavior if imports for
module lie in alternate branches for <code>F401</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20878">#20878</a>)</li>
<li>[<code>pylint</code>] Implement <code>stop-iteration-return</code>
(<code>PLR1708</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20733">#20733</a>)</li>
<li>[<code>ruff</code>] Add support for additional eager conversion
patterns (<code>RUF065</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20657">#20657</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix finding keyword range for clause header after statement ending
with semicolon (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21067">#21067</a>)</li>
<li>Fix syntax error false positive on nested alternative patterns (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21104">#21104</a>)</li>
<li>[<code>ISC001</code>] Fix panic when string literals are unclosed
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21034">#21034</a>)</li>
<li>[<code>flake8-django</code>] Apply <code>DJ001</code> to annotated
fields (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20907">#20907</a>)</li>
<li>[<code>flake8-pyi</code>] Fix <code>PYI034</code> to not trigger on
metaclasses (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20881">#20881</a>)</li>
<li>[<code>flake8-type-checking</code>] Fix <code>TC003</code> false
positive with <code>future-annotations</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21125">#21125</a>)</li>
<li>[<code>pyflakes</code>] Fix false positive for
<code>__class__</code> in lambda expressions within class definitions
(<code>F821</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20564">#20564</a>)</li>
<li>[<code>pyupgrade</code>] Fix false positive for <code>TypeVar</code>
with default on Python &lt;3.13 (<code>UP046</code>,<code>UP047</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21045">#21045</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Add missing docstring sections to the numpy list (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20931">#20931</a>)</li>
<li>[<code>airflow</code>] Extend <code>airflow.models..Param</code>
check (<code>AIR311</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21043">#21043</a>)</li>
<li>[<code>airflow</code>] Warn that
<code>airflow....DAG.create_dagrun</code> has been removed
(<code>AIR301</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21093">#21093</a>)</li>
<li>[<code>refurb</code>] Preserve digit separators in
<code>Decimal</code> constructor (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20588">#20588</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Avoid sending an unnecessary &quot;clear diagnostics&quot; message
for clients supporting pull diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21105">#21105</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>[<code>flake8-bandit</code>] Fix correct example for
<code>S308</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21128">#21128</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Clearer error message when <code>line-length</code> goes beyond
threshold (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21072">#21072</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/danparizher"><code>@​danparizher</code></a></li>
<li><a href="https://github.com/jvacek"><code>@​jvacek</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/augustelalande"><code>@​augustelalande</code></a></li>
<li><a
href="https://github.com/prakhar1144"><code>@​prakhar1144</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.14.3</h2>
<p>Released on 2025-10-30.</p>
<h3>Preview features</h3>
<ul>
<li>Respect <code>--output-format</code> with <code>--watch</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21097">#21097</a>)</li>
<li>[<code>pydoclint</code>] Fix false positive on explicit exception
re-raising (<code>DOC501</code>, <code>DOC502</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21011">#21011</a>)</li>
<li>[<code>pyflakes</code>] Revert to stable behavior if imports for
module lie in alternate branches for <code>F401</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20878">#20878</a>)</li>
<li>[<code>pylint</code>] Implement <code>stop-iteration-return</code>
(<code>PLR1708</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20733">#20733</a>)</li>
<li>[<code>ruff</code>] Add support for additional eager conversion
patterns (<code>RUF065</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20657">#20657</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix finding keyword range for clause header after statement ending
with semicolon (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21067">#21067</a>)</li>
<li>Fix syntax error false positive on nested alternative patterns (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21104">#21104</a>)</li>
<li>[<code>ISC001</code>] Fix panic when string literals are unclosed
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21034">#21034</a>)</li>
<li>[<code>flake8-django</code>] Apply <code>DJ001</code> to annotated
fields (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20907">#20907</a>)</li>
<li>[<code>flake8-pyi</code>] Fix <code>PYI034</code> to not trigger on
metaclasses (<code>PYI034</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20881">#20881</a>)</li>
<li>[<code>flake8-type-checking</code>] Fix <code>TC003</code> false
positive with <code>future-annotations</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21125">#21125</a>)</li>
<li>[<code>pyflakes</code>] Fix false positive for
<code>__class__</code> in lambda expressions within class definitions
(<code>F821</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20564">#20564</a>)</li>
<li>[<code>pyupgrade</code>] Fix false positive for <code>TypeVar</code>
with default on Python &lt;3.13 (<code>UP046</code>,<code>UP047</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21045">#21045</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Add missing docstring sections to the numpy list (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20931">#20931</a>)</li>
<li>[<code>airflow</code>] Extend <code>airflow.models..Param</code>
check (<code>AIR311</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21043">#21043</a>)</li>
<li>[<code>airflow</code>] Warn that
<code>airflow....DAG.create_dagrun</code> has been removed
(<code>AIR301</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21093">#21093</a>)</li>
<li>[<code>refurb</code>] Preserve digit separators in
<code>Decimal</code> constructor (<code>FURB157</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20588">#20588</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Avoid sending an unnecessary &quot;clear diagnostics&quot; message
for clients supporting pull diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21105">#21105</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>[<code>flake8-bandit</code>] Fix correct example for
<code>S308</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21128">#21128</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Clearer error message when <code>line-length</code> goes beyond
threshold (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21072">#21072</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/danparizher"><code>@​danparizher</code></a></li>
<li><a href="https://github.com/jvacek"><code>@​jvacek</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/augustelalande"><code>@​augustelalande</code></a></li>
<li><a
href="https://github.com/prakhar1144"><code>@​prakhar1144</code></a></li>
<li><a href="https://github.com/TaKO8Ki"><code>@​TaKO8Ki</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/8737a2d5f5138d855ef4b3ff6982bd7684324eab"><code>8737a2d</code></a>
Bump v0.14.3 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21152">#21152</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/3be3a10a2fc6ddaafc13d1f5bca566282285be5f"><code>3be3a10</code></a>
[ty] Don't provide completions when in class or function definition (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21146">#21146</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/13375d0e42bcf7e4dac346d8fad991b97222371d"><code>13375d0</code></a>
[ty] Use the top materialization of classes for narrowing in
class-patterns f...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/c0b04d4b7cfd725a9ca1b92b8bc4d93a63c56c59"><code>c0b04d4</code></a>
[ty] Update &quot;constraint implication&quot; relation to work on
constraints between ...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1c7ea690a820deaa0e17ecf72593ebc4781f3752"><code>1c7ea69</code></a>
[<code>flake8-type-checking</code>] Fix <code>TC003</code> false
positive with <code>future-annotations</code>...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/9bacd19c5a44594f44be1b0dcebd7ccf1777e633"><code>9bacd19</code></a>
[ty] Fix lookup of <code>__new__</code> on instances (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21147">#21147</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/f0fe6d62fb6711d963c64f60b5dc8a558ffb4551"><code>f0fe6d6</code></a>
Fix syntax error false positive on nested alternative patterns (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21104">#21104</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/10bda3df00679c6808d8593470fe693ea8c9ae8f"><code>10bda3d</code></a>
[<code>pyupgrade</code>] Fix false positive for <code>TypeVar</code>
with default on Python &lt;3.13 (...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/e55bc943e5f8708aeaced34488ca5d790c388cee"><code>e55bc94</code></a>
[ty] Reachability and narrowing for enum methods (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21130">#21130</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1b0ee4677e216562033f8a2f9b006738734cb2b9"><code>1b0ee46</code></a>
[ty] Use <code>range</code> instead of custom <code>IntIterable</code>
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/21138">#21138</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.14.2...0.14.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.14.2&new-version=0.14.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ements/lintrunner (microsoft#2677)

Bumps
[editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker.python)
from 3.4.0 to 3.4.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/editorconfig-checker/editorconfig-checker.python/commit/62dcf364a52192458d66c0dba3a0a1fdb78e4fbe"><code>62dcf36</code></a>
Merge pull request <a
href="https://redirect.github.com/editorconfig-checker/editorconfig-checker.python/issues/47">#47</a>
from editorconfig-checker/chore/bump-core-3.4.1</li>
<li><a
href="https://github.com/editorconfig-checker/editorconfig-checker.python/commit/f9066017a0789dd51fa058889d02725fb8cc1d69"><code>f906601</code></a>
chore(release): bump core package to 3.4.1</li>
<li>See full diff in <a
href="https://github.com/editorconfig-checker/editorconfig-checker.python/compare/3.4.0...3.4.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=editorconfig-checker&package-manager=pip&previous-version=3.4.0&new-version=3.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…251103 in /requirements/ci (microsoft#2678)

Bumps [onnx-weekly](https://github.com/onnx/onnx) from
1.20.0.dev20251027 to 1.21.0.dev20251103.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/onnx/onnx/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=onnx-weekly&package-manager=pip&previous-version=1.20.0.dev20251027&new-version=1.21.0.dev20251103)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bump version

Signed-off-by: Ganesan Ramalingam <grama@microsoft.com>
A utility and an example showing how onnxscript functions can be used to
define function expansions and be used with the inliner to replace calls
to the custom function with an expanded subgraph. This is useful to
perform certain classes of graph surgery easily.
Redo microsoft#2703, thanks to Titai.

Signed-off-by: Ganesan Ramalingam <grama@microsoft.com>
Fix aten_unbind for torch >= 2.7 dynamo export

## Problem

When exporting PyTorch models to ONNX with `dynamo=True` on torch >=
2.7, the `aten_unbind` operation fails with:

```
TypeError: 'SymbolicTensor' object is not iterable
```

This occurs because `op.Split(self, axis=dim, num_outputs=num_outputs)`
returns a single `SymbolicTensor` object rather than an iterable
sequence during dynamo export. The subsequent list comprehension
`[op.Squeeze(out, [dim]) for out in outputs]` attempts to iterate over
this non-iterable object, causing that error.

This affects models using LSTM and other operations that internally call
`unbind`, preventing successful ONNX export.

## Solution
Replace the `Split` op approach with explicit `Slice` operations:
- For each output along the unbind dimension, create an individual
`Slice` operation to extract one element
  - Apply `Squeeze` to remove the size-1 dimension
  - Collect all results in a list

## Test coverage:
  - num_outputs = 1: test_unbind_size_one
- num_outputs = 2: test_unbind_with_lstm, test_unbind_dim1 (size 2 along
some dims)
  - num_outputs = 3: test_unbind_dim0, test_unbind_dim1 
  - num_outputs = 4: test_unbind_negative_dim 
  - Negative dimensions: test_unbind_negative_dim 

## Related Issues
Fixes pytorch/pytorch#168969
…ner (microsoft#2716)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.3 to 0.14.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.14.6</h2>
<h2>Release Notes</h2>
<p>Released on 2025-11-21.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-bandit</code>] Support new PySNMP API paths
(<code>S508</code>, <code>S509</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21374">#21374</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Adjust own-line comment placement between branches (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21185">#21185</a>)</li>
<li>Avoid syntax error when formatting attribute expressions with outer
parentheses, parenthesized value, and trailing comment on value (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20418">#20418</a>)</li>
<li>Fix panic when formatting comments in unary expressions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21501">#21501</a>)</li>
<li>Respect <code>fmt: skip</code> for compound statements on a single
line (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20633">#20633</a>)</li>
<li>[<code>refurb</code>] Fix <code>FURB103</code> autofix (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21454">#21454</a>)</li>
<li>[<code>ruff</code>] Fix false positive for complex conversion
specifiers in <code>logging-eager-conversion</code>
(<code>RUF065</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21464">#21464</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>ruff</code>] Avoid false positive on <code>ClassVar</code>
reassignment (<code>RUF012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21478">#21478</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Render hyperlinks for lint errors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21514">#21514</a>)</li>
<li>Add a <code>ruff analyze</code> option to skip over imports in
<code>TYPE_CHECKING</code> blocks (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21472">#21472</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Limit <code>eglot-format</code> hook to eglot-managed Python buffers
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21459">#21459</a>)</li>
<li>Mention <code>force-exclude</code> in &quot;Configuration &gt;
Python file discovery&quot; (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21500">#21500</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a href="https://github.com/dylwil3"><code>@​dylwil3</code></a></li>
<li><a
href="https://github.com/gauthsvenkat"><code>@​gauthsvenkat</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a href="https://github.com/thamer"><code>@​thamer</code></a></li>
<li><a
href="https://github.com/Ruchir28"><code>@​Ruchir28</code></a></li>
<li><a
href="https://github.com/thejcannon"><code>@​thejcannon</code></a></li>
<li><a
href="https://github.com/danparizher"><code>@​danparizher</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
</ul>
<h2>Install ruff 0.14.6</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/astral-sh/ruff/releases/download/0.14.6/ruff-installer.sh
| sh
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.14.6</h2>
<p>Released on 2025-11-21.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-bandit</code>] Support new PySNMP API paths
(<code>S508</code>, <code>S509</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21374">#21374</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Adjust own-line comment placement between branches (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21185">#21185</a>)</li>
<li>Avoid syntax error when formatting attribute expressions with outer
parentheses, parenthesized value, and trailing comment on value (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20418">#20418</a>)</li>
<li>Fix panic when formatting comments in unary expressions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21501">#21501</a>)</li>
<li>Respect <code>fmt: skip</code> for compound statements on a single
line (<a
href="https://redirect.github.com/astral-sh/ruff/pull/20633">#20633</a>)</li>
<li>[<code>refurb</code>] Fix <code>FURB103</code> autofix (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21454">#21454</a>)</li>
<li>[<code>ruff</code>] Fix false positive for complex conversion
specifiers in <code>logging-eager-conversion</code>
(<code>RUF065</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21464">#21464</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>ruff</code>] Avoid false positive on <code>ClassVar</code>
reassignment (<code>RUF012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21478">#21478</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Render hyperlinks for lint errors (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21514">#21514</a>)</li>
<li>Add a <code>ruff analyze</code> option to skip over imports in
<code>TYPE_CHECKING</code> blocks (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21472">#21472</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Limit <code>eglot-format</code> hook to eglot-managed Python buffers
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/21459">#21459</a>)</li>
<li>Mention <code>force-exclude</code> in &quot;Configuration &gt;
Python file discovery&quot; (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21500">#21500</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a href="https://github.com/dylwil3"><code>@​dylwil3</code></a></li>
<li><a
href="https://github.com/gauthsvenkat"><code>@​gauthsvenkat</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a href="https://github.com/thamer"><code>@​thamer</code></a></li>
<li><a
href="https://github.com/Ruchir28"><code>@​Ruchir28</code></a></li>
<li><a
href="https://github.com/thejcannon"><code>@​thejcannon</code></a></li>
<li><a
href="https://github.com/danparizher"><code>@​danparizher</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
</ul>
<h2>0.14.5</h2>
<p>Released on 2025-11-13.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-simplify</code>] Apply <code>SIM113</code> when index
variable is of type <code>int</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21395">#21395</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/59c6cb521d26380120f8522476fd09d296bf4f2e"><code>59c6cb5</code></a>
Bump 0.14.6 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21558">#21558</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/54dba15088ced32c31592ab44ddfdf40614002bb"><code>54dba15</code></a>
[ty] Improve debug messages when imports fail (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21555">#21555</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1af318534a01ba6be69d7d77c33e96080635a8af"><code>1af3185</code></a>
[ty] Add support for relative import completions</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/553e5686248e86b9c781af77c714adc229bf8cc5"><code>553e568</code></a>
[ty] Refactor detection of import statements for completions</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/cdef3f5ab8115e2581e080341d4bab932d905af4"><code>cdef3f5</code></a>
[ty] Use dedicated collector for completions</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/617882242719af179a42be68170f9de9d83174f4"><code>6178822</code></a>
[ty] Attach subdiagnostics to <code>unresolved-import</code> errors for
relative imports...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/6b7adb0537d1a57f26cf462a637af483e0ba2c75"><code>6b7adb0</code></a>
[ty] support PEP 613 type aliases (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21394">#21394</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/06941c1987bd4fe2b54d99b5514784472cabc0b3"><code>06941c1</code></a>
[ty] More low-hanging fruit for inlay hint goto-definition (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21548">#21548</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/eb7c098d6b70aacbaebe8b7c8d7710ad4ad0f46b"><code>eb7c098</code></a>
[ty] implement <code>TypedDict</code> structural assignment (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21467">#21467</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/1b28fc1f1417284a075afa4a18c5e9d31a7d8620"><code>1b28fc1</code></a>
[ty] Add more random TypeDetails and tests (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21546">#21546</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.14.3...0.14.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.14.3&new-version=0.14.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to
6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>v6-beta by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li>
<li>update readme/changelog for v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p>
<h2>v6-beta</h2>
<h2>What's Changed</h2>
<p>Updated persist-credentials to store the credentials under
<code>$RUNNER_TEMP</code> instead of directly in the local git
config.</p>
<p>This requires a minimum Actions Runner version of <a
href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a>
to access the persisted credentials for <a
href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker
container action</a> scenarios.</p>
<h2>v5.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>V5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3"><code>1af3b93</code></a>
update readme/changelog for v6 (<a
href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/71cf2267d89c5cb81562390fa70a37fa40b1305e"><code>71cf226</code></a>
v6-beta (<a
href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/069c6959146423d11cd0184e6accf28f9d45f06e"><code>069c695</code></a>
Persist creds to a separate file (<a
href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493"><code>ff7abcd</code></a>
Update README to include Node.js 24 support details and requirements (<a
href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ci (microsoft#2652)

Bumps [onnxruntime](https://github.com/microsoft/onnxruntime) from
1.23.1 to 1.23.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/microsoft/onnxruntime/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=onnxruntime&package-manager=pip&previous-version=1.23.1&new-version=1.23.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action)
from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.30.8</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.8 - 10 Oct 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.8/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.7</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.7 - 06 Oct 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.7/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.6</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.6 - 02 Oct 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.23.2. <a
href="https://redirect.github.com/github/codeql-action/pull/3168">#3168</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.6/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.5</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.5 - 26 Sep 2025</h2>
<ul>
<li>We fixed a bug that was introduced in <code>3.30.4</code> with
<code>upload-sarif</code> which resulted in files without a
<code>.sarif</code> extension not getting uploaded. <a
href="https://redirect.github.com/github/codeql-action/pull/3160">#3160</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.5/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.4</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.4 - 25 Sep 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h2>3.29.4 - 23 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.3 - 21 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.2 - 30 Jun 2025</h2>
<ul>
<li>Experimental: When the <code>quality-queries</code> input for the
<code>init</code> action is provided with an argument, separate
<code>.quality.sarif</code> files are produced and uploaded for each
language with the results of the specified queries. Do not use this in
production as it is part of an internal experiment and subject to change
at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/2935">#2935</a></li>
</ul>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.21 - 28 July 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.20 - 21 July 2025</h2>
<ul>
<li>Remove support for combining SARIF files from a single upload for
GHES 3.18, see <a
href="https://github.blog/changelog/2024-05-06-code-scanning-will-stop-combining-runs-from-a-single-upload/">the
changelog post</a>. <a
href="https://redirect.github.com/github/codeql-action/pull/2959">#2959</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/a841c540b73bac7685691a2f930006ba52db3645"><code>a841c54</code></a>
Scratch <code>uploadSpecifiedFiles</code> tests, make
<code>uploadPayload</code> tests instead</li>
<li><a
href="https://github.com/github/codeql-action/commit/aeb12f6eaaa7419b7170f27dc3e2b5710203ff2d"><code>aeb12f6</code></a>
Merge branch 'main' into redsun82/skip-sarif-upload-tests</li>
<li><a
href="https://github.com/github/codeql-action/commit/6fd4ceb7bbb8ec2746fd4d3a64b77787dffd9afc"><code>6fd4ceb</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3189">#3189</a>
from github/henrymercer/download-codeql-rate-limit</li>
<li><a
href="https://github.com/github/codeql-action/commit/196a3e577b477ffb129cb35c7ed3ba72e6e2dbe7"><code>196a3e5</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3188">#3188</a>
from github/mbg/telemetry/partial-config</li>
<li><a
href="https://github.com/github/codeql-action/commit/98abb870dcd6421594724ae220643e13baf90298"><code>98abb87</code></a>
Add configuration error for rate limited CodeQL download</li>
<li><a
href="https://github.com/github/codeql-action/commit/bdd2cdf891a0a89c6680bd54c9ba63c80e440f75"><code>bdd2cdf</code></a>
Also include <code>language</code> in error status report for
<code>start-proxy</code>, if available</li>
<li><a
href="https://github.com/github/codeql-action/commit/fb148789ab863424b005147b4b018fe5691e5ccc"><code>fb14878</code></a>
Include <code>languages</code> in <code>start-proxy</code>
telemetry</li>
<li><a
href="https://github.com/github/codeql-action/commit/2ff418f28a66dd71cd80701e95ec26db12875f15"><code>2ff418f</code></a>
Parse <code>language</code> before calling
<code>getCredentials</code></li>
<li>See full diff in <a
href="https://github.com/github/codeql-action/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ti-Tai Wang <titaiwang@microsoft.com>
…ner (microsoft#2721)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.6 to 0.14.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.14.7</h2>
<h2>Release Notes</h2>
<p>Released on 2025-11-28.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-bandit</code>] Handle string literal bindings in
suspicious-url-open-usage (<code>S310</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21469">#21469</a>)</li>
<li>[<code>pylint</code>] Fix <code>PLR1708</code> false positives on
nested functions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21177">#21177</a>)</li>
<li>[<code>pylint</code>] Fix suppression for empty dict without tuple
key annotation (<code>PLE1141</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21290">#21290</a>)</li>
<li>[<code>ruff</code>] Add rule <code>RUF066</code> to detect
unnecessary class properties (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21535">#21535</a>)</li>
<li>[<code>ruff</code>] Catch more dummy variable uses
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19799">#19799</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[server] Set severity for non-rule diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21559">#21559</a>)</li>
<li>[<code>flake8-implicit-str-concat</code>] Avoid invalid fix in
(<code>ISC003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21517">#21517</a>)</li>
<li>[<code>parser</code>] Fix panic when parsing IPython escape command
expressions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21480">#21480</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Show partial fixability indicator in statistics output (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21513">#21513</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/mikeleppane"><code>@​mikeleppane</code></a></li>
<li><a href="https://github.com/senekor"><code>@​senekor</code></a></li>
<li><a
href="https://github.com/ShaharNaveh"><code>@​ShaharNaveh</code></a></li>
<li><a
href="https://github.com/JumboBear"><code>@​JumboBear</code></a></li>
<li><a
href="https://github.com/prakhar1144"><code>@​prakhar1144</code></a></li>
<li><a href="https://github.com/tsvikas"><code>@​tsvikas</code></a></li>
<li><a
href="https://github.com/danparizher"><code>@​danparizher</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
</ul>
<h2>Install ruff 0.14.7</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/astral-sh/ruff/releases/download/0.14.7/ruff-installer.ps1
| iex&quot;
</code></pre>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.14.7</h2>
<p>Released on 2025-11-28.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-bandit</code>] Handle string literal bindings in
suspicious-url-open-usage (<code>S310</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21469">#21469</a>)</li>
<li>[<code>pylint</code>] Fix <code>PLR1708</code> false positives on
nested functions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21177">#21177</a>)</li>
<li>[<code>pylint</code>] Fix suppression for empty dict without tuple
key annotation (<code>PLE1141</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21290">#21290</a>)</li>
<li>[<code>ruff</code>] Add rule <code>RUF066</code> to detect
unnecessary class properties (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21535">#21535</a>)</li>
<li>[<code>ruff</code>] Catch more dummy variable uses
(<code>RUF052</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/19799">#19799</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[server] Set severity for non-rule diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21559">#21559</a>)</li>
<li>[<code>flake8-implicit-str-concat</code>] Avoid invalid fix in
(<code>ISC003</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21517">#21517</a>)</li>
<li>[<code>parser</code>] Fix panic when parsing IPython escape command
expressions (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21480">#21480</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Show partial fixability indicator in statistics output (<a
href="https://redirect.github.com/astral-sh/ruff/pull/21513">#21513</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/mikeleppane"><code>@​mikeleppane</code></a></li>
<li><a href="https://github.com/senekor"><code>@​senekor</code></a></li>
<li><a
href="https://github.com/ShaharNaveh"><code>@​ShaharNaveh</code></a></li>
<li><a
href="https://github.com/JumboBear"><code>@​JumboBear</code></a></li>
<li><a
href="https://github.com/prakhar1144"><code>@​prakhar1144</code></a></li>
<li><a href="https://github.com/tsvikas"><code>@​tsvikas</code></a></li>
<li><a
href="https://github.com/danparizher"><code>@​danparizher</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
<li><a
href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/ecab623fb2fe3846de4cafa0dfef0385a7245941"><code>ecab623</code></a>
Bump 0.14.7 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21684">#21684</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/42f152108aad444b7d65359aea931be4dd15dffd"><code>42f1521</code></a>
[ty] Generic types aliases (implicit and PEP 613) (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21553">#21553</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/594b7b04d3b04bcf42861f86207017c8117678ca"><code>594b7b0</code></a>
[ty] Preserve quoting style when autofixing <code>TypedDict</code> keys
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/21682">#21682</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/b5b4917d7f4a324f5d32cc55dfb1d08e75cc9e6f"><code>b5b4917</code></a>
[ty] Fix override of final method summary (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21681">#21681</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/0084e94f78742685ddacf2dab28530c2ece3393e"><code>0084e94</code></a>
[ty] Fix subtyping of <code>type[Any]</code> / <code>type[T]</code> and
protocols (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21678">#21678</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/566c959add8c5aa5d25fd14db513c792e4048b50"><code>566c959</code></a>
[ty] Rename <code>ReferenceRequestHandler</code> file (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21680">#21680</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/8bcfc198b83051db0c8a3c7b8f0c8a8c339947c7"><code>8bcfc19</code></a>
[ty] Implement <code>typing.final</code> for methods (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21646">#21646</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/c534bfaf01671b8020edd440bc7f4f22070af583"><code>c534bfa</code></a>
[ty] Implement patterns and typevars in the LSP (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21671">#21671</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/5e1b2eef5797b00de8329bf38ceacf5cacd00c87"><code>5e1b2ee</code></a>
[ty] implement rendering of <code>.. code:: lang</code> in docstrings
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/21665">#21665</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/98681b9356bd0b8ef086cc54118b58de532c5310"><code>98681b9</code></a>
[ty] Add <code>db</code> parameter to <code>Parameters::new</code>
method (<a
href="https://redirect.github.com/astral-sh/ruff/issues/21674">#21674</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.14.6...0.14.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.14.6&new-version=0.14.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…soft#2713)

I added support for exporting `QuantizeLinear`/`DequantizeLinear` nodes
(from `fake_quantize_per_*_affine` torch operators) in a previous PR.

Unfortunately, the current default onnxscript optimizer settings tend to
automatically remove any weight quantization. This is because the
`Weight -> QDQ -> ...` pattern looks like it can be just constant folded
to `QDQ(Weight) -> ...`.

I believe that this behavior is not desirable, since the presence of
`QDQ` nodes in the graph is what allows inference engines to run the
supported computations using quantized data types. So the purpose of
`QDQ` nodes is to hold the relevant quantization "metadata". As such,
they normally shouldn't be constant folded.

I have extended the existing logic in `FoldConstantsPass` that was used
to exclude `ConstantOfShape` from constant folding.

I haven't found any tests verifying this behavior for `ConstantOfShape`
and I'm not sure, how to set up such a unit test, so I have left this
code untested for now. If adding tests is mandatory, please give me a
hint on where should I add such a test and what would be the best way to
check/assert that the optimized graph matches the expectations
(hopefully without reinventing the wheel or manually introspecting the
`ir.Model` object).
…#2727)

Previously the Scalar_Tensor overload will fail because the first arg
will be a scalar which does not have dtype.

Signed-off-by: Justin Chu <justinchuby@users.noreply.github.com>
@crypto-a crypto-a merged commit b8aae85 into fix-2219 Dec 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.