You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/ReleaseNotes.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,6 +28,10 @@ match criteria that factor into the result ordering. This will prevent them from
28
28
29
29
## Minor Features
30
30
31
+
### Upgrade delay for `winget upgrade --all`
32
+
33
+
Added the `installBehavior.upgradeDelayInDays` user setting to delay `winget upgrade --all` until an upgrade's `ReleaseDate` is at least N days old. This helps reduce exposure to newly published updates that may be part of a supply chain attack.
34
+
31
35
### Preserve installer arguments across export and import
32
36
33
37
`winget export` now captures the `--override` and `--custom` arguments that were used when a package was originally installed and saves them into the export file. When subsequently running `winget import`, those values are automatically re-applied during installation — `--override` replaces all installer arguments and `--custom` appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.
Copy file name to clipboardExpand all lines: doc/Settings.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -218,6 +218,18 @@ The `maxResumes` setting determines the maximum number of times that a command m
218
218
219
219
> Note: [The resume behavior is an experimental feature.](#resume)
220
220
221
+
### Upgrade delay
222
+
223
+
The `upgradeDelayInDays` setting delays upgrades when using `winget upgrade --all` by skipping upgrades whose manifest `ReleaseDate` is more recent than the configured age. The default value is 0 (disabled).
224
+
225
+
```json
226
+
"installBehavior": {
227
+
"upgradeDelayInDays": 14
228
+
},
229
+
```
230
+
231
+
> Note: If the package manifest does not include a valid `ReleaseDate`, the upgrade will be skipped when this setting is enabled. To upgrade anyway, use `winget upgrade <package>` which does not consider this setting, or use `winget upgrade --all --force` which will ignore the age of the upgrade.
232
+
221
233
## Uninstall Behavior
222
234
223
235
The `uninstallBehavior` settings affect the default behavior of uninstalling (where applicable) packages.
Copy file name to clipboardExpand all lines: schemas/JSON/settings/settings.schema.0.2.json
+7Lines changed: 7 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -215,6 +215,13 @@
215
215
"default": 3,
216
216
"minimum": 1
217
217
},
218
+
"upgradeDelayInDays": {
219
+
"description": "Minimum number of days since the manifest ReleaseDate before winget upgrade --all applies the upgrade. Set to 0 to disable.",
220
+
"type": "integer",
221
+
"default": 0,
222
+
"minimum": 0,
223
+
"maximum": 3650
224
+
},
218
225
"archiveExtractionMethod": {
219
226
"description": "Controls the behavior how the installer extracts archives. The current two supported values are 'shellApi' and 'tar'. 'shellApi' uses the Windows Shell API to extract archives. 'tar' uses the tar command to extract archives.",
<value>{0} package(s) were skipped due to the configured upgrade delay. To upgrade them anyway, upgrade them individually or use --force.</value>
1394
+
<comment>{Locked="{0}"} {0} is a placeholder that is replaced by an integer number of packages skipped for this reason during winget upgrade --all.</comment>
0 commit comments