Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion .github/skills/dependency-flow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,33 @@ MAUI uses two types of channels:
### SDK Channels (automatic)
Pattern: `.NET X.0.Yxx SDK` (e.g., `.NET 10.0.1xx SDK`)

These are configured via default channel mappings — builds are **automatically** added when they complete on a mapped branch. Preview releases use `.NET X.0.Yxx SDK Preview N`.
These are configured via default channel mappings — builds are **automatically** added when they complete on a mapped branch.

**Common branch → channel patterns (not exhaustive — always verify with the command below):**
- **Servicing release branches** (`release/X.0.Yxx-srN`) all map to the **single** general SDK channel for that band (e.g., `release/10.0.1xx-sr6`, `release/10.0.1xx-sr7`, etc. all map to `.NET 10.0.1xx SDK`). There is **no** `.NET X.0.Yxx SDK SRn` channel — do not invent one.
- **Preview release branches** (`release/X.0.Yxx-previewN`) map to dedicated per-preview channels (e.g., `release/11.0.1xx-preview3` → `.NET 11.0.1xx SDK Preview 3`).
- **RC release branches** (`release/X.0.Yxx-rcN`) use dedicated per-RC channels (e.g., `.NET 10.0.1xx SDK RC 2`) **only while their cycle is active** — these default mappings are removed after the RC ships, so `get-default-channels` will show no RC sibling to copy from. If you can't find a sibling, stop and tell the user to escalate to release engineering — do not guess the channel name.
- **Main/development branches** (`main`, `netN.0`, `release/X.0.Yxx`) map to the general SDK channel for that band.
- **Other shapes** also exist in dotnet/maui from time to time — point-sub-release branches (`-rc2.1`, `-preview6.1`), `inflight/*` mirrors, and vendor-suffixed branches (e.g., `release/10.0.1xx-meaipreview1`). Do not assume the four bullets above are complete — always check.

**Always verify by listing existing mappings before constructing a command:**
```bash
darc get-default-channels --source-repo https://github.com/dotnet/maui
```
Find a sibling branch (e.g., the previous SR or the previous preview) and copy its channel exactly. If no sibling exists (common for RC branches outside an active cycle), stop and tell the user that release engineering needs to configure the channel mapping — do not guess the channel name.

### Adding a new branch to the default channel mapping

Common case: a new servicing release branch is created (e.g., `release/10.0.1xx-sr7`) and needs to be added so its builds flow automatically.

⚠️ `add-default-channel` is in the explicit-confirmation list below. Show the user the exact command and wait for approval before running:

```bash
darc add-default-channel \
--channel ".NET 10.0.1xx SDK" \
--branch release/10.0.1xx-sr7 \
--repo https://github.com/dotnet/maui
```

### Workload Release Channels (manual promotion)
Pattern: `.NET X Workload Release` (e.g., `.NET 10 Workload Release`)
Expand Down
Loading