Repository navigation
fix(video2code): publish dependency cache portably - #90
Open
Ricardo-M-L wants to merge 1 commit into
Open
Ricardo-M-L wants to merge 1 commit into
Ricardo-M-L wants to merge 1 commit into
Conversation
Collaborator
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
This branch has not been deployed
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.
Plugin type (required) / 插件类型(必填)
Affected plugin name(s) / 涉及的插件名称:
video2code(Standard plugin)What / 改动内容
The dependency-cache bootstrapper used GNU-only
md5sumandmv -T. On a stock macOS/BSD environment, that could fail to publish the cache while the ignoredmverror still let--prepare-onlyprint a false success. Concurrent initializations also needed a portable first-writer-wins publication boundary. Separately, thenpm install | tailpipeline did not enablepipefail, so a failed delta install could publish a cloned, stale cache that still contained.bin/vite.This change:
md5sumto BSDmd5 -q;mv -Twith an atomic, portablemkdirpublication lock and same-filesystem rename;pipefailaround the npm pipeline so failed installs cannot be published;video2codefrom0.6.0to0.6.1in both manifests andmarketplace.json.No new dependency, network request, permission, or third-party material is introduced. Existing npm network access and cache writes remain documented.
Open PR #47 changes Python launcher resolution in the same plugin but does not overlap this cache path. It also currently reserves version
0.6.1; whichever PR lands second will need to rebase and use the next free plugin version.Validation
python3 -m unittest plugins/video2code/tests/test_node_modules_cache.py -v— 3 passed.bash -n plugins/video2code/skills/web-replicate/scripts/relink-node-modules.sh— passed.shellcheck— no new warning; only the pre-existing SC2012 informational finding remains.pnpm install --frozen-lockfile— passed.pnpm build— passed with Node.js 24.20.0.pnpm test— passed (31 root TypeScript tests and all UI-plugin suites).python3 scripts/validate.py— 34 plugins validated.python3 scripts/build_dist.py— 34 artifacts and 292 assets built.git diff --check— passed.python3 -m unittest discover -s tests— 125 tests run, 19 skipped, with one expected failure in the unchanged maintainer-ownedtests/test_video2code_plugin.py: it hard-codes the previously published version0.6.0. Contribution policy keeps this PR scoped to the plugin and marketplace rather than modifying root tests. PR fix(video2code): resolve Python across platforms #47 documents the same version-fixture mismatch.The bootstrapper behavior was exercised directly with controlled concurrent subprocesses; a full ZCode desktop session was not available.
Self-check / 自查清单
external_plugins/<name>/; existing fixes retain ownership / 插件名唯一且 kebab-case,外部新增插件位于external_plugins/<name>/,已有插件修复保留原归属categoryis set independently of publisher ownership / 用途分类category已填写,与维护归属分开versionbumped in BOTHplugin.jsonandmarketplace.json(artifacts are immutable) /plugin.json与marketplace.json两处版本号已同步升级(制品不可变)README.md(EN) andREADME_CN.md(中文) both updated and equivalent / 中英文 README 均已更新且语义一致description_i18nhas bothenandzh-CN/description_i18n包含en与zh-CNpython3 scripts/validate.pyandpython3 scripts/build_dist.pypass locally / 本地校验与构建均通过