Merge anthelion changes into devicie fork#27
Draft
Tom Plant (pl4nty) wants to merge 32 commits into
Draft
Conversation
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
GitHub keeps branch PR history stored even if the branch was deleted. This results in PRs which reuse the same branch name as other PRs being incorrectly deleted due to the currently open one being pushed of by pagination. This changes the query to explicitly fetch closed and merged PRs to avoid this. I also updated the query to sort descending to fix `komac clean` displaying an old PR due to the same problem.
…tall location scope
This models successful NSISdl download calls and mocked Execute exit codes so NSIS analysis can continue past prerequisite installers.
Integrate 31 upstream commits from unpn-org/Komac (anthelion branch) alongside the existing devicie changes. Key conflict resolutions: - CI workflows (audit/build/release): kept devicie's versions (anthelion had deleted them). - serde: kept devicie's serde_yaml + serini stack; reverted anthelion's serde-saphyr usage in the shared files while preserving their other changes (retry middleware, font support, changed signatures). - winget-types: switched the [patch.crates-io] source to anthelion's fork (UnownPlain/winget-types, anthelion branch) with features [serde, std, chrono] and no serde-saphyr, because anthelion's code requires API only that fork provides (Velopack/Squirrel installer types, LanguageTag accessors, ValidFileExtensions). komac still uses serde_yaml. devicie's own winget-types fork carried no meaningful custom code (a one-line Cargo.toml tweak plus two upstream PRs). - github owner/repo: adopted anthelion's configurable EnvStr system but kept devicie's pl4nty/winget-extras as the defaults. - get_versions/get_manifests/get_existing_pull_request/PackagePath: threaded anthelion's new font parameters through devicie call sites. - update_version: preserved devicie's optional package_version + PE ProductVersion inference flow; grafted in anthelion's font handling and locale normalization. - Adapted devicie's installer analyzers (installshield/qt return codes, autoupdate strategies) to anthelion fork's winget-types API. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAsaSyfFuR5pcV43kApw5x
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
Integrates the latest anthelion changes (unpn-org/Komac
anthelion) into the devicie fork, alongside our existing changes. This merges 31 upstream anthelion commits via a real merge commit (two parents), so the integration history is preserved and future anthelion pulls stay low-effort.This is a merge commit; the diff shown is exactly the anthelion delta layered on top of our fork.
Pulling anthelion in future (the repeatable part)
rerererecorded all 17 conflict resolutions from this merge, so future merges auto-replay them and you only resolve genuinely new divergence.Changes
Conflict resolutions (kept both sides' features where possible):
audit/build/release): kept our versions (anthelion had deleted them). The four upstream workflows we never modified (renovate,vhs,update-graphql-schema,update-inno-dependencies) follow anthelion's deletion.serde_yaml+serinistack; reverted anthelion'sserde-saphyrusage in the shared files while preserving their other changes in those files (retry middleware,fontsupport, changed signatures).EnvStrsystem (env-var overridable) but kept ourpl4nty/winget-extrasas the defaults.update_version: preserved our optionalpackage_version+ PEProductVersioninference flow; grafted in anthelion'sfonthandling and locale normalization.zip/downloader/prompts/etc.: unioned features (e.g. our lowest-level-exe selection + anthelion'slowercase_extension; our CI prompt suppression + anthelion's list-prompt refactor).fontparameters through ourget_versions/get_manifests/get_existing_pull_request/PackagePathcall sites.winget-types (decision worth reviewing):
[patch.crates-io]source to anthelion's fork (UnownPlain/winget-types,anthelionbranch) with features[serde, std, chrono]and noserde-saphyr— komac still usesserde_yaml.InstallerType::Velopack/Squirrel,LanguageTagaccessors,ValidFileExtensions), which even upstream 0.4.3 lacks. Our owndevicie/winget-typesfork carried no meaningful custom code (a one-line Cargo.toml tweak plus two upstream PRs), so nothing significant is lost. Adapted our installer analyzers (installshield/qt return codes, autoupdate strategies) to this fork's API. The now-unusedvendor/winget-typessubmodule remains in-tree and can be removed in a follow-up.Verification
cargo check --bin komacpasses (Rust 1.95, the repo MSRV).cargo clippy --bin komacwithRUSTFLAGS="-D warnings"passes (fixed a redundant-closure and an unfulfilled#[expect]introduced by the merge).Follow-ups / notes
publish_dry_run/release.yml) with a git-patchedwinget-typesneeds consideration —cargo publishignores[patch]and would resolve the unpublished API against crates.io0.4.3. This tension predates this merge (our vendored patch had the same property).vendor/winget-typessubmodule is now unused and can be dropped.🤖 Generated with Claude Code
https://claude.ai/code/session_01LAsaSyfFuR5pcV43kApw5x
Generated by Claude Code