Skip to content

Tags: microsoft/winget-cli

Tags

v1.30.80-preview

Toggle v1.30.80-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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 <223556219+Copilot@users.noreply.github.com>

v1.30.70-preview

Toggle v1.30.70-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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)

v1.30.50-preview

Toggle v1.30.50-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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)

v1.29.280

Toggle v1.29.280's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.

v1.29.250

Toggle v1.29.250's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Apply latest loc patch (#6262)

###### Microsoft Reviewers: [Open in
CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/6262)

v1.29.20-preview

Toggle v1.29.20-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Apply latest loc patch (#6262)

###### Microsoft Reviewers: [Open in
CodeFlow](https://microsoft.github.io/open-pr/?codeflow=https://github.com/microsoft/winget-cli/pull/6262)

v1.29.240

Toggle v1.29.240's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
lowercase ARM64 for vcpkg (#6256)

## 📖 Description
Force the vcpkg triplet platform to be lowercase for `ARM64`.

v1.29.170-preview

Toggle v1.29.170-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Optimize packaged temp ACL handling without weakening ACL repairs (#6171

)

This change reduces the severe slowdown caused by recursive ACL
propagation on packaged temp paths while preserving the security
behavior that repairs improperly secured directories before use.

The fix keeps the existing fail-closed model, but avoids calling
`ApplyACL()` when the target directory is already in the exact secure
state winget expects.

v1.29.160-preview

Toggle v1.29.160-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Improved manifest validations for MSI and Windows Feature names (#6170)

CP of #6169 onto main branch.

## Change
Adds some additional validation for MSI switches and Windows Feature
names:

1. MSI switches are checked during full manifest validation in the same
way that they are checked when we attempt to use the MSI APIs rather
than msiexec. The API is used for fully all silent installs of MSIs, so
we now ensure that those will work (6 total manifests in winget-pkgs
were found that needed fixes).
2. Windows Feature names in dependencies are validated to be {
alphanumeric, `-`, `_` }. This is done both during full manifest
validation and at runtime.

A PowerShell script
(tools/ManifestValidation/Invoke-ManifestValidation.ps1) is added that
will run `wingetdev validate` against a directory recursively and
generate a report. There is support for resuming in the middle of the
run. This would probably perform much better if it were updated to use
the WinGetUtil API, but that can be a future project.

v1.29.140-preview

Toggle v1.29.140-preview's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add Timeserver Support for SourceCreator and support spaces in paths …

…and file names (#6113)