MbedTLS unsatisfiable requirements

Using Pkg.update() on SeisIO.jl updates MbedTLS to a version that breaks Travis-CI tests in all Julia versions, and Appveyor tests in some Julia versions (e.g. compare this Appveyor build to this Travis-CI build). The only solution I’ve found is to manually set the MbedTLS version in Manifest.toml to “0.6.8”, which seems very fragile.

I don’t understand the cause but it’s been happening for several months. Checking the registry, my only dependency with MbedTLS in its Compat.toml is HTTP, but MbedTLS = [“0.6.8-0.7”, “1”] for HTTP 0.8.12 shouldn’t cause problems.

Is this an issue with Travis-CI and Appveyor, or have I misconfigured something?

Error output below.

Travis-CI:

ERROR: Unsatisfiable requirements detected for package MbedTLS [739be429]:
375 MbedTLS [739be429] log:
376 ├─possible versions are: [0.5.13-0.5.14, 0.6.0-0.6.8, 0.7.0, 1.0.0] or uninstalled
377 ├─restricted to versions 1.0.0 by an explicit requirement, leaving only versions 1.0.0
378 └─restricted by julia compatibility requirements to versions: [0.5.13-0.5.14, 0.6.0-0.6.8] or uninstalled — no versions left
379

Appveyor:

ERROR: Unsatisfiable requirements detected for package MbedTLS [739be429]:
[70](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L70) MbedTLS [739be429] log:
[71](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L71) ├─possible versions are: [0.5.13-0.5.14, 0.6.0-0.6.8, 0.7.0, 1.0.0] or uninstalled
[72](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L72) ├─restricted to versions 1.0.0 by an explicit requirement, leaving only versions 1.0.0
[73](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L73) └─restricted by julia compatibility requirements to versions: [0.5.13-0.5.14, 0.6.0-0.6.8] or uninstalled — no versions left
[74](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L74)

What happens if you remove your Manifest.toml file from source control?

1 Like

That seems to fix it. What causes this problem?

Is it really OK to leave Manifest.toml untracked? I know Does Manifest.toml belong in the repository? is a little dated but that made it sound like the best practice was including it. Am I misreading the intent? My interpretation of https://julialang.github.io/Pkg.jl/dev/toml-files/ was similar.

Opinions vary.

I include Manifest.toml for projects (eg code for a research paper) to get a reproducible environment, but not for packages, where it usually leads to errors like yours.

For packages, rely on compat bounds, especially as they are needed for the registry anyway.

2 Likes