Let a payload-free redistributable track its upstream - #1
Merged
Conversation
Source.Mode 'none' was effectively static. Resolve-RedistributablePayload
answered from LastKnownVersion and only fell back to source.ps1 when that was
empty, so check-upstream compared the value against itself, computed
changed=false forever, and never opened a pull request. A redistributable using
it looked healthy while tracking nothing.
Two additions, both confined to the 'none' branch so the two shipped
redistributables -- both 'download' mode -- are untouched:
- -CheckOnly now runs source.ps1 when it exists, mirroring 'download'.
LastKnownVersion is what a build pins to, and a build should stay offline
and deterministic; it has no business answering the upstream check.
- -RefreshReference lets source.ps1 repopulate the repository's Reference/
directory. When there is no payload, the upstream config still has to come
from somewhere, and unlike a payload it is a committed artefact: it is the
only input the option schema has, so the upstream-update pull request has
to carry it. check-upstream passes the switch and adds Reference/** to its
add-paths.
PayloadPath stays null in every 'none' path, and Invoke-RedistributableBuild
never passes -RefreshReference, so a build still cannot acquire files it is not
allowed to publish. That is structural rather than a matter of care, which
matters when the mode exists precisely because a license forbids bundling.
Also corrects the ChoiceCommentPattern doc comment. It cited dgVoodoo.conf as
the motivating example, but dgVoodoo documents a whole section in one block
above a blank line, and the blank-line rule drops it -- the pattern reads none
of that file. Point at ConfigFormat 'custom' for that shape instead.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Adds dgVoodoo2 to the library, and fixes the two things that stopped it working.
Source.Mode: nonewas effectively staticResolve-RedistributablePayloadanswered fromLastKnownVersionand only fell back tosource.ps1when that was empty, socheck-upstreamcompared the value against itself, computedchanged=falseforever, and never opened a pull request. A redistributable using the mode looked healthy while tracking nothing.Two additions, both confined to the
nonebranch — OpenALSoft and UmuLauncher aredownloadmode and are untouched:-CheckOnlynow runssource.ps1when it exists, mirroringdownload.LastKnownVersionis what a build pins to, and a build should stay offline and deterministic; it has no business answering the upstream check.-RefreshReferenceletssource.ps1repopulate the repository'sReference/directory. With no payload the upstream config still has to come from somewhere, and unlike a payload it is a committed artefact — it is the only input the option schema has, so the upstream-update PR has to carry it.check-upstreampasses the switch and addsReference/**to itsadd-paths.PayloadPathstays null in everynonepath andInvoke-RedistributableBuildnever passes-RefreshReference, so a build still cannot acquire files it is not allowed to publish. That is structural rather than a matter of care, which matters when the mode exists precisely because a licence forbids bundling.Verified:
-CheckOnlyreturns2.87.3from upstream while a build of the same repo withLastKnownVersion: "0.0.0-stale"returns0.0.0-stale.ChoiceCommentPatterndoc correctionThe comment in
Ini.ps1citeddgVoodoo.confas the motivating example, but dgVoodoo documents a whole section in one block above a blank line, and the blank-line rule drops it — the pattern reads none of that file. Points atConfigFormat: customfor that shape instead.dgVoodoo2
Registered as a submodule. Published at LANCommander.Redistributables.dgVoodoo2, release v2.87.3. The
.lcxcontains scripts and a schema and noArchives/entry, because dgVoodoo's licence forbids bundling it inside a launcher.95/95 hub tests pass; OpenALSoft and UmuLauncher both still build
-Strict.🤖 Generated with Claude Code