Cannot Pkg.resolve the new REQUIRE of a package in development



I am developing a forked package, namely ExpmV. Recently I created a new branch and add Compat in the REQUIRE. When I try to load the package in new branch, I got the error

julia> using ExpmV
ERROR: LoadError: ArgumentError: Package ExpmV does not have Compat in its dependencies:
 - If you have ExpmV checked out for development and have
   added Compat as a dependency but haven't updated your primary
   environment's manifest file, try `Pkg.resolve()`.
 - Otherwise you may need to report an issue with ExpmV.

 [1] require(::Module, ::Symbol) at ./loading.jl:821
 [2] include at ./boot.jl:317 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1034
 [4] macro expansion at ./logging.jl:312 [inlined]
 [5] _require(::Base.PkgId) at ./loading.jl:929
 [6] require(::Base.PkgId) at ./loading.jl:838
 [7] require(::Module, ::Symbol) at ./loading.jl:833
in expression starting at /Users/po/.julia/packages/ExpmV/zrJj/src/ExpmV.jl:3

Following the error message, I run Pkg.resolve()

(v0.7) pkg> resolve
 Resolving package versions...
  Updating `~/.julia/environments/v0.7/Project.toml`
 [no changes]
  Updating `~/.julia/environments/v0.7/Manifest.toml`
 [no changes]

However, I still couldn’t load the package. I restart julia and run using ExpmV again, I keep getting the same error before

ERROR: LoadError: ArgumentError: Package ExpmV does not have Compat in its dependencies:

Any help I would be appreciate!


Can you link the branch where this is happening?


julia> versioninfo()
Julia Version 0.7.0-beta2.0
Commit b145832402* (2018-07-13 19:54 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, haswell)

Thanks a lot!


If you have a Project file, that is the one that counts so you would need Compat in Project.toml.


Thanks a lot. I didn’t realize the error is from Project.toml.

Btw, is Manifest.toml a must? Not sure how to generate it, and I see some packages doesn’t have it.


The manifest is automatically generated during the usage of the package manager. It contains the exact versions/git-tree-shas/paths that julia uses to find what packages to load.

For most libraries it does not need to be checked into version control. See also Does Manifest.toml belong in the repository?