Migrating a PureScript app from spago 0.12 to 0.13: Resolver Selection Uncertainty
0 reputation · 10 Mar 2020, 11:30 UTC
Goal
Upgrade a small PureScript codebase from spago 0.12 to 0.13 while keeping the application online and avoiding any downtime.
Constraints
- The project uses a custom dependency set that may be sensitive to snapshot changes.
- spago 0.13 introduces the
resolverfield inspago.dhall, replacing the olderpackagesfield. - Build reproducibility and type‑level compatibility must be preserved across the upgrade.
Unresolved Decision
Choosing the appropriate snapshot for the resolver field is ambiguous. The snapshot determines which compiler and package versions are pulled in during spago update, and an incorrect choice can trigger cascading upgrades that break the application’s API contracts. Additionally, the coexistence of resolver and the deprecated packages field can create confusion about which configuration takes precedence.
Questions
- Which snapshot (e.g.,
lts-18.0vs. a custom snapshot) offers the most stable dependency graph for a typical small PureScript project? - How does the presence of both
resolverandpackagesfields affect the resolution order and final lock file? - What are the observable impacts on build reproducibility when switching snapshots in spago 0.13?