Break apart <UseSingleProject> and enable more defaults via `<UseMaui>`
- Dominant language
- C#
- Stars
- 23.3k
- Forks
- 2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 290
Description
### Use Single Project features
- Globbing patterns for platforms (*.android.cs*)
- Platform asset type includes (Entitlements.plist, AndroidManifest.xml, etc..)
- Maui Project asset type includes `MauiAsset`, `MauiImage`, etc...
### Proposal
Break this out into two properties
- EnableDefaultMauiItems (enabled by default with UseMaui)
- Maui Project asset type includes `MauiAsset`, `MauiImage`, etc...
- EnableDefaultPlatformGlobs (?) (enabled by default with UseMaui)
- Platform asset type includes (Entitlements.plist, AndroidManifest.xml, etc..)
- Globbing patterns for platforms (*.android.cs*)
Remove `UseSingleProject` from all of the templates
### Possible issues
- Make sure to validate that UseMaui is set to true for a project so that the targets don't get applied transitively
Contributor guide
Research direction
Start by locating the project templates and targets that define or consume UseSingleProject and UseMaui. Trace the existing default item globs and asset types, then determine how the proposed properties should be guarded so targets do not apply transitively. Done means the properties are separated, templates no longer use UseSingleProject, and UseMaui projects retain the intended defaults.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system, mobile-dev
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100