Skip to content

Commit

Permalink
2-12 nightly update.
Browse files Browse the repository at this point in the history
  • Loading branch information
stephengillie committed Feb 13, 2024
1 parent 83b096e commit 071eead
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 71 deletions.
76 changes: 41 additions & 35 deletions Tools/Auth.csv
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ amrdeveloper.gitql,AmrDeveloper,should,auto
ApeCloud.kbcli,apecloud-bot,should,auto
aquaproj.aqua,suzuki-shunsuke,should,auto
BakkesMod.BakkesMod,BakkesMod,must,manual
beeradmoore.dlss-swapper,beeradmoore,should,manual
blacktop.ipsw,blacktop,should,auto
blacktop.ipswd,blacktop,should,auto
BlenderFoundation.Blender.LTS,EGuillemot,should,auto
bloznelis.typioca,bloznelis,should,auto
Brows.App,kyourek,should,manual
DanielMcGuireCorporation.MathBotCLI,DanielLMcGuire,should,manual
DanielMcGuireCorporation.SimpleBrowser,DanielLMcGuire,should,manual
c3er.mdview,c3er,should,auto
Chocolatey.Chocolatey,pauby,must,manual
Expand Down Expand Up @@ -48,6 +50,8 @@ iQIYI.iQIYI,kingcean,should,auto
Jackett.Jackett,ilike2burnthing,should,auto
JAMSoftware.TreeSize,JAMSoftwareAutomatedTasks,should,auto
JanDeDobbeleer.OhMyPosh,JanDeDobbeleer,must,manual
Japplis.Dictaphone,japplis,should,manual
Japplis.M2RepoCleaner,japplis,should,manual
junegunn.fzf,junegunn,should,auto
kairoaraujo.tufie,kairoaraujo,should,auto
Keboola.KeboolaCLI,KeboolaAsCodeBot,should,auto
Expand Down Expand Up @@ -91,9 +95,9 @@ Pikcube.OrangeJuiceModMaker,Pikcube,should,auto
pit-ray.win-vind,pit-ray,should,auto
pizzaboxer.Bloxstrap,pizzaboxer,should,auto
Princessmortix.Cobalt,princessmortix,should,manual
pnpm.pnpm,zkochan,should,auto
Pulumi.Pulumi,pulumi-bot,should,auto
Pylogmon.pot,Pylogmon,should,auto
pnpm.pnpm,zkochan,should,manual
Pulumi.Pulumi,pulumi-bot,should,manual
Pylogmon.pot,Pylogmon,should,manual
Rohde&Schwarz.SDC.IETDViewPublish,RohdeSchwarz-SDC,should,auto
rsteube.Carapace,rsteube-bot,should,auto
Ruben2776.PicView,Ruben2776,should,auto
Expand All @@ -106,43 +110,45 @@ Ryujinx.Ryujinx,Exorcism0666,should,auto
Ryujinx.Ryujinx.Ava,Exorcism0666,should,auto
sirredbeard.wslinternals,sirredbeard,should,auto
SKDataAS.ORMCore,skdataas,should,auto
Slonopotamus.Stevedore,Slonopotamus,should,auto
Slonopotamus.Stevedore,slonopotamus,should,auto
stacklok.frizbee,stacklok/stacklokbot,should,auto
stacklok.minder,stacklok/stacklokbot,should,auto
StandardNotes.StandardNotes,russellbanks,must,manual
StefHeyenrath.GitHubReleaseNotes,StefH,should,auto
Schlaubi.Tonbrett,DRSchlaubi,should,manual
StefHeyenrath.GitHubReleaseNotes,StefH,should,manual
swri.EverythingToolbar,stnkl,should,auto
t1m0thyj.WinDynamicDesktop,t1m0thyj,must,manual
taers232c.GAMADV-XTD3,Exorcism0666,should,auto
Taozuhong.Kangaroo,taozuhong,should,auto
Tauri.create-tauri-app,SpecterShell,should,auto
Tgstation.Server,Cyberboss,should,auto
ThaUnknown.Miru,ThaUnknown,should,auto
the-sz.Auburn,the-sz,should,auto
the-sz.Banks,the-sz,should,auto
the-sz.Bear,the-sz,should,auto
the-sz.Carroll,the-sz,should,auto
the-sz.Conroe,the-sz,should,auto
the-sz.Doro,the-sz,should,auto
the-sz.FlashBuilder,the-sz,should,auto
the-sz.Howard,the-sz,should,auto
the-sz.Lacey,the-sz,should,auto
the-sz.Newfield,the-sz,should,auto
the-sz.Rimhill,the-sz,should,auto
the-sz.Seaside,the-sz,should,auto
the-sz.SkypeFocusFix,the-sz,should,auto
the-sz.Spencer,the-sz,should,auto
the-sz.Yale,the-sz,should,auto
the-sz.York,the-sz,should,auto
taers232c.GAMADV-XTD3,Exorcism0666,should,manual
Taozuhong.Kangaroo,taozuhong,should,manual
Tauri.create-tauri-app,SpecterShell,should,manual
Tgstation.Server,Cyberboss,should,manual
ThaUnknown.Miru,ThaUnknown,should,manual
the-sz.Auburn,the-sz,should,manual
the-sz.Banks,the-sz,should,manual
the-sz.Bear,the-sz,should,manual
the-sz.Carroll,the-sz,should,manual
the-sz.Conroe,the-sz,should,manual
the-sz.Doro,the-sz,should,manual
the-sz.FlashBuilder,the-sz,should,manual
the-sz.Howard,the-sz,should,manual
the-sz.Lacey,the-sz,should,manual
the-sz.Newfield,the-sz,should,manual
the-sz.Rimhill,the-sz,should,manual
the-sz.Seaside,the-sz,should,manual
the-sz.SkypeFocusFix,the-sz,should,manual
the-sz.Spencer,the-sz,should,manual
the-sz.Trion,the-sz,should,manual
the-sz.Yale,the-sz,should,manual
the-sz.York,the-sz,should,manual
thebookisclosed.ViVeTool,thebookisclosed,must,manual
Toit.Jaguar,LeonGungadinMogensen,should,auto
TopalaSoftwareSolutions.SIW,gtopala,should,auto
twpayne.chezmoi,twpayne,should,auto
TopalaSoftwareSolutions.SIW,gtopala,should,manual
twpayne.chezmoi,twpayne,should,manual
vedantmgoyal.sheltasks-cli,vedantmgoyal2009,must,manual
vim.vim,chrisbra,should,auto
vim.vim.nightly,chrisbra,should,auto
WerWolv.ImHex,WerWolv,should,auto
wez.wezterm,wez,should,auto
WHONET.2023,drshtmstry,should,auto
xavidop.cxcli,xavidop,should,auto
yetone.OpenAITranslator,yetone,should,auto
vim.vim,chrisbra,should,manual
vim.vim.nightly,chrisbra,should,manual
WerWolv.ImHex,WerWolv,should,manual
wez.wezterm,wez,should,manual
WHONET.2023,drshtmstry,should,manual
xavidop.cxcli,xavidop,should,manual
yetone.OpenAITranslator,yetone,should,manual
105 changes: 69 additions & 36 deletions Tools/ManualValidationPipeline.ps1
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
#Copyright 2022-2024 Microsoft Corporation
#Author: Stephen Gillie
#Title: Manual Validation Pipeline v3.26.17
#Title: Manual Validation Pipeline v3.29.1
#Created: 10/19/2022
#Updated: 2/9/2024
#Updated: 2/12/2024
#Notes: Utilities to streamline evaluating 3rd party PRs.
#Update log:
#3.29.1 - Improve Get-PRPopulateRecord PR title deduplication.
#3.29.0 - Add Get-PRPopulateRecord to reduce API calls through distributing PR titles to list members where this property is blank.
#3.28.2 - Update Get-PRReportFromRecord to get data from the CSV in a less-hacky way.
#3.28.1 - Bugfix to Add-ValidationData, adding spaces to make the 3rd line valid YAML.
#3.28.0 - Add several new states to Get-PRStateFromComments, update filter system and add several filter items to Get-AutoValLog, and add several filter items to validation execution.
#3.27.18 - Bugfix to Get-WorkSearch pagewise functionality, by shifting the labels filter and (after fixing) the running in a VM filter, down below the Count update.
#3.26.17 - Add disclaimer to highest version removal messaging, noting that this might be in error if the developer is switching from semantic to string, or string to semantic, for versioning. More info: https://github.com/microsoft/winget-pkgs/pull/138372#issuecomment-1936761047
#3.26.16 - Add spaces to dependency injection, to be more perfect YAML.
#3.26.15 - Filter out new labels. Stop filtering out Validation-Completed from ToWork.
#3.26.14 - Test out blanking PR output for non-PR presets.
#3.26.13 - Add new "Version-Parameter-Mismatch" label to automatic messaging.
#3.26.12 - Bugfix to Get-GitHubPreset.
#3.26.11 - Bugfixes to last version remaining check in PR Watcher.

$build = 726

$build = 731
$appName = "Manual Validation"
Write-Host "$appName build: $build"
$MainFolder = "C:\ManVal"
Expand Down Expand Up @@ -1661,10 +1661,11 @@ Function Get-WorkSearch {
$Count= 30
$Page = 0
While ($Count -eq 30) {
$PRs = (Get-SearchGitHub -Preset $Preset -Page $Page) | where {$_ -notin (Get-Status).pr}
$Count = $PRs.length
$PRs = (Get-SearchGitHub -Preset $Preset -Page $Page -NoLabels)
$Count = $PRs.length #If fewer than 30 PRs (1 page) are returned, then complete the loop and continue instead of starting another loop.
Write-Output "$(Get-Date -f T) $Preset Page $Page beginning with $Count Results"
$PRs = $PRs | where {$_.labels} | where {$_.number -notin (Get-Status).pr}
Foreach ($FullPR in $PRs) {
$PR = $FullPR.number
$Comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content)
Expand Down Expand Up @@ -2562,6 +2563,7 @@ Function Get-AutoValLog {
$UserInput = ($UserInput -split "`n") -notmatch 'The FileSystemWatcher has detected an error '
$UserInput = ($UserInput -split "`n") -notmatch "with working directory 'D:\\TOOLS'. The specified executable is not a valid application for this OS platform"
$UserInput = ($UserInput -split "`n") -notmatch "ThrowIfExceptional"
$UserInput = ($UserInput -split "`n") -notmatch "ERROR: Signature Update failed"
$UserInput = ($UserInput -split "`n") -notmatch "Setting error JSON 1.0 fields"
$UserInput = $UserInput -replace "2023-","`n> 2023-"
$UserInput = $UserInput -replace " MSI ","`n> MSI "
Expand Down Expand Up @@ -2777,17 +2779,6 @@ Function Get-PRApproval {
}
}
Function Get-NonstandardPRComments {
param(
$PR,
$comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content).body
)
foreach ($NSComment in $NonstandardPRComments) {
$comments = $comments | Where-Object {$_ -notmatch $NSComment}
}
return $comments
}
Function Reply-ToPR {
param(
$PR,
Expand All @@ -2804,6 +2795,17 @@ Function Reply-ToPR {
}
}
Function Get-NonstandardPRComments {
param(
$PR,
$comments = (Invoke-GitHubPRRequest -PR $PR -Type comments -Output content).body
)
foreach ($NSComment in $NonstandardPRComments) {
$comments = $comments | Where-Object {$_ -notmatch $NSComment}
}
return $comments
}
Function Get-PRStateFromComments {
param(
$PR = (Get-Clipboard),
Expand Down Expand Up @@ -2832,8 +2834,11 @@ Function Get-PRStateFromComments {
if (($Comment.UserName -eq $GitHubUserName) -AND ($Comment.body -match "The package didn't pass a Defender or similar security scan")) {
$State = "DefenderFail"
}
if (($Comment.body -match "which is greater than the current manifest's version")) {
$State = "VersionParamResponse"
if (($Comment.UserName -eq $GitHubUserName) -AND ($Comment.body -match "Status Code: 200")) {
$State = "InstallerAvailable"
}
if (($Comment.UserName -eq $GitHubUserName) -AND ($Comment.body -match "Response status code does not indicate success")) {
$State = "InstallerRemoved"
}
if (($Comment.UserName -eq $GitHubUserName) -AND ($Comment.body -match "which is greater than the current manifest's version")) {
$State = "VersionParamMismatch"
Expand All @@ -2842,13 +2847,20 @@ Function Get-PRStateFromComments {
($Comment.body -match "The package manager bot determined there was an issue with one of the installers listed in the url field") -OR #URL error
($Comment.body -match "The package manager bot determined there was an issue with installing the application correctly") -OR #Validation-Installation-Error
($Comment.body -match "The pull request encountered an internal error and has been assigned to a developer to investigate") -OR #Internal-Error
($Comment.body -match "this application failed to install without user input") #Validation-Unattended-Failed
($Comment.body -match "this application failed to install without user input") -OR #Validation-Unattended-Failed
($Comment.body -match "Please verify the manifest file is compliant with the package manager") #Manifest-Validation-Error
)) {
$State = "LabelAction"
}
if (($Comment.UserName -eq $FabricBot) -AND ($Comment.body -match "One or more of the installer URLs doesn't appear valid")) {
$State = "DomainReview"
}
if (($Comment.UserName -eq $GitHubUserName) -AND ($Comment.body -match "Sequence contains no elements")) {
$State = "SequenceError"
}
if (($Comment.UserName -eq $GitHubUserName) -AND ($Comment.body -match "SQL error or missing database")) {
$State = "SQLMissingError"
}
if (($Comment.UserName -eq $FabricBot) -AND ($Comment.body -match "The package manager bot determined changes have been requested to your PR")) {
$State = "ChangesRequested"
}
Expand Down Expand Up @@ -3108,7 +3120,7 @@ if (Test-Path $RemoteFolder\files.txt) {
}
Out-Log `"Reading `$(`$files.count) file changes in the last `$(((Get-Date) -`$TimeStart).TotalSeconds) seconds. Starting bulk file execution:`"
`$files = `$files | Where-Object {`$_ -notmatch 'unins'} | Where-Object {`$_ -notmatch 'dotnet'} | Where-Object {`$_ -notmatch 'redis'} | Where-Object {`$_ -notmatch 'msedge'} | Where-Object {`$_ -notmatch 'System32'} | Where-Object {`$_ -notmatch 'SysWOW64'} | Where-Object {`$_ -notmatch 'WinSxS'} | Where-Object {`$_ -notmatch 'dump64a'} | Where-Object {`$_ -notmatch 'CbsTemp'}
`$files = `$files | Where-Object {`$_ -notmatch 'unins'} | Where-Object {`$_ -notmatch 'dotnet'} | Where-Object {`$_ -notmatch 'servicing'} | Where-Object {`$_ -notmatch 'Prefetch'} | Where-Object {`$_ -notmatch 'Provisioning'} | Where-Object {`$_ -notmatch 'redis'} | Where-Object {`$_ -notmatch 'msedge'} | Where-Object {`$_ -notmatch 'System32'} | Where-Object {`$_ -notmatch 'SysWOW64'} | Where-Object {`$_ -notmatch 'WinSxS'} | Where-Object {`$_ -notmatch 'dump64a'} | Where-Object {`$_ -notmatch 'CbsTemp'}
`$files | Out-File 'C:\Users\user\Desktop\ChangedFiles.txt'
`$files | Select-String '[.]exe`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'}else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}};
`$files | Select-String '[.]msi`$' | ForEach-Object {if (`$_ -match '$packageName') {Out-Log `$_ 'green'}else{Out-Log `$_ 'cyan'}; try{Start-Process `$_}catch{}};
Expand Down Expand Up @@ -3700,7 +3712,16 @@ Function Get-TrackerVMCycle {
Get-PipelineVmGenerate -OS $VM.os
}
"SendStatus" {
$SharedError = (Get-Content "$writeFolder\err.txt") -replace "Faulting","`n> Faulting" -replace "2024","`n> 2024"
$SharedError = (Get-Content $SharedErrorFile)
$SharedError = $SharedError -replace "Faulting","`n> Faulting"
$SharedError = $SharedError -replace "2024","`n> 2024"
$SharedError = $SharedError -replace " (caller: 00007FFA008A5769)",""
$SharedError = $SharedError -replace " (caller: 00007FFA008AA79F)",""
$SharedError = $SharedError -replace "Exception(1) tid(f1c) 80D02002",""
$SharedError = $SharedError -replace "Exception(2) tid(f1c) 80072EE2 ",""
$SharedError = $SharedError -replace "Exception(4) tid(f1c) 80072EE2 ",""
$SharedError = $SharedError -replace "tid(f1c)",""
$SharedError = $SharedError -replace "C:\__w\1\s\external\pkg\src\AppInstallerCommonCore\Downloader.cpp(185)\WindowsPackageManager.dll!00007FFA008A37C9:",""
Reply-ToPR -PR $VM.PR -UserInput $SharedError -CannedResponse ManValEnd
Get-TrackerVMSetStatus "Complete" $VM.vm
if (($SharedError -match "\[FAIL\] Installer failed security check.") -OR ($SharedError -match "Detected 1 Defender")) {
Expand Down Expand Up @@ -3987,7 +4008,7 @@ Function Add-ValidationData {
$Selector = "Installers:",
$offset = 1,
$lineNo = (($fileContents| Select-String $Selector -List).LineNumber -$offset),
$fileInsert = "Dependencies:`n PackageDependencies:`n - PackageIdentifier: $Dependency",
$fileInsert = "Dependencies:`n PackageDependencies:`n - PackageIdentifier: $Dependency",
$fileOutput = ($fileContents[0..($lineNo -1)]+$fileInsert+$fileContents[$lineNo..($fileContents.length)])
)
Write-Host "Writing $($fileContents.length) lines to $FilePath"
Expand Down Expand Up @@ -4140,12 +4161,24 @@ Function Add-PRToRecord {
"$PR,$Action,$Title" | Out-File $LogFile -Append
}
Function Get-PRPopulateRecord {
param(
$Logs = (gc $LogFile | ConvertFrom-Csv)
)
Foreach ($Log in $Logs) {
$PotentialTitle =
$Log.title = ($Logs | where {$_.title} | where {$_.PR -match $Log.PR}).title | Sort-Object -Unique
}
$Logs | ConvertTo-Csv|Out-File $LogFile
}
Function Get-PRFromRecord {
param(
[ValidateSet("Approved","Blocking","Feedback","Retry","Manual","Closed","Project","Squash","Waiver")]
$Action
)
("PR,Action,Title`n" + (Get-Content $LogFile)) -split " " | ConvertFrom-Csv | Where-Object {$_.Action -match $Action}
Get-PRPopulateRecord
(Get-Content $LogFile) | ConvertFrom-Csv -Header ("PR","Action","Title") | Where-Object {$_.Action -match $Action}
}
Function Get-PRReportFromRecord {
Expand All @@ -4154,18 +4187,17 @@ Function Get-PRReportFromRecord {
$Action,
$out = "",
$line = 0,
$Record = ((Get-PRFromRecord $Action).PR | Select-Object -Unique),
$Record = ((Get-PRFromRecord $Action) | Sort-Object PR -Unique),
[switch]$NoClip
)
(Get-Content $LogFile) | ConvertFrom-Csv | Where-Object {$_.Action -notmatch $Action} | ConvertTo-Csv|Out-File $LogFile
Foreach ($PR in $Record) {
$line++
$Title = ""
if ($PR.Title) {
$Title = $PR.Title
} else {
$Title = $PR.Title
$PR = $PR.PR
if (!($Title)) {
$Title = (Invoke-GitHubPRRequest -PR $PR -Type "" -Output content -JSON).title
}
Get-TrackerProgress -PR $PR $MyInvocation.MyCommand $line $Record.length
Expand Down Expand Up @@ -4347,6 +4379,7 @@ $NonstandardPRComments = ("Validation Pipeline Badge",#Pipeline status
"Sequence contains no elements"#New Sequence error.
)
#C-sharp window location types.
Add-Type @"
using System;
using System.Runtime.InteropServices;
Expand Down
1 change: 1 addition & 0 deletions Tools/Waiver.csv
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ ART.ART,Policy-Test-2.3
Aserto.DSLoad,Validation-Executable-Error
ast-grep.ast-grep,Validation-Executable-Error
BlueBubbles.BlueBubbles,Validation-Installation-Error
yt-dlp.yt-dlp.nightly,Validation-Installation-Error
BrettMayson.HEMTT,Validation-Executable-Error
ducaale.xh,Validation-Executable-Error
FOSSA.FOSSA-cli,Validation-Executable-Error
Expand Down

1 comment on commit 071eead

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@check-spelling-bot Report

🔴 Please review

See the 📜action log for details.

Unrecognized words (2)

easliy
ususally

Previously acknowledged words that are now absent admins craigloewen Daa Esco fabricbot Filezilla jedieaston Joakim Kad Karan Levvie mdanish Megamix msft quhxl redistribution russellbanks Tbot timezone Trenly :arrow_right:
To accept ✔️ these unrecognized words as correct and remove the previously acknowledged and now absent words, run the following commands

... in a clone of the [email protected]:stephengillie/winget-pkgs.git repository
on the Tools-update-12-20 branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.21/apply.pl' |
perl - 'https://github.com/stephengillie/winget-pkgs/actions/runs/7880944411/attempts/1'
If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

Please sign in to comment.