Skip to content

Enable packing and independent preview versioning for Essentials.AI#33976

Merged
mattleibow merged 3 commits intomainfrom
dev/ai-preview-versioning
Feb 12, 2026
Merged

Enable packing and independent preview versioning for Essentials.AI#33976
mattleibow merged 3 commits intomainfrom
dev/ai-preview-versioning

Conversation

@mattleibow
Copy link
Copy Markdown
Member

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

The Microsoft.Maui.Essentials.AI package is experimental and must always ship as preview, even when the rest of the repo goes stable. This PR enables NuGet packaging and configures independent preview versioning using arcade SDK properties.

Changes

  • IsPackable: falsetrue to enable NuGet package production
  • SuppressFinalPackageVersion=true: Arcade SDK property that prevents the prerelease suffix from being stripped during stable builds
  • PreReleaseVersionLabel=preview: Overrides the repo-level label so the AI package always uses preview regardless of repo state
  • PreReleaseVersionIteration=1: Controls the preview iteration — bump to 2, 3, etc. for new previews

Version Behavior

Scenario Essentials.AI Other packages (e.g., Core)
Dev build 10.0.40-dev 10.0.40-dev
Stable official build 10.0.40-preview.1.XXXXX.X 10.0.40

How to Bump Preview Versions

Change PreReleaseVersionIteration in Essentials.AI.csproj:

  • 110.0.40-preview.1.XXXXX.X
  • 210.0.40-preview.2.XXXXX.X

How to Verify

# Simulated stable official build — AI stays preview
dotnet msbuild src/AI/src/Essentials.AI/Essentials.AI.csproj \
  /p:TargetFramework=netstandard2.1 \
  /p:StabilizePackageVersion=true /p:OfficialBuildId=20260209.1 \
  -getProperty:PackageVersion
# Result: 10.0.40-preview.1.26109.1

# Core goes stable
dotnet msbuild src/Core/src/Core.csproj \
  /p:TargetFramework=netstandard2.1 \
  /p:StabilizePackageVersion=true /p:OfficialBuildId=20260209.1 \
  -getProperty:PackageVersion
# Result: 10.0.40

Copilot AI review requested due to automatic review settings February 10, 2026 00:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables producing a NuGet package for the experimental Microsoft.Maui.Essentials.AI project and configures it to keep a preview-version suffix even when repo-wide builds are stabilized to release versions.

Changes:

  • Turn on packing for Essentials.AI (IsPackable=true).
  • Configure Arcade versioning properties to keep Essentials.AI on a preview prerelease label and iteration during stabilized builds.

@rmarinho
Copy link
Copy Markdown
Member

image

Should it be preview also here, if it s a project level?

@mattleibow
Copy link
Copy Markdown
Member Author

it should be, looking at why AI is just not smart.

Set SuppressFinalPackageVersion, PreReleaseVersionLabel, and
PreReleaseVersionIteration so the AI package always ships as preview
even when the rest of the repo goes stable. Bump
PreReleaseVersionIteration to release new previews independently.
Mark the entire Microsoft.Maui.Essentials.AI assembly as experimental
using [Experimental("MAUIAI0001")] following the dotnet/extensions
pattern used for Microsoft.Extensions.AI (MEAI001).

- Add ExperimentalAttribute polyfill for netstandard2.0/2.1 TFMs
- Add DiagnosticIds.cs with centralized MAUIAI0001 constant
- Add assembly-level [Experimental] in AssemblyInfo.cs
- Suppress MAUIAI0001 in sample, unit test, device test, and benchmark projects

Consumers referencing this package will get a compiler error:
  error MAUIAI0001: '...' is for evaluation purposes only
They opt in via <NoWarn>MAUIAI0001</NoWarn> or #pragma warning disable.
@mattleibow mattleibow force-pushed the dev/ai-preview-versioning branch from d7b1577 to fcbfddb Compare February 11, 2026 16:44
Only override PreReleaseVersionLabel and PreReleaseVersionIteration
when DotNetFinalVersionKind=release (i.e. when the repo stabilizes).
During preview builds, the AI package inherits the same version label
as the rest of the repo, avoiding a duplicate iteration suffix.
@mattleibow mattleibow force-pushed the dev/ai-preview-versioning branch from fcbfddb to 1aeb5a5 Compare February 11, 2026 16:48
@mattleibow mattleibow enabled auto-merge (squash) February 12, 2026 20:09
@mattleibow mattleibow disabled auto-merge February 12, 2026 20:09
@mattleibow mattleibow merged commit f9ee21c into main Feb 12, 2026
27 checks passed
@mattleibow mattleibow deleted the dev/ai-preview-versioning branch February 12, 2026 20:09
mattleibow added a commit that referenced this pull request Feb 12, 2026
<!-- 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

Moves the hardcoded `PreReleaseVersionIteration` value (`1`) from
`Essentials.AI.csproj` into a centralized
`EssentialsAIPreviewVersionIteration` property in `eng/Versions.props`,
making it easier to bump for future AI preview releases.

Follow-up to #33976.

### Changes

- **`eng/Versions.props`**: Add `EssentialsAIPreviewVersionIteration`
property (default `1`)
- **`Essentials.AI.csproj`**: Reference
`$(EssentialsAIPreviewVersionIteration)` instead of hardcoded `1`;
update comment to point to `eng/Versions.props`

No functional change — version output is identical.
TamilarasanSF4853 pushed a commit to TamilarasanSF4853/maui that referenced this pull request Mar 2, 2026
…otnet#33976)

<!-- 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

The `Microsoft.Maui.Essentials.AI` package is experimental and must
always ship as preview, even when the rest of the repo goes stable. This
PR enables NuGet packaging and configures independent preview versioning
using arcade SDK properties.

### Changes

- **`IsPackable`**: `false` → `true` to enable NuGet package production
- **`SuppressFinalPackageVersion=true`**: Arcade SDK property that
prevents the prerelease suffix from being stripped during stable builds
- **`PreReleaseVersionLabel=preview`**: Overrides the repo-level label
so the AI package always uses `preview` regardless of repo state
- **`PreReleaseVersionIteration=1`**: Controls the preview iteration —
bump to `2`, `3`, etc. for new previews

### Version Behavior

| Scenario | Essentials.AI | Other packages (e.g., Core) |
|----------|--------------|----------------------------|
| Dev build | `10.0.40-dev` | `10.0.40-dev` |
| Stable official build | `10.0.40-preview.1.XXXXX.X` ✅ | `10.0.40` |

### How to Bump Preview Versions

Change `PreReleaseVersionIteration` in `Essentials.AI.csproj`:
- `1` → `10.0.40-preview.1.XXXXX.X`
- `2` → `10.0.40-preview.2.XXXXX.X`

### How to Verify

```bash
# Simulated stable official build — AI stays preview
dotnet msbuild src/AI/src/Essentials.AI/Essentials.AI.csproj \
  /p:TargetFramework=netstandard2.1 \
  /p:StabilizePackageVersion=true /p:OfficialBuildId=20260209.1 \
  -getProperty:PackageVersion
# Result: 10.0.40-preview.1.26109.1

# Core goes stable
dotnet msbuild src/Core/src/Core.csproj \
  /p:TargetFramework=netstandard2.1 \
  /p:StabilizePackageVersion=true /p:OfficialBuildId=20260209.1 \
  -getProperty:PackageVersion
# Result: 10.0.40
```
TamilarasanSF4853 pushed a commit to TamilarasanSF4853/maui that referenced this pull request Mar 2, 2026
)

<!-- 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

Moves the hardcoded `PreReleaseVersionIteration` value (`1`) from
`Essentials.AI.csproj` into a centralized
`EssentialsAIPreviewVersionIteration` property in `eng/Versions.props`,
making it easier to bump for future AI preview releases.

Follow-up to dotnet#33976.

### Changes

- **`eng/Versions.props`**: Add `EssentialsAIPreviewVersionIteration`
property (default `1`)
- **`Essentials.AI.csproj`**: Reference
`$(EssentialsAIPreviewVersionIteration)` instead of hardcoded `1`;
update comment to point to `eng/Versions.props`

No functional change — version output is identical.
evgenygunko pushed a commit to evgenygunko/CopyWordsDA that referenced this pull request Mar 11, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [Microsoft.Extensions.Logging.Debug](https://dot.net/) ([source](https://github.com/dotnet/dotnet)) | nuget | patch | `10.0.3` -> `10.0.4` |
| [Microsoft.Maui.Controls](https://github.com/dotnet/maui) | nuget | patch | `10.0.41` -> `10.0.50` |

---

### Release Notes

<details>
<summary>dotnet/maui (Microsoft.Maui.Controls)</summary>

### [`v10.0.50`](https://github.com/dotnet/maui/releases/tag/10.0.50)

[Compare Source](dotnet/maui@10.0.41...10.0.50)

#### What's Changed

.NET MAUI 10.0.50 introduces significant improvements across all platforms with focus on quality, performance, and developer experience. This release includes 78 commits with various improvements, bug fixes, and enhancements.

#### AI

-   Enable packing and independent preview versioning for Essentials.AI by [@&#8203;mattleibow](https://github.com/mattleibow) in dotnet/maui#33976

-   Move Essentials.AI preview iteration to eng/Versions.props by [@&#8203;mattleibow](https://github.com/mattleibow) in dotnet/maui#34025

-   \[Feature] Add Microsoft.Maui.Essentials.AI - Apple Intelligence by [@&#8203;mattleibow](https://github.com/mattleibow) in dotnet/maui#33519

#### Ai Agents

-   Copilot agent infrastructure, emulator reliability, and try-fix workflow improvements by [@&#8203;PureWeen](https://github.com/PureWeen) via [@&#8203;Copilot](https://github.com/Copilot) in dotnet/maui#33937

-   Update PR agent models to claude-sonnet-4.6 and gpt-5.3-codex by [@&#8203;kubaflo](https://github.com/kubaflo) in dotnet/maui#34109

-   ci-copilot: set pipeline run title early using build.updatebuildnumber by [@&#8203;jfversluis](https://github.com/jfversluis) via [@&#8203;Copilot](https://github.com/Copilot) in dotnet/maui#34156

-   Revamp find-reviewable-pr skill: priorities, defaults, and doc fixes by [@&#8203;PureWeen](https://github.com/PureWeen) in dotnet/maui#34160

-   Add correct CI pipeline names to Copilot instructions by [@&#8203;jfversluis](https://github.com/jfversluis) in dotnet/maui#34255

-   Add resilience to UI tests for frozen/unresponsive apps by [@&#8203;PureWeen](https://github.com/PureWeen) in dotnet/maui#34023

-   Copilot CI: Structured phase outputs, autonomous execution, iOS support, and CI pipeline by [@&#8203;kubaflo](https://github.com/kubaflo) in dotnet/maui#34040

-   Agent Workflow Metrics via GitHub Labels by [@&#8203;kubaflo](https://github.com/kubaflo) in dotnet/maui#33986

#### Animation

-   \[Android] Fixed TransformProperties issue when a wrapper view is present by [@&#8203;Ahamed-Ali](https://github.com/Ahamed-Ali) in dotnet/maui#29228

    <...
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants