WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
This PR introduces the configure export command as an exprimental feature. This is mostly a proof of concept and should not be considered a full feature.
Scenario A - Create a configuration to install a winget package.
Use --pacakgeId with the package identifier of an application in the winget source to produce a configuration file that uses the Microsoft.WinGet.DSC/WinGetPackage resource to install the package via winget. Right now, we don't validate if the package id exists and will just copy what the user sets into the settings of the resource.
Scenario B - 'Export' the configuration from the specified resource.
Use both --module and --resource to get the configuration of a resource and add it to the configuration file. Internally, configuration will install the module (if not installed already) and call Get on the resource. We will then try to serialize its property into the configuration file. Current limitation is that if a resource has a required setting (like WinGetPackage required Id) it won't work. If the resource is not found in the gallery a retry will be performed allowing prereleased modules in the case it exists.
Scenario C - Mix of A and B
If --packageId, --module and --resource are used, configure export will produce two resources. The first one is the WinGetPackage for the specified package. The second one is the same as in B, with the difference that it includes a dependency of the previously created WinGetPackage resource.
Scenario D - Configuration file already exists.
If the file passed to the --output parameters already exists and is a valid configuration file, the resources will be appended. There is currently not validation into the correctness of this, so it can result in a configuration with resources with the same id.
For example winget configure export --packageId Microsoft.AppInstaller --module Microsoft.WinGet.DSC --resource WinGetUserSettings -o test_export.yml would produce the following file
Previously acknowledged words that are now absent
ata bitspace EPester epth hrow issuetitle mapview Mta oop PFM STARTUPINFOW testdata visualstudiocode
:arrow_right:
To accept :heavy_check_mark: these unrecognized words as correct and remove the previously acknowledged and now absent words,
run the following commands
... in a clone of the [git@github.com:msftrubengu/winget-cli.git](https://github.com/msftrubengu/winget-cli.git) repository
on the `config_export` branch ([:information_source: how do I use this?](
https://github.com/check-spelling/check-spelling/wiki/Accepting-Suggestions)):
``` sh
curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.21/apply.pl' |
perl - 'https://github.com/microsoft/winget-cli/actions/runs/8903395578/attempts/1'
```
Available :books: dictionaries could cover words not in the :blue_book: dictionary
This includes both **expected items** (543) from .github/actions/spelling/expect.txt and **unrecognized words** (3)
Dictionary | Entries | Covers
-|-|-
[cspell:win32/src/win32.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/win32/src/win32.txt)|53509|20|
[cspell:python/src/python/python-lib.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/python/src/python/python-lib.txt)|3873|3|
[cspell:python/src/python/python.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/python/src/python/python.txt)|453|2|
[cspell:python/src/common/extra.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/python/src/common/extra.txt)|741|2|
[cspell:php/php.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/php/php.txt)|2597|2|
[cspell:npm/npm.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/npm/npm.txt)|288|2|
[cspell:django/django.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/django/django.txt)|859|2|
[cspell:csharp/csharp.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/csharp/csharp.txt)|19|2|
[cspell:sql/src/tsql.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/sql/src/tsql.txt)|455|1|
[cspell:scala/scala.txt](https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20220816/dictionaries/scala/scala.txt)|833|1|
Consider adding them using (in `.github/workflows/spelling3.yml`):
``` yml
with:
extra_dictionaries:
cspell:win32/src/win32.txt
cspell:python/src/python/python-lib.txt
cspell:python/src/python/python.txt
cspell:python/src/common/extra.txt
cspell:php/php.txt
cspell:npm/npm.txt
cspell:django/django.txt
cspell:csharp/csharp.txt
cspell:sql/src/tsql.txt
cspell:scala/scala.txt
```
To stop checking additional dictionaries, add:
``` yml
with:
check_extra_dictionaries: ''
```
Warnings (1)
See the [:open_file_folder: files](4434/files/) view or the [:scroll:action log](https://github.com/microsoft/winget-cli/actions/runs/8903395578/job/24451066831#step:4:1) for details.
[:information_source: Warnings](https://github.com/check-spelling/check-spelling/wiki/Event-descriptions) | Count
-|-
[:information_source: unexpected-line-ending](https://github.com/check-spelling/check-spelling/wiki/Event-descriptions#unexpected-line-ending) | 1
See [:information_source: Event descriptions](https://github.com/check-spelling/check-spelling/wiki/Event-descriptions) for more information.
If the flagged items are :exploding_head: false positives
If items relate to a ...
* binary file (or some other file you wouldn't want to check at all).
Please add a file path to the `excludes.txt` file matching the containing file.
File paths are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
../tree/HEAD/README.md) (on whichever branch you're using).
* well-formed pattern.
If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
try adding it to the `patterns.txt` file.
Patterns are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
This PR introduces the
configure export
command as an exprimental feature. This is mostly a proof of concept and should not be considered a full feature.Scenario A - Create a configuration to install a winget package.
Use
--pacakgeId
with the package identifier of an application in the winget source to produce a configuration file that uses theMicrosoft.WinGet.DSC/WinGetPackage
resource to install the package via winget. Right now, we don't validate if the package id exists and will just copy what the user sets into the settings of the resource.Scenario B - 'Export' the configuration from the specified resource.
Use both
--module
and--resource
to get the configuration of a resource and add it to the configuration file. Internally, configuration will install the module (if not installed already) and call Get on the resource. We will then try to serialize its property into the configuration file. Current limitation is that if a resource has a required setting (like WinGetPackage required Id) it won't work. If the resource is not found in the gallery a retry will be performed allowing prereleased modules in the case it exists.Scenario C - Mix of A and B
If
--packageId
,--module
and--resource
are used, configure export will produce two resources. The first one is theWinGetPackage
for the specified package. The second one is the same as in B, with the difference that it includes a dependency of the previously createdWinGetPackage
resource.Scenario D - Configuration file already exists.
If the file passed to the
--output
parameters already exists and is a valid configuration file, the resources will be appended. There is currently not validation into the correctness of this, so it can result in a configuration with resources with the same id.For example
winget configure export --packageId Microsoft.AppInstaller --module Microsoft.WinGet.DSC --resource WinGetUserSettings -o test_export.yml
would produce the following fileMicrosoft Reviewers: Open in CodeFlow