Skip to content

package-lock.json is gitignored, so @stellar/stellar-sdk's resolved dependency tree isn't reproducible #167

Description

@chonilius

.gitignore explicitly excludes package-lock.json (under the # deploy script dependencies (scripts/) section, alongside node_modules/). This means the exact resolved version of @stellar/stellar-sdk (pinned only loosely, ^16.0.1, in package.json) and its full transitive dependency tree is never pinned or reproducible across machines or over time — a stark asymmetry with the Rust side of this repo, which does commit Cargo.lock specifically so dependency resolution stays reproducible (and where the already-filed CI issue asks for --locked enforcement on top of that).

This isn't a hypothetical concern: scripts/deploy.mjs is what the README documents as literally having been used to deploy the currently-live testnet contracts. Without a committed lockfile, nobody can reproduce the exact @stellar/stellar-sdk version/behavior that deployment ran against. For an application/tooling directory (as opposed to a published library, where omitting a lockfile is conventional), committing package-lock.json is the standard practice for exactly this reproducibility reason. Consider removing it from .gitignore and committing the lockfile.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestsecuritySecurity-related issuevery hardVery difficult task, expert-level effort required

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions