4.1 KiB
4.1 KiB
Task: Fix OpenMAIC frozen lockfile build
Identity
- Task ID: 20260818-learning-lockfile-9d2a
- Mode: Feature
- Branch: main
- Worktree: D:\Datas\OthersProjects\openmaic
- Base commit:
0b4c45d696 - Owner: developer
- Status: Ready for integration
Scope
- Synchronize
OpenMAIC/pnpm-lock.yamlwith the current workspace manifests sopackages/@makelore/learning-contractsis represented and Docker's frozen install can pass. - Make the CPU ACK image resilient to
onnxruntime-node's unnecessary CUDA postinstall download while keeping the frozen-lockfile policy. - Verify the lockfile and the supported CPU install-script path with pnpm
10.28.0and the repository's pinned Node runtime.
Intent And Constraints
- The first failure was a dependency metadata mismatch: the learning contracts package was added after the lockfile was last generated.
- The follow-up failure is an
onnxruntime-node@1.23.2postinstall request for CUDA 12 metadata; the Jenkins proxy returned HTTP 302 while the script only accepts HTTP 200. - Use the package-manager version pinned by the Dockerfile (
pnpm@10.28.0) when regenerating the lockfile. - Preserve the user's known
.project-docs/adoption and avoid unrelated workspace changes.
Outcome
- Added the missing
packages/@makelore/learning-contractsimporter toOpenMAIC/pnpm-lock.yamlwith the existing resolved TypeScript and Vitest entries. No unrelated pnpm 10.28 reserialization changes were retained. - The original Dockerfile policy remains
pnpm install --frozen-lockfile. - Committed locally on
mainase1a0a14(fix: sync learning contracts lockfile). - Updated
OpenMAIC/Dockerfileto setONNXRUNTIME_NODE_INSTALL=skipin the dependency stage. The package's CPU runtime remains bundled; CUDA download is now an explicit opt-in and requires a CUDA-capable runner image.
Verification
pnpm install --frozen-lockfile --ignore-scriptspassed with pnpm 10.28.0.pnpm --filter @makelore/learning-contracts testpassed: 1 file, 3 tests.git diff --checkpassed; lockfile diff is limited to 9 importer lines.- Read-only final review returned
PASS; the importer matches the manifest and existing lockfile peer snapshot, with no Dockerfile or application-code changes. - The
onnxruntime-nodeinstall script exited 0 withONNXRUNTIME_NODE_INSTALL=skip; bundled Windows and Linux CPU binding files were present. - Full Windows
pnpm install --frozen-lockfilereached the existing postinstall chain and failed becausermis unavailable on Windows; the Dockerfile runs this chain inside Linux Alpine, so this is not the reported Jenkins failure. - Local Docker
depsvalidation remains unavailable because the Docker Desktop Linux engine is not running (dockerDesktopLinuxEnginepipe missing).
Follow-ups
- Commit and push the lockfile and Dockerfile changes, then rerun the Jenkins Docker build.
- Local push to
origin/mainwas blocked because this environment has no authenticated Git credential/TTY; rerungit push origin mainfrom an authenticated terminal. - If a Windows-native install is required, separately replace Unix-only
rmusage in package build scripts; that is outside this lockfile fix. - The task-aware doc-drift check is blocked by the pre-existing adopted
untracked
.project-docs/template tree; no task-specific shared-doc writes were made.
Follow-up: ONNX Runtime postinstall
- The Linux Docker build reached
onnxruntime-node@1.23.2postinstall, which assumed CUDA 12 and rejected an HTTP 302 from the NuGet feed. OpenMAIC/Dockerfilenow defaultsONNXRUNTIME_NODE_INSTALL=skipin the dependency stage. The package ships the CPU runtime; GPU builds can opt in with--build-arg ONNXRUNTIME_NODE_INSTALL=cuda12after fixing NuGet access.- The install script exited 0 with
ONNXRUNTIME_NODE_INSTALL=skiplocally and both bundled CPU runtime paths were present. - The CUDA override was not exercised end to end. Use it only with a working NuGet/proxy path and a runner image that supplies the CUDA runtime.
Promotion Candidates
- None recorded.