Skip to content

Make WinGet Configuration a stable feature in docs #4642

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Sep 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
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
7 changes: 3 additions & 4 deletions hub/package-manager/configuration/check.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
---
title: How to check a WinGet Configuration
description: Learn how to check a WinGet Configuration.
ms.date: 05/23/2023
description: Learn how to check a WinGet Configuration.
ms.date: 09/28/2023
ms.topic: overview
---

# How to check the trustworthiness of a WinGet Configuration file

Prior to running a WinGet Configuration file, it is recommended to review and evaluate each resource listed in the file, ensuring that you are fully aware of what is being installed, changed, or applied to your operating system, and that it is coming from a credible and secure source.

> [!IMPORTANT]
> WinGet Configuration is currently in preview. To use a WinGet Configuration file with the [`winget configure` command](../winget/configure.md), you must first [enable the experimental configuration feature](index.md#enable-the-winget-configuration-experimental-configuration-preview-feature).
Learn more about using the [WinGet configure command](/windows/package-manager/winget/configure).

## Security notifications and approvals

Expand Down
9 changes: 4 additions & 5 deletions hub/package-manager/configuration/create.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: How to author a WinGet Configuration file
description: Learn how to create a WinGet Configuration.
ms.date: 05/23/2023
description: Learn how to create a WinGet Configuration.
ms.date: 09/28/2023
ms.topic: overview
---

Expand All @@ -16,12 +16,11 @@ To create a WinGet Configuration file:
5. Determine the directives and settings needed for each configuration resource.
6. Determine the dependencies for each resource.

> [!IMPORTANT]
> WinGet Configuration is currently in preview. To use a WinGet Configuration file with the [`winget configure` command](../winget/configure.md), you must first [enable the experimental configuration feature](index.md#enable-the-winget-configuration-experimental-configuration-preview-feature).
Learn more about using the [WinGet configure command](/windows/package-manager/winget/configure).

## File format

Windows Package Manager uses manifests (YAML files) to locate and install packages for Windows users. WinGet Configuration files use the same YAML style format, adding a JSON schema specification to help define the structure and validation of the file. To further assist in detecting whether the format of your WinGet Configuration file is valid, we recomend using [Visual Studio Code](https://code.visualstudio.com/download) with the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) by RedHat to support proper syntax, help detect any formatting errors, provide hover support and auto-completion (when linked to the JSON schema file), and ensure valid formatting.
Windows Package Manager uses manifests (YAML files) to locate and install packages for Windows users. WinGet Configuration files use the same YAML style format, adding a JSON schema specification to help define the structure and validation of the file. To further assist in detecting whether the format of your WinGet Configuration file is valid, we recommend using [Visual Studio Code](https://code.visualstudio.com/download) with the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) by RedHat to support proper syntax, help detect any formatting errors, provide hover support and auto-completion (when linked to the JSON schema file), and ensure valid formatting.

### File naming convention

Expand Down
35 changes: 8 additions & 27 deletions hub/package-manager/configuration/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: WinGet Configuration
description: WinGet Configuration uses the winget configure command, PowerShell, and a YAML-formatted configuration file listing all of the software versions, packages, tools, and settings required to achieve the set up the desired state of the development environment on your Windows machine. Minimizing manual project setup and onboarding to a single command that is reliable and repeatable.
ms.date: 07/10/2023
description: WinGet Configuration uses the winget configure command, PowerShell, and a YAML-formatted configuration file listing all of the software versions, packages, tools, and settings required to achieve the set up the desired state of the development environment on your Windows machine. Minimizing manual project setup and onboarding to a single command that is reliable and repeatable.
ms.date: 09/28/2023
ms.topic: overview
---

Expand All @@ -13,9 +13,6 @@ Using a WinGet Configuration file, you can consolidate manual machine setup and
- [PowerShell Desired State Configuration (DSC)](/powershell/dsc/overview) to automate the configuration of your Windows operating system.
- The Windows Package Manager [`winget configure` command](../winget/configure.md) to initiate the configuration process.

> [!IMPORTANT]
> WinGet Configuration is currently in preview. To use a WinGet Configuration file with the [`winget configure` command](../winget/configure.md), you must first [enable the experimental configuration feature](#enable-the-winget-configuration-experimental-configuration-preview-feature).
## Benefits for machine setup and project onboarding

The benefits of using a WinGet Configuration file include:
Expand All @@ -33,27 +30,7 @@ To set up your machine using a WinGet Configuration file, you can:

1. [Install Dev Home](../../dev-home/index.md), go to **Machine configuration**, select **Configuration file**, and choose the WinGet configuration file that you would like to use. (To create a configuration file, see [How to author a WinGet Configuration file](create.md)).

2. Use [winget configure](../winget/configure.md) in the command line. To use the `winget configure` command, you must be running the preview version of Windows Package Manager and must first [enable the Experimental feature](#enable-the-winget-configuration-experimental-configuration-preview-feature).

## Enable the WinGet Configuration experimental configuration preview feature

In order to use a WinGet Configuration file with the [`winget configure` command](../winget/configure.md):

1. Confirm you're running the [Preview version of WinGet](../winget/index.md#install-winget-preview-version-developers-only).

2. Enter the command: `winget features` to display a list of available experimental features.

3. Enter the command: `winget settings` to open the WinGet Settings file in your default text editor. The WinGet Settings file uses a JSON format.

4. In your WinGet Settings JSON file, enter:

```json
"experimentalFeatures": {
"configuration": true
}
```

Features may be managed by your workplace group policy, potentially blocking your ability to use experimental features. You can use the `winget --info` command to view any policies in effect on your system.
2. Use [winget configure](../winget/configure.md) in the command line. To use the `winget configure` command, you must be running WinGet version [v1.6.2631 or later](https://github.com/microsoft/winget-cli/releases).

## WinGet Configuration FAQs

Expand Down Expand Up @@ -114,7 +91,11 @@ The [PowerShell Gallery](https://www.powershellgallery.com/packages) hosts hundr

### Can I set up a policy to block the use of WinGet Configuration files in my organization?

[Group Policy Objects](/microsoft-365/compliance/device-onboarding-gp) are available for disabling all experimental features. New Group Policy Objects will be created for more fine-grained control before WinGet configuration is shipped as a stable product.
Yes. [Group Policy Objects](/microsoft-365/compliance/device-onboarding-gp) **EnableWindowsPackageManagerConfiguration** and **EnableWindowsPackageManagerConfigurationExplanation** can be utilized for disabling WinGet Configuration feature in your organization.

### Where can I learn more about using WinGet Configurations with Dev Home and Dev Drives?

Learn more about using the Machine Configuration tool in Windows 11 Dev Home in the article [Set up your Windows development environment with Dev Home](/windows/dev-home/setup). You may also be interested in learning how to use the more performance optimized Dev Drive storage volumes, see [Set up a Dev Drive on Windows 11](/windows/dev-drive/).

## Troubleshooting WinGet Configurations

Expand Down
5 changes: 1 addition & 4 deletions hub/package-manager/winget/configure.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,13 @@ ms.localizationpriority: medium

The **configure** command of the [winget](./index.md) tool uses a [WinGet Configuration file](../configuration/index.md) to begin setting up your Windows machine to a desired development environment state.

> [!IMPORTANT]
> WinGet Configuration is currently in preview. To use a WinGet Configuration file with the [`winget configure` command](../winget/configure.md), you must first [enable the experimental configuration feature](../configuration/index.md#enable-the-winget-configuration-experimental-configuration-preview-feature).
> [!WARNING]
> Do not run a WinGet Configuration file without first reviewing the contents of the file and verifying the credibility of the related resources. See [How to check the trustworthiness of a WinGet Configuration file](../configuration/check.md).
## Prerequisites

- Windows 10 RS5 or later, and Windows 11.
- Winget version v1.5.1572 or later.
- WinGet version [v1.6.2631 or later](https://github.com/microsoft/winget-cli/releases).

## Aliases

Expand Down