Summary
The project uses mutable latest tags for production dependencies:
{
"@supabase/ssr": "latest",
"@supabase/supabase-js": "latest",
"next": "latest"
}
At the same time, eslint-config-next is pinned to version 15.3.1.
Using latest makes builds non-reproducible because dependency versions depend on the package registry state rather than the repository revision.
Affected file(s)
package.json
https://github.com/circlefin/arc-commerce/blob/master/package.json
Steps to reproduce
- Checkout a fixed commit.
- Remove
node_modules and package-lock.json.
- Run:
- Record installed package versions:
npm list next @supabase/ssr @supabase/supabase-js eslint-config-next
- Repeat the installation after one of the dependencies publishes a new release.
Expected behavior
The same Git commit should always resolve to the same dependency versions.
Actual behavior
Dependency versions change over time because latest always resolves to the newest published release.
Impact
This may cause:
- Non-reproducible builds
- Unexpected framework upgrades
- Next.js compatibility issues
- CI inconsistencies
- Difficult bug reproduction
- Unexpected runtime behavior
Suggested fix
Replace latest with explicitly tested versions or controlled semver ranges.
Commit package-lock.json and use npm ci in CI.
Keep next and eslint-config-next aligned.
Checklist
Summary
The project uses mutable
latesttags for production dependencies:{ "@supabase/ssr": "latest", "@supabase/supabase-js": "latest", "next": "latest" }At the same time,
eslint-config-nextis pinned to version15.3.1.Using
latestmakes builds non-reproducible because dependency versions depend on the package registry state rather than the repository revision.Affected file(s)
package.json
https://github.com/circlefin/arc-commerce/blob/master/package.json
Steps to reproduce
node_modulesandpackage-lock.json.Expected behavior
The same Git commit should always resolve to the same dependency versions.
Actual behavior
Dependency versions change over time because
latestalways resolves to the newest published release.Impact
This may cause:
Suggested fix
Replace
latestwith explicitly tested versions or controlled semver ranges.Commit
package-lock.jsonand usenpm ciin CI.Keep
nextandeslint-config-nextaligned.Checklist
latestfrom production dependenciespackage-lock.jsonnpm ciin CI