winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 6df6ded70ab3b558a54f764ba8ed47968350b37f
parent 32e3bf9d5292e20fd93ca01c70f3785c39199042
Author: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date:   Tue, 30 Jul 2024 19:45:25 -0400

Upgrade to check-spelling v0.0.22 (#3896)

Changes:
* general spelling/grammar
* refreshed baseline metadata (roughly
[spell-check-this@edccef0](https://github.com/check-spelling/spell-check-this/tree/edccef0d97da7e227dbec1d2c1faac5fd085f313))
* upgraded to [check-spelling
v0.0.22](https://github.com/check-spelling/check-spelling/releases/tag/v0.0.22)
* ⚠️ there's one pattern that triggers in v0.0.21 (as part of this PR)
which will not trigger once this PR is merged ([🩹 Pattern suggestions
shouldn't trip over active
patterns](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns#multiple-patterns-for-a-line))
* refreshed workflow
* slightly refreshed dictionaries -- I'm removing
`cspell:cpp/src/cpp.txt`, but you could use it or
`cspell:cpp/dict/cpp.txt` -- I think I missed that #3885 was adding it
-- cpp suffers from the same problem as win32 -- too many misspelled
words)
* dropping commenting on pushes (people should migrate to github step
summaries)
Diffstat:
M.github/ISSUE_TEMPLATE/Bug_Report.yml | 2+-
M.github/actions/spelling/advice.md | 7++++++-
M.github/actions/spelling/allow.txt | 16++++++++++++++--
M.github/actions/spelling/candidate.patterns | 276+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
M.github/actions/spelling/excludes.txt | 42+++++++++++++++++++++++++++++++++---------
M.github/actions/spelling/expect.txt | 180+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
M.github/actions/spelling/line_forbidden.patterns | 197++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
M.github/actions/spelling/patterns.txt | 71++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
M.github/actions/spelling/reject.txt | 2++
M.github/workflows/spelling3.yml | 78+++++++++++++++++++++++++++++++++++++++++++-----------------------------------
M.gitignore | 4++--
Mdoc/specs/#292 - winget should install an app if there is an exact match.md | 6+++---
Mdoc/specs/#364 - Feature Toggle.md | 2+-
Mdoc/specs/#476 - Package Pinning.md | 4++--
Mdoc/windows/package-manager/winget/returnCodes.md | 4++--
Mdoc/windows/package-manager/winget/search.md | 2+-
Msrc/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp | 2+-
Msrc/AppInstallerCLICore/ConfigurationWingetDscModuleUnitValidation.cpp | 4++--
Msrc/AppInstallerCLICore/Search/Search.h | 2+-
Msrc/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp | 10+++++-----
Msrc/AppInstallerCLICore/Workflows/ShellExecuteInstallerHandler.cpp | 2+-
Msrc/AppInstallerCLIE2ETests/ConfigureCommand.cs | 2+-
Msrc/AppInstallerCLIE2ETests/SearchCommand.cs | 2+-
Msrc/AppInstallerCLITests/ManifestComparator.cpp | 4++--
Msrc/AppInstallerCLITests/SQLiteIndex.cpp | 4++--
Msrc/AppInstallerCommonCore/MSStoreDownload.cpp | 2+-
Msrc/AppInstallerCommonCore/Manifest/ManifestYamlPopulator.cpp | 2+-
Msrc/AppInstallerCommonCore/Public/winget/Locale.h | 2+-
Msrc/AppInstallerCommonCore/Public/winget/ManifestYamlPopulator.h | 2+-
Msrc/AppInstallerCommonCore/Public/winget/ThreadGlobals.h | 2+-
Msrc/AppInstallerRepositoryCore/SourcePolicy.cpp | 2+-
Msrc/AppInstallerSharedLib/Errors.cpp | 4++--
Msrc/AppInstallerSharedLib/Public/AppInstallerStrings.h | 8++++----
Msrc/AppInstallerSharedLib/Public/winget/SharedThreadGlobals.h | 2+-
Msrc/AppInstallerSharedLib/Public/winget/Yaml.h | 2+-
Msrc/Microsoft.Management.Configuration.UnitTests/Tests/ConfigurationSetProcessorTests.cs | 4++--
Msrc/Valijson/valijson/Doxyfile | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/AllEquality.yaml | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/AllEqualityWithDescription.yaml | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/DifferentId.yaml | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/OneInstaller.yaml | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/SomeEquality.yaml | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/SomeEqualityWithLocalization.yaml | 2+-
Msrc/WinGetUtilInterop.UnitTests/TestCollateral/SomeEqualityWithoutSwitches.yaml | 2+-
Msrc/WinGetYamlFuzzing/README.md | 2+-
Mtools/PowerShell/Microsoft.WinGet.Client/src/Library/Find-WinGetPackage.ps1 | 6+++---
Mtools/PowerShell/Microsoft.WinGet.Client/src/Library/Get-WinGetPackage.ps1 | 4++--
Mtools/PowerShell/Microsoft.WinGet.Client/src/Library/Install-WinGetPackage.ps1 | 2+-
Mtools/PowerShell/Microsoft.WinGet.Client/src/Library/Invoke-WinGetCommand.ps1 | 4++--
Mtools/PowerShell/Microsoft.WinGet.Client/src/Library/Uninstall-WinGetPackage.ps1 | 2+-
Mtools/PowerShell/Microsoft.WinGet.Client/src/Library/Upgrade-WinGetPackage.ps1 | 2+-
Mtools/PowerShell/README.md | 2+-
52 files changed, 739 insertions(+), 258 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/Bug_Report.yml b/.github/ISSUE_TEMPLATE/Bug_Report.yml @@ -10,7 +10,7 @@ body: > Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. > > If this is an application crash, please also provide a Feedback Hub submission link if at all possible so we can find your diagnostic data on the backend. - > You can open the Feedback Hub directly to the pre-populated form at https://aka.ms/winget-feedback + > You can open the Feedback Hub directly to the prepopulated form at https://aka.ms/winget-feedback > Alternatively, use the category "Apps > Windows Package Manager" and choose "Share My Feedback" after submission to get the link. > > Please use this form and describe your issue, concisely but precisely, with as much detail as possible. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md @@ -14,7 +14,9 @@ https://www.regexplanet.com/advanced/perl/) yours before committing to verify it * well-formed pattern. - If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it, + 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]( @@ -23,3 +25,6 @@ https://www.regexplanet.com/advanced/perl/) yours before committing to verify it Note that patterns can't match multiline strings. </details> +<!-- +template: check-spelling +--> diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt @@ -18,6 +18,7 @@ APSTUDIO ARRAYSIZE artifactstagingdirectory aspirational +Authenticode AUTOLISTEN azureedge binlog @@ -40,8 +41,7 @@ COMMANDBARFLYOUT COMMONDATA comparand conemu -contosa -contosainstaller +contoso COSTDEFERRED cotaskmem cpprest @@ -69,6 +69,7 @@ denelon depersist differentpath DIRECTONLY +DISMAPI distro dllmain dotnet @@ -143,6 +144,7 @@ INVALIDARG INVALIDSID iot IPinning +ipmo IPortable ISAPPROVEDFOROUTPUT IUnknown @@ -163,6 +165,7 @@ MAKEINTRESOURCE makemsix MANIFESTSCHEMA MANIFESTVERSION +meme metadatas Minimatch Moq @@ -210,6 +213,9 @@ packagefamilyname packageidentifier packagename PACKAGESSCHEMA +paket +Params +params parentidx pathpart Pathto @@ -225,11 +231,14 @@ pinningindex pipssource Pkcs portableindex +powertoys pplx ppv PRECONFIG preindexed prepareforpackaging +prepopulate +prepopulated prioritization processthreadsapi PRODUCTNAME @@ -252,6 +261,7 @@ removemanifest removepin removeportablefile repolibtest +requeue rescap resetpins resheader @@ -288,6 +298,7 @@ SHTDN shtypes signtool silentwithprogress +Silverlight simplesave simpletest sln @@ -372,6 +383,7 @@ vcvars vcxitems VERYSILENT VFT +visualstudio VOS vso wapproj diff --git a/.github/actions/spelling/candidate.patterns b/.github/actions/spelling/candidate.patterns @@ -2,24 +2,39 @@ ^.*/\* #no-spell-check-line \*/.*$ # marker for ignoring a comment to the end of the line // #no-spell-check.*$ +# marker to ignore all code on line +^.*\bno-spell-check(?:-line|)(?:\s.*|)$ + +# https://cspell.org/configuration/document-settings/ +# cspell inline +^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b # patch hunk comments -^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .* +^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .* # git index header -index [0-9a-z]{7,40}\.\.[0-9a-z]{7,40} +index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40} + +# file permissions +['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s] + +# css url wrappings +\burl\([^)]+\) # cid urls (['"])cid:.*?\g{-1} # data url in parens -\(data:[^)]*?(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\) +\(data:(?:[^) ][^)]*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\) # data url in quotes -([`'"])data:.*?(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1} +([`'"])data:(?:[^ `'"].*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1} # data url -data:[-a-zA-Z=;:/0-9+]*,\S* +\bdata:[-a-zA-Z=;:/0-9+]*,\S* + +# https/http/file urls +#(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|] # mailto urls -mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,} +mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,} # magnet urls magnet:[?=:\w]+ @@ -35,6 +50,9 @@ magnet:[?=:\w]+ # asciinema \basciinema\.org/a/[0-9a-zA-Z]+ +# asciinema v2 +^\[\d+\.\d+, "[io]", ".*"\]$ + # apple \bdeveloper\.apple\.com/[-\w?=/]+ # Apple music @@ -89,7 +107,7 @@ vpc-\w+ # Google Drive \bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]* # Google Groups -\bgroups\.google\.com/(?:(?:forum/#!|d/)(?:msg|topics?|searchin)|a)/[^/\s"]+/[-a-zA-Z0-9$]+(?:/[-a-zA-Z0-9]+)* +\bgroups\.google\.com(?:/[a-z]+/(?:#!|)[^/\s"]+)* # Google Maps \bmaps\.google\.com/maps\?[\w&;=]* # Google themes @@ -117,6 +135,8 @@ themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+. (?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) # GitHub SHAs \bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b +# GitHub SHA refs +\[([0-9a-f]+)\]\(https://(?:www\.|)github.com/[-\w]+/[-\w]+/commit/\g{-1}[0-9a-f]* # GitHub wiki \bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b # githubusercontent @@ -128,12 +148,15 @@ themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+. # git.io \bgit\.io/[0-9a-zA-Z]+ # GitHub JSON -"node_id": "[-a-zA-Z=;:/0-9+]*" +"node_id": "[-a-zA-Z=;:/0-9+_]*" # Contributor -\[[^\]]+\]\(https://github\.com/[^/\s"]+\) +\[[^\]]+\]\(https://github\.com/[^/\s"]+/?\) # GHSA GHSA(?:-[0-9a-z]{4}){3} +# GitHub actions +\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+ + # GitLab commit \bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b # GitLab merge requests @@ -143,8 +166,8 @@ GHSA(?:-[0-9a-z]{4}){3} # GitLab commits \bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b -# binanace -accounts.binance.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]* +# binance +accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]* # bitbucket diff \bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+ @@ -192,7 +215,7 @@ accounts.binance.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]* # medium link \blink\.medium\.com/[a-zA-Z0-9]+ # medium -\bmedium\.com/\@?[^/\s"]+/[-\w]+ +\bmedium\.com/@?[^/\s"]+/[-\w]+ # microsoft \b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]* @@ -257,7 +280,7 @@ slack://[a-zA-Z0-9?&=]+ [0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b # Twitter markdown -\[\@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\) +\[@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\) # Twitter hashtag \btwitter\.com/hashtag/[\w?_=&]* # Twitter status @@ -280,9 +303,9 @@ slack://[a-zA-Z0-9?&=]+ \bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+ # ipfs protocol -ipfs://[0-9a-z]* +ipfs://[0-9a-zA-Z]{3,} # ipfs url -/ipfs/[0-9a-z]* +/ipfs/[0-9a-zA-Z]{3,} # w3 \bw3\.org/[-0-9a-zA-Z/#.]+ @@ -312,7 +335,7 @@ ipfs://[0-9a-z]* [^"\s]+/gitweb/\S+;h=[0-9a-f]+ # HyperKitty lists -/archives/list/[^@/]+\@[^/\s"]*/message/[^/\s"]*/ +/archives/list/[^@/]+@[^/\s"]*/message/[^/\s"]*/ # lists /thread\.html/[^"\s]+ @@ -330,7 +353,7 @@ ipfs://[0-9a-z]* \bopen\.spotify\.com/embed/playlist/\w+ # Mastodon -\bmastodon\.[-a-z.]*/(?:media/|\@)[?&=0-9a-zA-Z_]* +\bmastodon\.[-a-z.]*/(?:media/|@)[?&=0-9a-zA-Z_]* # scastie \bscastie\.scala-lang\.org/[^/]+/\w+ @@ -359,14 +382,22 @@ ipfs://[0-9a-z]* # tinyurl \btinyurl\.com/\w+ +# codepen +\bcodepen\.io/[\w/]+ + +# registry.npmjs.org +\bregistry\.npmjs\.org/(?:@[^/"']+/|)[^/"']+/-/[-\w@.]+ + # getopts \bgetopts\s+(?:"[^"]+"|'[^']+') # ANSI color codes -(?:\\(?:u00|x)1b|\x1b)\[\d+(?:;\d+|)m +(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m # URL escaped characters -\%[0-9A-F][A-F] +%[0-9A-F][A-F](?=[A-Za-z]) +# lower URL escaped characters +%[0-9a-f][a-f](?=[a-z]{2,}) # IPv6 \b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b # c99 hex digits (not the full format, just one I've seen) @@ -376,7 +407,7 @@ ipfs://[0-9a-z]* # sha sha\d+:[0-9]*[a-f]{3,}[0-9a-f]* # sha-... -- uses a fancy capture -(['"]|&quot;)[0-9a-f]{40,}\g{-1} +(\\?['"]|&quot;)[0-9a-f]{40,}\g{-1} # hex runs \b[0-9a-fA-F]{16,}\b # hex in url queries @@ -391,18 +422,21 @@ sha\d+:[0-9]*[a-f]{3,}[0-9a-f]* # Well known gpg keys .well-known/openpgpkey/[\w./]+ +# pki +-----BEGIN.*-----END + # uuid: \b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b # hex digits including css/html color classes: -(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|u\d+)\b +(?:[\\0][xX]|\\u|[uU]\+|#x?|%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b # integrity -integrity="sha\d+-[-a-zA-Z=;:/0-9+]{40,}" +integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1} # https://www.gnu.org/software/groff/manual/groff.html # man troff content \\f[BCIPR] -# ' -\\\(aq +# '/" +\\\([ad]q # .desktop mime types ^MimeTypes?=.*$ @@ -411,46 +445,96 @@ integrity="sha\d+-[-a-zA-Z=;:/0-9+]{40,}" # Localized .desktop content Name\[[^\]]+\]=.* -# IServiceProvider -\bI(?=(?:[A-Z][a-z]{2,})+\b) +# IServiceProvider / isAThing +(?:\b|_)(?:I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z]|\b)) # crypt -"\$2[ayb]\$.{56}" +(['"])\$2[ayb]\$.{56}\g{-1} # scrypt / argon \$(?:scrypt|argon\d+[di]*)\$\S+ +# go.sum +\bh1:\S+ + +# scala imports +^import (?:[\w.]|\{\w*?(?:,\s*(?:\w*|\*))+\})+ + +# scala modules +("[^"]+"\s*%%?\s*){2,3}"[^"]+" + +# Intel intrinsics +_mm_\w+ + # Input to GitHub JSON -content: "[-a-zA-Z=;:/0-9+]*=" +content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1} -# Python stringprefix / binaryprefix +# This does not cover multiline strings, if your repository has them, +# you'll want to remove the `(?=.*?")` suffix. +# The `(?=.*?")` suffix should limit the false positives rate +# printf +#%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA]|p)(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"]) + +# Alternative printf +# %s +%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"]) + +# Python string prefix / binary prefix # Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings -(?<!')\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)'(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}) +(?<!['"])\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)['"](?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}) # Regular expressions for (P|p)assword \([A-Z]\|[a-z]\)[a-z]+ # JavaScript regular expressions # javascript test regex -/.*/[gim]*\.test\( +/.{3,}/[gim]*\.test\( # javascript match regex -\.match\(/[^/\s"]*/[gim]*\s* +\.match\(/[^/\s"]{3,}/[gim]*\s* # javascript match regex -\.match\(/\\[b].*?/[gim]*\s*\)(?:;|$) +\.match\(/\\[b].{3,}?/[gim]*\s*\)(?:;|$) # javascript regex -^\s*/\\[b].*/[gim]*\s*(?:\)(?:;|$)|,$) +^\s*/\\[b].{3,}?/[gim]*\s*(?:\)(?:;|$)|,$) # javascript replace regex -\.replace\(/[^/\s"]*/[gim]*\s*, +\.replace\(/[^/\s"]{3,}/[gim]*\s*, +# assign regex += /[^*].*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/[gi]?(?=\W|$) +# perl regex test +[!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1}) + +# perl qr regex +(?<!\$)\bqr(?:\{.*?\}|<.*?>|\(.*?\)|([|!/@#,;']).*?\g{-1}) + +# perl run +perl(?:\s+-[a-zA-Z]\w*)+ + +# C network byte conversions +#(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\() # Go regular expressions regexp?\.MustCompile\(`[^`]*`\) +# regex choice +\(\?:[^)]+\|[^)]+\) + +# proto +^\s*(\w+)\s\g{-1} = + # sed regular expressions sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2} +# node packages +(["'])@[^/'" ]+/[^/'" ]+\g{-1} + # go install go install(?:\s+[a-z]+\.[-@\w/.]+)+ +# pom.xml +<(?:group|artifact)Id>.*?< + +# jetbrains schema https://youtrack.jetbrains.com/issue/RSRP-489571 +urn:shemas-jetbrains-com + # kubernetes pod status lists # https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase \w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+ @@ -462,62 +546,146 @@ go install(?:\s+[a-z]+\.[-@\w/.]+)+ -[0-9a-f]{10}-\w{5}\s # posthog secrets -posthog\.init\((['"])phc_[^"',]+\g{-1}, +([`'"])phc_[^"',]+\g{-1} # xcode # xcodeproject scenes -(?:Controller|ID|id)="\w{3}-\w{2}-\w{3}" +(?:Controller|destination|ID|id)="\w{3}-\w{2}-\w{3}" # xcode api botches customObjectInstantitationMethod +# msvc api botches +PrependWithABINamepsace + +# configure flags +.* \| --\w{2,}.*?(?=\w+\s\w+) + # font awesome classes \.fa-[-a-z0-9]+ +# bearer auth +(['"])[Bb]ear[e][r] .*?\g{-1} + +# bearer auth +\b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]+ + +# basic auth +(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1} + +# base64 encoded content +([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1} +# base64 encoded content in xml/sgml +>[-a-zA-Z=;:/0-9+]{3,}=</ +# base64 encoded content, possibly wrapped in mime +#(?:^|[\s=;:?])[-a-zA-Z=;:/0-9+]{50,}(?:[\s=;:?]|$) +# base64 encoded json +\beyJ[-a-zA-Z=;:/0-9+]+ + +# encoded-word +=\?[-a-zA-Z0-9"*%]+\?[BQ]\?[^?]{0,75}\?= + +# Time Zones +\b(?:Africa|Atlantic|America|Antarctica|Asia|Australia|Europe|Indian|Pacific)(?:/\w+)+ + +# linux kernel info +^(?:bugs|flags|Features)\s+:.* + +# systemd mode +systemd.*?running in system mode \([-+].*\)$ + +# Lorem # Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally ) # grep '^[^#].*lorem' .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review - # Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into: -## Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary). -## You could manually change `(?i)X...` to use `[Xx]...` -## or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path) -# Lorem -(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])* +# ... Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary). +# ... You could manually change `(?i)X...` to use `[Xx]...` +# ... or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path) +(?:(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*) # Non-English -[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]* +[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,} + +# highlighted letters +\[[A-Z]\][a-z]+ # French # This corpus only had capital letters, but you probably want lowercase ones as well. \b[LN]'+[a-z]{2,}\b -# latex +# latex (check-spelling <= 0.0.21) \\(?:n(?:ew|ormal|osub)|r(?:enew)|t(?:able(?:of|)|he|itle))(?=[a-z]+) +# latex (check-spelling >= 0.0.22) +\\\w{2,}\{ + +# American Mathematical Society (AMS) / Doxygen +TeX/AMS + +# File extensions +\*\.[+\w]+, + +# eslint +"varsIgnorePattern": ".+" + +# Windows short paths +[/\\][^/\\]{5,6}~\d{1,2}[/\\] + +# cygwin paths +/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+ + +# in check-spelling@v0.0.22+, printf markers aren't automatically consumed +# printf markers +#(?<!\\)\\[nrt](?=[a-z]{2,}) +# alternate printf markers if you run into latex and friends +#(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*['"`]) + +# apache +a2(?:en|dis) + +# weak e-tag +W/"[^"]+" + # the negative lookahead here is to allow catching 'templatesz' as a misspelling # but to otherwise recognize a Windows path with \templates\foo.template or similar: -\\(?:necessary|r(?:eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z]) +\\(?:necessary|r(?:elease|eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z]) # ignore long runs of a single character: \b([A-Za-z])\g{-1}{3,}\b -# Note that the next example is no longer necessary if you are using -# to match a string starting with a `#`, use a character-class: -[#]backwards + # version suffix <word>v# (?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) -# Compiler flags (Scala) -(?:^|[\t ,>"'`=(])-J-[DPWXY](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) -# Compiler flags -#(?:^|[\t ,"'`=(])-[DPWXYLlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# Compiler flags (Unix, Java/Scala) +# Use if you have things like `-Pdocker` and want to treat them as `docker` +#(?:^|[\t ,>"'`=(])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# Compiler flags (Windows / PowerShell) +# This is a subset of the more general compiler flags pattern. +# It avoids matching `-Path` to prevent it from being treated as `ath` +#(?:^|[\t ,"'`=(])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})) # Compiler flags (linker) ,-B + +# libraries +\blib(?!erty|rar(?:i(?:an|es)|y))(?=[a-z]) + +# WWNN/WWPN (NAA identifiers) +\b(?:0x)?10[0-9a-f]{14}\b|\b(?:0x|3)?[25][0-9a-f]{15}\b|\b(?:0x|3)?6[0-9a-f]{31}\b + +# iSCSI iqn (approximate regex) +\biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b + # curl arguments -\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* +\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* # set arguments -\bset(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)* +\b(?:bash|sh|set)(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)* # tar arguments \b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ # tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long... \btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b # macOS temp folders /var/folders/\w\w/[+\w]+/(?:T|-Caches-)/ +# github runner temp folders +/home/runner/work/_temp/[-_/a-z0-9]+ diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt @@ -1,31 +1,48 @@ # See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes (?:^|/)(?i)COPYRIGHT (?:^|/)(?i)LICEN[CS]E +(?:^|/)(?i)third[-_]?party/ (?:^|/)3rdparty/ +(?:^|/)AUTHORS$ +(?:^|/)generated/ (?:^|/)go\.sum$ (?:^|/)package(?:-lock|)\.json$ +(?:^|/)Pipfile$ +(?:^|/)PSGet\.Resource\.psd1$ +(?:^|/)pyproject.toml +(?:^|/)requirements(?:-dev|-doc|-test|)\.txt$ (?:^|/)vendor/ +/ExternalModules/ /shared\.manifest$ +/thirdparty/ \.a$ \.ai$ +\.all-contributorsrc$ \.avi$ \.bmp$ \.bz2$ \.cer$ \.class$ +\.coveragerc$ +\.crl$ \.crt$ +\.csr$ \.dll$ \.docx?$ \.drawio$ \.DS_Store$ \.eot$ +\.eps$ \.exe$ \.gif$ +\.git-blame-ignore-revs$ \.gitattributes$ +\.gitkeep$ \.graffle$ \.gz$ \.icns$ \.ico$ +\.ipynb$ \.jar$ \.jks$ \.jpe?g$ @@ -34,22 +51,33 @@ \.lock$ \.map$ \.min\.. +\.mo$ \.mod$ \.mp[34]$ \.msix$ +\.msi$ \.msixbundle$ \.o$ \.ocf$ \.otf$ +\.p12$ +\.parquet$ \.pdf$ \.pem$ -\.png$ +\.pfx$ +(?i)\.png$ \.psd$ \.pyc$ +\.pylintrc$ +\.qm$ \.s$ +\.sig$ \.sln$ +\.so$ \.svgz?$ +\.sys$ \.tar$ +\.tgz$ \.tiff?$ \.ttf$ \.vcxitems$ @@ -62,17 +90,18 @@ \.webp$ \.winmd$ \.woff2?$ +\.xcf$ \.xlsx?$ +\.xpm$ +\.xz$ \.zip$ ^\.github/actions/spelling/ ^\.github/policies/ ^\.github/workflows/spelling\d*\.yml$ -^\Qsrc/PureLib/pure/AUTHORS\E$ ^cgmanifest\.json$ ^Localization/ ^NOTICE ^src/AppInstallerCLICore/Commands/ExperimentalCommand\.cpp$ -^src/AppInstallerCLIE2ETests/TestData/AppInstallerTestMsiInstaller.msi$ ^src/AppInstallerCLIE2ETests/TestData/Configuration/Empty.yml$ ^src/AppInstallerCLITests/TestData/InputARPData.txt$ ^src/AppInstallerCLITests/TestData/InputNames.txt$ @@ -82,16 +111,11 @@ ^src/catch2/ ^src/cpprestsdk/ ^src/JsonCppLib/ -^src/PowerShell/ExternalModules +^src/PowerShell/ExternalModules/PowerShellGet/2\.2\.5/Modules/ ^src/PureLib/ ^src/SfsClient/ ^src/UndockedRegFreeWinRT/ ^src/Valijson/ ^src/Xlang/ ^src/YamlCppLib/ -# Because it doesn't handle argument -Words well -^src/PowerShell/tests/ -^tools/CorrelationTestbed/.*\.ps1$ -^tools/DevInSandbox/.*\.ps1$ -^tools/COMTrace/ComTrace.wprp$ ignore$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt @@ -1,7 +1,11 @@ +AAD abcd +abi ABORTIFHUNG accepteula +ACCESSDENIED ACCESSTOKEN +acl adjacents adml admx @@ -12,18 +16,23 @@ AKV allusers alreadyinstalled AMap +Amd amrutha ansistring APARTMENTTHREADED apfn apicontract apiset +appdata appinstallertest applic +appname appshutdown APPTERMINATION +archs argumentlist ARMNT +arp arphelper asan ASequence @@ -31,70 +40,84 @@ ashpatil Ashwini ASwitch ASYNCRTIMP -ata Atest ATL +AType AUrl -Authenticode +auxdata azcopy azurewebsites +Baz bcp BEFACEF +bfd BFirst bght bigcatalog BITMAPINFOHEADER -bitspace +bitmask bkup blargle blockedbypolicy blogs -bomgar +bluetooth +Bomgar BOMs boop boundparms +bpp +brk +Browsable BSODs +Buf BUILDOUTDIR buildtransitive cancelledbyuser casemap casemappings cch -CDEF centralus certmgr +certs +cgi cinq CLASSNOTREG -CLIE CLOSEAPP cloudapp clsctx clsid +CMSG cobertura CODEOWNERS +codepage COINIT COMGLB commandline compressapi concurrencysal +constexpr contactsupport contentfiles -contoso +contosoinstaller contractversion +copyable corecrt count'th countof countryregion Cov CPIL -craigloewen createmanifestmetadata cswinrt ctc +CTL currentuser dacl datetimeoffset +Dbg +Dcom debian +decompressor dedupe deigh deleteifnotneeded @@ -104,7 +127,7 @@ devhome dic diskfull displaycatalog -DISMAPI +DMC dnld Dobbeleer DONOT @@ -114,18 +137,16 @@ dustojnikhummer dvinns ecfr ecfrbrowse -ECustom EFGH -EFile efileresource -EMalicious endregion ENDSESSION -EPester -epth EQU +ERANGE +errcode +errmsg ERRORONEXIT -ESource +errstr ESRB ests etest @@ -133,9 +154,11 @@ etl execustom EXEHASH experimentalfeatures +fdw FECAFEB fedorapeople fileinuse +filemode Filtercriteria Finalizers fintimes @@ -149,13 +172,18 @@ FOLDERID FORPARSING foundfr fsanitize +FULLMUTEX +FULLWIDTH fundraiser fuzzer fzanollo gcpi +GES GESMBH getwinget GHS +github +gitlab gity goku Gomu @@ -171,42 +199,43 @@ highcontrast HINSTANCE hkey hlocal +hmac hmodule Hostx +Howto hre hresults hrow hwnd +Hyperlink IARP IAttachment ICONDIR ICONDIRENTRY ICONIMAGE +icu idl -IEnum +idx IFACEMETHODIMP -IHelp iid IISOn -ilemode +img +inet inproc Insta installinprogress INSTALLPROPERTY installshield +instream insufficientmemory Intelli INTRESOURCE invalidparameter -IPackage isable -IServer ishelp ISQ -issuetitle ISVs itr -IWin JArray JDictionary jdk @@ -222,19 +251,22 @@ Kaido KNOWNFOLDERID kool ktf +LCID ldcase learnxinyminutes -libfuzzer -libsolv -libyaml +lhs +LIBYAML Linq liv liwpx localizationpriority localsource +Logon +LONGLONG LOWORD LPARAM LPBYTE +LPCWSTR lpdw LPDWORD lpfn @@ -245,6 +277,8 @@ LPICONDIRENTRY LPICONIMAGE lpitemidlist LPSTR +lpsz +LPVOID LPW LPWCH LPWSTR @@ -254,21 +288,24 @@ LTDA luffy Luffytaro maclachlan +MAJORVERSION malware mapdatafolding -mapview Maxed +MAXLENGTH maxvalue maybenull MBH +MBs +mday mdmp MDs megamorf -meme microsoftentraid midl minexample minidump +MINORVERSION minschema missingdependency mkgmtime @@ -284,7 +321,6 @@ MSIXHASH msstore MSZIP mszyml -Mta Mugiwara Multideclaration mycustom @@ -308,6 +344,8 @@ NOCLOSE NOCRLF NOEXPAND NOLINKINFO +nomem +NONAME nonetwork NONFOLDERS nonterminated @@ -318,20 +356,30 @@ NOSEPARATOR notalostreference NOTAPROPERTY notmatch +NOTIMPL NOTRACK NOUPDATE +nowarn npmjs nsis +NTFS nuffing objbase objidl ofile +oid omus onefuzz ools oop +opensource OPTOUT +osfhandle +outfile +OUTOFMEMORY +Outptr OVERLAPPEDWINDOW +OWC packageinuse packageinusebyapplication PACL @@ -339,24 +387,33 @@ PARAMETERMAP paramref pathparts Patil +pcb PCCERT PCs pcwsz +pdb PDWORD Peet peetdev PEGI -PFM +pfn pfxpath +pgp Pherson +pid pidl pidlist +PKCS pkgmgr pkindex +pkix +placeholders PMS positionals +posix powershellgallery -powertoys +pri +PRIMARYKEY processthreads productcode PRODUCTICON @@ -365,6 +422,7 @@ pscustomobject pseudocode PSHOST psobject +psz ptstr publickey PVD @@ -375,6 +433,7 @@ PWAs PWSTR QUERYENDSESSION qword +RAII rebootinitiated rebootrequiredforinstall rebootrequiredtofinish @@ -386,28 +445,37 @@ regexes REGSAM relativefilepath remoting +removefile reparse repeatedkey +REQS restsource RGBQUAD -rgex rgp rgpsz +rhs riid -roblox +Roblox ronomon -rosoft Roronoa +rosoft rowids +rowid roy +RRF +rrr +RTTI runspace runtimeclass +runtimes ryfu -rzkzqaqjwj sacl SARL +sas SASURL +savepoint schematab +Scm sddl SECUREFILEPATH secureobject @@ -421,8 +489,10 @@ SETTINGMAPPING sfs sfsclient SHCONTF +shellapi SHGDN SHOWNORMAL +sid Sideload SIGNATUREHASH silentpreferred @@ -430,22 +500,27 @@ similarissues similaritytolerance Skipx sku +SLAPI SMTO +SNAME sortof +sourceforge SOURCESDIRECTORY sourceversion spamming SPAPI +sqlite Srinivasan +SRL srs startswith -STARTUPINFOW STDMETHODCALLTYPE storeapps storeorigin STRRET stylecop subdir +subkey superstring swervy SYD @@ -453,33 +528,31 @@ SYG sysrefcomp systemnotsupported Tagit +TARG taskhostw -TCpp tcs TEMPDIRECTORY Templating +templating temppath -testdata testexampleinstaller thiscouldbeapc threehundred timespan Tlg tombstoned -TOperation -TOptions -TProgress -TResult -TReturn +transitioning trimstart -TState -TStatus +ttl typeparam +typedef UCase ucasemap UChars ucnv uec +ULONGLONG +UNAVAIL uninitialize unins uninstallation @@ -491,6 +564,7 @@ unknwn Unknwnbase UNMARSHALING unparsable +Unregisters unvirtualized UParse upgradable @@ -499,24 +573,27 @@ URLZONE USEDEFAULT userfilesetting userprofile -UWP +uwp VALUENAMECASE vclib -VERSI -VERSIE -visualstudiocode +versioned +VERSIONINFO vns vsconfig vstest +waitable wcex +WDAG webpages Webserver websites -WERSJA +website wesome wfsopen wgetenv Whatif +wildcards +WINAPI windir windowsdeveloper winerror @@ -528,12 +605,16 @@ winreg winrtact winstring withstarts +Wnd WNDCLASS WNDCLASSEX +workaround WPARAM +Wpp wpr wprp wputenv +wsb wsl wsv wto @@ -543,6 +624,7 @@ xcopy XFile XManifest XMUGIWARAMODULE +XName XPLATSTR XRESOURCEZORO xsi diff --git a/.github/actions/spelling/line_forbidden.patterns b/.github/actions/spelling/line_forbidden.patterns @@ -1,62 +1,205 @@ -# reject `m_data` as there's a certain OS which has evil defines that break things if it's used elsewhere -# \bm_data\b +# reject `m_data` as VxWorks defined it and that breaks things if it's used elsewhere +# see [fprime](https://github.com/nasa/fprime/commit/d589f0a25c59ea9a800d851ea84c2f5df02fb529) +# and [Qt](https://github.com/qtproject/qt-solutions/blame/fb7bc42bfcc578ff3fa3b9ca21a41e96eb37c1c7/qtscriptclassic/src/qscriptbuffer_p.h#L46) +#\bm_data\b +# Were you debugging using a framework with `fit()`? # If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test, -# you might not want to check in code where you were debugging w/ `fit()`, in which case, you might want -# to use this: +# you might not want to check in code where you skip all the other tests. #\bfit\( -# s.b. GitHub -\bGithub\b +# Should be `HH:MM:SS` +\bHH:SS:MM\b -# s.b. GitLab -\bGitlab\b +# Should be `86400` (seconds in a standard day) +\b84600\b(?:.*\bday\b) -# s.b. JavaScript +# Should probably be `2006-01-02` (yyyy-mm-dd) +\b2006-01-02\b + +# Should probably be `YYYYMMDD` +\b[Yy]{4}[Dd]{2}[Mm]{2}(?!.*[Yy]{4}[Dd]{2}[Mm]{2}).*$ + +# Should only be one of `a`, `an`, or `the` +\b(?:(?:an?|the)\s+){2,}\b + +# Should be `anymore` +\bany more[,.] + +# Should be `'` +(?i)\b(?:(?:i|s?he|they|what|who|you)"ll|(?:are|ca|did|do|does|ha[ds]|have|is|should|were|wo|would)n"t|(?:s?he|let|that|there|what|where|who)"s|(?:i|they|we|what|who|you)"ve)\b + +# Should be `briefcase` +\bbrief-case\b + +# Should be `cannot` (or `can't`) +# See https://www.grammarly.com/blog/cannot-or-can-not/ +# > Don't use `can not` when you mean `cannot`. The only time you're likely to see `can not` written as separate words is when the word `can` happens to precede some other phrase that happens to start with `not`. +# > `Can't` is a contraction of `cannot`, and it's best suited for informal writing. +# > In formal writing and where contractions are frowned upon, use `cannot`. +# > It is possible to write `can not`, but you generally find it only as part of some other construction, such as `not only . . . but also.` +# - if you encounter such a case, add a pattern for that case to patterns.txt. +\b[Cc]an not\b + +# Should be `GitHub` +(?<![&*.]|// |\btype )\bGithub\b(?![{)]) + +# Should be `GitLab` +(?<![&*.]|// |\btype )\bGitlab\b(?![{)]) + +# Should be `JavaScript` \bJavascript\b -# s.b. Microsoft +# Should be `macOS` or `Mac OS X` or ... +\bMacOS\b + +# Should be `Microsoft` \bMicroSoft\b -# s.b. another +# Should be `OAuth` +(?:^|[^-/*$])[ '"]oAuth(?: [a-z]|\d+ |[^ a-zA-Z0-9:;_.()]) + +# Should be `RabbitMQ` +\bRabbitmq\b + +# Should be `TypeScript` +\bTypescript\b + +# Should be `another` \ban[- ]other\b -# s.b. greater than +# Should be `case-(in)sensitive` +\bcase (?:in|)sensitive\b + +# Should be `coinciding` +\bco-inciding\b + +# Should be `deprecation warning(s)` +\b[Dd]epreciation [Ww]arnings?\b + +# Should be `greater than` \bgreater then\b -# s.b. into -#\sin to\s +# Should be `ID` +#\bId\b + +# Should be `in front of` +\bin from of\b + +# Should be `into` +# when not phrasal and when `in order to` would be wrong: +# https://thewritepractice.com/into-vs-in-to/ +#\sin to\s(?!if\b) + +# Should be `use` +\sin used by\b + +# Should be `is obsolete` +\bis obsolescent\b + +# Should be `it's` or `its` +\bits['’] + +# Should be `its` +\bit's(?= own\b) -# s.b. opt-in -#\sopt in\s +# Should be `log in` +\blogin to the -# s.b. less than +# Should be `perform its` +\bperform it's\b + +# Should be `opt-in` +#(?<!\sfor)\sopt in\s + +# Should be `less than` \bless then\b -# s.b. otherwise +# Should be `load balancer` +\b[Ll]oud balancer + +# Should be `moot` +\bmute point\b + +# Should be `one of` +\bon of\b + +# Should be `otherwise` \bother[- ]wise\b -# s.b. nonexistent +# Should be `or (more|less)` +\bore (?:more|less)\b + +# Should be `rather than` +\brather then\b + +# Should be `regardless, ...` or `regardless of (whether)` +\b[Rr]egardless if you\b + +# Should be `no longer needed` +\bno more needed\b(?! than\b) + +# Should be `did not exist` +\bwere not existent\b + +# Should be `nonexistent` \bnon existing\b + +# Should be `nonexistent` \b[Nn]o[nt][- ]existent\b -# s.b. preexisting +# Should be `@brief` / `@details` / `@param` / `@return` / `@retval` +(?:^\s*|(?:\*|//|/*)\s+`)[\\@](?:breif|(?:detail|detials)|(?:params(?!\.)|prama?)|ret(?:uns?)|retvl)\b + +# Should be `preexisting` [Pp]re[- ]existing -# s.b. preempt +# Should be `preempt` [Pp]re[- ]empt\b -# s.b. preemptively +# Should be `preemptively` [Pp]re[- ]emptively -# s.b. reentrancy +# Should be `prepopulate` +[Pp]re[- ]populate + +# Should be `recently changed` or `recent changes` +[Rr]ecent changed + +# Should be `reentrancy` [Rr]e[- ]entrancy -# s.b. reentrant +# Should be `reentrant` [Rr]e[- ]entrant -# s.b. workaround(s) -#\bwork[- ]arounds?\b +# Should be `understand` +\bunder stand\b + +# Should be `URI` or `uri` unless it refers to a person named `Uri` +#\bUri\b(?![(]) + +# Should be `workarounds` +#\bwork[- ]arounds\b + +# Should be `workaround` +(?:(?:[Aa]|[Tt]he|ugly)\swork[- ]around\b|\swork[- ]around\s+for) + +# Should be `worst` +(?i)worse-case + +# Should be `(coarse|fine)-grained` +\b(?:coarse|fine) grained\b + +# Should be `neither/nor` -- or reword +#\bnot\b[^.?!"/(]+\bnor\b + +# Should be `neither/nor` (plus rewording the beginning) +# This is probably a double negative... +#\bnot\b[^.?!"/(]*\bneither\b[^.?!"/(]*\bnor\b -# Reject duplicate words +# In English, duplicated words are generally mistakes +# There are a few exceptions (e.g. "that that"). +# If the highlighted doubled word pair is in: +# * code, write a pattern to mask it. +# * prose, have someone read the English before you dismiss this error. \s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt @@ -1,5 +1,14 @@ # See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns +# hit-count: 7 file-count: 1 +# regex choice +\(\?:[^)]+\|[^)]+\) + +\[[A-Z][a-z]\][a-z]+ + +Regex::Expression \w+\{\s*R".*" + +"ContinuationToken"\s*:\s*"[^"]+" WinGetDevCLI_8wekyb3d8bbwe 8wekyb3d8bbwe _tisf_sqliteReturnValue @@ -33,10 +42,6 @@ El proyecto .* diferentes # .gitignore ^\[[\w/[\]*.]*$ -# compile flags - -D(?=[A-Z]{2,}|[cgl][a-z]+) - -T(?=h[a-z]{2,}) - # URLs -- Added here instead of allow.txt to facilitate wildcarding them as more are added http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer @@ -47,7 +52,7 @@ http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer ^ShortDescription: Le nouveau.*$ # Ignore test patterns -REQUIRE\(Rest::GetRestAPIBaseUri\(".*"\) == L".*" +GetRestAPIBaseUri\(".*"\) == L".*" # fabricbot.json "(?:id|user)": "[-A-Za-z0-9_]*" @@ -55,29 +60,37 @@ REQUIRE\(Rest::GetRestAPIBaseUri\(".*"\) == L".*" # URL escaped characters \%[0-9A-F]{2} +# some forms of `any more` are correct +\battempt any more\b + # Sample store product id for App Installer 9nblggh4nns1 # Automatically suggested patterns # hit-count: 407 file-count: 78 -# IServiceProvider -\bI(?=(?:[A-Z][a-z]{2,})+\b) +# IServiceProvider / isAThing +(?:\b|_)(?:[IT]|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z]|\b)) # hit-count: 13 file-count: 9 # GitHub SHAs (markdown) (?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) # Compiler flags -(?:^|[\t ,"'`=(])-[D](?!ependency|esktop|estination|ev|irectory) +(?:^|[\t ,"'`=(])-[D](?!ata|ependency|epth|esktop|estination|ev|irectory|ownload) (?:^|[\t ,"'`=(])-[W](?!ait|in|orking) (?:^|[\t ,"'`=(])-[l](?!og) -(?:^|[\t ,"'`=(])-[f](?!ind|eatures) +(?:^|[\t ,"'`=(])-[f](?!eatures|ile|ind) + -T(?=h[a-z]{2,}) # Automatically suggested patterns # hit-count: 30 file-count: 4 # version suffix <word>v# (?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) +# hit-count: 8 file-count: 4 +# libraries +\b(?i)lib(?!elous|erty|rar(?:i(?:an|es)|y))(?=[a-z]) + # hit-count: 4 file-count: 4 # Non-English [a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]* @@ -86,6 +99,11 @@ REQUIRE\(Rest::GetRestAPIBaseUri\(".*"\) == L".*" # tar arguments \b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ +# hit-count: 3 file-count: 3 +# Python string prefix / binary prefix +# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings +(?<!['"])\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)['"](?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}) + # hit-count: 3 file-count: 2 # mailto urls mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,} @@ -110,6 +128,10 @@ data:[-a-zA-Z=;:/0-9+]*,\S* # Wikipedia \ben\.wikipedia\.org/wiki/[-\w%.#]+ +# hit-count: 1 file-count: 1 +# GitHub actions +\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+ + # hit-count: 4 file-count: 2 # w3 \bw3\.org/[-0-9a-zA-Z/#.]+ @@ -134,6 +156,8 @@ GHSA(?:-[0-9a-z]{4}){3} # hex digits including css/html color classes: (?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9a-fA-FgGrR_]{2,}(?:[uUlL]{0,3}|u\d+)\b +E2E + # first-letter-bracketed-remainder \b\w\[[A-Za-z]{3,}\] @@ -142,16 +166,29 @@ ReplaceWhileCopying\(L.*\) # acceptable duplicates # ls directory listings -[-bcdlpsw](?:[-r][-w][-sx]){3}\s+\d+\s+(\S+)\s+\g{-1}\s+\d+\s+ -# C types -\s(Architecture|long|LONG) \g{-1}\s - +[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+[.\d]+(?:[KMGT]|)\s+ +# mount +\bmount\s+-t\s+(\w+)\s+\g{-1}\b # C types and repeated CSS values -\s(center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s +\s(Architecture|auto|buffalo|center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s +# C struct +\bstruct\s+(\w+)\s+\g{-1}\b # go templates -\s(\w+)\s+\g{-1}\s+\`(?:graphql|json|yaml): -# javadoc / .net -(?:[\\@](?:groupname|param)|(?:public|private)(?:\s+static|\s+readonly)*)\s+(\w+)\s+\g{-1}\s +\s(\w+)\s+\g{-1}\s+\`(?:graphql|inject|json|yaml): +# doxygen / javadoc / .net +(?:[\\@](?:brief|defgroup|groupname|link|t?param|return|retval)|(?:public|private|\[Parameter(?:\(.+\)|)\])(?:\s+(?:static|override|readonly|required|virtual))*)(?:\s+\{\w+\}|)\s+(\w+)\s+\g{-1}\s + +# macOS file path +/MacOS + +# Python package registry has incorrect spelling for macOS / Mac OS X +"Operating System :: MacOS :: MacOS X" + +# "company" in Germany +\bGmbH\b + +# IntelliJ +\bIntelliJ\b # Commit message -- Signed-off-by and friends ^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$ diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt @@ -1,10 +1,12 @@ ^attache$ +^bellow$ benefitting occurences? ^dependan.* ^oer$ Sorce ^[Ss]pae.* +^Teh$ ^untill$ ^untilling$ ^wether.* diff --git a/.github/workflows/spelling3.yml b/.github/workflows/spelling3.yml @@ -36,21 +36,42 @@ name: Check Spelling # # For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key +# SARIF reporting +# +# Access to SARIF reports is generally restricted (by GitHub) to members of the repository. +# +# Requires enabling `security-events: write` +# and configuring the action with `use_sarif: 1` +# +# For information on the feature, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-SARIF-output + +# Minimal workflow structure: +# +# on: +# push: +# ... +# pull_request_target: +# ... +# jobs: +# # you only want the spelling job, all others should be omitted +# spelling: +# # remove `security-events: write` and `use_sarif: 1` +# # remove `experimental_apply_changes_via_bot: 1` +# ... otherwise adjust the `with:` as you wish + on: push: branches: - - '**' + - "**" tags-ignore: - - '**' + - "**" pull_request_target: branches: - - '**' - tags-ignore: - - '**' + - "**" types: - - 'opened' - - 'reopened' - - 'synchronize' + - "opened" + - "reopened" + - "synchronize" jobs: spelling: @@ -62,7 +83,7 @@ jobs: outputs: followup: ${{ steps.spelling.outputs.followup }} runs-on: ubuntu-latest - if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'" + if: ${{ contains(github.event_name, 'pull_request') || github.event_name == 'push' }} concurrency: group: spelling-${{ github.event.pull_request.number || github.ref }} # note: If you use only_check_changed_files, you do not want cancel-in-progress @@ -70,40 +91,26 @@ jobs: steps: - name: check-spelling id: spelling - uses: check-spelling/check-spelling@v0.0.21 + uses: check-spelling/check-spelling@v0.0.22 with: - suppress_push_for_open_pull_request: 1 + suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} checkout: true check_file_names: 1 - spell_check_this: check-spelling/spell-check-this@prerelease post_comment: 0 use_magic_file: 1 + warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check extra_dictionary_limit: 10 - extra_dictionaries: + extra_dictionaries: | cspell:cpp/src/compiler-msvc.txt - cspell:cpp/src/cpp.txt cspell:cpp/src/stdlib-c.txt cspell:cpp/src/stdlib-cpp.txt cspell:filetypes/filetypes.txt - cspell:fullstack/fullstack.txt - cspell:powershell/powershell.txt - cspell:software-terms/src/software-terms.txt - - comment-push: - name: Report (Push) - # If your workflow isn't running on push, you can remove this job - runs-on: ubuntu-latest - needs: spelling - permissions: - contents: write - if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push' - steps: - - name: comment - uses: check-spelling/check-spelling@v0.0.21 - with: - checkout: true - spell_check_this: check-spelling/spell-check-this@prerelease - task: ${{ needs.spelling.outputs.followup }} + cspell:fullstack/dict/fullstack.txt + cspell:powershell/dict/powershell.txt + cspell:software-terms/dict/softwareTerms.txt + cspell:csharp/csharp.txt + cspell:dotnet/dict/dotnet.txt + check_extra_dictionaries: '' comment-pr: name: Report (PR) @@ -111,12 +118,13 @@ jobs: runs-on: ubuntu-latest needs: spelling permissions: + actions: read + contents: read pull-requests: write if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request') steps: - name: comment - uses: check-spelling/check-spelling@v0.0.21 + uses: check-spelling/check-spelling@v0.0.22 with: checkout: true - spell_check_this: check-spelling/spell-check-this@prerelease task: ${{ needs.spelling.outputs.followup }} diff --git a/.gitignore b/.gitignore @@ -170,13 +170,13 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, +# Note: Comment the next line if you want to check in your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained +# check in your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ diff --git a/doc/specs/#292 - winget should install an app if there is an exact match.md b/doc/specs/#292 - winget should install an app if there is an exact match.md @@ -12,7 +12,7 @@ For [#292](https://github.com/microsoft/winget-cli/issues/292) ## Abstract The winget.exe client attempts to be generous with the `search` command, but is a bit too generous with `install`. The *id* -should be the unique key to identifying a package (other than the package version). It should also be case insensitive from the perspective of command execution, but it should be case sensitive in terms of the displayed value. +should be the unique key to identifying a package (other than the package version). It should also be case-insensitive from the perspective of command execution, but it should be case-sensitive in terms of the displayed value. If a manifest was created with the *id* "Git.Git" then that is what would be displayed in the client output. Any combination of case in the `install` command should match. @@ -29,7 +29,7 @@ The latest version of a package is also the version that should be displayed dur ## Solution Design Installing a package by using the *Id* as the package name should not require disambiguation. -The package *Id* should perform a case insensitive match. If the given *Id* is exact, it should not +The package *Id* should perform a case-insensitive match. If the given *Id* is exact, it should not be confused with a longer *Id* `winget install git.git` should install that package The `git.gitLFS` should not cause ambiguity @@ -76,7 +76,7 @@ be installed rather than what they intended. ## Future considerations There are changes to how results should displayed to reduce the likelihood of a user mistakenly assuming the "Name" is a key value -for a package. The client commands should be case insensitive, but the display should still be case sensitive to support ease of +for a package. The client commands should be case-insensitive, but the display should still be case-sensitive to support ease of reading. Long names can be easier to understand when presented in camel case, pascal case, or with a branded letter casing. The client also needs a mechanism to display all of the available versions of a package. diff --git a/doc/specs/#364 - Feature Toggle.md b/doc/specs/#364 - Feature Toggle.md @@ -71,7 +71,7 @@ This should have no direct impact on accessibility. ### Security -There should be no security impact directly, although we must remember that any medium IL process will be able to enable any feature by writing to the settings file. But any experimental feature should be created with the intention of becoming released, and so should have it's own security consideration. +There should be no security impact directly, although we must remember that any medium IL process will be able to enable any feature by writing to the settings file. But any experimental feature should be created with the intention of becoming released, and so should have its own security consideration. ### Reliability diff --git a/doc/specs/#476 - Package Pinning.md b/doc/specs/#476 - Package Pinning.md @@ -170,7 +170,7 @@ Security of the Windows Package Manager should not be impacted by this change. H ### Reliability -The change will improve reliability, as users will be able to have fine grained control of the Windows Package Manager's upgrade functionality to ensure their workflow is not disrupted. +The change will improve reliability, as users will be able to have fine-grained control of the Windows Package Manager's upgrade functionality to ensure their workflow is not disrupted. ### Compatibility @@ -191,7 +191,7 @@ There should not be any notable performance changes. - Implementation in this spec only supports pinning from remote sources, so all installed versions from same package share the same pinning configuration. Winget could better support side by side installations by introducing package pinning from installed source. - Package pinning from user and from manifest are stored separately, we may integrate the `winget pin` commands to control package pinning from manifests. - A couple UI integrations can be made to `winget upgrade` and `winget list` to show pinned status during listing. -- Dependencies flow can be improved to first check pinned status of each dependant package before trying to install all dependencies. +- Dependencies flow can be improved to first check pinned status of each dependent package before trying to install all dependencies. - Support setting pinned state right after installation/upgrades like `winget install foo --pin`. - Improvements to import export commands to work seamlessly with existing package pinning configurations. diff --git a/doc/windows/package-manager/winget/returnCodes.md b/doc/windows/package-manager/winget/returnCodes.md @@ -140,8 +140,8 @@ ms.localizationpriority: medium | 0x8A15007E | -1978335106 | APPINSTALLER_CLI_ERROR_SQLITE_CONNECTION_TERMINATED | The SQLite connection was terminated to prevent corruption. | | 0x8A15007F | -1978335105 | APPINSTALLER_CLI_ERROR_DISPLAYCATALOG_API_FAILED | Failed to get Microsoft Store package catalog. | | 0x8A150080 | -1978335104 | APPINSTALLER_CLI_ERROR_NO_APPLICABLE_DISPLAYCATALOG_PACKAGE | No applicable Microsoft Store package found from Microsoft Store package catalog. | -| 0x8A150081 | -1978335103 | APPINSTALLER_CLI_ERROR_SFSCLIENT_API_FAILED | Failed to get Microsoft Store package download infomation. | -| 0x8A150082 | -1978335102 | APPINSTALLER_CLI_ERROR_NO_APPLICABLE_SFSCLIENT_PACKAGE | No applicable Microsoft Store package download infomation found. | +| 0x8A150081 | -1978335103 | APPINSTALLER_CLI_ERROR_SFSCLIENT_API_FAILED | Failed to get Microsoft Store package download information. | +| 0x8A150082 | -1978335102 | APPINSTALLER_CLI_ERROR_NO_APPLICABLE_SFSCLIENT_PACKAGE | No applicable Microsoft Store package download information found. | | 0x8A150083 | -1978335101 | APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED | Failed to retrieve Microsoft Store package license. | ## Install errors. diff --git a/doc/windows/package-manager/winget/search.md b/doc/windows/package-manager/winget/search.md @@ -56,7 +56,7 @@ Search strings can be filtered with the following options. | **--verbose, --verbose-logs** | Enables verbose logging for winget. | | **--disable-interactivity** | Disable interactive prompts. | -The string will be treated as a substring. The search by default is also case insensitive. For example, `winget search micro` could return the following: +The string will be treated as a substring. The search by default is also case-insensitive. For example, `winget search micro` could return the following: * Microsoft * Microscope diff --git a/src/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp b/src/AppInstallerCLICore/ConfigurationDynamicRuntimeFactory.cpp @@ -141,7 +141,7 @@ namespace AppInstaller::CLI::ConfigurationRemoting Security::IntegrityLevel GetIntegrityLevelForUnit(const ConfigurationUnit& unit) { // Support for 0.2 schema via metadata value - // TODO: Support case insensitive lookup by iteration + // TODO: Support case-insensitive lookup by iteration auto unitMetadata = unit.Metadata(); auto securityContext = unitMetadata.TryLookup(L"securityContext"); if (securityContext) diff --git a/src/AppInstallerCLICore/ConfigurationWingetDscModuleUnitValidation.cpp b/src/AppInstallerCLICore/ConfigurationWingetDscModuleUnitValidation.cpp @@ -68,7 +68,7 @@ namespace AppInstaller::CLI::Configuration std::vector<WinGetSource> ParseWinGetSourcesFromSettings(const ValueSet& settings) { - // Iterate through the value set as Powershell variables are case insensitive. + // Iterate through the value set as Powershell variables are case-insensitive. std::vector<WinGetSource> result; for (auto const& settingsPair : settings) { @@ -172,7 +172,7 @@ namespace AppInstaller::CLI::Configuration WinGetPackage ParseWinGetPackageFromSettings(const ValueSet& settings) { - // Iterate through the value set as Powershell variables are case insensitive. + // Iterate through the value set as Powershell variables are case-insensitive. WinGetPackage result; for (auto const& settingsPair : settings) { diff --git a/src/AppInstallerCLICore/Search/Search.h b/src/AppInstallerCLICore/Search/Search.h @@ -5,7 +5,7 @@ #include <type_traits> #include <winrt/base.h> -// TODO: This code is expected to eventually be placed into it's own DLL to support the CLI +// TODO: This code is expected to eventually be placed into its own DLL to support the CLI // and OOP COM server for use by OS integration points. // For now we will just maintain the ABI with helper C++ wrappers for client use. diff --git a/src/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp b/src/AppInstallerCLICore/Workflows/ConfigurationFlow.cpp @@ -1119,7 +1119,7 @@ namespace AppInstaller::CLI::Workflow return getResult; } - std::optional<ConfigurationUnit> CreateConfigurationUnit(Execution::Context& context, const std::optional<ConfigurationUnit> dependantUnit) + std::optional<ConfigurationUnit> CreateConfigurationUnit(Execution::Context& context, const std::optional<ConfigurationUnit> dependentUnit) { if (context.Args.Contains(Execution::Args::Type::ConfigurationExportModule, Execution::Args::Type::ConfigurationExportResource)) { @@ -1136,9 +1136,9 @@ namespace AppInstaller::CLI::Workflow directives.Insert(s_Directive_Module, PropertyValue::CreateString(moduleNameWide)); Utility::LocIndString description; - if (dependantUnit.has_value()) + if (dependentUnit.has_value()) { - description = Resource::String::ConfigureExportUnitDescription(Utility::LocIndView{ Utility::ConvertToUTF8(dependantUnit.value().Identifier()) }); + description = Resource::String::ConfigureExportUnitDescription(Utility::LocIndView{ Utility::ConvertToUTF8(dependentUnit.value().Identifier()) }); } else { @@ -1186,10 +1186,10 @@ namespace AppInstaller::CLI::Workflow unit.Intent(ConfigurationUnitIntent::Apply); // Add dependency if needed. - if (dependantUnit.has_value()) + if (dependentUnit.has_value()) { auto dependencies = winrt::single_threaded_vector<winrt::hstring>(); - dependencies.Append(dependantUnit.value().Identifier()); + dependencies.Append(dependentUnit.value().Identifier()); unit.Dependencies(std::move(dependencies)); } diff --git a/src/AppInstallerCLICore/Workflows/ShellExecuteInstallerHandler.cpp b/src/AppInstallerCLICore/Workflows/ShellExecuteInstallerHandler.cpp @@ -115,7 +115,7 @@ namespace AppInstaller::CLI::Workflow installerArgs += ' ' + installerSwitches.at(InstallerSwitchType::Log); } - // Construct repair arg. Custom switches and othe args are not applicable for repair scenario so we can return here. + // Construct repair arg. Custom switches and other args are not applicable for repair scenario so we can return here. if (isRepair) { if (installerSwitches.find(InstallerSwitchType::Repair) != installerSwitches.end()) diff --git a/src/AppInstallerCLIE2ETests/ConfigureCommand.cs b/src/AppInstallerCLIE2ETests/ConfigureCommand.cs @@ -154,7 +154,7 @@ namespace AppInstallerCLIE2ETests } /// <summary> - /// Resource name case insensitive test. + /// Resource name case-insensitive test. /// </summary> [Test] public void ResourceCaseInsensitive() diff --git a/src/AppInstallerCLIE2ETests/SearchCommand.cs b/src/AppInstallerCLIE2ETests/SearchCommand.cs @@ -121,7 +121,7 @@ namespace AppInstallerCLIE2ETests } /// <summary> - /// Test search with exact case sensitive. + /// Test search with exact case-sensitive. /// </summary> [Test] public void SearchWithExactArgCaseSensitivity() diff --git a/src/AppInstallerCLITests/ManifestComparator.cpp b/src/AppInstallerCLITests/ManifestComparator.cpp @@ -110,7 +110,7 @@ TEST_CASE("ManifestComparator_OSFilter_High", "[manifest_comparator]") REQUIRE(inapplicabilities.size() == 0); } -TEST_CASE("ManifestComparator_InstalledScopeFilter_Uknown", "[manifest_comparator]") +TEST_CASE("ManifestComparator_InstalledScopeFilter_Unknown", "[manifest_comparator]") { Manifest manifest; ManifestInstaller unknown = AddInstaller(manifest, Architecture::Neutral, InstallerTypeEnum::Msi, ScopeEnum::Unknown); @@ -343,7 +343,7 @@ TEST_CASE("ManifestComparator_ScopeCompare", "[manifest_comparator]") } } -TEST_CASE("ManifestComparator_LocaleComparator_Installed_WithUknown", "[manifest_comparator]") +TEST_CASE("ManifestComparator_LocaleComparator_Installed_WithUnknown", "[manifest_comparator]") { Manifest manifest; ManifestInstaller unknown = AddInstaller(manifest, Architecture::Neutral, InstallerTypeEnum::Msi, ScopeEnum::User, "", ""); diff --git a/src/AppInstallerCLITests/SQLiteIndex.cpp b/src/AppInstallerCLITests/SQLiteIndex.cpp @@ -3747,7 +3747,7 @@ TEST_CASE("SQLiteIndex_V2_0_UsageFlow_Complex", "[sqliteindex][V2_0]") PrepareAndCheckIntermediates(baseFile, preparedFile, { { manifest1, manifest3 } }); - // Open existing file to add a new verion of existing package and update an existing version + // Open existing file to add a new version of existing package and update an existing version manifest2.Manifest.StreamSha256 = SHA256::ComputeHash(manifest2.Manifest.Id); ManifestAndPath manifest4; @@ -3821,7 +3821,7 @@ TEST_CASE("SQLiteIndex_V2_0_UsageFlow_ComplexMigration", "[sqliteindex][V2_0]") MigratePrepareAndCheckIntermediates(baseFile, preparedFile, { { manifest2 }, { manifest1, manifest3 } }); - // Open existing file to add a new verion of existing package and update an existing version + // Open existing file to add a new version of existing package and update an existing version manifest2.Manifest.StreamSha256 = SHA256::ComputeHash(manifest2.Manifest.Id); ManifestAndPath manifest4; diff --git a/src/AppInstallerCommonCore/MSStoreDownload.cpp b/src/AppInstallerCommonCore/MSStoreDownload.cpp @@ -786,7 +786,7 @@ namespace AppInstaller::MSStore { using PlatformAndArchitectureKey = std::pair<std::string, Utility::Architecture>; - // Since the server may return multiple versions of the same package, we'll use ths map to record the one with latest version + // Since the server may return multiple versions of the same package, we'll use this map to record the one with latest version // for each Platform|Architecture pair. std::map<PlatformAndArchitectureKey, MSStoreDownloadFile> downloadFilesMap; diff --git a/src/AppInstallerCommonCore/Manifest/ManifestYamlPopulator.cpp b/src/AppInstallerCommonCore/Manifest/ManifestYamlPopulator.cpp @@ -776,7 +776,7 @@ namespace AppInstaller::Manifest std::string key = keyValuePair.first.as<std::string>(); const YAML::Node& valueNode = keyValuePair.second; - // We'll do case insensitive search first and validate correct case later. + // We'll do case-insensitive search first and validate correct case later. auto fieldIter = std::find_if(fieldInfos.begin(), fieldInfos.end(), [&](auto const& s) { diff --git a/src/AppInstallerCommonCore/Public/winget/Locale.h b/src/AppInstallerCommonCore/Public/winget/Locale.h @@ -20,6 +20,6 @@ namespace AppInstaller::Locale // Get the list of user Preferred Languages from settings. Returns an empty vector in rare cases of failure. std::vector<std::string> GetUserPreferredLanguages(); - // Get the bcp47 tag from a locale id. Returns empty string if conversion can not be performed. + // Get the bcp47 tag from a locale id. Returns empty string if conversion cannot be performed. std::string LocaleIdToBcp47Tag(LCID localeId); } \ No newline at end of file diff --git a/src/AppInstallerCommonCore/Public/winget/ManifestYamlPopulator.h b/src/AppInstallerCommonCore/Public/winget/ManifestYamlPopulator.h @@ -81,7 +81,7 @@ namespace AppInstaller::Manifest std::vector<FieldProcessInfo> GetShadowLocalizationFieldProcessInfo(); // This method takes YAML root node and list of manifest field info. - // Yaml lib does not support case insensitive search and it allows duplicate keys. If duplicate keys exist, + // Yaml lib does not support case-insensitive search and it allows duplicate keys. If duplicate keys exist, // the value is undefined. So in this method, we will iterate through the node map and process each individual // pair ourselves. This also helps with generating aggregated error rather than throwing on first failure. std::vector<ValidationError> ValidateAndProcessFields( diff --git a/src/AppInstallerCommonCore/Public/winget/ThreadGlobals.h b/src/AppInstallerCommonCore/Public/winget/ThreadGlobals.h @@ -24,7 +24,7 @@ namespace AppInstaller::ThreadLocalStorage AppInstaller::Logging::TelemetryTraceLogger& GetTelemetryLogger(); // Set Globals for Current Thread - // Return RAII object with it's ownership to set the AppInstaller ThreadLocalStorage back to previous state + // Return RAII object with its ownership to set the AppInstaller ThreadLocalStorage back to previous state std::unique_ptr<AppInstaller::ThreadLocalStorage::PreviousThreadGlobals> SetForCurrentThread() override; private: diff --git a/src/AppInstallerRepositoryCore/SourcePolicy.cpp b/src/AppInstallerRepositoryCore/SourcePolicy.cpp @@ -108,7 +108,7 @@ namespace AppInstaller::Repository // Case 2: // - The source is not a tombstone and we don't need the policy to be explicitly enabled. // - Check only against the source argument and type as the user source may have a different name. - // - Do a case insensitive check as the domain portion of the URL is case insensitive, + // - Do a case-insensitive check as the domain portion of the URL is case-insensitive, // and we don't need case sensitivity for the rest as we control the domain. if (Utility::CaseInsensitiveEquals(arg, GetWellKnownSourceArg(WellKnownSource::WinGet)) && Utility::CaseInsensitiveEquals(type, Microsoft::PreIndexedPackageSourceFactory::Type())) diff --git a/src/AppInstallerSharedLib/Errors.cpp b/src/AppInstallerSharedLib/Errors.cpp @@ -216,8 +216,8 @@ namespace AppInstaller WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_SQLITE_CONNECTION_TERMINATED, "The SQLite connection was terminated to prevent corruption."), WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_DISPLAYCATALOG_API_FAILED, "Failed to get Microsoft Store package catalog."), WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_NO_APPLICABLE_DISPLAYCATALOG_PACKAGE, "No applicable Microsoft Store package found from Microsoft Store package catalog."), - WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_SFSCLIENT_API_FAILED, "Failed to get Microsoft Store package download infomation."), - WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_NO_APPLICABLE_SFSCLIENT_PACKAGE, "No applicable Microsoft Store package download infomation found."), + WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_SFSCLIENT_API_FAILED, "Failed to get Microsoft Store package download information."), + WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_NO_APPLICABLE_SFSCLIENT_PACKAGE, "No applicable Microsoft Store package download information found."), WINGET_HRESULT_INFO(APPINSTALLER_CLI_ERROR_LICENSING_API_FAILED, "Failed to retrieve Microsoft Store package license."), // Install errors. diff --git a/src/AppInstallerSharedLib/Public/AppInstallerStrings.h b/src/AppInstallerSharedLib/Public/AppInstallerStrings.h @@ -104,15 +104,15 @@ namespace AppInstaller::Utility using NormalizedString = NormalizedUTF8<NORM_FORM::NormalizationKC, true>; - // Compares the two UTF8 strings in a case insensitive manner. + // Compares the two UTF8 strings in a case-insensitive manner. // Use this if one of the values is a known value, and thus ToLower is sufficient. bool CaseInsensitiveEquals(std::string_view a, std::string_view b); - // Compares the two UTF16 strings in a case insensitive manner. + // Compares the two UTF16 strings in a case-insensitive manner. // Use this if one of the values is a known value, and thus ToLower is sufficient. bool CaseInsensitiveEquals(std::wstring_view a, std::wstring_view b); - // Returns if a UTF8 string is contained within a vector in a case insensitive manner. + // Returns if a UTF8 string is contained within a vector in a case-insensitive manner. bool CaseInsensitiveContains(const std::vector<std::string_view>& a, std::string_view b); // Determines if string a starts with string b. @@ -123,7 +123,7 @@ namespace AppInstaller::Utility // Use this if one of the values is a known value, and thus ToLower is sufficient. bool CaseInsensitiveContainsSubstring(std::string_view a, std::string_view b); - // Compares the two UTF8 strings in a case insensitive manner, using ICU for case folding. + // Compares the two UTF8 strings in a case-insensitive manner, using ICU for case folding. bool ICUCaseInsensitiveEquals(std::string_view a, std::string_view b); // Determines if string a starts with string b, using ICU for case folding. diff --git a/src/AppInstallerSharedLib/Public/winget/SharedThreadGlobals.h b/src/AppInstallerSharedLib/Public/winget/SharedThreadGlobals.h @@ -18,7 +18,7 @@ namespace AppInstaller::ThreadLocalStorage virtual void* GetTelemetryObject() = 0; // Set Globals for Current Thread - // Return RAII object with it's ownership to set the AppInstaller ThreadLocalStorage back to previous state + // Return RAII object with its ownership to set the AppInstaller ThreadLocalStorage back to previous state virtual std::unique_ptr<AppInstaller::ThreadLocalStorage::PreviousThreadGlobals> SetForCurrentThread(); // Return Globals for Current Thread diff --git a/src/AppInstallerSharedLib/Public/winget/Yaml.h b/src/AppInstallerSharedLib/Public/winget/Yaml.h @@ -157,7 +157,7 @@ namespace AppInstaller::YAML Node& operator[](std::string_view key); const Node& operator[](std::string_view key) const; - // Gets a child node from the mapping by its name case insensitive. + // Gets a child node from the mapping by its name case-insensitive. Node& GetChildNode(std::string_view key); const Node& GetChildNode(std::string_view key) const; diff --git a/src/Microsoft.Management.Configuration.UnitTests/Tests/ConfigurationSetProcessorTests.cs b/src/Microsoft.Management.Configuration.UnitTests/Tests/ConfigurationSetProcessorTests.cs @@ -80,7 +80,7 @@ namespace Microsoft.Management.Configuration.UnitTests.Tests } /// <summary> - /// Test CreateUnitProcessor case insensitive. + /// Test CreateUnitProcessor case-insensitive. /// </summary> [Fact] public void CreateUnitProcessor_CaseInsensitive() @@ -114,7 +114,7 @@ namespace Microsoft.Management.Configuration.UnitTests.Tests } /// <summary> - /// Test CreateUnitProcessor case insensitive. + /// Test CreateUnitProcessor case-insensitive. /// </summary> [Fact] public void CreateUnitProcessor_ResourceNameMismatch() diff --git a/src/Valijson/valijson/Doxyfile b/src/Valijson/valijson/Doxyfile @@ -194,7 +194,7 @@ QT_AUTOBRIEF = NO # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. +# not recognized anymore. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/AllEquality.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/AllEquality.yaml @@ -21,7 +21,7 @@ Installers: Language: /en-US Custom: /s - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 Language: en-US Scope: user \ No newline at end of file diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/AllEqualityWithDescription.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/AllEqualityWithDescription.yaml @@ -22,7 +22,7 @@ Installers: Language: /en-US Custom: /s - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 Language: en-US Scope: user \ No newline at end of file diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/DifferentId.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/DifferentId.yaml @@ -21,7 +21,7 @@ Installers: Language: /en-US Custom: /s - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 Language: en-US Scope: user \ No newline at end of file diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/OneInstaller.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/OneInstaller.yaml @@ -12,7 +12,7 @@ Switches: InstallLocation: /d=<INSTALLPATH> Installers: - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 Language: en-US Scope: user \ No newline at end of file diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/SomeEquality.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/SomeEquality.yaml @@ -8,5 +8,5 @@ Installers: Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 SignatureSha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 \ No newline at end of file diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/SomeEqualityWithLocalization.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/SomeEqualityWithLocalization.yaml @@ -8,7 +8,7 @@ Installers: Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 SignatureSha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 Localization: - Language: es-MX diff --git a/src/WinGetUtilInterop.UnitTests/TestCollateral/SomeEqualityWithoutSwitches.yaml b/src/WinGetUtilInterop.UnitTests/TestCollateral/SomeEqualityWithoutSwitches.yaml @@ -5,5 +5,5 @@ Installers: Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 SignatureSha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 - Arch: x64 - Url: https://contosa.net/publiccontainer/contosainstaller64.exe + Url: https://contoso.com/publiccontainer/contosoinstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 diff --git a/src/WinGetYamlFuzzing/README.md b/src/WinGetYamlFuzzing/README.md @@ -9,7 +9,7 @@ The goal of this project is to create a [libFuzzer](http://llvm.org/docs/LibFuzz This project only supports the `Fuzzing` configuration in either the `x64` or `x86` platform. The build output directory will be located at `$(ProjectDirectory)\src\$(Platform)\Fuzzing\` -WinGetYamlFuzzer is compiled with `/fsanitize=fuzzer`. This injects the LibFuzzer main function which invokes `LLVMFuzzerTestOneInput`. The LibFuzzer engine code is staticly linked into the WinGetYamlFuzzer executable, which is how OneFuzz will interact with the fuzzer by providing the appropriate command-line arguments. +WinGetYamlFuzzer is compiled with `/fsanitize=fuzzer`. This injects the LibFuzzer main function which invokes `LLVMFuzzerTestOneInput`. The LibFuzzer engine code is statically linked into the WinGetYamlFuzzer executable, which is how OneFuzz will interact with the fuzzer by providing the appropriate command-line arguments. The fuzzer and all libraries that it references need to be compiled with ASan and SanCov (along with various SanCov compiler flags). In order to run the fuzzer, the ASan runtime DLL is required. This file is copied to the output directory as a post-build step from `$(VCToolsInstallDir)\bin\Hostx64\x64\clang_rt.asan_dynamic-x86_64.dll​`. diff --git a/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Find-WinGetPackage.ps1 b/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Find-WinGetPackage.ps1 @@ -26,7 +26,7 @@ Function Find-WinGetPackage{ Used to specify the Command of the package .PARAMETER Exact - Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case insensitive substring matches if Exact is not specified. + Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case-insensitive substring matches if Exact is not specified. .PARAMETER Source Name of the Windows Package Manager private source. Can be identified by running: "Get-WinGetSource" and using the source Name @@ -103,7 +103,7 @@ Function Find-WinGetPackage{ $WinGetArgs += "--Command", $Command.Replace("…", "") } if($Exact){ - ## Search using exact values specified (case sensitive) + ## Search using exact values specified (case-sensitive) $WinGetArgs += "--Exact" } if($PSBoundParameters.ContainsKey('Source')){ @@ -119,7 +119,7 @@ Function Find-WinGetPackage{ $WinGetArgs += "--header", $Header } if($PSBoundParameters.ContainsKey('VerboseLog')){ - ## Search using exact values specified (case sensitive) + ## Search using exact values specified (case-sensitive) $WinGetArgs += "--VerboseLog", $VerboseLog } if($AcceptSourceAgreement){ diff --git a/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Get-WinGetPackage.ps1 b/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Get-WinGetPackage.ps1 @@ -29,7 +29,7 @@ Function Get-WinGetPackage{ Used to specify the maximum number of packages to return .PARAMETER Exact - Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case insensitive substring matches if Exact is not specified. + Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case-insensitive substring matches if Exact is not specified. .PARAMETER Source Name of the Windows Package Manager private source. Can be identified by running: "Get-WinGetSource" and using the source Name @@ -104,7 +104,7 @@ Function Get-WinGetPackage{ $WinGetArgs += "--Count", $Count } if($Exact){ - ## Search using exact values specified (case sensitive) + ## Search using exact values specified (case-sensitive) $WinGetArgs += "--Exact" } if($PSBoundParameters.ContainsKey('Header')){ diff --git a/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Install-WinGetPackage.ps1 b/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Install-WinGetPackage.ps1 @@ -30,7 +30,7 @@ Function Install-WinGetPackage Used to specify install scope (user or machine) .PARAMETER Exact - Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case insensitive substring matches if Exact is not specified. + Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case-insensitive substring matches if Exact is not specified. .PARAMETER Source Name of the Windows Package Manager private source. Can be identified by running: "Get-WinGetSource" and using the source Name diff --git a/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Invoke-WinGetCommand.ps1 b/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Invoke-WinGetCommand.ps1 @@ -154,9 +154,9 @@ Function Invoke-WinGetCommand } ## Gets the indexing of each title - $rgex = $IndexTitles -join "|" + $regex = $IndexTitles -join "|" for ($Offset=0; $Offset -lt $WinGetSourceListRaw.Length; $Offset++) { - if($WinGetSourceListRaw[$Offset].Split(" ")[0].Trim() -match $rgex) { + if($WinGetSourceListRaw[$Offset].Split(" ")[0].Trim() -match $regex) { $Found = $true break } diff --git a/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Uninstall-WinGetPackage.ps1 b/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Uninstall-WinGetPackage.ps1 @@ -23,7 +23,7 @@ Function Uninstall-WinGetPackage{ Used to specify the Version of the package .PARAMETER Exact - Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case insensitive substring matches if Exact is not specified. + Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case-insensitive substring matches if Exact is not specified. .PARAMETER Source Name of the Windows Package Manager private source. Can be identified by running: "Get-WinGetSource" and using the source Name diff --git a/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Upgrade-WinGetPackage.ps1 b/tools/PowerShell/Microsoft.WinGet.Client/src/Library/Upgrade-WinGetPackage.ps1 @@ -33,7 +33,7 @@ Function Upgrade-WinGetPackage Used to specify install scope (user or machine) .PARAMETER Exact - Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case insensitive substring matches if Exact is not specified. + Used to specify an exact match for any parameters provided. Many of the other parameters may be used for case-insensitive substring matches if Exact is not specified. .PARAMETER Source Name of the Windows Package Manager private source. Can be identified by running: "Get-WinGetSource" and using the source Name diff --git a/tools/PowerShell/README.md b/tools/PowerShell/README.md @@ -163,7 +163,7 @@ This is not an exhaustive list, but is here as guide for work that needs to be p * Header is only valid in the context of a single source parameter. We may want to validate in the cmdlet * Validation needs to be built * The Modules should be moved to a new GitHub repository patterned after [Crescendo](https://www.powershellgallery.com/packages/PSPackageProject/0.1.18) -* Ultimately, the child modules will be moved to their respective GitHub repositories and the parent will stay in it's own repository. +* Ultimately, the child modules will be moved to their respective GitHub repositories and the parent will stay in its own repository. * Validation should be implemented * A CI Pipeline should be built to sign and publish the modules to the PowerShell gallery * Packaging with [PSPackageProject](https://www.powershellgallery.com/packages/PSPackageProject/0.1.18)