92 lines
4.1 KiB
Markdown
92 lines
4.1 KiB
Markdown
# Task: Fix OpenMAIC frozen lockfile build
|
|
|
|
## Identity
|
|
|
|
- Task ID: 20260818-learning-lockfile-9d2a
|
|
- Mode: Feature
|
|
- Branch: main
|
|
- Worktree: D:\Datas\OthersProjects\openmaic
|
|
- Base commit: 0b4c45d696942c986c622ea3f3975740fbfe18a7
|
|
- Owner: developer
|
|
- Status: Ready for integration
|
|
|
|
## Scope
|
|
|
|
- Synchronize `OpenMAIC/pnpm-lock.yaml` with the current workspace manifests so
|
|
`packages/@makelore/learning-contracts` is 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.0` and 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.2` postinstall 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-contracts` importer to
|
|
`OpenMAIC/pnpm-lock.yaml` with 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 `main` as `e1a0a14` (`fix: sync learning contracts
|
|
lockfile`).
|
|
- Updated `OpenMAIC/Dockerfile` to set `ONNXRUNTIME_NODE_INSTALL=skip` in 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-scripts` passed with pnpm 10.28.0.
|
|
- `pnpm --filter @makelore/learning-contracts test` passed: 1 file, 3 tests.
|
|
- `git diff --check` passed; 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-node` install script exited 0 with
|
|
`ONNXRUNTIME_NODE_INSTALL=skip`; bundled Windows and Linux CPU binding files
|
|
were present.
|
|
- Full Windows `pnpm install --frozen-lockfile` reached the existing postinstall
|
|
chain and failed because `rm` is unavailable on Windows; the Dockerfile runs
|
|
this chain inside Linux Alpine, so this is not the reported Jenkins failure.
|
|
- Local Docker `deps` validation remains unavailable because the Docker Desktop
|
|
Linux engine is not running (`dockerDesktopLinuxEngine` pipe missing).
|
|
|
|
## Follow-ups
|
|
|
|
- Commit and push the lockfile and Dockerfile changes, then rerun the Jenkins
|
|
Docker build.
|
|
- Local push to `origin/main` was blocked because this environment has no
|
|
authenticated Git credential/TTY; rerun `git push origin main` from an
|
|
authenticated terminal.
|
|
- If a Windows-native install is required, separately replace Unix-only `rm`
|
|
usage 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.2` postinstall, which
|
|
assumed CUDA 12 and rejected an HTTP 302 from the NuGet feed.
|
|
- `OpenMAIC/Dockerfile` now defaults `ONNXRUNTIME_NODE_INSTALL=skip` in the
|
|
dependency stage. The package ships the CPU runtime; GPU builds can opt in
|
|
with `--build-arg ONNXRUNTIME_NODE_INSTALL=cuda12` after fixing NuGet access.
|
|
- The install script exited 0 with `ONNXRUNTIME_NODE_INSTALL=skip` locally 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.
|