JuliaDocs / Documenter.jl

A documentation generator for Julia.

Home Page:https://documenter.juliadocs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unsatisfiable requirements detected for package REPL

ctkelley opened this issue · comments

I'm getting strange failures with Documenter. I fixed it, but something strange is happening. See the last message.

My Project.toml in /docs is

[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterTools = "35a29f4d-8980-5a13-9543-d66fff28ecb8"
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"

[compat]
Documenter = "1"

and the errors look like the dump below.

I'm running Julia 1.10.2 on a Mac with the latest OS.

Run julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
25l    Fetching: [>                                        ]  0.0 %
    Fetching: [=====>                                   ]  11.2 %
    Fetching: [=================>                       ]  40.3 %
    Fetching: [=============================>           ]  70.7 %
25h     Added registry `General` to `~/.julia/registries/General`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package REPL [3fa0cd96]:
 REPL [3fa0cd96] log:
 ├─possible versions are: 1.1.1 or uninstalled
 └─found to have no compatible versions left with Documenter [e30172f5] 
   └─Documenter [e30172f5] log:
     ├─possible versions are: [0.19.0-0.19.7, 0.20.0, 0.21.0-0.21.5, 0.22.0-0.22.6, 0.23.0-0.23.4, 0.24.0-0.24.11, 0.25.0-0.25.5, 0.26.0-0.26.3, 0.27.0-0.27.25, 1.0.0-1.0.1, 1.1.0-1.1.2, 1.2.0-1.2.1, 1.3.0] or uninstalled
     └─restricted to versions 1.3.0-1 by an explicit requirement, leaving only versions 1.3.0
Stacktrace:
 [1] #propagate_constraints!#61(::Bool, ::Function, ::Pkg.GraphType.Graph, ::Set{Int64}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/GraphType.jl:1007
 [2] propagate_constraints! at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/GraphType.jl:948 [inlined]
 [3] #simplify_graph!#121(::Bool, ::Function, ::Pkg.GraphType.Graph, ::Set{Int64}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/GraphType.jl:1462
 [4] simplify_graph! at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/GraphType.jl:1462 [inlined] (repeats 2 times)
 [5] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Nothing) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:371
 [6] resolve_versions! at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:315 [inlined]
 [7] #add_or_develop#63(::Array{Base.UUID,1}, ::Symbol, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1172
 [8] #add_or_develop at ./none:0 [inlined]
 [9] #add_or_develop#17(::Symbol, ::Bool, ::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.1/Pkg/src/API.jl:59
 [10] #add_or_develop at ./none:0 [inlined]
 [11] #add_or_develop#16 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/API.jl:36 [inlined]
 [12] #add_or_develop at ./none:0 [inlined]
 [13] #add_or_develop#12 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/API.jl:33 [inlined]
 [14] #add_or_develop at ./none:0 [inlined]
 [15] #develop#23 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/API.jl:65 [inlined]
 [16] develop(::Pkg.Types.PackageSpec) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.1/Pkg/src/API.jl:65
 [17] top-level scope at none:0
Error: Process completed with exit code 1.

I compared this failure with a success for another packages and saw this with version 1.1 for the failure and 1.9.4 for the success. This just started happening within the last couple days. How could the two packages be different in this way?

Run julia-actions/setup-julia@latest
  with:
    version: 1.1
    include-all-prereleases: false
    arch: X64
    show-versioninfo: false
/usr/bin/tar xf /home/runner/work/_temp/5638152d-32da-45b4-b3f1-0c07fd6c433c --strip-components=1 -C /opt/hostedtoolcache/julia/1.1.1/x64
/opt/hostedtoolcache/julia/1.1.1/x64/bin/julia --version
julia version 1.1.1

The problem was that in the .github/workflows/docs.yml file the entry

julia-version: [1.10]

seemed to have loaded version 1.1. When I changed it to the one in the working repo

julia-version: [1.9]

the problem went away. Is this supposed to happen? I'd been using that docs.yml file for weeks with no problems until today.

REPL possible versions are: 1.1.1 or uninstalled

That seems weird. Maybe REPL got moved out of the stdlib and now has a lower version number than it used to be?

Documenter may have to change its compat spec for REPL to “1”

You might have better luck asking about this on Slack or Discourse

I asked here because it seemed that it was a problem or bug with Documenter. In hindsight, Discourse might have been better.

julia-version: [1.10] seemed to have loaded version 1.1.

That sounds to me maybe like a bug in Pkg?

I asked here because it seemed that it was a problem or bug with Documenter. In hindsight, Discourse might have been better.

I’d still ask in a more general forum. This is either an issue with the Julia 1.10 release as the first one with a double digit minor version or an issue with the move of stdlib moving to independent versioning. It would be good to get to the bottom of this, even if it’s not directly Documenter-related. I actually think I have seen this problem before in some other context.

In YAML, you have to use the string "1.10", otherwise it is the floating point value 1.1.

Just tried

julia-version: ["1.10"]

and that worked. Those of us who pattern match on other people's YAML files will get surprised by this. It suspect that's most users of Julia.

In YAML, you have to use the string "1.10", otherwise it is the floating point value 1.1.

Ah, I didn't account for the possibility that CI was actually running Julia 1.1! Good catch! 👍

@ctkelley If you can confirm that putting quotes around 1.10 solves the problem, I think we can close this issue

Edit: ah, you already did. Great!

Those of us who pattern match on other people's YAML files will get surprised by this.

I wonder if the julia-actions/setup-julia action can detect this. Actually, there's already an issue for it: julia-actions/setup-julia#204