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

[remote] Explicitly import .mobile.props file #18718

Merged
merged 1 commit into from
Aug 15, 2023
Merged

Conversation

mauroa
Copy link
Contributor

@mauroa mauroa commented Aug 13, 2023

The .mobile.props file is a file created and written by the mobile VS extension to store property values that needs to be read early enough in the build chain, as in design time builds, and that can't be set by CPS because of a limitation in the project system. See more information here: https://github.com/xamarin/XamarinVS/pull/13606

Initially it was named .user.env file and then was renamed in another PR as part of a feedback from the project system team. See more information here: https://github.com/xamarin/XamarinVS/pull/13628

Because this file was saved in the intermediate output path, it was meant to be imported automatically by MSBuild, however we recently detected that this was not happening reliably. Because of this, some things like C# Hot Reload for iOS stopped working because Roslyn was reading incorrect values from the Design Time Builds.

For that reason and to avoid relying on the project system, I'm importing this file explicitly (and removing old .user.env import), so the values in the file are always available and the dependent properties are calculated correctly and available for all the consumers (including Roslyn).

This should fix the following bugs:

https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1822041

https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1851677

@mauroa mauroa added the not-notes-worthy Ignore for release notes label Aug 13, 2023
@mauroa mauroa self-assigned this Aug 13, 2023
@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.

@mauroa mauroa force-pushed the dev/mag/mobileprops branch from 97b2555 to 654172d Compare August 14, 2023 12:37
@mauroa mauroa requested a review from rolfbjarne August 14, 2023 12:38
@mauroa mauroa force-pushed the dev/mag/mobileprops branch from 654172d to e68ccb9 Compare August 14, 2023 13:22
The .mobile.props file is a file created and written by the mobile VS extension to store property values that needs to be read early enough in the build chain, as in design time builds, and that can't be set by CPS because of a limitation in the project system. See more information here: xamarin/XamarinVS#13606

Initially it was named .user.env file and then was renamed in another PR as part of a feedback from the project system team. See more information here: xamarin/XamarinVS#13628

Because this file was saved in the intermediate output path, it was meant to be imported automatically by MSBuild, however we recently detected that this was not happening reliably. Because of this, some things like C# Hot Reload for iOS stopped working because Roslyn was reading incorrect values from the Design Time Builds.

For that reason and to avoid relying on the project system, we decided to import this file explicitly (and remove old .user.env import), so the values in the file are always available and the dependent properties are calculated correctly and available for all the consumers (including Roslyn).

This should fix the following bugs:

https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1822041

https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1851677
@mauroa mauroa force-pushed the dev/mag/mobileprops branch from 2aa9a5d to f170bc9 Compare August 14, 2023 13:40
@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ API diff for current PR / commit

Legacy Xamarin (No breaking changes)
  • iOS (no change detected)
  • tvOS (no change detected)
  • watchOS (no change detected)
  • macOS (no change detected)
NET (empty diffs)
  • iOS: (empty diff detected)
  • tvOS: (empty diff detected)
  • MacCatalyst: (empty diff detected)
  • macOS: (empty diff detected)

❗ API diff vs stable (Breaking changes)

Legacy Xamarin (: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:)
  • watchOS: vsdrops gist (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
  • macOS: vsdrops gist (:heavy_exclamation_mark: Breaking changes :heavy_exclamation_mark:)
.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:)
  • Microsoft.iOS vs Microsoft.MacCatalyst: vsdrops gist
Legacy Xamarin (stable) vs .NET

✅ Generator diff

Generator diff is empty

Pipeline on Agent
Hash: f170bc9ca98e628a41c5b87bd7223a407ef1b6c6 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Windows Integration Tests passed 💻

All Windows Integration Tests passed.

Pipeline on Agent
Hash: f170bc9ca98e628a41c5b87bd7223a407ef1b6c6 [PR build]

@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 M1 - Mac Ventura (13.0) passed 💻

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

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

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

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

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🚀 [CI Build] Test results 🚀

Test results

✅ All tests passed on VSTS: simulator tests.

🎉 All 235 tests passed 🎉

Tests counts

✅ bcl: All 69 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests: All 1 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 7 tests passed. Html Report (VSDrops) Download
✅ framework: All 8 tests passed. Html Report (VSDrops) Download
✅ generator: All 2 tests passed. Html Report (VSDrops) Download
✅ interdependent_binding_projects: All 7 tests passed. Html Report (VSDrops) Download
✅ install_source: All 1 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 12 tests passed. Html Report (VSDrops) Download
✅ monotouch: All 35 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: f170bc9ca98e628a41c5b87bd7223a407ef1b6c6 [PR build]

@rolfbjarne rolfbjarne merged commit b313a59 into main Aug 15, 2023
mauroa added a commit that referenced this pull request Sep 18, 2023
The .mobile.props file is a file created and written by the mobile VS
extension to store property values that needs to be read early enough in
the build chain, as in design time builds, and that can't be set by CPS
because of a limitation in the project system. See more information
here: xamarin/XamarinVS#13606

Initially it was named .user.env file and then was renamed in another PR
as part of a feedback from the project system team. See more information
here: xamarin/XamarinVS#13628

Because this file was saved in the intermediate output path, it was
meant to be imported automatically by MSBuild, however we recently
detected that this was not happening reliably. Because of this, some
things like C# Hot Reload for iOS stopped working because Roslyn was
reading incorrect values from the Design Time Builds.

For that reason and to avoid relying on the project system, I'm
importing this file explicitly (and removing old .user.env import), so
the values in the file are always available and the dependent properties
are calculated correctly and available for all the consumers (including
Roslyn).

This should fix the following bugs:

https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1822041
https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1851677
dalexsoto pushed a commit that referenced this pull request Sep 19, 2023
…) (#19044)

The .mobile.props file is a file created and written by the mobile VS
extension to store property values that needs to be read early enough in
the build chain, as in design time builds, and that can't be set by CPS
because of a limitation in the project system. See more information
here: xamarin/XamarinVS#13606

Initially it was named .user.env file and then was renamed in another PR
as part of a feedback from the project system team. See more information
here: xamarin/XamarinVS#13628

Because this file was saved in the intermediate output path, it was
meant to be imported automatically by MSBuild, however we recently
detected that this was not happening reliably. Because of this, some
things like C# Hot Reload for iOS stopped working because Roslyn was
reading incorrect values from the Design Time Builds.

For that reason and to avoid relying on the project system, I'm
importing this file explicitly (and removing old .user.env import), so
the values in the file are always available and the dependent properties
are calculated correctly and available for all the consumers (including
Roslyn).

This should fix the following bug:

https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1885612
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
not-notes-worthy Ignore for release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants