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

[dotnet] Rename packs to contain target framework. #19765

Merged
merged 13 commits into from
Feb 19, 2024

Conversation

rolfbjarne
Copy link
Member

This is the first step towards multi-targeting support. In order to
support multi-targeting, it must be possible to install several versions of
our packs simultaneously, and that also means that it becomes a lot easier to
visualize and work with the version we want to support if the packs were named
in a helpful way.

In particular, this PR changes the sdk, ref and runtime pack names to contain
the target framework + target platform version.

This will be the new names:

  • iOS

    • Microsoft.iOS.Sdk.net8.0_17.0
    • Microsoft.iOS.Ref.net8.0_17.0
    • Microsoft.iOS.Runtime.ios-arm64.net8.0_17.0
    • Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_17.0
    • Microsoft.iOS.Runtime.iossimulator-x64.net8.0_17.0
  • tvOS

    • Microsoft.tvOS.Sdk.net8.0_17.0
    • Microsoft.tvOS.Ref.net8.0_17.0
    • Microsoft.tvOS.Runtime.ios-arm64.net8.0_17.0
    • Microsoft.tvOS.Runtime.iossimulator-arm64.net8.0_17.0
    • Microsoft.tvOS.Runtime.iossimulator-x64.net8.0_17.0
  • Mac Catalyst

    • Microsoft.MacCatalyst.Sdk.net8.0_17.0
    • Microsoft.MacCatalyst.Ref.net8.0_17.0
    • Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_17.0
    • Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_17.0
  • macOS

    • Microsoft.macOS.Sdk.net8.0_14.0
    • Microsoft.macOS.Ref.net8.0_14.0
    • Microsoft.macOS.Runtime.osx-x64.net8.0_14.0
    • Microsoft.macOS.Runtime.osx-arm64.net8.0_14.0

There are two main benefits to renaming the packs:

  • It becomes a lot easier to understand which versions we support when we
    support multi-targeting. For example, say we want to support:

    • net8.0-ios17.0
    • net8.0-ios17.2
    • net9.0-ios18.0

    In this case we'd ship packs for Microsoft.iOS.Sdk.net8.0_17.0,
    Microsoft.iOS.Sdk.net8.0_17.2, Microsoft.iOS.Sdk.net9.0_18.0 (the
    exact version number for each pack wouldn't be important).

    If we didn't change the pack names, we'd need to track the exact versions
    of the Microsoft.iOS.Sdk pack, mapping them to the correct target
    framework + target platform version we want to support.

  • It'll be possible to add maestro subscriptions between versions. Given the
    previous example:

    • net8.0-ios17.0
    • net8.0-ios17.2
    • net9.0-ios18.0

    The branch producing net9.0-ios8.0 could have a maestro subscription on
    the branches producing net7.0-ios17.0 and net7.0-ios17.2,
    automatically bumping the versions whenever those branches have any
    changes.

    This would be rather annoying to keep track of and bump manually.

@rolfbjarne rolfbjarne marked this pull request as ready for review January 8, 2024 12:03
@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.

@rolfbjarne rolfbjarne added the do-not-merge Do not merge this pull request label Jan 9, 2024
@rolfbjarne
Copy link
Member Author

Marking as do-not-merge until we've confirmed we can insert into VS afterwards.

@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.

@vs-mobiletools-engineering-service2

This comment has been minimized.

This pull request updates the following dependencies

- **Subscription**: 3ba82e10-e94b-4c1c-df8b-08dc11e0730b
- **Build**: 20231204.1
- **Date Produced**: December 4, 2023 9:51:25 AM UTC
- **Commit**: 88bdab7
- **Branch**: refs/heads/release/7.0.3xx

- **Updates**:
  - **Microsoft.iOS.Sdk**: [from 16.4.7099 to 16.4.7129][4]

[4]: c70a2f5...88bdab7
@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.

@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
Copy link
Collaborator

📚 [PR Build] Artifacts 📚

Packages generated

View packages

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

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

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

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

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

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

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11) passed 💻

All tests on macOS M1 - Mac Big Sur (11) passed.

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

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

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

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Windows Integration Tests passed 💻

All Windows Integration Tests passed.

Pipeline on Agent
Hash: 5ea637db07350784044dc3b51f1d82735c8c96d0 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🔥 Failed to compare API and create generator diff 🔥

Failed to update apidiff references

Pipeline on Agent
Hash: 5ea637db07350784044dc3b51f1d82735c8c96d0 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🚀 [CI Build] Test results 🚀

Test results

✅ All tests passed on VSTS: simulator tests.

🎉 All 170 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 8 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 7 tests passed. Html Report (VSDrops) Download
✅ generator: All 2 tests passed. Html Report (VSDrops) Download
✅ install-source: All 1 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 7 tests passed. Html Report (VSDrops) Download
✅ introspection: All 8 tests passed. Html Report (VSDrops) Download
✅ linker: All 65 tests passed. Html Report (VSDrops) Download
✅ mac-binding-project: All 1 tests passed. Html Report (VSDrops) Download
✅ mmp: All 2 tests passed. Html Report (VSDrops) Download
✅ mononative: All 6 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 7 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 8 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 11 tests passed. Html Report (VSDrops) Download
✅ monotouch (watchOS): All 4 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ mtouch: All 1 tests passed. Html Report (VSDrops) Download
✅ xammac: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 8 tests passed. Html Report (VSDrops) Download
✅ xtro: All 2 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: 5ea637db07350784044dc3b51f1d82735c8c96d0 [PR build]

@rolfbjarne rolfbjarne removed the do-not-merge Do not merge this pull request label Feb 19, 2024
@rolfbjarne
Copy link
Member Author

VS insertion test came back green.

API diff is expected to break, since this is a major change and comparison with the previous commit is difficult. API diff should work again in any subsequent changes.

@rolfbjarne rolfbjarne merged commit 8b888f0 into main Feb 19, 2024
193 checks passed
rolfbjarne added a commit that referenced this pull request Feb 19, 2024
…ramework.

This is the first step towards [multi-targeting support][1]. In order to
support multi-targeting, it must be possible to install several versions of
our packs simultaneously, and that also means that it becomes a lot easier to
visualize and work with the version we want to support if the packs were named
in a helpful way.

In particular, this PR changes the sdk, ref and runtime pack names to contain
the target framework + target platform version.

This will be the new names:

* iOS

    * Microsoft.iOS.Sdk.net8.0_17.0
    * Microsoft.iOS.Ref.net8.0_17.0
    * Microsoft.iOS.Runtime.ios-arm64.net8.0_17.0
    * Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_17.0
    * Microsoft.iOS.Runtime.iossimulator-x64.net8.0_17.0

* tvOS

    * Microsoft.tvOS.Sdk.net8.0_17.0
    * Microsoft.tvOS.Ref.net8.0_17.0
    * Microsoft.tvOS.Runtime.ios-arm64.net8.0_17.0
    * Microsoft.tvOS.Runtime.iossimulator-arm64.net8.0_17.0
    * Microsoft.tvOS.Runtime.iossimulator-x64.net8.0_17.0

* Mac Catalyst

    * Microsoft.MacCatalyst.Sdk.net8.0_17.0
    * Microsoft.MacCatalyst.Ref.net8.0_17.0
    * Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_17.0
    * Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_17.0

* macOS

    * Microsoft.macOS.Sdk.net8.0_14.0
    * Microsoft.macOS.Ref.net8.0_14.0
    * Microsoft.macOS.Runtime.osx-x64.net8.0_14.0
    * Microsoft.macOS.Runtime.osx-arm64.net8.0_14.0

There are two main benefits to renaming the packs:

* It becomes a lot easier to understand which versions we support when we
  support multi-targeting. For example, say we want to support:

	* net8.0-ios17.0
	* net8.0-ios17.0
	* net9.0-ios18.0

    In this case we'd ship packs for `Microsoft.iOS.Sdk.net8.0_17.0`,
    `Microsoft.iOS.Sdk.net8.0_17.0`, `Microsoft.iOS.Sdk.net9.0_18.0` (the
    exact version number for each pack wouldn't be important).

    If we didn't change the pack names, we'd need to track the exact versions
    of the Microsoft.iOS.Sdk pack, mapping them to the correct target
    framework + target platform version we want to support.

* It'll be possible to add maestro subscriptions between versions. Given the
  previous example:

	* net8.0-ios17.0
	* net8.0-ios17.0
	* net9.0-ios18.0

	The branch producing `net9.0-ios8.0` could have a maestro subscription on
	the branches producing `net7.0-ios17.0` and `net7.0-ios17.0`,
	automatically bumping the versions whenever those branches have any
	changes.

	This would be rather annoying to keep track of and bump manually.

[1]: https://github.com/xamarin/xamarin-macios/blob/main/docs/multi-target-framework.md

Backport of #19765.
rolfbjarne added a commit that referenced this pull request Feb 22, 2024
…ramework. (#20171)

This is the first step towards [multi-targeting support][1]. In order to
support multi-targeting, it must be possible to install several versions of
our packs simultaneously, and that also means that it becomes a lot easier to
visualize and work with the version we want to support if the packs were named
in a helpful way.

In particular, this PR changes the sdk, ref and runtime pack names to contain
the target framework + target platform version.

This will be the new names:

* iOS

    * Microsoft.iOS.Sdk.net8.0_17.0
    * Microsoft.iOS.Ref.net8.0_17.0
    * Microsoft.iOS.Runtime.ios-arm64.net8.0_17.0
    * Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_17.0
    * Microsoft.iOS.Runtime.iossimulator-x64.net8.0_17.0

* tvOS

    * Microsoft.tvOS.Sdk.net8.0_17.0
    * Microsoft.tvOS.Ref.net8.0_17.0
    * Microsoft.tvOS.Runtime.ios-arm64.net8.0_17.0
    * Microsoft.tvOS.Runtime.iossimulator-arm64.net8.0_17.0
    * Microsoft.tvOS.Runtime.iossimulator-x64.net8.0_17.0

* Mac Catalyst

    * Microsoft.MacCatalyst.Sdk.net8.0_17.0
    * Microsoft.MacCatalyst.Ref.net8.0_17.0
    * Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_17.0
    * Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_17.0

* macOS

    * Microsoft.macOS.Sdk.net8.0_14.0
    * Microsoft.macOS.Ref.net8.0_14.0
    * Microsoft.macOS.Runtime.osx-x64.net8.0_14.0
    * Microsoft.macOS.Runtime.osx-arm64.net8.0_14.0

There are two main benefits to renaming the packs:

* It becomes a lot easier to understand which versions we support when we
  support multi-targeting. For example, say we want to support:

	* net8.0-ios17.0
	* net8.0-ios17.0
	* net9.0-ios18.0

    In this case we'd ship packs for `Microsoft.iOS.Sdk.net8.0_17.0`,
    `Microsoft.iOS.Sdk.net8.0_17.0`, `Microsoft.iOS.Sdk.net9.0_18.0` (the
    exact version number for each pack wouldn't be important).

    If we didn't change the pack names, we'd need to track the exact versions
    of the Microsoft.iOS.Sdk pack, mapping them to the correct target
    framework + target platform version we want to support.

* It'll be possible to add maestro subscriptions between versions. Given the
  previous example:

	* net8.0-ios17.0
	* net8.0-ios17.0
	* net9.0-ios18.0

	The branch producing `net9.0-ios8.0` could have a maestro subscription on
	the branches producing `net7.0-ios17.0` and `net7.0-ios17.0`,
	automatically bumping the versions whenever those branches have any
	changes.

	This would be rather annoying to keep track of and bump manually.

[1]: https://github.com/xamarin/xamarin-macios/blob/main/docs/multi-target-framework.md

Backport of #19765.
pjcollins pushed a commit that referenced this pull request Apr 24, 2024
…ramework. (#20171)

This is the first step towards [multi-targeting support][1]. In order to
support multi-targeting, it must be possible to install several versions of
our packs simultaneously, and that also means that it becomes a lot easier to
visualize and work with the version we want to support if the packs were named
in a helpful way.

In particular, this PR changes the sdk, ref and runtime pack names to contain
the target framework + target platform version.

This will be the new names:

* iOS

    * Microsoft.iOS.Sdk.net8.0_17.0
    * Microsoft.iOS.Ref.net8.0_17.0
    * Microsoft.iOS.Runtime.ios-arm64.net8.0_17.0
    * Microsoft.iOS.Runtime.iossimulator-arm64.net8.0_17.0
    * Microsoft.iOS.Runtime.iossimulator-x64.net8.0_17.0

* tvOS

    * Microsoft.tvOS.Sdk.net8.0_17.0
    * Microsoft.tvOS.Ref.net8.0_17.0
    * Microsoft.tvOS.Runtime.ios-arm64.net8.0_17.0
    * Microsoft.tvOS.Runtime.iossimulator-arm64.net8.0_17.0
    * Microsoft.tvOS.Runtime.iossimulator-x64.net8.0_17.0

* Mac Catalyst

    * Microsoft.MacCatalyst.Sdk.net8.0_17.0
    * Microsoft.MacCatalyst.Ref.net8.0_17.0
    * Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net8.0_17.0
    * Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net8.0_17.0

* macOS

    * Microsoft.macOS.Sdk.net8.0_14.0
    * Microsoft.macOS.Ref.net8.0_14.0
    * Microsoft.macOS.Runtime.osx-x64.net8.0_14.0
    * Microsoft.macOS.Runtime.osx-arm64.net8.0_14.0

There are two main benefits to renaming the packs:

* It becomes a lot easier to understand which versions we support when we
  support multi-targeting. For example, say we want to support:

	* net8.0-ios17.0
	* net8.0-ios17.0
	* net9.0-ios18.0

    In this case we'd ship packs for `Microsoft.iOS.Sdk.net8.0_17.0`,
    `Microsoft.iOS.Sdk.net8.0_17.0`, `Microsoft.iOS.Sdk.net9.0_18.0` (the
    exact version number for each pack wouldn't be important).

    If we didn't change the pack names, we'd need to track the exact versions
    of the Microsoft.iOS.Sdk pack, mapping them to the correct target
    framework + target platform version we want to support.

* It'll be possible to add maestro subscriptions between versions. Given the
  previous example:

	* net8.0-ios17.0
	* net8.0-ios17.0
	* net9.0-ios18.0

	The branch producing `net9.0-ios8.0` could have a maestro subscription on
	the branches producing `net7.0-ios17.0` and `net7.0-ios17.0`,
	automatically bumping the versions whenever those branches have any
	changes.

	This would be rather annoying to keep track of and bump manually.

[1]: https://github.com/xamarin/xamarin-macios/blob/main/docs/multi-target-framework.md

Backport of #19765.
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.

None yet

6 participants