Skip to content
Merged
Changes from 1 commit
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
26 changes: 25 additions & 1 deletion .github/skills/dependency-flow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,31 @@ 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.

**Branch → channel mapping rules:**

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

💡 Documentation — Framing this as "Branch → channel mapping rules" reads as exhaustive, but dotnet/maui also ships branch shapes that aren't covered by the three bullets below:

  • release/X.0.Yxx-rcN (e.g., release/10.0.1xx-rc1 / -rc2, release/9.0.1xx-rc1 / -rc2) — these get their own RC channels, not the general SDK channel.
  • release/*-rc2.1 / release/*-preview6.1 point-sub-release branches.
  • inflight/* and vendor-suffixed branches like release/10.0.1xx-meaipreview1.

The immediately-following "Always verify by listing existing mappings" guardrail (lines 44–48) already mitigates the worst-case failure — but reframing this heading as "common patterns (not exhaustive)" or adding an explicit RC bullet would close the gap for agents that read the rules block without internalizing the verify step.

Flagged by: 3/3 reviewers agreed on facts (after dispute round); severity downgraded from ⚠️ to 💡 since the verify guardrail mitigates.

- **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`).
- **Main/development branches** (`main`, `netN.0`, `release/X.0.Yxx`) map to the general SDK channel for that band.

**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) and copy its channel exactly.

### 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.

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

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

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

⚠️ Documentation — The approval warning sits after the runnable darc add-default-channel code block. The existing "Promote a build" workflow in this same file (lines 156–159) puts the confirmation instruction before the bash fence, e.g.:

  1. Show the user the command and wait for confirmation:
    darc add-build-to-channel ...

Moving the ⚠️ note above the code block would match that established pattern and removes the small risk that an agent which snippet-extracts the fenced command misses the gate (the top-level "explicit-confirmation" list at line 99 already covers the command globally, so this is consistency / belt-and-suspenders rather than a missing safety gate).

Flagged by: 2/3 reviewers (after dispute round).


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