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

Remove ImageView as dep as not imported within package #156

Merged
merged 5 commits into from
Apr 29, 2019

Conversation

IanButterworth
Copy link
Member

@IanButterworth IanButterworth commented Apr 24, 2019

Simple and seemingly logical change but worth checking CI for. Should significantly cut down on build time and complexity.

@IanButterworth
Copy link
Member Author

@timholy: I've been battling the CI failures here related to ImageMagick, ImageShow and ImageCore, which seems to be a bug that's been summarized by @johnnychen94 here JuliaLang/Pkg.jl#110 (comment)

Are we doing something wrong, or is this a Resolver bug?

@timholy
Copy link
Member

timholy commented Apr 27, 2019

Perhaps easiest is to think of these as bugs in the data entered into https://github.com/JuliaRegistries/General. It seems a decision has been made to be "aggressive" about imposing upper bounds on packages, saying something along the lines of "unless otherwise specified, cap supported versions at the current minor release and require that a human make a new release to support a new version." Given that new versions of one package routinely break older versions of dependent packages, there is more than a little sense to that choice. But I also have the impression that this isn't quite ironed out yet and it's causing problems like what we're experiencing.

A useful tool is https://github.com/GunnarFarneback/Registrator.jl, which facilitates "editing" the registry. This is a fork from https://github.com/JuliaComputing/Registrator.jl/pull/45.

Demo of how to fix this (note that I'm starting with a completely "blank slate" in my repos):

tim@diva:/tmp$ JULIA_DEPOT_PATH=/tmp/pkgs julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.1.1-pre.0 (2019-01-22)
 _/ |\__'_|_|_|\__'_|  |  release-1.1/a84cf6f56c* (fork: 70 commits, 140 days)
|__/                   |

(v1.1) pkg> add ImageCore
   Cloning default registries into `/tmp/pkgs`
   Cloning registry from "https://github.com/JuliaRegistries/General.git"
     Added registry `General` to `/tmp/pkgs/registries/General`
 Resolving package versions...
 Installed NaNMath ─────────── v0.3.2
 Installed Graphics ────────── v0.4.0
 Installed OffsetArrays ────── v0.10.0
 Installed Conda ───────────── v1.2.0
 Installed ColorTypes ──────── v0.7.5
 Installed FFTW ────────────── v0.2.4
 Installed PaddedViews ─────── v0.4.2
 Installed ImageCore ───────── v0.8.0
 Installed VersionParsing ──── v1.1.3
 Installed Reexport ────────── v0.2.0
 Installed FixedPointNumbers ─ v0.5.3
 Installed AbstractFFTs ────── v0.4.0
 Installed BinaryProvider ──── v0.5.3
 Installed Compat ──────────── v2.1.0
 Installed JSON ────────────── v0.20.0
 Installed MappedArrays ────── v0.2.1
 Installed Colors ──────────── v0.9.5
  Updating `/tmp/pkgs/environments/v1.1/Project.toml`
  [a09fc81d] + ImageCore v0.8.0
  Updating `/tmp/pkgs/environments/v1.1/Manifest.toml`
  [621f4979] + AbstractFFTs v0.4.0
  [b99e7846] + BinaryProvider v0.5.3
  [3da002f7] + ColorTypes v0.7.5
  [5ae59095] + Colors v0.9.5
  [34da2185] + Compat v2.1.0
  [8f4d0f93] + Conda v1.2.0
  [7a1cc6ca] + FFTW v0.2.4
  [53c48c17] + FixedPointNumbers v0.5.3
  [a2bd30eb] + Graphics v0.4.0
  [a09fc81d] + ImageCore v0.8.0
  [682c06a0] + JSON v0.20.0
  [dbb5928d] + MappedArrays v0.2.1
  [77ba4419] + NaNMath v0.3.2
  [6fe1bfb0] + OffsetArrays v0.10.0
  [5432bcbf] + PaddedViews v0.4.2
  [189a3867] + Reexport v0.2.0
  [81def892] + VersionParsing v1.1.3
  [2a0f44e3] + Base64 
  [ade2ca70] + Dates 
  [8bb1440f] + DelimitedFiles 
  [8ba89e20] + Distributed 
  [b77e0a4c] + InteractiveUtils 
  [76f85450] + LibGit2 
  [8f399da3] + Libdl 
  [37e2e46d] + LinearAlgebra 
  [56ddb016] + Logging 
  [d6f4376e] + Markdown 
  [a63ad114] + Mmap 
  [44cfe95a] + Pkg 
  [de0858da] + Printf 
  [3fa0cd96] + REPL 
  [9a3f8284] + Random 
  [ea8e919c] + SHA 
  [9e88b42a] + Serialization 
  [1a1011a3] + SharedArrays 
  [6462fe0b] + Sockets 
  [2f01184e] + SparseArrays 
  [10745b16] + Statistics 
  [8dfed614] + Test 
  [cf7118a7] + UUIDs 
  [4ec0a83e] + Unicode 
  Building Conda → `/tmp/pkgs/packages/Conda/CpuvI/deps/build.log`
  Building FFTW ─→ `/tmp/pkgs/packages/FFTW/p7sLQ/deps/build.log`

julia> edit("/tmp/pkgs/registries/General/I/ImageMagick/Compat.toml")   # SEE BELOW!

(v1.1) pkg> add ImageMagick
 Resolving package versions...
 Installed FileIO ────── v1.0.6
 Installed ImageMagick ─ v0.7.3
  Updating `/tmp/pkgs/environments/v1.1/Project.toml`
  [6218d12a] + ImageMagick v0.7.3
  Updating `/tmp/pkgs/environments/v1.1/Manifest.toml`
  [5789e2e9] + FileIO v1.0.6
  [6218d12a] + ImageMagick v0.7.3
  Building ImageMagick → `/tmp/pkgs/packages/ImageMagick/J74FC/deps/build.log`

where after that edit command I changed the registry this way:

tim@diva:/tmp/pkgs/registries/General$ git diff
diff --git a/I/ImageMagick/Compat.toml b/I/ImageMagick/Compat.toml
index 1d03f8253..684d554b6 100644
--- a/I/ImageMagick/Compat.toml
+++ b/I/ImageMagick/Compat.toml
@@ -52,7 +52,7 @@ julia = "0.6-0"
 
 ["0.7-0"]
 BinaryProvider = "0.3-0"
-ImageCore = "0-0.7"
+ImageCore = "0.1-0.8"
 
 ["0.7-0.7.1"]
 julia = "0.7-1"

Note that I modified both the lower and upper bounds, since older versions of ImageMagick explicitly required at least v0.1 of ImageCore. (Likely current versions require at least 0.7, but I didn't check.)

When this PR merges, could you folks fix the bounds on ImageCore in ImageMagick.jl?

@IanButterworth
Copy link
Member Author

Now that the above change has merged, I've changed ImageCore bounds in ImageMagick to >=0.1 JuliaIO/ImageMagick.jl#153

The blocking issue on this PR is now with ImageTransformations

ERROR: Unsatisfiable requirements detected for package ImageTransformations [02fcd773]:
 ImageTransformations [02fcd773] log:
 ├─possible versions are: [0.0.1, 0.1.0, 0.2.0-0.2.2, 0.3.0-0.3.1, 0.4.0-0.4.2, 0.5.0-0.5.2, 0.6.0, 0.7.0-0.7.2] or uninstalled
 ├─restricted by compatibility requirements with ImageCore [a09fc81d] to versions: uninstalled
 │ └─ImageCore [a09fc81d] log:
 │   ├─possible versions are: [0.0.1-0.0.5, 0.1.0-0.1.5, 0.2.0-0.2.1, 0.3.0-0.3.3, 0.4.0-0.4.1, 0.5.0, 0.6.0, 0.7.0-0.7.4, 0.8.0-0.8.1] or uninstalled
 │   ├─restricted to versions * by VideoIO [d6d074c3], leaving only versions [0.0.1-0.0.5, 0.1.0-0.1.5, 0.2.0-0.2.1, 0.3.0-0.3.3, 0.4.0-0.4.1, 0.5.0, 0.6.0, 0.7.0-0.7.4, 0.8.0-0.8.1]
 │   │ └─VideoIO [d6d074c3] log:
 │   │   ├─possible versions are: 0.5.4 or uninstalled
 │   │   └─VideoIO [d6d074c3] is fixed to version 0.5.4
 │   └─restricted to versions 0.8.1 by an explicit requirement, leaving only versions 0.8.1
 └─restricted by compatibility requirements with Images [916415d5] to versions: [0.2.2, 0.3.0-0.3.1, 0.4.0-0.4.2, 0.5.0-0.5.2, 0.6.0, 0.7.0-0.7.2] — no versions left
   └─Images [916415d5] log:
     ├─possible versions are: [0.2.0-0.2.50, 0.3.0-0.3.3, 0.4.0-0.4.50, 0.5.0-0.5.14, 0.6.0-0.6.1, 0.7.0, 0.8.0, 0.9.0-0.9.1, 0.10.0-0.10.1, 0.11.0-0.11.5, 0.12.0, 0.13.0, 0.14.0, 0.15.0-0.15.1, 0.16.0-0.16.1, 0.17.0-0.17.3, 0.18.0] or uninstalled
     ├─restricted to versions * by an explicit requirement, leaving only versions [0.2.0-0.2.50, 0.3.0-0.3.3, 0.4.0-0.4.50, 0.5.0-0.5.14, 0.6.0-0.6.1, 0.7.0, 0.8.0, 0.9.0-0.9.1, 0.10.0-0.10.1, 0.11.0-0.11.5, 0.12.0, 0.13.0, 0.14.0, 0.15.0-0.15.1, 0.16.0-0.16.1, 0.17.0-0.17.3, 0.18.0]
     ├─restricted by compatibility requirements with ImageCore [a09fc81d] to versions: [0.2.0-0.2.50, 0.3.0-0.3.3, 0.4.0-0.4.50, 0.5.0-0.5.14, 0.18.0] or uninstalled, leaving only versions: [0.2.0-0.2.50, 0.3.0-0.3.3, 0.4.0-0.4.50, 0.5.0-0.5.14, 0.18.0]
     │ └─ImageCore [a09fc81d] log: see above
     └─restricted by julia compatibility requirements to versions: [0.15.0-0.15.1, 0.16.0-0.16.1, 0.17.0-0.17.3, 0.18.0] or uninstalled, leaving only versions: 0.18.0

@IanButterworth
Copy link
Member Author

Fixed with JuliaRegistries/General#392 (& JuliaRegistries/General#412)

Hopefully this is the end of the ImageCore dep issue @timholy

@IanButterworth
Copy link
Member Author

@kmsquire Good news.. removing ImageView brings Appveyor build time down to ~8 min (from ~40 min) given we no longer need Cairo, Gtk etc.. That's also with caching disabled

@IanButterworth IanButterworth merged commit 87dcf7e into master Apr 29, 2019
@IanButterworth IanButterworth deleted the remove_ImageView_dep branch April 29, 2019 19:14
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