Skip to content

Conversation

@f-f
Copy link
Member

@f-f f-f commented Jan 19, 2026

Fix #1262 by following the approach I explained at the time - we remove build_plan from each package of the lockfile since it's faster to recompute it than to decode it, as the files can get massive.

cc @finnhodgkin

@thomashoneyman
Copy link
Member

This is a breaking change, in that workspaceLockCodec will no longer accept old lockfiles. I think the error Spago will emit is just "failed to decode lockfile, will regenerate a new one" which may be OK, but I'm thinking about --offline/--pure mode — is it the same error, but the lockfile doesn't get regenerated?

@thomashoneyman
Copy link
Member

Code looks good, though 👍

Copy link
Collaborator

@fsoikin fsoikin left a comment

Choose a reason for hiding this comment

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

There is also a comment that refers to storing all transitive dependencies in the lockfile:

-- We compute the transitive deps for all the packages in the workspace, but keep them
-- split by package - we need all of them so we can stash them in the lockfile, but we
-- are going to only download the ones that we need to, if e.g. there's a package selected

I also noticed that there is a copy&paste of computing transitive deps for all workspace packages - here and here. Perhaps these should be consolidated?

@f-f f-f merged commit 7e56bd3 into master Jan 31, 2026
5 checks passed
@f-f f-f deleted the f-f/remove-build-plan-lockfile branch January 31, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Super slow lockfile parsing

4 participants