From 5d7ebe34acd1f971df01cb3a0391474086539297 Mon Sep 17 00:00:00 2001 From: Kaleb Luedtke Date: Thu, 18 Aug 2022 17:57:22 -0500 Subject: [PATCH] Update Documentation for schema 1.2 (#2429) * Remove old and unused PR template * Remove old spelling action which was replaced by .github/workflows/spelling2.yml * Remove disabled fabricbot jobs * Remove reference to schema which has been moved to pkgs * Update references to current milestones * Remove block comment in release roadmap * Update to VS2022 per the Visual Studio downloads page * Docs updates * Remove Version reference from Visual Studio * Fix linter auto-updates to Table of contents * Apply suggestions from code review Co-authored-by: JohnMcPMS * Restore workflow file * Fix incorrect descriptions Co-authored-by: JohnMcPMS --- .../ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md | 19 - .github/fabricbot.json | 717 ------------------ README.md | 2 +- doc/ManifestSpecv1.0.md | 170 ----- ...windows-package-manager-release-roadmap.md | 34 +- .../package-manager/package/manifest.md | 24 +- .../windows-package-manager-policies.md | 7 +- doc/windows/package-manager/winget/index.md | 5 +- 8 files changed, 22 insertions(+), 956 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md delete mode 100644 doc/ManifestSpecv1.0.md diff --git a/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md b/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 1bab240e93..0000000000 --- a/.github/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ - -## Summary of the Pull Request - - -## References - - -## PR Checklist -* [ ] Closes #xxx -* [ ] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA -* [ ] Tests added/passed -* [ ] Requires documentation to be updated -* [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx - - -## Detailed Description of the Pull Request / Additional comments - - -## Validation Steps Performed diff --git a/.github/fabricbot.json b/.github/fabricbot.json index c92244b524..c73444b15b 100644 --- a/.github/fabricbot.json +++ b/.github/fabricbot.json @@ -1241,608 +1241,6 @@ }, "id": "Ogc07F3PYdn" }, - { - "taskType": "trigger", - "capabilityId": "IssueResponder", - "subCapability": "IssuesOnlyResponder", - "version": "1.0", - "config": { - "eventType": "issue", - "eventNames": [ - "issues", - "project_card" - ], - "conditions": { - "operator": "and", - "operands": [ - { - "operator": "or", - "operands": [ - { - "operator": "and", - "operands": [ - { - "name": "isLabeled", - "parameters": {} - }, - { - "name": "hasLabel", - "parameters": { - "label": "Mass-Chaos" - } - } - ] - }, - { - "name": "isOpen", - "parameters": {} - }, - { - "name": "isLabeled", - "parameters": {} - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Needs-Tag-Fix" - } - } - ] - }, - { - "operator": "or", - "operands": [ - { - "operator": "and", - "operands": [ - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Accessibility" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Build" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Extensibility" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Fonts" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Input" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Interaction" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Interop" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Output" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Performance" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Rendering" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Server" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Settings" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Terminal Connection" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Terminal Control" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-User Interface" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Vt" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-CodeHealth" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Quality" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Azure Shell" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Schema" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Area-Commandline" - } - } - ] - } - ] - }, - { - "operator": "and", - "operands": [ - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Bug" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Docs" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Feature" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Question" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Samples" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Task" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Issue-Scenario" - } - } - ] - } - ] - }, - { - "operator": "and", - "operands": [ - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Cmd-Exe" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Colortool" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Conhost" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Conpty" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Meta" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Powershell" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-Terminal" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Product-WSL" - } - } - ] - } - ] - }, - { - "operator": "and", - "operands": [ - { - "operator": "not", - "operands": [ - { - "name": "isOpen", - "parameters": {} - } - ] - }, - { - "operator": "and", - "operands": [ - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-Answered" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-By-Design" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-Duplicate" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-External" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-Fix-Available" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-Fix-Committed" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-Wont-Fix" - } - } - ] - } - ] - } - ] - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Needs-Triage" - } - } - ] - }, - { - "operator": "not", - "operands": [ - { - "name": "hasLabel", - "parameters": { - "label": "Resolution-Duplicate" - } - } - ] - } - ] - }, - "actions": [ - { - "name": "addLabel", - "parameters": { - "label": "Needs-Tag-Fix" - } - } - ], - "taskName": "Mark issues that need tagging fixed" - }, - "id": "vk6tsiabjBg", - "disabled": true - }, { "taskType": "trigger", "capabilityId": "InPrLabel", @@ -2024,121 +1422,6 @@ }, "id": "ehtCpjUk7j6" }, - { - "taskType": "trigger", - "capabilityId": "IssueResponder", - "subCapability": "PullRequestResponder", - "version": "1.0", - "config": { - "conditions": { - "operator": "and", - "operands": [ - { - "name": "isLabeled", - "parameters": {} - }, - { - "name": "hasLabel", - "parameters": { - "label": "Needs-Second" - } - } - ] - }, - "eventType": "pull_request", - "eventNames": [ - "pull_request", - "issues", - "project_card" - ], - "taskName": "add team when a second is needed", - "actions": [ - { - "name": "requestReviewer", - "parameters": { - "reviewer": "JohnMcPMS" - } - }, - { - "name": "requestReviewer", - "parameters": { - "reviewer": "yao-msft" - } - }, - { - "name": "requestReviewer", - "parameters": { - "reviewer": "ashpatil-msft" - } - }, - { - "name": "requestReviewer", - "parameters": { - "reviewer": "msftrubengu" - } - } - ] - }, - "id": "hO6pVE7nTSy", - "disabled": true - }, - { - "taskType": "trigger", - "capabilityId": "IssueResponder", - "subCapability": "PullRequestReviewResponder", - "version": "1.0", - "config": { - "conditions": { - "operator": "and", - "operands": [ - { - "operator": "not", - "operands": [ - { - "name": "isOpen", - "parameters": {} - } - ] - }, - { - "name": "hasLabel", - "parameters": { - "label": "Needs-Second" - } - } - ] - }, - "eventType": "pull_request", - "eventNames": [ - "pull_request_review" - ], - "actions": [ - { - "name": "removeLabel", - "parameters": { - "label": "Needs-Second" - } - } - ], - "taskName": "Remove Needs-Second from closed PRs." - }, - "id": "32kxblD60ag", - "disabled": true - }, - { - "taskType": "trigger", - "capabilityId": "ReleaseAnnouncement", - "subCapability": "ReleaseAnnouncement", - "version": "1.0", - "config": { - "taskName": "Announce a fix has been released", - "prReply": ":tada:`${pkgName} ${version}` has been released which incorporates this pull request.:tada:\n\nHandy links:\n* [Release Notes](https://github.com/${owner}/${repo}/releases/tag/${version})\n", - "issueReply": ":tada:This issue was addressed in #${prNumber}, which has now been successfully released as `${pkgName} ${version}`.:tada:\n\nHandy links:\n* [Release Notes](https://github.com/${owner}/${repo}/releases/tag/${version})\n", - "referencedPrsRegex": "\\#([0-9]+)\\s*\\)" - }, - "id": "LQpT2oqOzEA", - "disabled": true - }, { "taskType": "trigger", "capabilityId": "IssueResponder", diff --git a/README.md b/README.md index cbd2553c8a..61e9652edc 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ The client is built around the concept of sources; a set of packages effectively * Windows 10 1809 (17763) or later * [Developer Mode enabled](https://docs.microsoft.com/windows/uwp/get-started/enable-your-device-for-development) -* [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/) +* [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) * Or use winget to install it ;) (although you may need to adjust the workloads via Tools->Get Tools and Features...) * The following workloads: * .NET Desktop Development diff --git a/doc/ManifestSpecv1.0.md b/doc/ManifestSpecv1.0.md deleted file mode 100644 index e26d15bdc0..0000000000 --- a/doc/ManifestSpecv1.0.md +++ /dev/null @@ -1,170 +0,0 @@ -The Windows Package Manager uses manifests (YAML files) to locate and install packages for Windows users. This specification provides -references to JSON schemas as well as best practices. - -Table of Contents ----------------------------------- -YAML Specification - 1) YAML file name and folder structure - 2) YAML Syntax - 3) Minimal singleton YAML file example - 4) Multiple file YAML example - 5) Best Practices - -# YAML Specification - -## YAML file name and folder structure -YAML files shall be added to the repository with the following folder structure: -manifests / p / publisher / package / packageVersion / publisher.package.manifestFile.yaml - -Example: -manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / WindowsTerminal.yaml - -* Manifests are partitioned by the first letter of the publisher name (in lower case). For example: m. -* Publisher folder is the name of the company that publishes the tool. For example: Microsoft. -* The child folder package is the name of the application or tool. For example: WindowsTerminal. -* The child folder package version is the version of the package. For example: 1.6.10571.0. -* The filename must be a combination of the application name and the current version. For example: WindowsTerminal.yaml. - -The publisher and application folders MUST match the values used to define the Id. See PackageIdentifier: in the YAML for more detail. -The version in the folder name MUST match the version field value in the YAML file. See PackageVersion: in the YAML for more detail. - -There are two primary types of manifests. A single file manifest (singleton) and a multi-file manifest. -[JSON schemas](https://github.com/microsoft/winget-cli/tree/master/schemas/JSON/manifests/v1.0.0) have been provided -to help strongly type attributes and requirements. - -## YAML Syntax -Each field in the file must be PascalCased and cannot be duplicated. - -## Minimal singleton YAML file example -As specified in the [singleton JSON schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.singleton.1.0.0.json), -only a number of fields are required. The minimal supported YAML file would look like the example below. The singleton format is only valid for packages containing -a single installer and a single locale. If more than one installer or locale is provided, the multiple YAML file format and schema must be used. - -The partitioning scheme was added to help with GitHub's UX. Folders with thousands of children do not render well in the browser. - -Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.yaml - -```YAML -PackageIdentifier: Microsoft.WindowsTerminal -PackageVersion: 1.6.10571.0 -PackageLocale: en-US -Publisher: Microsoft -PackageName: Windows Terminal -License: MIT -ShortDescription: The new Windows Terminal, a tabbed command line experience for Windows. -Installers: - - Architecture: x64 - InstallerType: msix - InstallerUrl: https://github.com/microsoft/terminal/releases/download/v1.6.10571.0/Microsoft.WindowsTerminal_1.6.10571.0_8wekyb3d8bbwe.msixbundle - InstallerSha256: 092aa89b1881e058d31b1a8d88f31bb298b5810afbba25c5cb341cfa4904d843 - SignatureSha256: e53f48473621390c8243ada6345826af7c713cf1f4bbbf0d030599d1e4c175ee -ManifestType: singleton -ManifestVersion: 1.0.0 -``` - -## Multiple file YAML example -In order to provide the best user experience, manifests should contain as much meta-data as possible. In order to separate concerns for validating installers -and providing localized meta-data manifests will be split into multiple files. The minimum number of YAML files for this kind of manifest is three. Additional -locales should also be provided. -* A [version](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.version.1.0.0.json) file -* The [default locale](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.defaultLocale.1.0.0.json) file -* An [installer](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.installer.1.0.0.json) file -* Additional [locale](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.locale.1.0.0.json) files - -The example below shows many optional meta-data fields and multiple locales. Note the default locale has more requirements than additional locales. In the show -command, any required fields that aren't provided for additional locales will display fields from the default locale. - -Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.yaml - -```YAML -PackageIdentifier: Microsoft.WindowsTerminal -PackageVersion: 1.6.10571.0 -DefaultLocale: en-US -ManifestType: version -ManifestVersion: 1.0.0 -``` - -Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.locale.en-US.yaml - -```YAML -PackageIdentifier: Microsoft.WindowsTerminal -PackageVersion: 1.6.10571.0 -PackageLocale: en-US -Publisher: Microsoft -PublisherURL: https://www.microsoft.com/ -PrivacyURL: https://privacy.microsoft.com/ -PackageName: Windows Terminal -PackageURL: https://docs.microsoft.com/windows/terminal/ -License: MIT -LicenseURL: https://github.com/microsoft/terminal/blob/master/LICENSE -ShortDescription: The new Windows Terminal, a tabbed command line experience for Windows. -Tags: -- console -- command-line -- shell -- command-prompt -- powershell -- wsl -- developer-tools -- utilities -- cli -- cmd -- ps -- terminal -ManifestType: defaultLocale -ManifestVersion: 1.0.0 -``` - -Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.locale.fr-FR.yaml - -```YAML -PackageIdentifier: Microsoft.WindowsTerminal -PackageVersion: 1.6.10571.0 -PackageLocale: fr-FR -Publisher: Microsoft -ShortDescription: Le nouveau terminal Windows, une expérience de ligne de commande à onglets pour Windows. -ManifestType: locale -ManifestVersion: 1.0.0 -``` - -Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.installer.yaml - -```YAML -PackageIdentifier: Microsoft.WindowsTerminal -PackageVersion: 1.6.10571.0 -Platform: - - Windows.Desktop -MinimumOSVersion: 10.0.18362.0 -InstallerType: msix -InstallModes: - - silent -PackageFamilyName: Microsoft.WindowsTerminal_8wekyb3d8bbwe -Installers: - - Architecture: x64 - InstallerUrl: https://github.com/microsoft/terminal/releases/download/v1.6.10571.0/Microsoft.WindowsTerminal_1.6.10571.0_8wekyb3d8bbwe.msixbundle - InstallerSha256: 092aa89b1881e058d31b1a8d88f31bb298b5810afbba25c5cb341cfa4904d843 - SignatureSha256: e53f48473621390c8243ada6345826af7c713cf1f4bbbf0d030599d1e4c175ee - - Architecture: arm64 - InstallerUrl: https://github.com/microsoft/terminal/releases/download/v1.6.10571.0/Microsoft.WindowsTerminal_1.6.10571.0_8wekyb3d8bbwe.msixbundle - InstallerSha256: 092aa89b1881e058d31b1a8d88f31bb298b5810afbba25c5cb341cfa4904d843 - SignatureSha256: e53f48473621390c8243ada6345826af7c713cf1f4bbbf0d030599d1e4c175ee - - Architecture: x86 - InstallerUrl: https://github.com/microsoft/terminal/releases/download/v1.6.10571.0/Microsoft.WindowsTerminal_1.6.10571.0_8wekyb3d8bbwe.msixbundle - InstallerSha256: 092aa89b1881e058d31b1a8d88f31bb298b5810afbba25c5cb341cfa4904d843 - SignatureSha256: e53f48473621390c8243ada6345826af7c713cf1f4bbbf0d030599d1e4c175ee -ManifestType: installer -ManifestVersion: 1.0.0 -``` - - -## Best Practices -The package identifier must be unique. You cannot have multiple submissions with the same package identifier. Only one pull request per package version is allowed. - -Avoid creating multiple publisher folders. For example, do not create "Contoso Ltd." if there is already a "Contoso" folder. - -All tools must support a silent install. If you have an executable that does not support a silent install, then we cannot provide that tool at this time. - -Provide as many fields as possible. The more meta-data you provide the better the user experience will be. In some cases, the fields may not yet be supported -by the Windows Package Manager client (winget.exe). - -The length of strings in this specification should be limited to 100 characters before a line break. diff --git a/doc/windows-package-manager-release-roadmap.md b/doc/windows-package-manager-release-roadmap.md index d967aeea80..bfa20a1175 100644 --- a/doc/windows-package-manager-release-roadmap.md +++ b/doc/windows-package-manager-release-roadmap.md @@ -41,8 +41,8 @@ We use [GitHub milestones](https://github.com/microsoft/winget-cli/milestones) t | Milestone | Description | | --- | --- | -| [v1.1-Client](https://github.com/microsoft/winget-cli/milestone/35) | Work Targeted for v1.1 | -| [v1.2-Client](https://github.com/microsoft/winget-cli/milestone/36) | Work Targeted for v1.2 | +| [v1.4-Client](https://github.com/microsoft/winget-cli/milestone/38) | Work Targeted for v1.4 | +| [v1.5-Client](https://github.com/microsoft/winget-cli/milestone/39) | Work Targeted for v1.5 | | [v.Next-Client](https://github.com/microsoft/winget-cli/milestone/34) | Triage for the next Milestone | | [Backlog-Client](https://github.com/microsoft/winget-cli/milestone/2) | Work not yet assigned to a milestone or release | @@ -54,32 +54,4 @@ Incoming issues/asks/etc. are triaged several times a week, labelled appropriate * P1/2 issues/features/asks assigned to the current or future milestone. * Issues/features/asks not on our list of the features of next release is assigned to the [Windows Package Manager Backlog](https://github.com/microsoft/winget-cli/milestone/2) for subsequent triage, prioritization & scheduling. - - -#### Feature Priorities will be influenced by community feedback on issues. +#### Feature Priorities will be influenced by community feedback on issues. \ No newline at end of file diff --git a/doc/windows/package-manager/package/manifest.md b/doc/windows/package-manager/package/manifest.md index 98aa651378..ccd9265a00 100644 --- a/doc/windows/package-manager/package/manifest.md +++ b/doc/windows/package-manager/package/manifest.md @@ -46,13 +46,13 @@ A package manifest must include a set of required items, and can also include fu Each field in the manifest file must be Pascal-cased and cannot be duplicated. -For a complete list and descriptions of items in a manifest, see the [manifest specification](https://github.com/microsoft/winget-cli/blob/master/doc/ManifestSpecv1.0.md) in the [https://github.com/microsoft/winget-cli](https://github.com/microsoft/winget-cli) repository. +For a complete list and descriptions of items in a manifest, see the [manifest specification](https://github.com/microsoft/winget-pkgs/tree/master/doc/manifest/schema) in the [https://github.com/microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs) repository. ### Minimal required schema #### [Minimal required schema](#tab/minschema/) -As specified in the [singleton JSON schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.singleton.1.0.0.json), +As specified in the [singleton JSON schema](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.singleton.1.2.0.json), only a number of fields are required. The minimal supported YAML file would look like the example below. The singleton format is only valid for packages containing a single installer and a single locale. If more than one installer or locale is provided, the multiple YAML file format and schema must be used. @@ -73,7 +73,7 @@ Installers: InstallerUrl: # Path to download installation file. InstallerSha256: # SHA256 calculated from installer. ManifestType: # The manifest file type -ManifestVersion: 1.0.0 +ManifestVersion: 1.2.0 ``` #### [Example](#tab/minexample/) @@ -95,17 +95,17 @@ Installers: InstallerSha256: 092aa89b1881e058d31b1a8d88f31bb298b5810afbba25c5cb341cfa4904d843 SignatureSha256: e53f48473621390c8243ada6345826af7c713cf1f4bbbf0d030599d1e4c175ee ManifestType: singleton -ManifestVersion: 1.0.0 +ManifestVersion: 1.2.0 ``` #### Multiple File Example In order to provide the best user experience, manifests should contain as much meta-data as possible. In order to separate concerns for validating installers and providing localized meta-data manifests will be split into multiple files. The minimum number of YAML files for this kind of manifest is three. Additional locales should also be provided. -* A [version](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.version.1.0.0.json) file -* The [default locale](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.defaultLocale.1.0.0.json) file -* An [installer](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.installer.1.0.0.json) file -* Additional [locale](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.locale.1.0.0.json) files +* A [version](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.version.1.2.0.json) file +* The [default locale](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.defaultLocale.1.2.0.json) file +* An [installer](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.installer.1.2.0.json) file +* Additional [locale](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.locale.1.2.0.json) files The example below shows many optional meta-data fields and multiple locales. Note the default locale has more requirements than additional locales. In the show command, any required fields that aren't provided for additional locales will display fields from the default locale. @@ -117,7 +117,7 @@ PackageIdentifier: Microsoft.WindowsTerminal PackageVersion: 1.6.10571.0 DefaultLocale: en-US ManifestType: version -ManifestVersion: 1.0.0 +ManifestVersion: 1.2.0 ``` Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.locale.en-US.yaml @@ -148,7 +148,7 @@ Tags: - ps - terminal ManifestType: defaultLocale -ManifestVersion: 1.0.0 +ManifestVersion: 1.2.0 ``` Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.locale.fr-FR.yaml @@ -160,7 +160,7 @@ PackageLocale: fr-FR Publisher: Microsoft ShortDescription: Le nouveau terminal Windows, une expérience de ligne de commande à onglets pour Windows. ManifestType: locale -ManifestVersion: 1.0.0 +ManifestVersion: 1.2.0 ``` Path: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.installer.yaml @@ -189,7 +189,7 @@ Installers: InstallerSha256: 092aa89b1881e058d31b1a8d88f31bb298b5810afbba25c5cb341cfa4904d843 SignatureSha256: e53f48473621390c8243ada6345826af7c713cf1f4bbbf0d030599d1e4c175ee ManifestType: installer -ManifestVersion: 1.0.0 +ManifestVersion: 1.2.0 ``` * * * diff --git a/doc/windows/package-manager/package/windows-package-manager-policies.md b/doc/windows/package-manager/package/windows-package-manager-policies.md index d1da24ebf6..d1dfaf201e 100644 --- a/doc/windows/package-manager/package/windows-package-manager-policies.md +++ b/doc/windows/package-manager/package/windows-package-manager-policies.md @@ -40,7 +40,6 @@ If you have feedback on the policies or the Windows Package Manager, please let - [1.10 Advertising Conduct and Content](#110-advertising-conduct-and-content) **Content Policies:** - - [2.1 General Content Requirements](#21-general-content-requirements) - [2.2 Content Including Names, Logos, Original and Third Party](#22-content-including-names-logos-original-and-third-party) - [2.3 Risk of Harm](#23-risk-of-harm) @@ -66,14 +65,14 @@ All aspects of the Product should accurately describe the functions, features an ### 1.1.2 -[Tags](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.defaultLocale.1.0.0.json) may not exceed 16 unique tags and should be relevant to the Product. +[Tags](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.defaultLocale.1.2.0.json) may not exceed 16 unique tags and should be relevant to the Product. ### 1.1.3 The Product must have distinct and informative metadata and must provide a valuable and quality user experience. ### 1.1.4 -The [InstallerUrl](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.defaultLocale.1.0.0.json) must be the ISVs release location for the Product. Products from download websites will not be allowed. +The [InstallerUrl](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.defaultLocale.1.2.0.json) must be the ISVs release location for the Product. Products from download websites will not be allowed. ### 1.2 Security @@ -119,7 +118,7 @@ The following requirements apply to Products that access Personal Information. P ### 1.5.1 -If the Product accesses, collects or transmits Personal Information, or if otherwise required by law, it should maintain a privacy policy. The submission, should include the [PrivacyUrl](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.0.0/manifest.defaultLocale.1.0.0.json) which links to the privacy policy of the Product. +If the Product accesses, collects or transmits Personal Information, or if otherwise required by law, it should maintain a privacy policy. The submission, should include the [PrivacyUrl](https://github.com/microsoft/winget-cli/blob/master/schemas/JSON/manifests/v1.2.0/manifest.defaultLocale.1.2.0.json) which links to the privacy policy of the Product. ### 1.5.2 diff --git a/doc/windows/package-manager/winget/index.md b/doc/windows/package-manager/winget/index.md index 92150d575b..29206ff152 100644 --- a/doc/windows/package-manager/winget/index.md +++ b/doc/windows/package-manager/winget/index.md @@ -64,7 +64,7 @@ The current preview of the **winget** tool supports the following commands. ### Options -The current preview of the **winget** tool supports the following options. +The current version of the **winget** tool supports the following options. | Option | Description | |--------------|-------------| @@ -83,6 +83,7 @@ The current version of the **winget** tool supports the following types of insta * APPX * MSIX * BURN +* PORTABLE ## Scripting winget @@ -113,6 +114,6 @@ You can configure the **winget** command line experience by modifying the **sett The **winget** tool is open source software available on GitHub in the repo [https://github.com/microsoft/winget-cli/](https://github.com/microsoft/winget-cli/). The source for building the client is located in the [src folder](https://github.com/microsoft/winget-cli/tree/master/src). -The source for **winget** is contained in a Visual Studio 2019 C++ solution. To build the solution correctly, install the latest [Visual Studio with the C++ workload](https://visualstudio.microsoft.com/downloads/). +The source for **winget** is contained in a Visual Studio solution. To build the solution correctly, install the latest [Visual Studio with the C++ workload](https://visualstudio.microsoft.com/downloads/). We encourage you to contribute to the **winget** source on GitHub. You must first agree to and sign the Microsoft CLA.