dotnet / dotnet/maui

Break apart <UseSingleProject> and enable more defaults via `<UseMaui>`

Open
#4,619 1 comment 4 reactions 0 assignees View on GitHub
area-setup area-single-project t/enhancement ☀️
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.