Conversation
…s extraction (#33813) <!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ## Summary This PR significantly enhances the PR agent workflow with improvements across **two development phases**: ### Phase 1: Original Enhancements (Commits 1-8) 1. **Multi-model try-fix exploration** - Uses 5 different AI models to explore alternative solutions 2. **Environment blocker handling** - Strict rules to stop and ask user when environment issues occur 3. **Review automation script** - PowerShell script that invokes Copilot CLI directly for PR reviews 4. **Branch safety rules** - Prevents agent from switching branches during reviews 5. **Template formatting rules** - Exact template adherence for downstream script compatibility ### Phase 2: Consolidation & Simplification (Commit 9) After multi-model review (5 models: Claude Sonnet 4.5, Claude Opus 4.5, GPT-5.2, GPT-5.2-Codex, Gemini 3 Pro), the following improvements were made: 6. **Shared rules extraction** - Created `SHARED-RULES.md` to eliminate duplication across files 7. **Simplified git policy** - Agent never runs git commands; always assumes correct branch 8. **State file handling** - Changed "commit" to "save" (state files are gitignored) 9. **Reduced verbosity** - Compressed cross-pollination section, converted PLAN-TEMPLATE to checklist --- ## Commits ### 1. `80d7e412c2` - Update pr agent with multi-model try-fix workflow **Why:** The original PR agent only used a single model for exploring fixes. Different AI models have different strengths and may find solutions others miss. **Changes:** - Added Phase 4 multi-model workflow using 5 models: - `claude-sonnet-4.5`, `claude-opus-4.5`, `gpt-5.2`, `gpt-5.2-codex`, `gemini-3-pro-preview` - Cross-pollination loop: Share results between models to spark new ideas - Continue until all models confirm "no more approaches to explore" --- ### 2. `69cc6af403` - Address Copilot review suggestions **Why:** Initial PR review feedback suggested improvements. **Changes:** - Minor formatting and clarity improvements to pr.md --- ### 3. `fe55c3fd21` - Add rules for template formatting and skill script usage **Why:** Downstream scripts depend on exact regex patterns in state files. Agents were "improving" templates by adding attributes like `open` which broke parsing. **Changes:** - Added "Follow Templates EXACTLY" rule - no adding attributes, no improving formats - Added "Use Skills' Scripts" rule - run provided PowerShell scripts, don't bypass with manual commands --- ### 4. `debbee608e` - Add 'Stop on Environment Blockers' rule to PR agent **Why:** Agent was continuing through phases when environment issues (missing Appium, WinAppDriver errors) prevented completion, leading to incomplete reviews. **Changes:** - Added explicit blocker handling section to pr.md - Common blockers: Appium drivers, WinAppDriver, Xcode, emulators, port conflicts - Must STOP, report the blocker, and ask user how to proceed - Never mark phase as blocked and continue to next phase --- ### 5. `ad29f6a796` - Add PR review plan template and Review-PR.ps1 script **Why:** Need a reusable template for consistent PR reviews and a script to automate invocation. **Changes:** - Created `.github/agents/pr/PLAN-TEMPLATE.md` - Reusable 5-phase review plan - Created `.github/scripts/Review-PR.ps1` - Script to prepare environment and invoke Copilot CLI --- ### 6. `886ea2aa8e` - Improve blocker handling and fix Review-PR.ps1 for Copilot CLI **Why:** During PR #27300 review, agent spent 10+ tool calls troubleshooting WinAppDriver instead of stopping after first failure. **Changes:** - Added strict retry limits table: | Blocker Type | Max Retries | Action | |--------------|-------------|--------| | Server errors (500, timeout) | 0 | STOP immediately | | Missing tools | 1 install | STOP and ask | | Port conflicts | 1 kill | STOP and ask | | WinAppDriver errors | 0 | STOP immediately | - Added "What I tried" section to blocker report template - New prohibitions: Never spend more than 2-3 tool calls on same blocker --- ### 7. `d67da75e85` - Update Review-PR.ps1 to invoke Copilot CLI directly **Why:** Initially thought Copilot CLI was interactive-only. Discovered it supports `-i <prompt>` and `-p <prompt>` for programmatic invocation. **Changes:** - Script now invokes `copilot --agent pr -i "<prompt>"` directly - Validates both `gh` CLI and `copilot` CLI are installed - New `-NoInteractive` switch for `-p` mode (exits after completion) - Dry run mode shows exactly what would be invoked --- ### 8. `ed74c574a5` - Add 'Do NOT Switch Branches' rule to pr agent **Why:** During PR review testing, the pr agent ran `git checkout`, `git stash`, and other branch-switching commands, causing loss of local changes and confusion about which code was being reviewed. **Changes:** - Added explicit "Do NOT Switch Branches" rule to both pr.md and PLAN-TEMPLATE.md - Forbidden commands: `git checkout`, `git switch`, `gh pr checkout`, `git stash` - Agent must work on current branch as-is, using `git diff` or `gh pr diff` to see PR changes - Fixed variable expansion in Review-PR.ps1 prompt (double backticks for here-strings) --- ### 9. `632bfb7155` - Extract shared rules, simplify git policy, reduce duplication **Why:** Multi-model review (5 AI models) identified significant duplication (~200 lines) across files, conflicting "commit" terminology, and overly verbose sections. The git checkout prohibition also conflicted with workflow steps that mentioned git checkout. **Changes:** - **Created `SHARED-RULES.md`** (167 lines) - Single source of truth for: - Phase Completion Protocol - Follow Templates EXACTLY - No Direct Git Commands (absolute - agent never runs git) - Use Skills' Scripts - Stop on Environment Blockers (with retry limits) - Multi-Model Configuration (5 models list) - Platform Selection guidance - **Simplified git policy** - Agent is ALWAYS on correct branch, never runs git commands: - Removed git fetch/checkout from Phase 1 Pre-Flight - Phase 5: User handles commit/push/PR creation - Changed all "State file committed" → "State file saved" (gitignored files) - **Compressed content**: - Cross-pollination ASCII box: 51 → 20 lines - PLAN-TEMPLATE.md: Full docs → Pure checklist (226 → 112 lines) - pr.md: 662 → 535 lines (-19%) - post-gate.md: 403 → 302 lines (-25%) - Total reduction: 1291 → 1116 lines (-14%) - **Eliminated duplication**: - Blocker handling was in 3 files → now in SHARED-RULES.md only - Phase Completion Protocol was in 2 files → now in SHARED-RULES.md only - Model list was in 3 files → now in SHARED-RULES.md only --- ## Files Changed | File | Purpose | |------|---------| | `.github/agents/pr.md` | Main PR agent instructions (Phases 1-3) | | `.github/agents/pr/post-gate.md` | Phase 4-5 instructions (multi-model try-fix) | | `.github/agents/pr/PLAN-TEMPLATE.md` | **NEW** - Reusable 5-phase review checklist | | `.github/agents/pr/SHARED-RULES.md` | **NEW** - Extracted shared rules (single source of truth) | | `.github/scripts/Review-PR.ps1` | **NEW** - Script to invoke Copilot CLI for PR review | --- ## Usage ```powershell # Interactive mode (default) - stays open for follow-up pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 # Non-interactive mode - exits when done pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -NoInteractive # Specific platform pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -Platform ios # Skip merge if already on branch pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -SkipMerge # Dry run to preview pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -DryRun ``` --- ## Multi-Model Validation The final changes (commit 9) were validated by 5 AI models: | Model | Verdict | Key Feedback | |-------|---------|--------------| | Claude Sonnet 4.5 | ✅ READY TO MERGE | "All git command instructions successfully removed" | | Claude Opus 4.5 | ✅ READY TO MERGE | "Excellent refactoring, no conflicting guidance" | | GPT-5.2 | ✅ READY TO MERGE | "Progressive disclosure maintained" | | GPT-5.2-Codex | ✅ READY TO MERGE | "No instructions to run git commands remain" | | Gemini 3 Pro | ✅ READY TO MERGE | "Agent is instructed to STOP and ask user for commits" | --- ## Testing Tested by reviewing PR #27300 (ScrollView ScrollToAsync fix): - Pre-Flight phase completed successfully - Tests phase verified test files exist - Gate phase encountered WinAppDriver blocker → agent correctly stopped and asked - Blocker handling rules validated through real-world usage - **Branch safety verified**: Agent stayed on branch instead of switching --------- Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! # XAML C# Expressions Write C# expressions directly in XAML — no more converters, no more boilerplate. ##⚠️ Experimental Feature This is an **experimental preview feature** for .NET 11. The API and syntax may change before release. ### How to Enable Add to your project file: ```xml <PropertyGroup> <EnablePreviewFeatures>true</EnablePreviewFeatures> </PropertyGroup> ``` Without this flag, using C# expression syntax results in error **MAUIX2012**. ### Requirements - SourceGen mode (default in .NET 11) - `x:DataType` attribute on your page/view ## Example ```xml <ContentPage x:DataType="local:ProductViewModel"> <!-- Simple binding --> <Label Text="{ProductName}" /> <!-- String interpolation --> <Label Text="{$'{Quantity}x {ProductName}'}" /> <!-- Calculations --> <Label Text="{$'Total: ${Price * Quantity:F2}'}" /> <!-- Boolean negation (no converter needed!) --> <Label IsVisible="{!IsLoading}" /> <!-- Boolean expressions (no MultiBinding needed!) --> <Button Text="Submit" IsEnabled="{HasAccount && AgreedToTerms}" /> <!-- Inline event handlers (no code-behind needed!) --> <Button Text="{$'Clicked {ClickCount} times'}" Clicked="{(s, e) => ClickCount++}" /> <!-- Ternary expressions --> <Label Text="{IsVip ? 'Gold Member' : 'Standard'}" /> </ContentPage> ``` ## Syntax Highlights Some of the supported expressions (see [full spec](https://github.com/dotnet/maui/blob/dev/stdelc/xaml%2Bcode-clean/docs/specs/XamlCSharpExpressions.md) for complete reference): | Feature | Syntax | Example | |---------|--------|---------| | Property binding | `{Property}` | `{Username}` | | Nested property | `{A.B}` | `{User.DisplayName}` | | String interpolation | `{$'..{x}..'}` | `{$'Hello {Name}!'}` | | Boolean negation | `{!Bool}` | `{!IsHidden}` | | Boolean AND/OR | `{A && B}` | `{IsLoaded && HasData}` | | Arithmetic | `{A * B}` | `{Price * Quantity}` | | Ternary | `{c ? a : b}` | `{IsVip ? 'Gold' : 'Standard'}` | | Null-coalesce | `{a ?? b}` | `{Title ?? 'Untitled'}` | | Lambda events | `{(s, e) => ...}` | `{(s, e) => Count++}` | | Local method | `{Method()}` | `{GetDisplayText()}` | | Static member | `{Type.Member}` | `{DateTime.Now}` | ## What's NOT Supported - Async lambdas (`{async (s, e) => ...}`) — use regular methods - Parameterless lambdas (`{() => ...}`) — must include `(s, e)` - XamlC or Runtime inflation — SourceGen only ## Resources - **Sample App**: [MauiXamlCsharpSample](https://github.com/jfversluis/MauiXamlCsharpSample) by Gerald Versluis - **Full Spec**: [docs/specs/XamlCSharpExpressions.md](https://github.com/dotnet/maui/blob/dev/stdelc/xaml%2Bcode-clean/docs/specs/XamlCSharpExpressions.md)
…3861) <!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ## Summary Enhances the `pr-finalize` skill with a **two-phase workflow** that includes code review, and adds critical safety rules preventing agents from approving or blocking PRs. ### What This PR Does 1. **Adds Phase 2: Code Review** - After verifying title/description, the skill now performs a code review for best practices 2. **Adds critical safety rule** - Agents must NEVER use `--approve` or `--request-changes` flags 3. **Keeps skill focused** - Users can invoke with different models themselves if they want multi-model coverage --- ## Commits ### 1. `2ad480c77d` - Add multi-model code review to pr-finalize skill **Original commit** that added the code review phase to pr-finalize. ### 2. `71eb8c2216` - Add critical rule: agents must NEVER approve/request-changes on PRs **Why:** AI agents should never make approval decisions on PRs. That's a human responsibility. **Changes:** - Added prominent `🚨 CRITICAL` warning section at top of skill - Added CRITICAL note to `copilot-instructions.md` - Only `gh pr review --comment` is allowed ### 3. `335be127cb` - Simplify pr-finalize: remove multi-model orchestration, keep code review **Why:** After review, decided that multi-model orchestration should be user-controlled, not built into the skill. Users can invoke pr-finalize with different models themselves if they want multi-model coverage. **Changes:** - Removed 5-model orchestration logic (model table, parallel execution, consensus synthesis) - Renamed "Multi-Model Code Review" → "Code Review" - Fixed contradiction: removed `--approve`/`--request-changes` examples that conflicted with the NEVER rule - Kept the code review focus areas and output format - Reduced skill from 422 → 373 lines --- ## The Two-Phase Workflow ### Phase 1: Title & Description Review - Verify PR metadata matches actual implementation - Check for required NOTE block - Ensure title is searchable and informative ### Phase 2: Code Review - Review code for best practices - Focus on: code quality, error handling, performance, platform concerns, breaking changes - Post findings as **comment only** (never approve/request-changes) --- ## Key Safety Rule ```markdown ## 🚨 CRITICAL: NEVER Approve or Request Changes **AI agents must NEVER use `--approve` or `--request-changes` flags.** | Action | Allowed? | Why | |--------|----------|-----| | `gh pr review --approve` | ❌ **NEVER** | Approval is a human decision | | `gh pr review --request-changes` | ❌ **NEVER** | Blocking PRs is a human decision | | `gh pr review --comment` | ✅ **OK** | Findings for human review | ``` --- ## Files Changed | File | Changes | |------|---------| | `.github/skills/pr-finalize/SKILL.md` | Added Phase 2 code review, safety rules, simplified orchestration | | `.github/copilot-instructions.md` | Updated skill description, added CRITICAL note | --- ## Why Not Multi-Model Orchestration? The original approach had the skill orchestrate 5 different AI models in parallel. This was removed because: 1. **User control** - Users can invoke pr-finalize with `model` parameter themselves 2. **Simplicity** - Skill focuses on *what* to review, not *how* to orchestrate 3. **Flexibility** - Users choose when multi-model is worth the cost 4. **Avoids contradictions** - Original had consensus logic that conflicted with "never approve" rule --- ## Issues Fixed N/A - Enhancement to agent workflow --------- Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ## Description Fixes iOS integration test failures that have been occurring since Jan 23, 2026 on the `main` branch. ### Root Cause When launching iOS apps via XHarness/mlaunch, a race condition occurs where the simulator reports as "booted" but is still internally in the "Booting" state. This causes app launch to fail with: ``` An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=405): Unable to lookup in current state: Booting error HE0042: Could not launch the app on the device: simctl returned exit code 149 ``` ### Fix This PR adds a `WaitForBootComplete()` method to the `Simulator` class which uses `simctl bootstatus` to block until the simulator is fully booted before attempting to run tests. The `IOSSimulatorFixture` now calls this method after launching the simulator. ### Affected Tests - `RunOniOS_MauiDebug` - `RunOniOS_MauiRelease` - `RunOniOS_MauiReleaseTrimFull` - `RunOniOS_BlazorDebug` - `RunOniOS_BlazorRelease` - `RunOniOS_MauiNativeAOT` ### Changes - Added `Simulator.WaitForBootComplete()` method in `Apple/Simulator.cs` - Updated `IOSSimulatorFixture` constructor to call `WaitForBootComplete()` after `Launch()`
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ### Description of Change The Android integration tests (`RunOnAndroid`) were failing with "Failed to launch Test AVD" because the emulator was being launched in every test's constructor instead of once in the shared fixture. **Root Cause:** The `AndroidTemplateTests` constructor was calling `LaunchAndWaitForAvd()` for each test, which caused: 1. Multiple attempts to launch the same emulator 2. Possible race conditions between tests 3. Each test waiting 600 seconds for an emulator that may have already failed to boot in a previous test **Fix:** Moved the emulator launch from the test constructor to `AndroidEmulatorFixture` constructor (one-time setup), matching how `IOSSimulatorFixture` handles the simulator. The collection fixture now: 1. Accepts SDK licenses 2. Installs the AVD 3. **Launches and waits for the emulator to boot (NEW)** Individual tests no longer attempt to launch the emulator - they use the already-running emulator from the shared fixture. ### Issues Fixed Fixes Android integration test failures on CI
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ## Description Fixes an issue where `eng/build.ps1` always exited with code 0 regardless of whether the underlying build succeeded or failed. This caused Azure Pipelines to show steps as "succeeded" even when they failed. ### Problem When running `./build.cmd -build` (without `-restore`), if the .NET SDK is not found, the script would: 1. Print "Unable to find dotnet with SDK version..." 2. Call `ExitWithExitCode 1` in `tools.ps1` 3. But `eng/build.ps1` would still exit with 0 (line 146: `exit 0`) This caused Azure Pipelines to show the step as green/succeeded when it should have been red/failed. ### Fix - Capture `$LASTEXITCODE` after `Invoke-Expression` call to `common/build.ps1` - Use the captured exit code instead of always exiting 0 ### Testing This fix was identified while investigating Windows Helix device test failures where the "Build the MSBuild Tasks" step was showing as succeeded but had actually failed to find the SDK. Build with the issue: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1279950
Contributor
There was a problem hiding this comment.
Pull request overview
This PR merges the latest changes from the main branch into the net11.0 branch, bringing in significant improvements to integration tests, XAML C# expressions support, and various infrastructure enhancements.
Changes:
- Enhanced iOS simulator management with race condition prevention
- Android emulator lifecycle optimization (per-collection instead of per-test)
- Added comprehensive XAML C# Expressions feature with source generation
- Infrastructure improvements (build exit codes, CI display names, retry configuration)
- New PowerShell script for PR review workflow
- Updated documentation and agent instructions
Reviewed changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
src/TestUtils/src/Microsoft.Maui.IntegrationTests/AppleTemplateTests.cs |
Added simulator boot completion wait to prevent race conditions |
src/TestUtils/src/Microsoft.Maui.IntegrationTests/Apple/Simulator.cs |
Implemented WaitForBootComplete() method using simctl bootstatus |
src/TestUtils/src/Microsoft.Maui.IntegrationTests/AndroidTemplateTests.cs |
Refactored emulator launch to collection-level instead of per-test |
src/Controls/tests/Xaml.UnitTests/MockSourceGenerator.cs |
Added EnablePreviewFeatures parameter for C# expressions |
src/Controls/tests/Xaml.UnitTests/Issues/NullConditionalSettable.sgen.* |
New test for null-conditional access in two-way bindings |
src/Controls/tests/Xaml.UnitTests/CSharpExpressions.sgen.* |
Comprehensive test suite for C# expressions feature |
src/Controls/tests/SourceGen.UnitTests/SourceGeneratorDriver.cs |
Added EnablePreviewFeatures support |
src/Controls/tests/SourceGen.UnitTests/MemberResolverTests.cs |
New unit tests for member resolution logic |
src/Controls/tests/SourceGen.UnitTests/InitializeComponent/SourceGenXamlInitializeComponentTests.cs |
Added enablePreviewFeatures parameter |
src/Controls/tests/SourceGen.UnitTests/CSharpExpressionDiagnosticsTests.cs |
New diagnostic tests for C# expressions |
src/Controls/src/Xaml/XamlParser.cs |
Added IsEscaped flag for escaped markup strings |
src/Controls/src/Xaml/XamlNode.cs |
Added IsEscaped property to ValueNode |
src/Controls/src/SourceGen/XDataTypeResolver.cs |
New helper for resolving x:DataType from XAML tree |
src/Controls/src/SourceGen/Visitors/ExpandMarkupsVisitor.cs |
Enhanced to detect and process C# expressions |
src/Controls/src/SourceGen/SetPropertyHelpers.cs |
Added expression binding and lambda event handler support |
src/Controls/src/SourceGen/ProjectItem.cs |
Added EnablePreviewFeatures property |
src/Controls/src/SourceGen/NodeSGExtensions.cs |
Added expression type handling |
src/Controls/src/SourceGen/MemberResolver.cs |
New class for resolving member locations (this vs DataType) |
src/Controls/src/SourceGen/ExpressionAnalyzer.cs |
New analyzer for C# expressions and INPC handlers |
src/Controls/src/SourceGen/Descriptors.cs |
Added diagnostic descriptors for C# expressions |
src/Controls/src/SourceGen/AnalyzerReleases.Unshipped.md |
Documented new diagnostic codes |
src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.Common.targets |
Made EnablePreviewFeatures visible to compiler |
eng/pipelines/ci.yml |
Added architecture labels to iOS test lanes |
eng/pipelines/arcade/stage-integration-tests.yml |
Improved display names using job names |
eng/pipelines/arcade/stage-device-tests.yml |
Added -restore flag for BuildTasks |
eng/build.ps1 |
Fixed exit code handling |
eng/automation/cspell/cSpell.json |
Added dictionary entries |
docs/specs/XamlCSharpExpressions.md |
New specification document |
.github/skills/try-fix/SKILL.md |
Updated status determination logic |
.github/skills/pr-finalize/SKILL.md |
Added code review phase documentation |
.github/skills/ai-summary-comment/scripts/post-pr-finalize-comment.ps1 |
Added code review section support |
.github/skills/ai-summary-comment/SKILL.md |
Updated for PR finalize comment requirements |
.github/scripts/Review-PR.ps1 |
New PowerShell script for PR review workflow |
.github/instructions/uitests.instructions.md |
Updated with C# preference and best practices |
.github/instructions/agents.instructions.md |
Removed (content moved elsewhere) |
.github/copilot-instructions.md |
Updated pr-finalize description |
.github/agents/write-tests-agent.md |
Added best practices reference |
.github/agents/pr/post-gate.md |
Enhanced multi-model workflow documentation |
.github/agents/pr/SHARED-RULES.md |
New shared rules document |
.github/agents/pr/PLAN-TEMPLATE.md |
New plan template |
.github/agents/pr.md |
Refactored to reference shared rules |
Member
Author
|
/azp run maui-pr-devicetests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
This was referenced Feb 5, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!
Description
This PR merges the latest changes from \main\ branch into
et11.0\ branch.
Changes