Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/react-compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
mv "${tarballs[0]}" constructorio-ui-components.tgz
- name: Install fixture deps
working-directory: test/react-compat/${{ matrix.react-major }}
run: npm ci --no-audit --no-fund
run: npm install --no-audit --no-fund --package-lock=false

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important Issue: Switching to npm install --package-lock=false resolves the immediate npm ci failure, but it fully bypasses lock-file pinning for all transitive dependencies (not just the local tarball). This means every CI run resolves the latest versions of all deps from the registry, which can introduce silent breakages from transitive dependency upgrades.

A more precise fix would be to use npm install --no-audit --no-fund (without --package-lock=false) and ensure the fixture package-lock.json files do not commit a resolved entry for the local tarball path. Alternatively, you can keep --package-lock=false but add a --prefer-offline flag and a caching step so at least the registry packages are stable between runs.

If the intent is specifically to avoid npm ci failing due to the regenerated tarball hash, consider using npm ci --ignore-scripts combined with a separate npm install <local-tarball> step, or patching the lock file before running npm ci (e.g., npm install --package-lock-only to regenerate the lock file before npm ci).

The current change is pragmatic and unblocks CI, but the lack of lock-file enforcement for transitive deps reduces reproducibility for a test matrix that exists specifically to catch subtle compatibility issues.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. But this is not an issue here cause we are using exact versions of a libraries so everything will be fine

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm install still reads the lock file and enforces its integrity hashes. So it fails with the same EINTEGRITY error as npm ci when the tarball hash doesn't match.

- name: Typecheck fixture
working-directory: test/react-compat/${{ matrix.react-major }}
run: npm run typecheck
Expand Down
Loading