# Aqua.jl tests failing because Aqua not a dependency of root project

**URL:** https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590
**Category:** General Usage
**Tags:** aqua
**Created:** [June 30, 2022, 11:55pm UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590 "2022-06-30T23:55:50Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![maxkapur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxkapur/32/21208_2.png) [@maxkapur](https://discourse.julialang.org/u/maxkapur)
#### Post date: [June 30, 2022, 11:55pm UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/1 "2022-06-30T23:55:50Z")

</div>

I’m trying to add [Aqua.jl](https://github.com/JuliaTesting/Aqua.jl) to my project. As suggested in the Aqua.jl documentation, I have placed Aqua in the `test/Project.toml` file to fix its version to 0.5. But now the Aqua tests fail if I call `julia --project` from my project’s root directory and then `]test`, because Aqua is listed as a test dependency but not a project dependency:

```julia
MyPackage [UUID ...]: Test Failed at /home/max/.julia/packages/Aqua/HWLbM/src/project_extras.jl:13
  Expression: result ⊜ true
   Evaluated: ⟪result: 😭 FAILED: MyPackage [UUID ...]
    Root and test projects are inconsistent.
    Test dependencies not in root project (/home/max/MyProject.jl/Project.toml):
        Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
⟫ ⊜ true

```

But Aqua isn’t a project dependency on purpose! The only time I want to use Aqua is during testing.

Is this a bug, or am I doing something wrong?

(I notice that other packages with Aqua badges, such as the recently announced ImplicitDifferentiation.jl, list Aqua only in the test dependencies and [not in Project.toml](https://github.com/gdalle/ImplicitDifferentiation.jl/blob/main/Project.toml).)

---

<div class="post-metadata">

### Author: ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)
#### Post date: [July 2, 2022, 4:41am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/2 "2022-07-02T04:41:08Z")

</div>

[https://github.com/JuliaTesting/Aqua.jl/issues/78](https://github.com/JuliaTesting/Aqua.jl/issues/78)

---

<div class="post-metadata">

### Author: ![maxkapur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxkapur/32/21208_2.png) [@maxkapur](https://discourse.julialang.org/u/maxkapur)
#### Post date: [July 2, 2022, 6:52am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/3 "2022-07-02T06:52:11Z")

</div>

The solution suggested there is to remove Aqua.jl from `test/Project.toml` and list it under `extras` in the main `Project.toml` instead. But this doesn’t work either: Now running `julia --project` and `]test` gives me

```julia
LoadError: ArgumentError: Package Aqua not found in current path.
- Run `import Pkg; Pkg.add("Aqua")` to install the Aqua package.

```

(this is immediately after running `]add Aqua` in my global Julia environment.)

MyProject’s `Project.toml` looks like this

```julia
> cat Project.toml
name = "MyProject"
# ...

[deps]
# ...

[compat]
julia = "1"
#...

[extras]
# ...
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"

[targets]
test = ["Test"]

```

and I have deleted `test/Project.toml` (because the only additional package it uses is Aqua).

Is my environment just corrupted somewhere?

---

<div class="post-metadata">

### Author: ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)
#### Post date: [July 2, 2022, 7:03am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/4 "2022-07-02T07:03:11Z")

</div>

You must list the package in the vector of strings under target test also,

---

<div class="post-metadata">

### Author: ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)
#### Post date: [July 2, 2022, 7:08am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/5 "2022-07-02T07:08:37Z")

</div>

Can you show your original Project.toml and test/Project.toml? I always add Aqua (and other test dependencies) to test/Project.toml, and it just works fine.

---

<div class="post-metadata">

### Author: ![maxkapur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxkapur/32/21208_2.png) [@maxkapur](https://discourse.julialang.org/u/maxkapur)
#### Post date: [July 2, 2022, 7:24am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/6 "2022-07-02T07:24:46Z")

</div>

I have deleted `test/Project.toml` now, and have it working with just Aqua in extras and target. I was never able to get Aqua not to give me the stale dependencies error as long as it was in `test/Project.toml`. Do you have an example of one of your packages that uses the setup you described?

---

<div class="post-metadata">

### Author: ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)
#### Post date: [July 2, 2022, 9:23am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/7 "2022-07-02T09:23:46Z")

</div>

Sure, see [Alexander Plavin / FlexiJoins.jl · GitLab](https://gitlab.com/aplavin/FlexiJoins.jl) for an example.

---

<div class="post-metadata">

### Author: ![Barget](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@Barget](https://discourse.julialang.org/u/Barget)
#### Post date: [May 2, 2023, 9:09am UTC](https://discourse.julialang.org/t/aqua-jl-tests-failing-because-aqua-not-a-dependency-of-root-project/83590/8 "2023-05-02T09:09:55Z")

</div>

I had the same issue running `Aqua.test_all(MyPackage)`, but couldn’t use the solution.

Test that failed were:

```julia
Aqua.test_project_extras(MyPackage);
Aqua.test_deps_compat(MyPackage);

```

… but both passed when I added the missing `[compat]` entries.

I’m on Julia v1.9rc3, and Aqua v0.6.

It is obvious that adding compats would some `test_deps_compat`, but why so for `test_project_extras`?

Does it worth a PR or at least a `README.md` update?
