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

[Microsoft.Android.Templates] New files should open editor #8623

Merged
merged 2 commits into from
Jan 10, 2024

Conversation

jonpryor
Copy link
Member

Fixes: https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1918037

Context: https://github.com/dotnet/templating/wiki/Reference-for-template.json
Context: https://github.com/dotnet/templating/wiki/Post-Action-Registry#open-a-file-in-the-editor

Within Visual Studio, if you:

  1. Create a new .NET MAUI or .NET Android app, then
  2. Go to the Solution Explorer, then
  3. Right-click a folder, then click Add > New Item > Android, then
  4. Double-click the Android Activity template.

The expected result is that a new Android Activity based on the Android Activity template will be added to your solution and opened in the editor.

Instead, a new Android Activity is added, but it is not opened.

Update the .template.config/template.json files to contain a postActions section with a openInEditor id. This should cause Visual Studio to open the new files within the editor.

Fixes: https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1918037

Context: https://github.com/dotnet/templating/wiki/Reference-for-template.json
Context: https://github.com/dotnet/templating/wiki/Post-Action-Registry#open-a-file-in-the-editor

Within Visual Studio, if you:

 1. Create a new .NET MAUI or .NET Android app, then
 2. Go to the Solution Explorer, then
 3. Right-click a folder, then click Add > New Item > Android, then
 4. Double-click the **Android Activity** template.

The expected result is that a new Android Activity based on the
Android Activity template will be added to your solution
*and opened in the editor*.

Instead, a new Android Activity is added, but it is *not* opened.

Update the `.template.config/template.json` files to contain a
`postActions` section with a `openInEditor` id.  This *should* cause
Visual Studio to open the new files within the editor.
Thanks to @pjcollins for testing!
Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

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

I compared against a single-file item template in MAUI:

https://github.com/dotnet/maui/blob/e0fa274fbdd5646d6f4bbf38cc74ed287b980869/src/Templates/src/templates/maui-contentpage-csharp/.template.config/template.json#L21-L33

The new one looks correct, and we manually tested it.

@jonpryor jonpryor merged commit 97819d8 into xamarin:main Jan 10, 2024
47 checks passed
jonathanpeppers pushed a commit that referenced this pull request Jan 10, 2024
Fixes: https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1918037

Context: https://github.com/dotnet/templating/wiki/Reference-for-template.json
Context: https://github.com/dotnet/templating/wiki/Post-Action-Registry#open-a-file-in-the-editor

Within Visual Studio, if you:

 1. Create a new .NET MAUI or .NET Android app, then
 2. Go to the Solution Explorer, then
 3. Right-click a folder, then click Add > New Item > Android, then
 4. Double-click the **Android Activity** template.

The expected result is that a new Android Activity based on the
Android Activity template will be added to your solution
*and opened in the editor*.

Instead, a new Android Activity is added, but it is *not* opened.

Update the `.template.config/template.json` files to contain a
`postActions` section with a `openInEditor` id.  This *should* cause
Visual Studio to open the new files within the editor.
grendello added a commit that referenced this pull request Jan 11, 2024
* main:
  [ci] Add exe files to API Scan (#8617)
  [Microsoft.Android.Templates] New files should open editor (#8623)
  [Xamarin.Android.Build.Tasks] remove `@(_AndroidAssemblySkipCases)` (#8622)
jonpryor pushed a commit that referenced this pull request Feb 2, 2024
Context: fd47b02
Context: https://dotnet.microsoft.com/platform/support/policy/maui

Changes: d12da3a...87e4a6d

  * 87e4a6d89: [release/8.0.1xx] localization changes for `XA1039` (#8674)
  * f61c76030: [workload] Allow installation on linux-arm64 (#8500)
  * 4cdf1e018: [Xamarin.Android.build.Tasks] `<CheckDuplicateJavaLibraries/>` ignores `repackaged.jar` (#8664)
  * 77ac82a11: [release/8.0.1xx] [Xamarin.Android.Build.Tasks] XA1039 warning for Android.Support (#8648)
  * c22c17fbe: [Xamarin.Android.Build.Tasks] fix warning when missing `proguard-android.txt` (#8641)
  * 31f031a67: Localized file check-in by OneLocBuild Task (#8643)
  * 3da479192: LEGO: Merge pull request 8642
  * dbf100d49: Update a number of l18n files (#8633)
  * d2da5bf4e: Bump com.android.tools:r8 from 8.1.72 to 8.2.33 (#8577)
  * 9f9114afc: Bump com.android.tools:r8 from 8.1.56 to 8.1.72 (#8532)
  * 666777248: Fix ServerCertificateCustomValidator on API 21-23 (#8637)
  * 940f059b8: [Mono.Android] Fix ServerCertificateCustomValidator (#8594)
  * 351bfa3f0: Bump to dotnet/runtime@a6e4834d53 8.0.1 (#8616)
  * 64363367d: [Microsoft.Android.Templates] New files should open editor (#8623)
  * 26752564d: Bump to dotnet/installer@461c776642 8.0.101-servicing.23614.6
  * 6972027f0: Localized file check-in by OneLocBuild Task (#8589)
  * 73efcfcad: [Xamarin.Android.Buid.Tasks] don't set $(PublishSelfContained) for .NET 9 (#8565)
  * 3333306b8: LEGO: Merge pull request 8587
  * 38e950b41: Localized file check-in by OneLocBuild Task (#8576)
  * 607115fd5: LEGO: Merge pull request 8575
  * a1fd1b2cb: Localized file check-in by OneLocBuild Task (#8570)
  * c020626b0: [Xamarin.Android.Build.Tasks] Update XA5207 for VSCode (#8494)
  * b0aab545a: Bump to dotnet/installer@822071c28a 8.0.101-servicing.23578.14 (#8558)


The .NET MAUI Support policy, which covers .NET Android, states:

> A major version of .NET MAUI receives support for a minimum of 6
> months after a successor (the next major release) ships.

meaning that a given version of .NET Android only needs to support
building `$(TargetFramework)` values for the current .NET Android
version and the previous .NET Android version.

Meanwhlie, from fd47b02:

> We currently have a hard dependency between:
> 
>   * `Xamarin.Android.Build.Tasks.dll`
>   * `libmonodroid.so`

…in order to safely build projects targeting the previous .NET Android
version with the current .NET Android version, the current .NET Android
version workload *includes the previous workload version contents*.

The `$(AndroidNetPreviousVersion)` MSBuild property specifies the
.NET Android SDK version, as obtained from `dotnet workllad list`,
which should be used to build previous `$(TargetFramework)` versions.

`$(AndroidNetPreviousVersion)` should be updated in
xamarin-android/main whenever a .NET servicing release for the previous
.NET version is shipped.

.NET Android 34.0.79 will be shipped as part of .NET 8.0.2.
Update `$(AndroidNetPreviousVersion)` to so that .NET 9 previews use
the latest .NET 8 workload contents.
jonathanpeppers added a commit that referenced this pull request Feb 2, 2024
Context: fd47b02
Context: https://dotnet.microsoft.com/platform/support/policy/maui

Changes: d12da3a...87e4a6d

  * 87e4a6d89: [release/8.0.1xx] localization changes for `XA1039` (#8674)
  * f61c76030: [workload] Allow installation on linux-arm64 (#8500)
  * 4cdf1e018: [Xamarin.Android.build.Tasks] `<CheckDuplicateJavaLibraries/>` ignores `repackaged.jar` (#8664)
  * 77ac82a11: [release/8.0.1xx] [Xamarin.Android.Build.Tasks] XA1039 warning for Android.Support (#8648)
  * c22c17fbe: [Xamarin.Android.Build.Tasks] fix warning when missing `proguard-android.txt` (#8641)
  * 31f031a67: Localized file check-in by OneLocBuild Task (#8643)
  * 3da479192: LEGO: Merge pull request 8642
  * dbf100d49: Update a number of l18n files (#8633)
  * d2da5bf4e: Bump com.android.tools:r8 from 8.1.72 to 8.2.33 (#8577)
  * 9f9114afc: Bump com.android.tools:r8 from 8.1.56 to 8.1.72 (#8532)
  * 666777248: Fix ServerCertificateCustomValidator on API 21-23 (#8637)
  * 940f059b8: [Mono.Android] Fix ServerCertificateCustomValidator (#8594)
  * 351bfa3f0: Bump to dotnet/runtime@a6e4834d53 8.0.1 (#8616)
  * 64363367d: [Microsoft.Android.Templates] New files should open editor (#8623)
  * 26752564d: Bump to dotnet/installer@461c776642 8.0.101-servicing.23614.6
  * 6972027f0: Localized file check-in by OneLocBuild Task (#8589)
  * 73efcfcad: [Xamarin.Android.Buid.Tasks] don't set $(PublishSelfContained) for .NET 9 (#8565)
  * 3333306b8: LEGO: Merge pull request 8587
  * 38e950b41: Localized file check-in by OneLocBuild Task (#8576)
  * 607115fd5: LEGO: Merge pull request 8575
  * a1fd1b2cb: Localized file check-in by OneLocBuild Task (#8570)
  * c020626b0: [Xamarin.Android.Build.Tasks] Update XA5207 for VSCode (#8494)
  * b0aab545a: Bump to dotnet/installer@822071c28a 8.0.101-servicing.23578.14 (#8558)


The .NET MAUI Support policy, which covers .NET Android, states:

> A major version of .NET MAUI receives support for a minimum of 6
> months after a successor (the next major release) ships.

meaning that a given version of .NET Android only needs to support
building `$(TargetFramework)` values for the current .NET Android
version and the previous .NET Android version.

Meanwhlie, from fd47b02:

> We currently have a hard dependency between:
> 
>   * `Xamarin.Android.Build.Tasks.dll`
>   * `libmonodroid.so`

…in order to safely build projects targeting the previous .NET Android
version with the current .NET Android version, the current .NET Android
version workload *includes the previous workload version contents*.

The `$(AndroidNetPreviousVersion)` MSBuild property specifies the
.NET Android SDK version, as obtained from `dotnet workllad list`,
which should be used to build previous `$(TargetFramework)` versions.

`$(AndroidNetPreviousVersion)` should be updated in
xamarin-android/main whenever a .NET servicing release for the previous
.NET version is shipped.

.NET Android 34.0.79 will be shipped as part of .NET 8.0.2.
Update `$(AndroidNetPreviousVersion)` to so that .NET 9 previews use
the latest .NET 8 workload contents.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants