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

Fix CI #1496

Merged
merged 15 commits into from
Nov 21, 2020
Merged

Fix CI #1496

merged 15 commits into from
Nov 21, 2020

Conversation

rikhuijzer
Copy link
Contributor

@rikhuijzer rikhuijzer commented Nov 14, 2020

I feel to have delivered unfinished work in #1495, so I have been looking into why 1.0 and nightly have been failing. This pull request fixes the failing CI.

Proposed changes

  • Update dependencies
  • Set minimum version to Julia 1.4

@rikhuijzer
Copy link
Contributor Author

rikhuijzer commented Nov 14, 2020

To fix the failing 1.0, there seem to be two possible solutions

  1. Set the minimum Julia version to 1.4, then the build will pass. Some argue that the LTS is for "extremely specialized and niche usecases" and that it can save valuable developer resources by not supporting older versions for too long.
  2. Fix the compatibility issue (docs). I haven't been able to do this, because I am unable to pinpoint where exactly the constraints are too specific.

@codecov-io
Copy link

codecov-io commented Nov 14, 2020

Codecov Report

Merging #1496 (7b13dd9) into master (3a6da5a) will increase coverage by 0.77%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1496      +/-   ##
==========================================
+ Coverage   88.94%   89.71%   +0.77%     
==========================================
  Files          39       39              
  Lines        4395     4601     +206     
==========================================
+ Hits         3909     4128     +219     
+ Misses        486      473      -13     
Impacted Files Coverage Δ
src/ticks.jl 91.09% <0.00%> (-0.28%) ⬇️
src/shapes.jl 100.00% <0.00%> (ø)
src/geom/line.jl 100.00% <0.00%> (ø)
src/geom/point.jl 100.00% <0.00%> (ø)
src/geom/ribbon.jl 100.00% <0.00%> (ø)
src/geom/violin.jl 100.00% <0.00%> (ø)
src/geom/boxplot.jl 100.00% <0.00%> (ø)
src/geom/polygon.jl 100.00% <0.00%> (ø)
src/dataframes.jl 97.61% <0.00%> (+0.05%) ⬆️
src/geom/label.jl 96.33% <0.00%> (+0.06%) ⬆️
... and 24 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3a6da5a...e45dd6f. Read the comment docs.

@bjarthur
Copy link
Member

1.0.5 works for me when testing locally:

$ /Applications/Julia-1.0.app/Contents/Resources/julia/bin/julia 
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.5 (2019-09-09)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(v1.0) pkg> activate test
[ Info: activating new environment at ~/test.

(test) pkg> dev Gadfly
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Updating git-repo `https://github.com/GiovineItalia/Gadfly.jl.git`
[ Info: Path `/Users/arthurb/.julia/dev/Gadfly` exists and looks like the correct package, using existing path instead of cloning
 Resolving package versions...
 Installed FillArrays ──────── v0.10.0
 Installed CategoricalArrays ─ v0.9.0
 Installed Distributions ───── v0.24.3
  Updating `~/test/Project.toml`
  [c91e804a] + Gadfly v1.3.1 [`~/.julia/dev/Gadfly`]
  Updating `~/test/Manifest.toml`
  [621f4979] + AbstractFFTs v0.5.0
  [79e6a3ab] + Adapt v2.3.0
  [13072b0f] + AxisAlgorithms v1.0.0
  [9e28174c] + BinDeps v1.0.1
  [b99e7846] + BinaryProvider v0.5.10
  [324d7699] + CategoricalArrays v0.9.0
  [3da002f7] + ColorTypes v0.10.9
  [5ae59095] + Colors v0.12.4
  [34da2185] + Compat v3.23.0
  [a81c6b42] + Compose v0.9.1
  [8f4d0f93] + Conda v1.5.0
  [d38c429a] + Contour v0.5.6
  [7ad07ef1] + CoupledFields v0.2.0
  [9a962f9c] + DataAPI v1.4.0
  [864edb3b] + DataStructures v0.18.8
  [b4f34e82] + Distances v0.10.0
  [31c24e10] + Distributions v0.24.3
  [ffbed154] + DocStringExtensions v0.8.3
  [7a1cc6ca] + FFTW v1.1.0
  [1a297f60] + FillArrays v0.10.0
  [53c48c17] + FixedPointNumbers v0.8.4
  [c91e804a] + Gadfly v1.3.1 [`~/.julia/dev/Gadfly`]
  [42e2da0e] + Grisu v1.0.0
  [a1b4810d] + Hexagons v0.2.0
  [9b13fd28] + IndirectArrays v0.5.1
  [a98d9a8b] + Interpolations v0.13.0
  [c8e1da08] + IterTools v1.3.0
  [682c06a0] + JSON v0.21.1
  [e5e0dc1b] + Juno v0.8.4
  [5ab0869b] + KernelDensity v0.6.2
  [4345ca2d] + Loess v0.5.2
  [1914dd2f] + MacroTools v0.5.6
  [442fdcdd] + Measures v0.3.1
  [e89f7d12] + Media v0.5.0
  [e1d29d7a] + Missings v0.4.4
  [6fe1bfb0] + OffsetArrays v1.4.0
  [bac558e1] + OrderedCollections v1.3.2
  [90014a1f] + PDMats v0.10.1
  [69de0a69] + Parsers v1.0.12
  [1fd47b50] + QuadGK v2.4.1
  [c84ed2f1] + Ratios v0.4.0
  [189a3867] + Reexport v0.2.0
  [ae029012] + Requires v1.1.0
  [79098fc4] + Rmath v0.6.0
  [992d4aef] + Showoff v0.3.2
  [a2af1166] + SortingAlgorithms v0.3.1
  [276daf66] + SpecialFunctions v0.8.0
  [90137ffa] + StaticArrays v0.12.5
  [2913bbd2] + StatsBase v0.33.2
  [4c63d2b9] + StatsFuns v0.9.5
  [856f2bd8] + StructTypes v1.1.0
  [30578b45] + URIParser v0.4.1
  [81def892] + VersionParsing v1.2.0
  [efce3f68] + WoodburyMatrices v0.5.3
  [2a0f44e3] + Base64 
  [ade2ca70] + Dates 
  [8bb1440f] + DelimitedFiles 
  [8ba89e20] + Distributed 
  [9fa8497b] + Future 
  [b77e0a4c] + InteractiveUtils 
  [76f85450] + LibGit2 
  [8f399da3] + Libdl 
  [37e2e46d] + LinearAlgebra 
  [56ddb016] + Logging 
  [d6f4376e] + Markdown 
  [a63ad114] + Mmap 
  [44cfe95a] + Pkg 
  [de0858da] + Printf 
  [9abbd945] + Profile 
  [3fa0cd96] + REPL 
  [9a3f8284] + Random 
  [ea8e919c] + SHA 
  [9e88b42a] + Serialization 
  [1a1011a3] + SharedArrays 
  [6462fe0b] + Sockets 
  [2f01184e] + SparseArrays 
  [10745b16] + Statistics 
  [4607b0f0] + SuiteSparse 
  [8dfed614] + Test 
  [cf7118a7] + UUIDs 
  [4ec0a83e] + Unicode 

julia> using Gadfly
[ Info: Recompiling stale cache file /Users/arthurb/.julia/compiled/v1.0/Gadfly/DvECm.ji for Gadfly [c91e804a-d5a3-530f-b6f0-dfbca275c004]

julia> 

julia 1.6, which is due in couple months probably, will be the the new long-term support version. so perhaps it's not worth worrying about.

@rikhuijzer
Copy link
Contributor Author

rikhuijzer commented Nov 15, 2020

Could it be that using dev Gadfly and using Gadfly locally does not add all the extra dependencies?
If I add

add DataFrames
add Colors
add Cairo

to the local build steps, then the local build will also fail. Hower, it seems that the compatibility issue with DataFrames is now fixed when using DataFrames 0.22. After that, the build ran into a new list of unsatisfiable requirements with Cairo. The error can be seen in the CI output directly above this comment.

@rikhuijzer rikhuijzer changed the title Bump RDatasets to 0.7 Fix CI Nov 15, 2020
@rikhuijzer
Copy link
Contributor Author

I've set the minimum Julia version to 1.4 now. This way, CI is green. Users on Julia 1.0.5 can still use the newest Gadfly if they don't add, as it stands now, Cairo and Colors. It might be that Cairo or Color get updated in the future, which can automatically resolve problems for users on LTS.

@bjarthur
Copy link
Member

bumping the julia dependency to 1.4 would prevent the newest of Gadfly from being installed on 1.05 LTS. so i would not recommend this.

Gadfly works quite well without Cairo, as Compose has it's own SVG backend. this is actually my preferred output format as one can pan and zoom on SVGJS figures.

also, i really don't understand how the CI is different from testing locally. adding Cairo, Fontconfig, and Colors works on my machine for 1.0.5:

arthurb-lm4:~ arthurb$ /Applications/Julia-1.0.app/Contents/Resources/julia/bin/julia 
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.5 (2019-09-09)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(v1.0) pkg> activate test
[ Info: activating new environment at ~/test.

(test) pkg> dev Gadly
ERROR: The following package names could not be resolved:
 * Gadly (not found in project, manifest or registry)
Please specify by known `name=uuid`.

(test) pkg> dev Gadfly
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Updating git-repo `https://github.com/GiovineItalia/Gadfly.jl.git`
[ Info: Path `/Users/arthurb/.julia/dev/Gadfly` exists and looks like the correct package, using existing path instead of cloning
 Resolving package versions...
  Updating `~/test/Project.toml`
  [c91e804a] + Gadfly v1.3.1 [`~/.julia/dev/Gadfly`]
  Updating `~/test/Manifest.toml`
  [621f4979] + AbstractFFTs v0.5.0
  [79e6a3ab] + Adapt v2.3.0
  [13072b0f] + AxisAlgorithms v1.0.0
  [9e28174c] + BinDeps v1.0.1
  [b99e7846] + BinaryProvider v0.5.10
  [324d7699] + CategoricalArrays v0.9.0
  [3da002f7] + ColorTypes v0.10.9
  [5ae59095] + Colors v0.12.4
  [34da2185] + Compat v3.23.0
  [a81c6b42] + Compose v0.9.1
  [8f4d0f93] + Conda v1.5.0
  [d38c429a] + Contour v0.5.6
  [7ad07ef1] + CoupledFields v0.2.0
  [9a962f9c] + DataAPI v1.4.0
  [864edb3b] + DataStructures v0.18.8
  [b4f34e82] + Distances v0.10.0
  [31c24e10] + Distributions v0.24.3
  [ffbed154] + DocStringExtensions v0.8.3
  [7a1cc6ca] + FFTW v1.1.0
  [1a297f60] + FillArrays v0.10.0
  [53c48c17] + FixedPointNumbers v0.8.4
  [c91e804a] + Gadfly v1.3.1 [`~/.julia/dev/Gadfly`]
  [42e2da0e] + Grisu v1.0.0
  [a1b4810d] + Hexagons v0.2.0
  [9b13fd28] + IndirectArrays v0.5.1
  [a98d9a8b] + Interpolations v0.13.0
  [c8e1da08] + IterTools v1.3.0
  [682c06a0] + JSON v0.21.1
  [e5e0dc1b] + Juno v0.8.4
  [5ab0869b] + KernelDensity v0.6.2
  [4345ca2d] + Loess v0.5.2
  [1914dd2f] + MacroTools v0.5.6
  [442fdcdd] + Measures v0.3.1
  [e89f7d12] + Media v0.5.0
  [e1d29d7a] + Missings v0.4.4
  [6fe1bfb0] + OffsetArrays v1.4.0
  [bac558e1] + OrderedCollections v1.3.2
  [90014a1f] + PDMats v0.10.1
  [69de0a69] + Parsers v1.0.12
  [1fd47b50] + QuadGK v2.4.1
  [c84ed2f1] + Ratios v0.4.0
  [189a3867] + Reexport v0.2.0
  [ae029012] + Requires v1.1.0
  [79098fc4] + Rmath v0.6.0
  [992d4aef] + Showoff v0.3.2
  [a2af1166] + SortingAlgorithms v0.3.1
  [276daf66] + SpecialFunctions v0.8.0
  [90137ffa] + StaticArrays v0.12.5
  [2913bbd2] + StatsBase v0.33.2
  [4c63d2b9] + StatsFuns v0.9.5
  [856f2bd8] + StructTypes v1.1.0
  [30578b45] + URIParser v0.4.1
  [81def892] + VersionParsing v1.2.0
  [efce3f68] + WoodburyMatrices v0.5.3
  [2a0f44e3] + Base64 
  [ade2ca70] + Dates 
  [8bb1440f] + DelimitedFiles 
  [8ba89e20] + Distributed 
  [9fa8497b] + Future 
  [b77e0a4c] + InteractiveUtils 
  [76f85450] + LibGit2 
  [8f399da3] + Libdl 
  [37e2e46d] + LinearAlgebra 
  [56ddb016] + Logging 
  [d6f4376e] + Markdown 
  [a63ad114] + Mmap 
  [44cfe95a] + Pkg 
  [de0858da] + Printf 
  [9abbd945] + Profile 
  [3fa0cd96] + REPL 
  [9a3f8284] + Random 
  [ea8e919c] + SHA 
  [9e88b42a] + Serialization 
  [1a1011a3] + SharedArrays 
  [6462fe0b] + Sockets 
  [2f01184e] + SparseArrays 
  [10745b16] + Statistics 
  [4607b0f0] + SuiteSparse 
  [8dfed614] + Test 
  [cf7118a7] + UUIDs 
  [4ec0a83e] + Unicode 

julia> using Gadfly
[ Info: Recompiling stale cache file /Users/arthurb/.julia/compiled/v1.0/Gadfly/DvECm.ji for Gadfly [c91e804a-d5a3-530f-b6f0-dfbca275c004]

(test) pkg> add Cairo Fontconfig
 Resolving package versions...
  Updating `~/test/Project.toml`
  [159f3aea] + Cairo v0.8.0
  [186bb1d3] + Fontconfig v0.3.0
  Updating `~/test/Manifest.toml`
  [159f3aea] + Cairo v0.8.0
  [3da002f7] ↓ ColorTypes v0.10.9 ⇒ v0.8.1
  [5ae59095] ↓ Colors v0.12.4 ⇒ v0.9.6
  [34da2185] ↓ Compat v3.23.0 ⇒ v2.2.1
  [864edb3b] ↓ DataStructures v0.18.8 ⇒ v0.17.20
  [53c48c17] ↓ FixedPointNumbers v0.8.4 ⇒ v0.6.1
  [186bb1d3] + Fontconfig v0.3.0
  [a2bd30eb] + Graphics v0.4.0
  [77ba4419] + NaNMath v0.3.4

julia> using Cairo, Fontconfig
[ Info: Recompiling stale cache file /Users/arthurb/.julia/compiled/v1.0/Cairo/l6vnT.ji for Cairo [159f3aea-2a34-519c-b102-8c37f9878175]
WARNING: Compat.LinearAlgebra is deprecated, use LinearAlgebra instead.
  likely near /Users/arthurb/.julia/packages/Graphics/XgkW4/src/Graphics.jl:6
WARNING: Compat.LinearAlgebra is deprecated, use LinearAlgebra instead.
  likely near /Users/arthurb/.julia/packages/Graphics/XgkW4/src/Graphics.jl:11
[ Info: Recompiling stale cache file /Users/arthurb/.julia/compiled/v1.0/Fontconfig/k95Ux.ji for Fontconfig [186bb1d3-e1f7-5a2c-a377-96d770f13627]
Unable to revert mtime: /Library/Fonts

(test) pkg> add Colors
 Resolving package versions...
  Updating `~/test/Project.toml`
  [5ae59095] + Colors v0.9.6
  Updating `~/test/Manifest.toml`
 [no changes]

julia> using Colors

thanks for tackling this problem btw. it's great to have more help around here.

@rikhuijzer
Copy link
Contributor Author

rikhuijzer commented Nov 16, 2020

thanks for tackling this problem btw. it's great to have more help around here.

You're welcome. I'm a very happy user of Gadfly, so thank you for your contributions.

Currently, the build fails on a conflict between Cairo, BinDeps and Color. I don't think that solving this is worth it since new problems might pop up at any moment and will be solved automatically: either by CompatHelper or by dependencies who fix the problems at their end. A nice intermediate solution would be to allow the CI to be green while 1.0 is failing so that developers can keep those results in mind, but are not blocked by it. Unfortunately, this is not possible in GitHub Actions according to actions/runner#2347.

In the previous comment, I did not mean to suggest to disallow LTS users to install the newest Gadfly. My suggestion was only to remove the test for Julia 1.0 (LTS) from the CI. This is what is currently contained in the pull request.

This seems like a problem other package developers will also have. I'll check on Slack and let you know if they have a nice/better solution.

@rikhuijzer
Copy link
Contributor Author

rikhuijzer commented Nov 18, 2020

Update: The BinDeps issue should have been resolved due to JuliaPackaging/BinDeps.jl#417. Still, problems with Cairo and Colors.
Update2: Being merged with JuliaRegistries now (JuliaRegistries/General#24898).

@rikhuijzer
Copy link
Contributor Author

rikhuijzer commented Nov 18, 2020

So, the problem with BinDeps is solved at 801e28c. Now Colors and Cairo are left:

ERROR: Unsatisfiable requirements detected for package Cairo [159f3aea]:
 Cairo [159f3aea] log:
 ├─possible versions are: [0.5.3-0.5.6, 0.6.0, 0.7.0, 0.8.0, 1.0.0-1.0.5] or uninstalled
 ├─restricted to versions [0.7.0-0.7, 0.8.0-0.8, 1.0.0-1] by an explicit requirement, leaving only versions [0.7.0, 0.8.0, 1.0.0-1.0.5]
 ├─restricted by julia compatibility requirements to versions: [0.5.3-0.5.6, 0.6.0, 0.7.0, 0.8.0] or uninstalled, leaving only versions: [0.7.0, 0.8.0]
 └─restricted by compatibility requirements with Colors [5ae59095] to versions: 1.0.3-1.0.5 or uninstalled — no versions left
   └─Colors [5ae59095] log:
     ├─possible versions are: [0.9.0, 0.9.2-0.9.6, 0.10.0-0.10.2, 0.11.0-0.11.2, 0.12.0-0.12.4] or uninstalled
     ├─restricted to versions [0.9.0-0.9, 0.10.0-0.10, 0.11.0-0.11, 0.12.0-0.12] by Gadfly [c91e804a], leaving only versions [0.9.0, 0.9.2-0.9.6, 0.10.0-0.10.2, 0.11.0-0.11.2, 0.12.0-0.12.4]
     │ └─Gadfly [c91e804a] log:
     │   ├─possible versions are: 1.3.1 or uninstalled
     │   └─Gadfly [c91e804a] is fixed to version 1.3.1
     └─restricted to versions 0.12.4 by an explicit requirement, leaving only versions 0.12.4

Note that Cairo is restricted to 0.8, which is restricted to Graphics ≥ 0.1.0 (https://github.com/JuliaGraphics/Cairo.jl/blob/v0.8.0/Project.toml). If this means that it is locked to 0.x, then this is an ancient version.

I'll dig around some more.

@rikhuijzer
Copy link
Contributor Author

Now the compatibility error is

ERROR: Unsatisfiable requirements detected for package Graphics [a2bd30eb]:
 Graphics [a2bd30eb] log:
 ├─possible versions are: [0.4.0, 1.0.0-1.0.2] or uninstalled
 ├─restricted by compatibility requirements with Compat [34da2185] to versions: 1.0.0-1.0.2 or uninstalled
 │ └─Compat [34da2185] log:
 │   ├─possible versions are: [1.0.0-1.0.1, 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.5.0-1.5.1, 2.0.0, 2.1.0, 2.2.0-2.2.1, 3.0.0, 3.1.0, 3.2.0, 3.3.0-3.3.1, 3.4.0, 3.5.0, 3.6.0, 3.7.0, 3.8.0, 3.9.0-3.9.1, 3.10.0, 3.11.0, 3.12.0, 3.13.0, 3.14.0, 3.15.0, 3.16.0, 3.17.0, 3.18.0, 3.19.0, 3.20.0, 3.21.0, 3.22.0, 3.23.0] or uninstalled
 │   └─restricted to versions 3.23.0 by an explicit requirement, leaving only versions 3.23.0
 ├─restricted by compatibility requirements with Colors [5ae59095] to versions: 1.0.2 or uninstalled
 │ └─Colors [5ae59095] log:
 │   ├─possible versions are: [0.9.0, 0.9.2-0.9.6, 0.10.0-0.10.2, 0.11.0-0.11.2, 0.12.0-0.12.4] or uninstalled
 │   ├─restricted to versions [0.9.0-0.9, 0.10.0-0.10, 0.11.0-0.11, 0.12.0-0.12] by Gadfly [c91e804a], leaving only versions [0.9.0, 0.9.2-0.9.6, 0.10.0-0.10.2, 0.11.0-0.11.2, 0.12.0-0.12.4]
 │   │ └─Gadfly [c91e804a] log:
 │   │   ├─possible versions are: 1.3.1 or uninstalled
 │   │   └─Gadfly [c91e804a] is fixed to version 1.3.1
 │   └─restricted to versions 0.12.4 by an explicit requirement, leaving only versions 0.12.4
 └─restricted by compatibility requirements with Cairo [159f3aea] to versions: 0.4.0 — no versions left
   └─Cairo [159f3aea] log:
     ├─possible versions are: [0.5.3-0.5.6, 0.6.0, 0.7.0, 0.8.0, 1.0.0-1.0.5] or uninstalled
     ├─restricted to versions [0.7.0-0.7, 0.8.0-0.8, 1.0.0-1] by an explicit requirement, leaving only versions [0.7.0, 0.8.0, 1.0.0-1.0.5]
     └─restricted by julia compatibility requirements to versions: [0.5.3-0.5.6, 0.6.0, 0.7.0, 0.8.0] or uninstalled, leaving only versions: [0.7.0, 0.8.0]

@bjarthur I'm sorry, but I give up on fixing Julia 1.0. I would advise to ignore everything below Julia 1.4, as was also suggested at JuliaGraphics/Colors.jl#450.

@bjarthur bjarthur merged commit 647a985 into GiovineItalia:master Nov 21, 2020
@bjarthur
Copy link
Member

thanks, and no need to apologize about such a valiant effort!

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.

3 participants