Repository navigation
Tags: microsoft/winget-cli
Tags
Ensure relative paths are rooted (#6357) ## 📖 Description <!-- Describe what this PR changes, why, and any limitations. --> The way we were checking that a relative path was inside a directory was wrong because it didn't check if the path was rooted. This PR fixes that.
Clean up Duplicate Surfacing comment noise (#6412) (#6414) ## 📖 Description Reduces noise in the **Duplicate Surfacing** workflow's comment, per maintainer feedback in #6412. Three changes to `.github/workflows/duplicate-surfacing.md` (and its regenerated `.lock.yml`): 1. **Header** — drop the `(surfaced automatically for maintainer review — this issue has **not** been closed)` parenthetical. The comment is now just `**Possible duplicates:**`. 2. **Guidance** — reword from maintainer-facing to **contributor-facing**: thank the submitter, ask them to review the candidates, and — if one matches — to 👍 that issue and close this one as a duplicate. Keeps the note that older/curated issues are preferred as canonical. Removes the `Duplicate of #<number>` instruction (maintainers already know the trigger, and this avoids surfacing the auto-close phrase in the comment body). 3. **Footer** — replace the auto-generated `> Generated by 🔁 Duplicate Surfacing … · sonnet46 · NN AIC · …` footer with a single consolidated line via `safe-outputs.messages.footer`: ``` Template: msftbot/duplicate/surfaced by [Duplicate Surfacing](<link-to-run>) ``` This keeps the `Template:` tag (for email-filter rules) and a link back to the workflow run, while dropping the token/cost metadata noise. Rendered as an H6 heading (`######`) to visually de-emphasize it. The invisible `<!-- gh-aw-… -->` dedup markers are unaffected (they're added separately and are required so the workflow doesn't re-comment). ### Rendered comment (after) > **Possible duplicate(s):** > > Thank you for submitting this issue. > > The issue(s) below may already track your request or bug. Please take a look — if one of them matches, give that issue a 👍 and close this one as a duplicate. Older or curated issues are preferred as the canonical one to follow. > > - #472 — Requests the same feature: … > - #1103 — Same underlying bug: … > > ###### Template: msftbot/duplicate/surfaced by [Duplicate Surfacing](https://github.com/microsoft/winget-cli/actions/runs/…) ## 🔗 References Resolves #6412 ## 🔍 Validation - `gh aw compile duplicate-surfacing` → 0 errors, 0 warnings. - Verified the footer template is embedded in the generated lock as `GH_AW_SAFE_OUTPUT_MESSAGES` and that `GH_AW_RUN_URL` / `GH_AW_WORKFLOW_NAME` are wired in to render the `{run_url}` / `{workflow_name}` placeholders. ## ✅ Checklist - [x] Signed the [Contributor License Agreement](https://cla.opensource.microsoft.com) - [x] Linked to an issue - [ ] Updated [Release Notes](../doc/ReleaseNotes.md) (if applicable) - [ ] Updated documentation (if applicable) - [ ] Updated [Copilot instructions](.github/copilot-instructions.md) (if build, architecture, or conventions changed) ## 📋 Issue Type - [x] Task --- Authored with GitHub Copilot assistance. Co-authored-by: Demitrius Nelon <[email protected]> Copilot-Session: 3701d64a-96ba-42f1-be59-b4e7d2a2820a
Optional Telemetry Event for Microsoft Store Catalog Installs (msstor… …e Source) (#6352) ## 📖 Description Adds an optional telemetry event that lets Microsoft Store analytics attribute Store‑catalog app installs that happen through WinGet. When WinGet successfully installs an app whose source is the Microsoft Store (`msstore`), it now emits a `StoreExperienceTelemetry-WinGetInstall` event on the **`Microsoft-Windows-Store`** ETW provider (`{9C2A37F3-E5FD-5CAE-BCD1-43DAFEEE1FF0}`). The event carries only the minimum needed for attribution: | Field | Value | |-------|-------| | `pid` | Store product ID (the `msstore` package identifier) | | `src` | Install caller | | `cn` | Catalog name — constant `"msstore"` | Key points: - **Emitted only on success, only for `msstore`.** The call site is the success path of `ReportInstallerResult`, gated on `PackageVersion->GetSource().IsWellKnownSource(WellKnownSource::MicrosoftStore)`. Local‑manifest installs (which have no `PackageVersion`) are guarded with `Contains(...)` so they are unaffected. - **Scope: unpackaged (Win32) Store apps.** Unpackaged `msstore` items resolve to a real installer type (`exe`/`msi`) and flow through `ReportInstallerResult`, so they emit the event. - **New dedicated provider.** `Microsoft-Windows-Store` is registered alongside the existing WinGet provider, with its own enablement callback (`g_IsStoreTelemetryProviderEnabled`) so the Store event can be captured independently of the WinGet telemetry provider. - **Privacy‑preserving.** The event honors the WinGet telemetry opt‑out (`m_isSettingEnabled`), the runtime toggle (`m_isRuntimeEnabled`), and initialization state, and is tagged `PDT_ProductAndServicePerformance` / `MICROSOFT_KEYWORD_CRITICAL_DATA`. It records no executable paths, usernames, or command‑line arguments. ### Files changed | File | Change | |------|--------| | `src/AppInstallerCommonCore/Telemetry/TraceLogging.{h,cpp}` | Declare/define the `Microsoft-Windows-Store` provider + register its enablement callback | | `src/AppInstallerCommonCore/Public/AppInstallerTelemetry.h` | Declare `LogStoreInstall` | | `src/AppInstallerCommonCore/AppInstallerTelemetry.cpp` | Implement `LogStoreInstall` (writes the event; updates the telemetry summary when the WinGet provider is enabled) | | `src/AppInstallerCLICore/Workflows/InstallFlow.cpp` | Call `LogStoreInstall` on successful `msstore` installs, guarded by `Contains(PackageVersion)` | ## 🔗 References Resolves #6317 ## 🔍 Validation - **CLI, unpackaged Store app (confirmed):** `winget install XPFFH613W8V6LV --accept-package-agreements` (OBS Studio — an unpackaged `exe` Store app). An ETW capture of the `Microsoft-Windows-Store` provider showed `StoreExperienceTelemetry-WinGetInstall` with `pid` = the Store product ID and `cn` = `msstore`. - **Negative cases:** no event for non‑`msstore` sources, and none for a failed install (the event is only reached on the success path). - **Privacy:** event is suppressed when WinGet telemetry is disabled via settings or the runtime toggle. ## ✅ Checklist - [x] Signed the [Contributor License Agreement](https://cla.opensource.microsoft.com) - [x] Linked to an issue - [ ] Updated [Release Notes](../doc/ReleaseNotes.md) (if applicable) - [ ] Updated documentation (if applicable) - [ ] Updated [Copilot instructions](.github/copilot-instructions.md) (if build, architecture, or conventions changed) ## 📋 Issue Type - [ ] Bug fix - [x] Feature - [ ] Task ###### Microsoft Reviewers: [Open in CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/6352) --------- Co-authored-by: Copilot <[email protected]>
Undo normalization of external files (#6336) ## 📖 Description <!-- Describe what this PR changes, why, and any limitations. --> #6267 and #6276 normalized the line endings across the repo. This included the external PS modules, some of which are signed files. The normalization broke the signatures in some of those files. This PR undoes the normalization for those files and restores them to the proper orden. ## 🔗 References <!-- Link related issues, PRs, or docs. Use "Resolves #1234" to auto-close. --> ## 🔍 Validation <!-- How did you test? List manual steps or note automated test coverage. --> ## ✅ Checklist <!-- Place an "x" between the brackets to check an item. e.g: [x] --> - [ ] Signed the [Contributor License Agreement](https://cla.opensource.microsoft.com) - [ ] Linked to an issue - [ ] Updated [Release Notes](../doc/ReleaseNotes.md) (if applicable) - [ ] Updated documentation (if applicable) - [ ] Updated [Copilot instructions](.github/copilot-instructions.md) (if build, architecture, or conventions changed) ## 📋 Issue Type <!-- Select the type that best describes this PR --> - [ ] Bug fix - [ ] Feature - [ ] Task ###### Microsoft Reviewers: [Open in CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/6336)
Undo normalization of external files (#6336) ## 📖 Description <!-- Describe what this PR changes, why, and any limitations. --> #6267 and #6276 normalized the line endings across the repo. This included the external PS modules, some of which are signed files. The normalization broke the signatures in some of those files. This PR undoes the normalization for those files and restores them to the proper orden. ## 🔗 References <!-- Link related issues, PRs, or docs. Use "Resolves #1234" to auto-close. --> ## 🔍 Validation <!-- How did you test? List manual steps or note automated test coverage. --> ## ✅ Checklist <!-- Place an "x" between the brackets to check an item. e.g: [x] --> - [ ] Signed the [Contributor License Agreement](https://cla.opensource.microsoft.com) - [ ] Linked to an issue - [ ] Updated [Release Notes](../doc/ReleaseNotes.md) (if applicable) - [ ] Updated documentation (if applicable) - [ ] Updated [Copilot instructions](.github/copilot-instructions.md) (if build, architecture, or conventions changed) ## 📋 Issue Type <!-- Select the type that best describes this PR --> - [ ] Bug fix - [ ] Feature - [ ] Task ###### Microsoft Reviewers: [Open in CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/6336)
Fix configuration elevation validation for standard flow (1.29) (#6318) CP of #6307 to 1.29 Technically it wasn't a CP because of the line ending renormalization. You can filter that out using the following method: - Create your CP branch off the target - `git show <HASH> -w > temp.patch` - `git apply -p1 --ignore-whitespace temp.patch` - Or you can combine it into one `git show <HASH> -w | git apply -p1 --ignore-whitespace -` - Commit the changes ## 📖 Description As described in the issue, when using standard configuration flows that have elevated units, the elevated process would not operate properly. This came down to a case sensitive bool conversion that would cause the validation flow to not properly read from the alias file.
PreviousNext