From 83defb69b768b08014a1404c6638fe3503502ba0 Mon Sep 17 00:00:00 2001 From: Muhammad Danish Date: Fri, 29 Sep 2023 01:57:08 +0500 Subject: [PATCH 1/5] Make WinGet Configuration stable feature in docs --- hub/package-manager/configuration/check.md | 2 +- hub/package-manager/configuration/create.md | 7 ++--- hub/package-manager/configuration/index.md | 31 +++------------------ hub/package-manager/winget/configure.md | 5 +--- 4 files changed, 8 insertions(+), 37 deletions(-) diff --git a/hub/package-manager/configuration/check.md b/hub/package-manager/configuration/check.md index a03930ae82..f9e86878b8 100644 --- a/hub/package-manager/configuration/check.md +++ b/hub/package-manager/configuration/check.md @@ -1,6 +1,6 @@ --- title: How to check a WinGet Configuration -description: Learn how to check a WinGet Configuration. +description: Learn how to check a WinGet Configuration. ms.date: 05/23/2023 ms.topic: overview --- diff --git a/hub/package-manager/configuration/create.md b/hub/package-manager/configuration/create.md index 873f5d8223..421192381b 100644 --- a/hub/package-manager/configuration/create.md +++ b/hub/package-manager/configuration/create.md @@ -1,6 +1,6 @@ --- title: How to author a WinGet Configuration file -description: Learn how to create a WinGet Configuration. +description: Learn how to create a WinGet Configuration. ms.date: 05/23/2023 ms.topic: overview --- @@ -16,12 +16,9 @@ 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). - ## 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 diff --git a/hub/package-manager/configuration/index.md b/hub/package-manager/configuration/index.md index cc2538960e..936913cc0f 100644 --- a/hub/package-manager/configuration/index.md +++ b/hub/package-manager/configuration/index.md @@ -1,6 +1,6 @@ --- 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. +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 ms.topic: overview --- @@ -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: @@ -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 @@ -100,7 +77,7 @@ We recommend ALWAYS validating the integrity of a WinGet Configuration file befo ### Where can I find sample WinGet Configuration files? -For WinGet Configuration file samples, see [Sample configuration.dsc.yaml files](https://gist.github.com/denelon/dc646f538b4ffd6993878cf545c7918f). +For WinGet Configuration file samples, see [Sample configuration.dsc.yaml files](https://github.com/microsoft/devhome/tree/main/sampleConfigurations). ### When will WinGet configuration move from a preview to a stable feature? @@ -114,7 +91,7 @@ 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. ## Troubleshooting WinGet Configurations diff --git a/hub/package-manager/winget/configure.md b/hub/package-manager/winget/configure.md index 69ae05e6dd..e57da9f50a 100644 --- a/hub/package-manager/winget/configure.md +++ b/hub/package-manager/winget/configure.md @@ -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). ## Usage From 4204352095140b92089fbabc1dcb730e58b0271d Mon Sep 17 00:00:00 2001 From: Muhammad Danish Date: Fri, 29 Sep 2023 02:06:15 +0500 Subject: [PATCH 2/5] missed one message --- hub/package-manager/configuration/check.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/hub/package-manager/configuration/check.md b/hub/package-manager/configuration/check.md index f9e86878b8..e408a167cf 100644 --- a/hub/package-manager/configuration/check.md +++ b/hub/package-manager/configuration/check.md @@ -9,9 +9,6 @@ ms.topic: overview 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). - ## Security notifications and approvals Before running a configuration, the user is prompted (unless they explicitly pass the configuration agreement acceptance parameter) to review and acknowledge their responsibility to verify a configuration. From 73976c42cd95c18ff197aff9f6e1a426cda8944a Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 28 Sep 2023 16:28:06 -0700 Subject: [PATCH 3/5] Update date, add link to command --- hub/package-manager/configuration/check.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hub/package-manager/configuration/check.md b/hub/package-manager/configuration/check.md index e408a167cf..01c5900387 100644 --- a/hub/package-manager/configuration/check.md +++ b/hub/package-manager/configuration/check.md @@ -1,7 +1,7 @@ --- title: How to check a WinGet Configuration description: Learn how to check a WinGet Configuration. -ms.date: 05/23/2023 +ms.date: 09/28/2023 ms.topic: overview --- @@ -9,6 +9,8 @@ ms.topic: overview 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. +Learn more about using the [WinGet configure command](/windows/package-manager/winget/configure). + ## Security notifications and approvals Before running a configuration, the user is prompted (unless they explicitly pass the configuration agreement acceptance parameter) to review and acknowledge their responsibility to verify a configuration. From 011bfc7f44aaa855e3b85ccecab2b2baf3ac2774 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 28 Sep 2023 16:29:51 -0700 Subject: [PATCH 4/5] Update date, add link to command --- hub/package-manager/configuration/create.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hub/package-manager/configuration/create.md b/hub/package-manager/configuration/create.md index a0cd7eed65..95d734269d 100644 --- a/hub/package-manager/configuration/create.md +++ b/hub/package-manager/configuration/create.md @@ -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 +ms.date: 09/28/2023 ms.topic: overview --- @@ -16,6 +16,8 @@ To create a WinGet Configuration file: 5. Determine the directives and settings needed for each configuration resource. 6. Determine the dependencies for each resource. +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 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. From 3f9d2ff7a4cd70e49accebb1d2ba7c0f3b23d252 Mon Sep 17 00:00:00 2001 From: Matt Wojciakowski Date: Thu, 28 Sep 2023 16:50:17 -0700 Subject: [PATCH 5/5] Update date, add FAQ link to Dev Home machine config --- hub/package-manager/configuration/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hub/package-manager/configuration/index.md b/hub/package-manager/configuration/index.md index 52c2eb2b27..598bdaeee5 100644 --- a/hub/package-manager/configuration/index.md +++ b/hub/package-manager/configuration/index.md @@ -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 +ms.date: 09/28/2023 ms.topic: overview --- @@ -93,6 +93,10 @@ The [PowerShell Gallery](https://www.powershellgallery.com/packages) hosts hundr 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 The most common reason for a WinGet Configuration to fail is due to a PowerShell DSC resource requiring administrative access to apply the desired state. Not all DSC resources surface explicit reasons for failure.