# Travis CI for an unregistered package

**URL:** <https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447>\
**Category:** New to Julia\
**Created:** [January 9, 2019, 7:22pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447 "2019-01-09T19:22:38Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ajkeith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ajkeith/32/970_2.png) [@ajkeith](https://discourse.julialang.org/u/ajkeith)\
**Post date:** [January 9, 2019, 7:22pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447/1 "2019-01-09T19:22:38Z")

</div>

I’m having trouble making a basic Travis CI script for an unregistered package.

This is the `.travis.yml` script that I’m using:

```julia
language: julia
os:
  - linux

julia:
  - 1.0

notifications:
  email: false

script:
  - if [[-a .git/shallow]]; then git fetch --unshallow; fi
  - julia -e 'using Pkg; Pkg.clone("https://github.com/JuliaPOMDP/IncrementalPruning.jl"); Pkg.build("IncrementalPruning"); Pkg.test("IncrementalPruning"; coverage=true)'

after_success:
  - julia -e 'cd(Pkg.dir("IncrementalPruning")); import Pkg; Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())'

```

which gives the following error:

`ERROR: Cannot develop package with the same name or uuid as the project`

As far as I can tell I’m not loading the same package within the project, but maybe I’m missing something? I ran the second line of the script section of the yaml locally on a windows machine, and all the tests pass:

```julia
using Pkg; Pkg.clone("https://github.com/JuliaPOMDP/IncrementalPruning.jl"); Pkg.build("IncrementalPruning"); Pkg.test("IncrementalPruning"; coverage=true)

...[lots of notifications]...

Test Summary: | Pass Total
Incremental Pruning Solver | 15 15
   Testing IncrementalPruning tests passed

```

Is there a problem with my yaml file? I tried to work from some example yaml’s for registered packages. Here’s my `project.toml` and `REQUIRE`:

```julia
name = "IncrementalPruning"
uuid = "82ee451e-1805-57fd-b4f9-e90c19bcb3e9"
repo = "https://github.com/JuliaPOMDP/IncrementalPruning.jl"

[deps]
Clp = "e2554f3b-3117-50c0-817c-e040a3ddf72d"
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
ParticleFilters = "c8b314e2-9260-5cf8-ae76-3be7461ca6d0"
POMDPModelTools = "08074719-1b2a-587c-a292-00f91cc44415"
POMDPPolicies = "182e52fb-cfd0-5e46-8c26-fd0667c990f4"
POMDPs = "a93abf59-7444-517b-a68a-c42f96afdd7d"

[extras]
BeliefUpdaters = "8bb6e9a1-7d73-552c-a44a-e5dc5634aac4"
POMDPModels = "355abbd5-f08e-5560-ac9e-8b5f2592a0ca"
POMDPSimulators = "e0d0a172-29c6-5d4e-96d0-f262df5d01fd"
POMDPTesting = "92e6a534-49c2-5324-9027-86e3c861ab81"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["BeliefUpdaters", "POMDPModels", "POMDPSimulators", "POMDPTesting", "Test"]

```

```julia
julia 1.0
Clp
JuMP
LinearAlgebra
ParticleFilters
POMDPModels
POMDPs
POMDPToolbox

```

Thanks in advance for any advice!

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [January 9, 2019, 7:43pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447/2 "2019-01-09T19:43:32Z")

</div>

It should work if you just use the default script, i.e. leave the `script` part undefined.

What happens is that you, with the `Pkg.clone` part, try to add the package as a dependency to itself.

---

<div class="post-metadata">

**Author:** ![ajkeith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ajkeith/32/970_2.png) [@ajkeith](https://discourse.julialang.org/u/ajkeith)\
**Post date:** [January 9, 2019, 7:53pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447/3 "2019-01-09T19:53:13Z")

</div>

Thanks for the suggestion. I tried it but now I have a different error:

```julia
ERROR: MethodError: no method matching getindex(::Nothing, ::String)
Stacktrace:
 [1] #build_versions#47(::Bool, ::Function, ::Pkg.Types.Context, ::Array{Base.UUID,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1045
 [2] build_versions at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1034 [inlined]
 [3] #instantiate#59(::Nothing, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Pkg.Types.Context) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/API.jl:570
 [4] instantiate at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/API.jl:532 [inlined]
 [5] #build#53(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/API.jl:457
 [6] build at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/API.jl:436 [inlined]
 [7] build at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/API.jl:434 [inlined]
 [8] build() at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/API.jl:431
 [9] top-level scope at none:1
The command "julia --color=yes -e "if VERSION < v\"0.7.0-DEV.5183\"; Pkg.clone(pwd()); Pkg.build(\"${JL_PKG}\"); else using Pkg; if VERSION >= v\"1.1.0-rc1\"; Pkg.build(verbose=true); else Pkg.build(); end; end"" failed and exited with 1 during .

```

It looks like the default script also has a clone command at `Pkg.clone(pwd())`? I’m not sure that the uuid in my `project.toml` is correct. Maybe that’s part of the problem? I just copied the uuid from a defunct branch of the same project, but I’m not sure where that branch originally got the uuid.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [January 9, 2019, 8:15pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447/4 "2019-01-09T20:15:13Z")

</div>

That is an error you usually get when something in the `Manifest.toml` does not make sense, e.g. some package has the wrong uuid or some package is in there when it shouldn’t.

> [@ajkeith](#):
>
> I’m not sure that the uuid in my `project.toml` is correct. Maybe that’s part of the problem?

There is no “correct” uuid in general, you can just generate one. However, if you plan on registering the package I would suggest you use the output of `PPkg.METADATA_compatible_uuid("IncrementalPruning")`.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [January 9, 2019, 8:34pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447/5 "2019-01-09T20:34:09Z")

</div>

I checked your repo and indeed the problem is that you have dangling packages in your `Manifest.toml` file, which has no connection to your `Project.toml` file. This means that your `Manifest.toml` have not been generated by the package manager itself, and is thus not understood by the package manager. In Julia 1.1 such dangling packages will simply be ignored, so the error is not visible there.

It looks like you somehow have included the test-only dependencies in your `Manifest.toml` (by hand? I hope not…). The simplest fix is to just remove the `Manifest.toml` file, and then `instantiate` which should create a new correct file for you.

---

<div class="post-metadata">

**Author:** ![ajkeith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ajkeith/32/970_2.png) [@ajkeith](https://discourse.julialang.org/u/ajkeith)\
**Post date:** [January 9, 2019, 8:40pm UTC](https://discourse.julialang.org/t/travis-ci-for-an-unregistered-package/19447/6 "2019-01-09T20:40:48Z")

</div>

Thanks, that worked perfectly!

I originally had all the project dependencies and the test dependencies in the [deps] section of the `Project.toml` and I didn’t fix the `Manifest.toml` after I updated the `Project.toml` to move the test dependencies to [extras].
