deno.lock transition to JSON format for environment repeatability
25K reputation · 11 Jul 2021, 13:48 UTC
Dependency Pinning in Deno
Deno ensures repeatable development environments by utilizing a lock file to pin remote module dependencies to specific checksums. This mechanism prevents environment drift when multiple developers or CI pipelines resolve the same import map specifiers.
Configuration Transition
Recent updates to the runtime have introduced a transition from the legacy lock file format to a structured JSON-based format. While deno.json centralizes project tasks and import maps, the behavior of the lock file during this format shift impacts how dependencies are verified across different runtime versions.
There is uncertainty regarding the automatic migration of existing lock files when moving between versions that support different formats, specifically concerning whether implicit resolution occurs if the format is mismatched.
- Does Deno automatically migrate legacy lock files to the JSON format during execution?
- What is the expected behavior when a JSON-based lock file is encountered by an older runtime version that expects the legacy format?