Repository navigation
Conversation
- TempManager: fall back to Path.GetTempPath() when TEMP is not set, fixing out-of-the-box crashes on Linux/macOS - Add publish_linux.sh to build single-file Linux binaries (x64/arm64) - README, README.es.md: dependencies, Windows 10 support lifecycle (EOL 2025-10-14, consumer ESU until 2027-10-12, commercial ESU to Oct 2028) and Windows Update root certificate rotation warning (May 17 / June 19, 2027) for Win7-Win10 without ESU - Add technical guides: docs/TECHNICAL_GUIDE.md, docs/GUIA_TECNICA.md - Bump version to 3.2.0.0
- get-builds/BuildFetcher: Beta & Release Preview now use ge_release (GE), Dev/Canary use rs_prerelease; add Windows 11 retail entries (NI/GE). - Remove misleading 'Insider Slow/Fast (RS2)' presets: Windows 10 1703 (rs2_release) and older are no longer served; oldest available is 1709. - Retry get-builds once when the servers return an empty set (rate limiting). - README/ES + technical guides: corrected channel/branch table, note that 1703 is retired and that the official Insider ISO page now only offers Win11.
- request-download: retry once when the servers return an empty set, so a valid Beta/insider request no longer spuriously fails with 'No updates found'. - get-builds: add 'Beta (Windows 10)' preset (still served, latest 22H2). - README/ES + technical guides: document Windows 10 Beta (10.0.19045.6396), the request-download retry and the current Windows 11 Beta build. - package_release.sh: reproducible release zip (linux-x64, linux-arm64, win-x64 + docs). Bump version to 3.2.1.0.
- package_release.sh / publish_linux.sh: '--self-contained false' was being ignored and produced 75 MB self-contained binaries; set -p:SelfContained=true explicitly so the intent is clear. - README/ES: the published binaries are self-contained, so no .NET runtime is required (only the bundled libwim.so).
Windows 10 22H2 reached end of support on 2025-10-14, so the monthly updates released afterwards are only offered to devices enrolled in the ESU programme. Add a new `-u/--esu` option to `request-download` and a `Retail (Windows 10 ESU)` preset to `get-builds` that report the ESU eligibility attributes in the CTAC DeviceAttributes, making the servers hand out the ESU build (e.g. 10.0.19045.7727) for x86, amd64 and arm64. - CTAC: new `IsEsu` flag appends Win10ConsumerESUStatus/ESUAY and the commercial ESU eligibility attributes to DeviceAttributes. - UUPDownload: `-u/--esu`, wired through ParseDownloadOptions. - RingCheck/BuildFetcher: new "Retail (Windows 10 ESU)" preset. - Docs (EN/ES): branch-table row, note and verification entry. - Version bump to 3.2.2.0.
- publish_win_x86.cmd: 32-bit build mirroring publish_win_x64.cmd. - publish_win_legacy.cmd: builds x86+x64 for Windows 7 SP1 / 8 / 8.1 by targeting net6.0 (the last .NET runtime that runs on Windows 7 SP1), self-contained single-file executables. - Directory.Build.props: add UUPMediaTargetFramework property (defaults to net10.0) and use it as TargetFramework in every CLI-dependency project, so the default build is unchanged but the legacy build can select net6.0. - Cross-target compatibility shims so the code also compiles on net6.0: IntPtr <-> long/char casts, new(-1) for IntPtr, .AsEnumerable().Reverse() for arrays, and a #if NET7_0_OR_GREATER guard for [GeneratedRegex]. - Document the Windows publish scripts and the legacy build (EN/ES README and technical guides).
- Bump version to 3.2.3.0. - package_release.sh now also publishes win-x86 and the legacy (.NET 6) win-legacy-x64 / win-legacy-x86 self-contained executables.
- Bump setup-dotnet to 10.0.x and build via 'dotnet msbuild' so the SDK used matches the installed one (drops the desktop setup-msbuild step, which can lag behind and fail to resolve net10.0). - Rebuild the RID matrix as explicit entries and add the legacy Windows 7 targets win-legacy-x86/win-legacy-x64 (UUPMediaTargetFramework=net6.0, LangVersion=latest), mirroring publish_win_legacy.cmd. - Add osx-arm64 to RuntimeIdentifiers of both CLI apps so the declared RIDs match the CI matrix. - Publish with SelfContained/PublishSingleFile/PublishTrimmed and upload per-variant binary and symbol artifacts.
Windows scripts - Add a generic publish.cmd <rid> [tfm] helper and turn every publish_win_*.cmd / publish_linux_x64.cmd into a thin wrapper. - The scripts now pushd to their own directory, quote every path (so they survive spaces in the path), validate the RID, and abort on the first error. - Use "dotnet msbuild" instead of desktop MSBuild: only the .NET SDK is required (no Visual Studio), and the whole .sln (with its Windows-only projects) is no longer touched. Release packaging (package_release.sh) - Ship win-arm64, osx-x64 and osx-arm64 in addition to the existing RIDs. - Split the legacy (.NET 6, Windows 7 SP1+) binaries into their own archive and write checksums.txt (SHA-256). - Check for the required tools (dotnet, zip, unzip, sha256sum) and use "zip -X". CI - Build on .NET 10 with native runners per platform, a pinned SDK (global.json), NuGet caching, per-target timeouts and a concurrency group. - Pin the GitHub actions to commit SHAs. - Add a job that builds the full solution (Windows-only dev tools) and a tag-driven job that assembles and publishes the release archives. Misc - Force CRLF for *.cmd / *.bat in .gitattributes. - Add CHANGELOG.md and global.json. Version bumped to 3.2.4.0.
The full solution cannot build on GitHub-hosted runners: CsWinRT fails with "Could not read the Windows SDK's Platform.xml" for Windows.Internal.Flighting (and Playground, which depends on it), because the runner lacks the Windows 10 SDK UAP platform. Cabinet and CompDB are already compiled as dependencies of the CLIs, so build the Windows-only UUPSort tool (which exercises the net10.0-windows TFM) and document the exclusion.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Windows publish scripts hardened, package all RIDs (.NET 10 + legacy .NET 6), and bump version to 3.2.4.0.
Changes
publish.cmd <rid> [tfm]helper,pushd/quoted paths, RID validation, abort-on-error, only .NET SDK needed.package_release.shwith all 9 RIDs, legacy split archive,checksums.txt(SHA-256).global.json), NuGet caching, per-target timeouts, SHA-pinned actions, Windows‑onlyUUPSortjob, tag‑driven release job..gitattributesCRLF for*.cmd/*.bat,CHANGELOG.md,global.json, docs (EN/ES) updated, version bumped to 3.2.4.0.Verification
v3.2.4.0published with 3 assets (zip, legacy zip, checksums).cmdscripts smoke‑tested under Wine