Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use JLL package for GLFW, require Julia 1.3 #191

Merged
merged 1 commit into from
Nov 29, 2019

Conversation

giordano
Copy link
Contributor

This is a proof-of-concept of using JLL packages to provide the binary library.

CC: @SimonDanisch @ianshmean

@giordano
Copy link
Contributor Author

Failure on 32-bit Windows with Julia 1.3 is a known issue, that will be fixed in the next release candidate (and has been already fixed in master).

@yakir12
Copy link

yakir12 commented Nov 27, 2019

Any idea why I'm getting this ambiguous git error (this is from a Raspberry Pi, so ARM 32 bit)?

               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.3.0 (2019-11-26)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(v1.3) pkg> up
   Cloning default registries into `~/.julia`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
     Added registry `General` to `~/.julia/registries/General`
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...

(v1.3) pkg> add GLFW#191
   Cloning git-repo `https://github.com/JuliaGL/GLFW.jl.git`
  Updating git-repo `https://github.com/JuliaGL/GLFW.jl.git`
ERROR: GitError(Code:EAMBIGUOUS, Class:Object, ambiguous lookup - OID prefix is too short)
Stacktrace:
 [1] macro expansion at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/LibGit2/src/error.jl:101 [inlined]
 [2] LibGit2.GitObject(::LibGit2.GitRepo, ::String) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/LibGit2/src/repository.jl:142
 [3] get_object_branch(::LibGit2.GitRepo, ::String, ::LibGit2.CachedCredentials) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:808
 [4] (::Pkg.Types.var"#84#87"{LibGit2.CachedCredentials,Pkg.Types.var"#91#92",String})(::LibGit2.GitRepo) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:665
 [5] with(::Pkg.Types.var"#84#87"{LibGit2.CachedCredentials,Pkg.Types.var"#91#92",String}, ::LibGit2.GitRepo) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/LibGit2/src/types.jl:1125
 [6] #83 at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:664 [inlined]
 [7] shred!(::Pkg.Types.var"#83#86"{Pkg.Types.var"#91#92",String,String}, ::LibGit2.CachedCredentials) at ./secretbuffer.jl:184
 [8] instantiate_pkg_repo!(::Pkg.Types.PackageSpec, ::Nothing) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:663
 [9] handle_repo_add!(::Pkg.Types.Context, ::Pkg.Types.PackageSpec) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:741
 [10] handle_repos_add!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:751
 [11] #add#25(::Bool, ::Pkg.BinaryPlatforms.Linux, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(Pkg.API.add), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:90
 [12] add(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:72
 [13] do_add!(::Dict{Symbol,Any}, ::Array{Pkg.Types.PackageSpec,1}, ::Dict{Symbol,Any}) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/REPLMode.jl:505
 [14] #invokelatest#1(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(Base.invokelatest), ::Any, ::Any, ::Vararg{Any,N} where N) at ./essentials.jl:709
 [15] invokelatest(::Any, ::Any, ::Vararg{Any,N} where N) at ./essentials.jl:708
 [16] do_cmd!(::Pkg.REPLMode.Command, ::REPL.LineEditREPL) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/REPLMode.jl:412
 [17] #do_cmd#23(::Bool, ::typeof(Pkg.REPLMode.do_cmd), ::REPL.LineEditREPL, ::String) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/REPLMode.jl:391
 [18] do_cmd at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/REPLMode.jl:387 [inlined]
 [19] (::Pkg.REPLMode.var"#28#31"{REPL.LineEditREPL,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/Pkg/src/REPLMode.jl:619
 [20] #invokelatest#1 at ./essentials.jl:709 [inlined]
 [21] invokelatest at ./essentials.jl:708 [inlined]
 [22] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/REPL/src/LineEdit.jl:2306
 [23] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/REPL/src/REPL.jl:1045
 [24] run_repl(::REPL.AbstractREPL, ::Any) at /buildworker/worker/package_linuxarmv7l/build/usr/share/julia/stdlib/v1.3/REPL/src/REPL.jl:201
 [25] (::Base.var"#770#772"{Bool,Bool,Bool,Bool})(::Module) at ./client.jl:382
 [26] #invokelatest#1 at ./essentials.jl:709 [inlined]
 [27] invokelatest at ./essentials.jl:708 [inlined]
 [28] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./client.jl:366
 [29] exec_options(::Base.JLOptions) at ./client.jl:304
 [30] _start() at ./client.jl:460

@giordano
Copy link
Contributor Author

Is GLFW#191 correct syntax?

@SimonDanisch
Copy link
Member

try ]add https://github.com/giordano/GLFW.jl.git#jll_pkg

@yakir12
Copy link

yakir12 commented Nov 27, 2019

of course, it's a pull request, not a branch...
and... It work!!!

@yakir12
Copy link

yakir12 commented Nov 27, 2019

So just some final feedback, this branhc is what made GLMaike work on an RPI! So huge thumbs up from me!

Copy link
Member

@jayschwa jayschwa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR looks good to me overall. It's still in a "draft" state. Does that mean something still needs to be added or changed?

It adds some new CI configs, which I think brings the total to four. What is considered best practice for Julia packages these days? Should some of the old CI integrations (e.g. Travis) be removed because they're redundant?

CMake = "≥ 1.1.1"
julia = "≥ 1.0.0"
julia = "1.3.0"
GLFW_jll = "3.3.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this pin deps to a specific version; should there be a ≥?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it doesn't. This means any sem-ver compatible version, that is any version from 1.3.0 (included) to 2.0 (excluded)

@giordano giordano marked this pull request as ready for review November 29, 2019 00:05
@giordano
Copy link
Contributor Author

It adds some new CI configs, which I think brings the total to four. What is considered best practice for Julia packages these days? Should some of the old CI integrations (e.g. Travis) be removed because they're redundant?

There is not a best practice, but generally speaking the more platforms you test, the better. This is especially true for packages depending on binary libraries, I often found real bugs testing on uncommon platforms, like ARM or FreeBSD.

@jayschwa jayschwa merged commit 3a52c53 into JuliaGL:master Nov 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants