Problem with v0.7 & new Pkg


#1

I’m running into the following problem since the new Pkg was merged:

The travis script is cloning the latest version of two packages (ModuleInterfaceTools & MurmurHash3),
because of needing fixed versions with tags not yet merged into METADATA.jl or Uncurated.jl, due to the recent coalesce => something breaking change.
Then it adds the packages which are registered, and finally clones the packages that are still waiting for the PRs to register them for the first time to be merged.

Any idea why this is occurring?

One thing that concerned me also that it seems that the package manager is repeating a lot of work when resolving packages. Could some of that information be cached / memoized?

Thanks in advance!

$ julia -e 'versioninfo()'
WARNING: Base.versioninfo is deprecated: it has been moved to the standard library package `InteractiveUtils`.
Add `using InteractiveUtils` to your imports.
 in module Main
Julia Version 0.7.0-alpha.23
Commit d062571e92 (2018-06-03 19:23 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD EPYC 7401P 24-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, znver1)
Environment:
  TRAVIS_JULIA_VERSION = nightly
72.53s$ julia -e 'mit = "ModuleInterfaceTools"; mh3 = "MurmurHash3"; loc = "https://github.com/JuliaString"; la = ("StrAPI", "CharSetEncodings", "ChrBase"); if VERSION < v"0.7.0-DEV.5183"; Pkg.clone("$loc/$mit.jl"); Pkg.clone("$loc/$mh3.jl"); for n in la; Pkg.add(n); end; Pkg.clone(pwd()); else; using Pkg; Pkg.add("$loc/$mit.jl"); Pkg.add("$loc/$mh3.jl"); for n in la; Pkg.add(n); end; end; Pkg.test("StrBase"; coverage=true)'
   Cloning git-repo `https://github.com/JuliaString/ModuleInterfaceTools.jl`
  Updating git-repo `https://github.com/JuliaString/ModuleInterfaceTools.jl`
   Cloning default registries into /home/travis/.julia/registries
   Cloning registry Uncurated from "https://github.com/JuliaRegistries/Uncurated.git"
┌ Warning: project file for ModuleInterfaceTools is missing a `version` entry
└ @ Pkg.Types Types.jl:810
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
┌ Warning: project file for ModuleInterfaceTools is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
  Updating `Project.toml`
  [5cb8414e] + ModuleInterfaceTools v0.1.2+ # [https://github.com/JuliaString/ModuleInterfaceTools.jl]
  [44cfe95a] + Pkg 
  [8dfed614] + Test 
  Updating `Manifest.toml`
  [5cb8414e] + ModuleInterfaceTools v0.1.2+ # [https://github.com/JuliaString/ModuleInterfaceTools.jl]
  [44cfe95a] + Pkg 
  [8dfed614] + Test 
   Cloning git-repo `https://github.com/JuliaString/MurmurHash3.jl`
  Updating git-repo `https://github.com/JuliaString/MurmurHash3.jl`
┌ Warning: project file for MurmurHash3 is missing a `version` entry
└ @ Pkg.Types Types.jl:810
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
┌ Warning: project file for MurmurHash3 is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
┌ Warning: project file for ModuleInterfaceTools is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
  Updating `Project.toml`
  [b10b62ed] + MurmurHash3 v0.1.2+ # [https://github.com/JuliaString/MurmurHash3.jl]
  Updating `Manifest.toml`
  [b10b62ed] + MurmurHash3 v0.1.2+ # [https://github.com/JuliaString/MurmurHash3.jl]
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
┌ Warning: project file for ModuleInterfaceTools is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
┌ Warning: project file for MurmurHash3 is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
Downloaded StrAPI ─ v0.1.1
  Updating `Project.toml`
  [69e7dfc3] + StrAPI v0.1.1
  [9a3f8284] + Random 
  Updating `Manifest.toml`
  [69e7dfc3] + StrAPI v0.1.1
  [b77e0a4c] + InteractiveUtils 
  [9a3f8284] + Random 
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
┌ Warning: project file for ModuleInterfaceTools is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
┌ Warning: project file for MurmurHash3 is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
Downloaded CharSetEncodings ─ v0.1.1
  Updating `Project.toml`
  [cb9422de] + CharSetEncodings v0.1.1
  Updating `Manifest.toml`
  [cb9422de] + CharSetEncodings v0.1.1
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
┌ Warning: project file for ModuleInterfaceTools is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
┌ Warning: project file for MurmurHash3 is missing a `version` entry
└ @ Pkg.Operations Operations.jl:145
Downloaded ChrBase ─ v0.1.0
  Updating `Project.toml`
  [c13fa7b1] + ChrBase v0.1.0
  Updating `Manifest.toml`
  [c13fa7b1] + ChrBase v0.1.0
   Testing StrBase
ERROR: LoadError: ArgumentError: Module ModuleInterfaceTools not found in current path.
Run `Pkg.add("ModuleInterfaceTools")` to install the ModuleInterfaceTools package.
Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:868
 [2] include at ./boot.jl:314 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1071
 [4] include(::Module, ::String) at ./sysimg.jl:29
 [5] top-level scope
 [6] eval at ./boot.jl:316 [inlined]
 [7] eval(::Expr) at ./client.jl:394
 [8] macro expansion at ./none:3 [inlined]
 [9] top-level scope at ./<missing>:0
in expression starting at /home/travis/.julia/packages/ChrBase/lvBJ/src/ChrBase.jl:11
ERROR: LoadError: LoadError: Failed to precompile ChrBase to /home/travis/.julia/compiled/v0.7/ChrBase/hTjE.ji.

#2

The resolve step itself cannot be cached but the part that reading the TOML files could theoretically but it would be annoying to invalidate the cache and from my timings, this is an insignificant part.

If you only want to resolve once you can add multiple packages at once.