Skip to content

Changing a source in Project.toml doesn't trigger a full resolution of the environment #4157

@giordano

Description

@giordano

Consider the following Project.toml

[deps]
Example = "7876af07-990d-54b4-ab0e-23690620f79a"

[sources]
Example = {url = "https://github.com/JuliaLang/Example.jl.git", rev = "9eafbe382ffe5bf31d674cd3d7bfd7dbaf3f4b29"}

Resolve the environment and you get the following Manifest.toml:

# This file is machine-generated - editing it directly is not advised

julia_version = "1.13.0-DEV"
manifest_format = "2.0"
project_hash = "2ba095eea143434854ea510082d0697aa2bcd3f3"

[[deps.Example]]
git-tree-sha1 = "f5f048e73ccd0bdfbddd9bd556d9eca360135609"
repo-rev = "9eafbe382ffe5bf31d674cd3d7bfd7dbaf3f4b29"
repo-url = "https://github.com/JuliaLang/Example.jl.git"
uuid = "7876af07-990d-54b4-ab0e-23690620f79a"
version = "0.5.5"

Now change the project to (note the change of the rev attribute of the Example package)

[deps]
Example = "7876af07-990d-54b4-ab0e-23690620f79a"

[sources]
Example = {url = "https://github.com/JuliaLang/Example.jl.git", rev = "82d1224c32990c0105898fa44009864f5648e98d"}

and re-resolving the environment changes the Manifest.toml to

# This file is machine-generated - editing it directly is not advised

julia_version = "1.13.0-DEV"
manifest_format = "2.0"
project_hash = "2ba095eea143434854ea510082d0697aa2bcd3f3"

[[deps.Example]]
git-tree-sha1 = "f5f048e73ccd0bdfbddd9bd556d9eca360135609"
repo-rev = "82d1224c32990c0105898fa44009864f5648e98d"
repo-url = "https://github.com/JuliaLang/Example.jl.git"
uuid = "7876af07-990d-54b4-ab0e-23690620f79a"
version = "0.5.5"

Note that only deps.Example.repo-rev changed, but not deps.Example.git-tree-sha1, nor project_hash.

julia> versioninfo()
Julia Version 1.13.0-DEV.63
Commit f5f6d4115b* (2025-02-14 21:22 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin23.4.0)
  CPU: 8 × Apple M1
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, apple-m1)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 4 virtual cores)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions