Skip to content

Commit

Permalink
6-4 weekly
Browse files Browse the repository at this point in the history
  • Loading branch information
stephengillie committed Jun 5, 2024
1 parent 3d298de commit b8147b4
Show file tree
Hide file tree
Showing 4 changed files with 177 additions and 92 deletions.
71 changes: 55 additions & 16 deletions Tools/ExitCodes.csv
Original file line number Diff line number Diff line change
@@ -1,27 +1,66 @@
Code, Message
-1073740791,Stack overflow / exhaustion.
-1073741502,The application failed to initialize properly - does this package require `ElevationRequirement: elevationRequired`?
-1073741510,The application terminated as a result of a CTRL+C.
-1073741515,STATUS_DLL_NOT_FOUND - possibly due to a dependency on `Microsoft.VCRedist.2015+.x64` (or `.x86`).
-1073741571,Stack overflow / exhaustion.
-1073741801,Not enough virtual memory is available. (VM ran out of RAM)
-1978335141,Unable to locate nested installer. Does the `RelativeFilePath` have the previous version number in it?
-1978335146,The installer cannot be run from an administrator context - does this package require `ElevationRequirement: elevationProhibited`?
-1978335187,Installer failed security check. Another script should retry this every 18 hours. <!-- [Policy] Needs-Attention`n[Policy] Validation-Defender-Error -->
-1978335215,Hash mismatch.
-1978335226,Install successful but system restart may be required.
-2145844844,Not Found (404).
-2145844845,Forbidden (403).
-2146232576,Dependency on `WindowsFeatues`, specifically `netfx3`.
-2147012867,Network or Firewall Error.
-2147012894,ERROR_INTERNET_TIMEOUT
-2147450749,Missing dependency on `Microsoft.DotNet.DesktopRuntime.8`.
-532459699,Unhandled exception in .NET application.
-532462766,EXCEPTION_COMPLUS (Unhandled Exception)
0x80070001,Windows cannot install required files.
0x80070002,File not found.
0x81f40001,Bundle condition evaluated to false. (Possibly `Microsoft.VCRedist.2015+.` with the wrong architecture.)
0x80070057,The parameter is incorrect.
0x800700d8,This version of this application is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher. (Should this have `Architecture: x64`?)
0x80070424,The specified service does not exist as an installed service.
0x80190193,Forbidden (403)
0x80072EE2,ERROR_INTERNET_TIMEOUT
0x8a150104,This package has a dependency missing from your system. (APPINSTALLER_CLI_ERROR_INSTALL_MISSING_DEPENDENCY) (The most common dependency is `Microsoft.VCRedist.2015+.x64` / `.x86`)
0x80072F76,Network or Firewall Error.
0x80190193,Forbidden (403)
0x80190194,Not found (404).
0x81F40001,Bundle condition evaluated to false. (Possibly `Microsoft.VCRedist.2015+.` with the wrong architecture.)
0x8A150104,This package has a dependency missing from your system. (APPINSTALLER_CLI_ERROR_INSTALL_MISSING_DEPENDENCY) (The most common dependency is `Microsoft.VCRedist.2015+.x64` / `.x86`)
0xC0000017,Not enough virtual memory is available. (VM ran out of RAM)
0xC00000FD,Stack overflow / exhaustion.
0xC000013A,The application terminated as a result of a CTRL+C.
0xC0000142,The application failed to initialize properly - does this package require `ElevationRequirement: elevationRequired`?
0xC0000409,Stack overflow / exhaustion.
0xE0434F4D,Unhandled exception in .NET application.
1601,Contact Support.
1602,Cancelled By User.
1603,Install successful but system restart may be required. Should this be add as an `InstallerSuccessCode` or similar?
1618,install In Progress.
1623,System Not Supported. Does this manifest have `Architecture: x86`? It might need to be `x64`.
1625,Blocked By Policy.
1628,invalidParameter
1633,System Not Supported. Does this manifest have `Architecture: x86`? It might need to be `x64`.
1638,alreadyInstalled
1639,Invalid Parameter. Double-check the installer switches.
1641,Reboot Initiated.
1640,Blocked By Policy.
1643,Blocked By Policy.
1644,Blocked By Policy.
1649,Blocked By Policy.
1650,Invalid Parameter. Double-check the installer switches.
1654,System Not Supported. Does this manifest have `Architecture: x86`? It might need to be `x64`.
3010,Install successful but system restart may be required. Should this be add as an `InstallerSuccessCode` or similar?
2147942402,File not found.
2147954550,Network or Firewall Error.
2147958003,Error Installing Dependency - Windows cannot install this package because it depends on a framework (version) that could not be found.
3221225477,Converted to hexadecimal (0xC0000005) possibly [Access Violation](https://learn.microsoft.com/en-us/shows/inside/access-violation-c0000005-execute). (This code is occasionally seen in PRs, despite the install otherwise being successful. Should it be added as an `InstallerSuccessCode` or similar here?)
-1073741515,STATUS_DLL_NOT_FOUND - possibly due to a dependency on `Microsoft.VCRedist.2015+.x64` (or `.x86`).
-1978335141,Unable to locate nested installer. Does the `RelativeFilePath` have the version number in it - and does that need to be incremented?
-1978335146,The installer cannot be run from an administrator context - does this package require `ElevationRequirement: elevationProhibited`?
-1978335187,Installer failed security check. Another script should retry this every 18 hours. <!-- [Policy] Needs-Attention`n[Policy] Validation-Defender-Error -->
-1978335215,Hash mismatch.
-1978335226,Install successful but system restart may be required.
-2145844845,Forbidden (403).
-2147012867,Network or Firewall Error.
-2147012894,ERROR_INTERNET_TIMEOUT
-2147450749,Missing dependency on `Microsoft.DotNet.DesktopRuntime.8`.
-532462766,EXCEPTION_COMPLUS
No suitable installer found for manifest,A pipeline issue<br>- https://github.com/microsoft/winget-pkgs/issues/152555
3010,Install successful but system restart may be required. Should this be add as an `InstallerSuccessCode` or similar?
3221225477,Converted to hexadecimal (0xC0000005) possibly [Access Violation](https://learn.microsoft.com/en-us/shows/inside/access-violation-c0000005-execute). (This is occasionally seen in PRs, despite the install otherwise being successful. Should it be added as an `InstallerSuccessCode` or similar here?)
3221225495,Not enough virtual memory is available. (VM ran out of RAM)
3221225725,Stack overflow / exhaustion.
3221225786,The application terminated as a result of a CTRL+C.
3221225794,The application failed to initialize properly - does this package require `ElevationRequirement: elevationRequired`?
3221226505,Stack overflow / exhaustion.
3762507597,Unhandled exception in .NET application.
189 changes: 116 additions & 73 deletions Tools/ManualValidationPipeline.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ 17. Status bar (pending)
namespace WinGetApprovalNamespace {
public class WinGetApprovalPipeline : Form {
//vars
public int build = 899;//Get-RebuildPipeApp
public int build = 901;//Get-RebuildPipeApp
public string appName = "WinGetApprovalPipeline";
public string appTitle = "WinGet Approval Pipeline - Build ";
public static string owner = "microsoft";
Expand Down Expand Up @@ -1177,66 +1177,64 @@ public void PRWatch(bool noNew, string Chromatic = "Default", string LogFile = "
}
table_val.Rows[LastRow].SetField("W", WordFilter);

/*
Version Parameter Check - Removed
A = Auth - Done
M = Major version - Done
R = Review - Done
G = aGreement - Done
F = apps and Features - disabled, needs revision
W = Word filter - Done
I = version number in InstallerUrl - Done
D = Difference between file counts (PR removes files) - disabled, needs revision
V = highest Version remaining - Done
Manifest version in repo - Done

New UEs
154958 "2024.4.1.152"
155049 "5.1.1.188"
155051 "5.1.1.188"
155060 "4.10.1"
155507 "3.2.38.4985"
string to number
155006 ""14""
155193 "7.5.30-Release.5179102"
155266 "c6.76.06"
155353 "1.1.20240415-1"
155354 "1.1.20240415-1"
155593 "v0.7.1"
155642 "v577"
155031 "v576"
*/





if (null != ManifestVersion) {
if ((PRvMan != "N") &&
(!PRTitle.Contains("Automatic deletion")) &&
(!PRTitle.Contains("Delete")) &&
(!PRTitle.Contains("Remove"))) {
/*
bool ANFOld = ManifestEntryCheck(PackageIdentifier, ManifestVersion);
bool ANFCurrent = clip.Contains("AppsAndFeaturesEntries");
if ((ANFOld == true) && (ANFCurrent == false)) {
/*
DisplayName - maybe warn
DisplayVersion - Hard block
Publisher - maybe warn
ProductCode - maybe warn
UpgradeCode - maybe warn
InstallerType - maybe warn
*/

string replyType = "";
int entryType = 0;

foreach (string Entry in AppsAndFeaturesEntriesList) {
if (Entry == "DisplayName") {
} else if (Entry == "DisplayVersion") {
entryType = 1;
} else if (Entry == "Publisher") {
} else if (Entry == "ProductCode") {
} else if (Entry == "UpgradeCode") {
}

bool ANFOld = ManifestEntryCheck(PackageIdentifier, ManifestVersion, Entry);
bool ANFCurrent = clip.Contains(Entry);
if ((ANFOld == true) && (ANFCurrent == false)) {
if (entryType == 1) {
AnF = "-";
ReplyToPR(PR,"AppsAndFeaturesMissing",Submitter,MagicLabels[30]);
AddPRToRecord(PR,"Feedback",PRTitle);
} else if ((ANFOld == false) && (ANFCurrent == true)) {
AnF = "-";
ReplyToPR(PR,"AppsAndFeaturesNew",Submitter,MagicLabels[30]);
//InvokeGitHubPRRequest(PR,"Post","comments","[Policy] Needs-Author-Feedback","Silent")
} else if ((ANFOld == false) && (ANFCurrent == false)) {
AnF = "0";
} else if ((ANFOld == true) && (ANFCurrent == true)) {
AnF = "1";
}
replyType = "AppsAndFeaturesMissing";
} else if ((ANFOld == false) && (ANFCurrent == true)) {
if (entryType == 1) {
AnF = "-";
}
replyType = "AppsAndFeaturesNew";
//InvokeGitHubPRRequest(PR,"Post","comments","[Policy] Needs-Author-Feedback","Silent")
} else if ((ANFOld == false) && (ANFCurrent == false)) {
AnF = "0";
} else if ((ANFOld == true) && (ANFCurrent == true)) {
AnF = "1";
}//end if ANFOld
}//end foreach Entry
if (replyType != "") {
// ReplyToPR(PR,replyType,Submitter,MagicLabels[30]);
// AddPRToRecord(PR,"Feedback",PRTitle);
}
*/
}
}


}//end if PRvMan
}//end if null
table_val.Rows[LastRow].SetField("F", AnF);


Expand Down Expand Up @@ -1275,7 +1273,40 @@ string to number
table_val.Rows[LastRow].SetField("I", InstVer);


/*
Version Parameter Check - Removed
A = Auth - Done
M = Major version - Done
R = Review - Done
G = aGreement - Done
F = apps and Features - Done in an inefficient fashion that really should be rewritten soon.
W = Word filter - Done
I = version number in InstallerUrl - Done
D = Difference between file counts (PR removes files) - disabled, needs revision
V = highest Version remaining - Done
Manifest version in repo - Done
New UEs
154958 "2024.4.1.152"
155049 "5.1.1.188"
155051 "5.1.1.188"
155060 "4.10.1"
155507 "3.2.38.4985"
156171 (YamlValue)
155850
string to number
155006 ""14""
155193 "7.5.30-Release.5179102"
155266 "c6.76.06"
155353 "1.1.20240415-1"
155354 "1.1.20240415-1"
155593 "v0.7.1"
155642 "v577"
155031 "v576"
155918 "v0.8.0-alpha1"
156200 "V0"
*/


if ((PRvMan != "N") &&
Expand Down Expand Up @@ -1826,7 +1857,8 @@ public dynamic SearchGitHub(string Preset, int Page = 1,int Days = 0,bool IEDS =
Url += Set2; //Blocking + Common + Review1 + Review2;
Url += Workable;
} else if (Preset == "Defender") {
Url += Defender;
Url += Defender;
Url += "sort:updated-asc+";
} else if (Preset == "IEDS") {
Url += IEDSLabel;
Url += string_nBI;
Expand Down Expand Up @@ -2993,10 +3025,10 @@ public void SingleFileAutomation(int PR) {//Put installer.yaml on your clipboard
string clip = Clipboard.GetText();
string PackageIdentifier = YamlValue("PackageIdentifier",clip);
string version = YamlValue("PackageVersion",clip).Replace("'","").Replace("\"","");
string[] listing = ManifestListing(PackageIdentifier);
List<string> listing = ManifestListing(PackageIdentifier);
int VM = ManifestFile(PR);

for (int file = 0; file < listing.Length;file++) {
for (int file = 0; file < listing.Count;file++) {
clip = FileFromGitHub(PackageIdentifier,version,listing[file]);
ManifestFile(PR, "", "", "", VM,clip);
}
Expand Down Expand Up @@ -3068,51 +3100,53 @@ public void ManifestAutomation(int VM = 0, int PR =0, string Arch = "", string
return VM;
}

public string[] ManifestListing(string PackageIdentifier,bool Versions = false){
public List<string> ManifestListing(string PackageIdentifier){
List<string> string_out = null;
try{
string FirstLetter = PackageIdentifier.ToLower()[0].ToString();
string Path = PackageIdentifier.Replace(".","/");
string Version = FindWinGetVersion(PackageIdentifier);
string Uri = GitHubApiBaseUrl+"/contents/manifests/"+FirstLetter+"/"+Path+"/"+Version+"/";
if (Versions) {
Uri = GitHubApiBaseUrl+"/contents/manifests/"+FirstLetter+"/"+Path+"/";
}
string[] string_out = null;
try{
string_out = FromJson(InvokeGitHubRequest(Uri))["name"];
string_out = FromJson(InvokeGitHubRequest(Uri));
int n = 0;
foreach (dynamic line in string_out) {
string_out[n] = line["name"];
string_out[n] = string_out[n];
n++;
}
} catch {
string_out[0] = "Error";
string_out.Add("Error");
}
string_out = string.Join("\n",string_out).Replace(PackageIdentifier+".","").Split('\n');
return string_out;
}

public string ListingDiff(string string_PRManifest){
string PackageIdentifier = YamlValue("PackageIdentifier", string_PRManifest.Replace("\"",""));

//Get the lines from the PR manifest containing the filenames.
string[] split_PRManifest = string_PRManifest.Split('\n')
string[] array_PRManifest = string_PRManifest.Split('\n')
.Where(n => n.Contains(".yaml"))
.Where(n => n.Contains(PackageIdentifier)).ToArray();
//Go through these and snip the PackageIdentifier.
for (int i = 0; i < split_PRManifest.Length; i++) {
string[] mid_array = split_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/');
split_PRManifest[i] = split_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/')[mid_array.Length];
//Go through these and snip the PackageIdentifier, split on slashes, and get the last one.
for (int i = 0; i < array_PRManifest.Length; i++) {
string[] swap_array = array_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/');
array_PRManifest[i] = array_PRManifest[i].Replace(PackageIdentifier+".", "").Split('/')[swap_array.Length];
}

string returnables = "";
if (split_PRManifest.Length > 2){//If there are more than 2 files, so a full multi-part manifest and not just updating ReleaseNotes or ReleaseDate, etc. The other checks for this logic (not deletion PR,etc) are in the main Approval Watch method, so maybe this should join them.
string difference = "";
if (array_PRManifest.Length > 2){//If there are more than 2 files, so a full multi-part manifest and not just updating ReleaseNotes or ReleaseDate, etc. The other checks for this logic (not deletion PR,etc) are in the main Approval Watch method, so maybe this should join them.
string CurrentManifest = string.Join("\n",ManifestListing(PackageIdentifier));
//Gather the lines from the newest manifest in repo. Counterpart to the above section.
if (CurrentManifest == "Error") {
//If CurrentManifest didn't get any results, (no newest manifest = New package) compare that error with the file list in the PR.
//returnables = diff CurrentManifest split_PRManifest;
// difference = diff CurrentManifest array_PRManifest.Length;
//Need to rebuild in absence of Compare-Object.
} else {
//But if CurrentManifest did return something, return that.
returnables = CurrentManifest;
difference = CurrentManifest;
}
}
return returnables;
return difference;
}

public string OSFromVersion(string version) {
Expand Down Expand Up @@ -4863,9 +4897,9 @@ public void Testing_Action(object sender, EventArgs e) {

public void Testing2_Action(object sender, EventArgs e) {
string UserInput = inputBox_User.Text;
int versions = FindWinGetTotalVersions(UserInput);
List<string> versions = ManifestListing(UserInput);
// dynamic line = FromCsv(GetContent(DataFileName)).Where(n => (string)n["PackageIdentifier"] == (UserInput));
outBox_msg.AppendText(Environment.NewLine + "Testing2: " + versions);
outBox_msg.AppendText(Environment.NewLine + "Testing2: " + ToJson(versions));
}// end Testing_Action


Expand Down Expand Up @@ -5013,6 +5047,15 @@ public void Idle_Action(object sender, EventArgs e) {
"downloadarchive.documentfoundation.org"
};

public string[] AppsAndFeaturesEntriesList = {
"DisplayName",
"DisplayVersion",
"Publisher",
"ProductCode",
"UpgradeCode",
"InstallerType"
};

public string[] CountrySet = {
"Default", "Warm", "Cool", "Random", "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antigua And Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia And Herzegovina", "Botswana", "Bouvet Island", "Brazil", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cabo Verde", "Cambodia", "Cameroon", "Canada", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Curacao", "Cyprus", "Czechia", "Cöte D'Ivoire", "Democratic Republic Of The Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Eswatini", "Ethiopia", "Fiji", "Finland", "France", "French Polynesia", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Holy See (Vatican City State)", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "North Macedonia", "Norway", "Oman", "Pakistan", "Palau", "Palestine", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Qatar", "Republic Of The Congo", "Romania", "Russian Federation", "Rwanda", "Saint Kitts And Nevis", "Saint Lucia", "Saint Vincent And The Grenadines", "Samoa", "San Marino", "Sao Tome And Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Korea", "South Sudan", "Spain", "Sri Lanka", "Sudan", "Suriname", "Sweden", "Switzerland", "Syrian Arab Republic", "Tajikistan", "Tanzania", " United Republic Of", "Thailand", "Togo", "Tonga", "Trinidad And Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe", "Åland Islands"
};
Expand Down
Loading

0 comments on commit b8147b4

Please sign in to comment.