Attribute the Enhanced Inspector payload to the holders its upstreams name - #558
Open
jgfoster wants to merge 3 commits into
Open
Attribute the Enhanced Inspector payload to the holders its upstreams name#558jgfoster wants to merge 3 commits into
jgfoster wants to merge 3 commits into
Conversation
… name The seven .gs files under resources/enhancedInspector/ ship verbatim in the VSIX, but THIRD-PARTY.md and NOTICE covered only the AST-Core component, and each file's header just pointed readers at "LICENSE in the origin repository". Checking each origin repo's LICENSE individually, as issue #453 asked, turned up more than a missing section: the holder strings in those headers matched no upstream. gtoolkit-remote's LICENSE names Juraj Kubelka, not feenk; the feenk repos say "feenk", not "feenk gmbh"; RemoteServiceReplication says "GemTalk Systems", not "GemTalk Systems, Inc". Two files are not feenk's work at all -- gt4gemstone's scripts/convertRsrToGsFormat.topaz exports GemTalk/Announcements into its own src-gs/, and src-gs/STON.gs carries STON-Core/STON-GemStone-Kernel, whose lineage is svenvc/ston with the GemStone port in GemTalk/Rowan. So: a THIRD-PARTY.md section with per-file provenance and the full MIT notice under all seven copyright lines (the permission and warranty text is word-for- word identical across every upstream LICENSE, so it is reproduced once), a matching NOTICE entry, and a corrected attribution table in apply_jasper_transforms.sh. That table only ever ran when a file had no header yet, so correcting it would not have reached the committed payload. It now regenerates the header block instead, refusing to rewrite a file whose sentinel is present but whose closing rule is missing rather than stripping it to nothing. Re-running reproduces the committed payload byte for byte, and the file bodies are untouched. Fixes #453 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.
Fixes #453.
resources/enhancedInspector/*.gs— seven files, all third-party — ship verbatim in the VSIX, butTHIRD-PARTY.mdandNOTICEcovered only AST-Core, and each file's header pointed readers at "LICENSE in the origin repository" instead of carrying a notice.The issue asked for a careful pass over each origin repo's
LICENSErather than a uniform table, and that pass turned up more than a missing section.What the upstream LICENSE files actually say
LICENSEcopyright linegt4gemstone.gs,patch-gemstone.gsCopyright (c) 2021 feenkgtoolkit-remote.gsCopyright (c) 2019 Juraj Kubelkagtoolkit-wireencoding.gsCopyright (c) 2024 feenkRemoteServiceReplication.gsCopyright (c) 2017-2024 GemTalk SystemsAnnouncements.gsCopyright (c) 2020-2021 GemTalk SystemsSTON.gsCopyright (C) 2012 Sven Van Caekenberghe/Copyright (c) 2018 Dale HenrichsEvery header we ship named a holder that appears in no upstream
LICENSE:feenk gmbh(upstream saysfeenk),GemTalk Systems, Inc(upstream saysGemTalk Systems), andfeenk gmbhforgtoolkit-remote, which is licensed by an individual.Two files are not feenk's work at all.
gt4gemstone'sscripts/convertRsrToGsFormat.topazexportsGemTalk/AnnouncementsandGemTalk/RemoteServiceReplicationinto gt4gemstone's ownsrc-gs/— sosrc-gs/Announcements.gsis GemTalk's code, and its packages (Announcements-Core-GemStone,Announcements-Core-GemStone-Test,Announcements-Extensions-GemStone) match that repo'ssrc/exactly.src-gs/STON.gscarriesSTON-CoreandSTON-GemStone-Kernel; theSTONclass comment is byte-identical to svenvc/ston's, and those two package names are the ones inGemTalk/Rowanatplatforms/gemstone/projects/STON/src/.Changes
THIRD-PARTY.md— a new section modelled on the AST-Core one (What / Where / Obtained via / Modifications / License), plus the per-file provenance table and the full MIT notice under all seven copyright lines. I verified the permission-and-warranty text is word-for-word identical in all sevenLICENSEfiles (they differ only in the copyright line, the presence of anMIT Licensetitle, and line wrapping), so it is reproduced once with that stated, rather than seven near-identical times.NOTICE— a matching bullet listing all seven holders.apply_jasper_transforms.sh— corrected attribution table; headers now carry anUpstream:line where the copied-from repo is not the copyright holder's, the holder as itsLICENSEwrites it, and a pointer toTHIRD-PARTY.md/NOTICE(both of which ship in the VSIX).resources/enhancedInspector/*.gs— regenerated headers. Bodies are untouched (verified by diffing header-stripped files).The old code only prepended a header when the sentinel was absent, so correcting the table would never have reached the committed payload. It now regenerates the header block, and refuses to rewrite a file whose sentinel is present but whose closing rule is missing rather than stripping it to nothing.
Verification
npm run lint && npm run format:check && npm run compile && npm testall pass (7294 + 322 + 92 tests). Re-runningapply_jasper_transforms.shreproduces the committed payload byte for byte, twice; the malformed-header guard was exercised on a copy and left the file untouched.apply_jasper_transforms.shis broken on macOS (#429, unrelated and left alone), so I ran it through ased -ishim to produce these bytes; on Linux the script itself produces them.For review
Two calls a human should sign off on, since this is a license file:
Also worth noting: unlike AST-Core (which pins RowanV3 3.7.5, build
cf61017e), this payload records no upstream revision — the.gsfiles came from whatever was in the maintainer's$ROWAN_PROJECTS_HOMEat the time. Provenance here is repo-level only.THIRD-PARTY.mdsays so and suggests recording per-file commits on the next re-vendor; that is out of scope here.🤖 Generated with Claude Code