Hi all, I’m trying to use the following workflow to collaboratively experiment with and develop a package.
The setup is as follows: I have a project
directory with Project.toml
and a script script.jl
that runs an experiment. In Manifest.toml
all required package versions are specified, so as to be able to instantiate the environment and run the same experiment, e.g. on a different machine. Among the required packages is PkgA
, my own unregistered package, living in whatever git repository, that my friend Alice and I are interested in improving.
So Manifest.toml
will have something like
[[PkgA]]
deps = ["PkgB", "PkgC", "PkgD"]
git-tree-sha1 = "abc"
repo-rev = "master"
repo-url = "https://github.com/bob/PkgA.jl"
uuid = "xyz"
version = "0.1.0"
If I just send the project to Alice, she should be able to run the experiment by doing:
shell> cd project
shell> julia
julia> ]
pkg> activate .
(project) pkg> instantiate
[...]
julia> include("script.jl")
Now Alice has an idea: she wants to locally make a change to PkgA
, re-run the experiment, and check whether it improves things. My understanding is that she should be doing
julia> ]
(project) pkg> dev PkgA
and then go somewhere maybe in .julia/dev
to find the sources, do the change, run the script again. Except that the above instructions yield (Julia 1.0.1):
(project) pkg> dev PkgA
ERROR: The following package names could not be resolved:
* PkgA (xyz in manifest but not in project)
Please specify by known `name=uuid`.
Am I trying doing it the wrong way?