Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/9.0.1xx] Merge 'main' into release/9.0.1xx #21816

Merged
merged 137 commits into from
Dec 18, 2024

Conversation

rolfbjarne
Copy link
Member

This brings Xcode 16.2 support to .NET 9.

rolfbjarne and others added 30 commits November 15, 2024 00:47
This speeds up the tests somewhat, since it's fetched quite a few times.
Use a file (as opposed to a directory) as the Outputs property in MSBuild targets.

Directories have unintuitive file stamp behavior sometimes, which may confuse incremental builds, so use files instead to drive incremental builds.
This pull request updates the following dependencies

## From https://github.com/dotnet/sdk

- **Subscription**: afa459aa-bd64-46cb-8138-9f6f795963d4
- **Build**: 20241111.8
- **Date Produced**: November 11, 2024 11:24:09 PM UTC
- **Commit**: 8e8e27079dc1f0c53add11c3ac58fd9796aa8e73
- **Branch**: refs/heads/release/9.0.1xx

- **Updates**:
  - **Microsoft.NET.Sdk**: [from 9.0.100-rtm.24527.3 to 9.0.101-servicing.24561.8][5]

[5]: dotnet/sdk@50e04b8...8e8e270
This pull request updates the following dependencies

## From https://github.com/dotnet/xharness

- **Subscription**: 601bc5e1-1cae-44b5-cf5f-08db9342aa2f
- **Build**: 20241105.2
- **Date Produced**: November 5, 2024 2:32:53 PM UTC
- **Commit**: 431bf1b59fda99cc14526ed6b234519d1c60f973
- **Branch**: refs/heads/main

- **Updates**:
  - **Microsoft.DotNet.XHarness.iOS.Shared**: [from 10.0.0-prerelease.24529.1 to 10.0.0-prerelease.24555.2][1]

[1]: dotnet/xharness@dad2805...431bf1b
…21619)

Fixes #21598.

---------

Co-authored-by: Sergey Nechaev <6499856+snechaev@users.noreply.github.com>
So install that, since it doesn't look like it's installed by default yet.

Also build before running, because the new terminal logger for the build
in .NET 9 ends up printing junk which ends up in the changelog.
Add two more Cecil tests:

* Verify that we don't call the NSObject.Handle setter, we're supposed to call
  NSObject.InitializeHandle instead (which throws an exception if the handle
  is null),
* Verify that we never call the base class' default constructor (very easy
  mistake to make) in manually bound constructors - we're supposed to call the
  overload that takes an `NSObjectFlag` parameter instead.
…static registrar. Fixes #21606. (#21637)

If an assembly only required the lookup tables from the managed static
registrar (and not any other code), we wouldn't save those changes.

This would lead to a runtime exception:

```
Microsoft.iOS: Processing Objective-C exception for exception marshalling (mode: 2):
Could not find the type 'ObjCRuntime.__Registrar__' in the assembly 'X.Y.Z'. (ObjCRuntime.RuntimeException)
   at ObjCRuntime.RegistrarHelper.GetMapEntry(String assemblyName) in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/RegistrarHelper.cs:line 105
   at ObjCRuntime.RegistrarHelper.GetMapEntry(Assembly assembly) in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/RegistrarHelper.cs:line 93
   at ObjCRuntime.RegistrarHelper.LookupRegisteredType(Assembly assembly, UInt32 id) in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/RegistrarHelper.cs:line 199
   at ObjCRuntime.Class.ResolveToken(Assembly assembly, Module module, UInt32 token) in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/Class.cs:line 521
```

The fix is to save the assembly if the managed static registrar added
lookup
tables to the assembly.

Fixes #21606.
…g 'xamarin-macios'. (#21592)

And a few other minor cleanups as well.
Add the code generation for smart enumerators. This means the following
changes:

1. Refactor the way we register the diff pipelines.
2. Add code that generates the Extension class for the enums.
3. Add code that will generate the Library.g.cs partial class.

---------

Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Context:
06fea90

In order to add .NET 9 Xcode16.1 builds to VS we'll need to insert packs
from two different commits on the `release/9.0.1xx-preview` branch.

Xcode information will now be added to the VS manifest that we generate
to allow us to produce unique manifests across the same branch.
This pull request updates the following dependencies

## From https://github.com/dotnet/arcade

- **Subscription**: 6ddbc71e-6118-4fea-a928-58d1b2579c38
- **Build**: 20241112.13
- **Date Produced**: November 12, 2024 10:26:47 PM UTC
- **Commit**: 1c7e09a8d9c9c9b15ba574cd6a496553505559de
- **Branch**: refs/heads/release/9.0

- **Updates**:
  - **Microsoft.DotNet.Arcade.Sdk**: [from 9.0.0-beta.24516.2 to 9.0.0-beta.24562.13][1]
  - **Microsoft.DotNet.Build.Tasks.Feed**: [from 9.0.0-beta.24516.2 to 9.0.0-beta.24562.13][1]

[1]: dotnet/arcade@3c393bb...1c7e09a
They fail randomly when running them locally.
…ILD_REPOSITORY_TITLE if it's not already set. (#21681)

This makes it easier to run these scripts locally.
This has a few advantages:

* We simplify and unify more of our code.
* We have more control over the error reporting / logging behavior.
* We can optimize images in parallel.

Additionally:

* Use 'xcrun' to invoke 'pngcrush' (partial fix for #3931).
* Allow for overriding the path to the command-line tool in question.
* Add support for cancellation.
* Fix nullability.
…XamarinTask. (#21617)

This has a few advantages:

* We simplify and unify more of our code.
* We have more control over the error reporting / logging behavior.

Additionally:

* Use 'xcrun' to invoke 'altool' (partial fix for #3931).
* Allow for overriding the path to the command-line tool in question.
* Add support for cancellation.
* Fix nullability.
This has a few advantages:

* We simplify and unify more of our code.
* We have more control over the error reporting / logging behavior.

Additionally:

* Rename the tool to 'BGen', since that's what the .NET version of the tool is called, and update properties and item groups accordingly.
* Allow for overriding the path to the command-line tool in question.
* Add support for cancellation.
* Fix nullability.
* Add documentation for the relevant properties and item groups.
…1613)

This has a few advantages:

* We simplify and unify more of our code.
* We have more control over the error reporting / logging behavior.

Additionally:

* Use 'xcrun' to invoke 'mdimport' (partial fix for #3931).
* Allow for overriding the path to the command-line tool in question.
* Add support for cancellation.
* Fix nullability.
This has a few advantages:

* We simplify and unify more of our code.
* We have more control over the error reporting / logging behavior.

Additionally:

* Use 'xcrun' to invoke 'zip' (partial fix for #3931).
* Allow for overriding the path to the command-line tool in question.
* Add support for cancellation.
* Fix nullability.
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

mandel-macaque and others added 4 commits December 17, 2024 17:25
Doing a second checkout is error prone. One of the reason is that there
is no guarantee that any of our other scripts is not going to remove a
random temp directory (actually, the API diff make does remove it).

If the checkout directory is removed, the post checkout action from VSTS
will fail with something of the kind:

```
[error]An error occurred trying to start process '/usr/local/bin/git'
with working directory
'/Users/builder/azdo/_work/22/a/change-detection/tmp/src/macios-adr'. No
such file or directory
```

The reset script was doing the right thing by setting the http extra headers but it had a typo in the variable name.
@dalexsoto
Copy link
Member

/azp run

Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ [CI Build] Build passed (Build packages) ✅

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ [CI Build] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ [CI Build] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS M1 - Mac Monterey (12) passed 💻

All tests on macOS M1 - Mac Monterey (12) passed.

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS arm64 - Mac Sequoia (15) passed 💻

All tests on macOS arm64 - Mac Sequoia (15) passed.

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS M1 - Mac Ventura (13) passed 💻

All tests on macOS M1 - Mac Ventura (13) passed.

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS X64 - Mac Sonoma (14) passed 💻

All tests on macOS X64 - Mac Sonoma (14) passed.

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

❗ API diff for current PR / commit (Breaking changes)

.NET (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
  • iOS: vsdrops gist (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
  • tvOS: vsdrops gist (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
  • MacCatalyst: vsdrops gist (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
  • macOS: vsdrops gist (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)

✅ API diff vs stable

.NET (No breaking changes)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) Unable to create gist: Response status code does not indicate success: 422 (Unprocessable Entity). (raw diff) - Please review changes)

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Windows Integration Tests passed 💻

All Windows Integration Tests passed.

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🚀 [CI Build] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 103 tests passed 🎉

Tests counts

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 4 tests passed. Html Report (VSDrops) Download
✅ linker: All 40 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 7 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 8 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 9 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 7 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: d902b2528c48585b2f1f416d62bbae472e67e12a [PR build]

@rolfbjarne
Copy link
Member Author

The breaking changes in the API diff are all APIs with the [Experimental] attribute.

@rolfbjarne rolfbjarne merged commit 4c5dd93 into release/9.0.1xx Dec 18, 2024
17 checks passed
@rolfbjarne rolfbjarne deleted the dev/rolf/release/9.0.1xx branch December 18, 2024 17:27
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.

7 participants