From 8803d497a1b13123c466c0652d559b25415519c2 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Tue, 6 Nov 2018 18:40:16 -0800 Subject: [PATCH 01/13] Install IPython from defaults channel IPython 7 is already in the defaults channel so there is no need to use conda-forge. This reverts a part of c949b36f7ebf4e53ee4d6c2f0a7ed27a19044fdc --- src/convenience.jl | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/convenience.jl b/src/convenience.jl index ce60d38..348c655 100644 --- a/src/convenience.jl +++ b/src/convenience.jl @@ -83,15 +83,12 @@ NOT_INSTALLABLE = (false, "", Nothing) function condajl_installation(package) if PyCall.conda && package in conda_packages - args = `install -y -c conda-forge $package` message = """ Installing $package via Conda.jl Execute?: - Conda.runconda($args) + Conda.add($package) """ - install = () -> Conda.runconda(args) - # `Conda.add_channel` overwrites user's ~/.condarc so let's - # not use it. + install = () -> Conda.add(package) return (true, message, install) end return NOT_INSTALLABLE From fcb0e910133287b0c4c701e6e7922f6d961287ae Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 19:56:25 -0800 Subject: [PATCH 02/13] Use PyCall.conda_add to install dependencies in deps/build.jl see: https://github.com/JuliaPy/PyCall.jl/pull/613 --- deps/build.jl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 deps/build.jl diff --git a/deps/build.jl b/deps/build.jl new file mode 100644 index 0000000..2ea0629 --- /dev/null +++ b/deps/build.jl @@ -0,0 +1,27 @@ +in_CI = lowercase(get(ENV, "CI", "false")) == "true" + +if in_CI + # Let PyCall.jl use Python interpreter from Conda.jl + # See: https://github.com/JuliaPy/PyCall.jl + ENV["PYTHON"] = "" + Pkg.build("PyCall") +end + +using PyCall + +packages = ["ipython"] +if in_CI + push!(packages, "pytest") + if get(ENV, "CONDA_JL_VERSION", "") == "2" + # For IPython.testing.globalipapp + push!(packages, "mock") + end +end +PyCall.conda_add(packages) + +if VERSION >= v"0.7.0-" + @info "PyCall/deps/build.log:" + print(read( + joinpath(dirname(dirname(pathof(IPython.PyCall))), "deps", "build.log"), + String)) +end From ddb0ab7c41580c8ddb2893afa610ac9df56ec1fc Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:00:48 -0800 Subject: [PATCH 03/13] [DON'T MERGE] Disable CI with 0.6 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 335da81..d03ecd4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ os: - linux # - osx julia: - - 0.6 - 0.7 - 1.0 # - nightly From f0c9cfacb2573b8fd42c714399469171da9c0b80 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 19:59:47 -0800 Subject: [PATCH 04/13] [DON'T MERGE] Add Project.toml and Manifest.toml --- Manifest.toml | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++ Project.toml | 7 +++ 2 files changed, 131 insertions(+) create mode 100644 Manifest.toml create mode 100644 Project.toml diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..f7a4ef3 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,124 @@ +[[Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "2d9e14d19bad3f9ad5cc5e4cffabc3cfa59de825" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "1.3.0" + +[[Conda]] +deps = ["Compat", "JSON", "VersionParsing"] +git-tree-sha1 = "fb86fe40cb5b35990e368709bfdc1b46dbb99dac" +uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" +version = "1.1.1" + +[[Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[DelimitedFiles]] +deps = ["Mmap"] +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" + +[[Distributed]] +deps = ["LinearAlgebra", "Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[InteractiveUtils]] +deps = ["LinearAlgebra", "Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[JSON]] +deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"] +git-tree-sha1 = "fec8e4d433072731466d37ed0061b3ba7f70eeb9" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.19.0" + +[[LibGit2]] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[LinearAlgebra]] +deps = ["Libdl"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[MacroTools]] +deps = ["Compat"] +git-tree-sha1 = "c443e1c8d58a4e9f61b708ad0a88286c7042145b" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.4.4" + +[[Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[Pkg]] +deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" + +[[Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[PyCall]] +deps = ["Compat", "Conda", "MacroTools", "Statistics", "VersionParsing"] +git-tree-sha1 = "4df39c8b7f78b9472b32a48681588408c84d1cda" +repo-rev = "c83e853785d0f30ec5e015e14fb6cb44963e3293" +repo-url = "https://github.com/JuliaPy/PyCall.jl.git" +uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" +version = "1.18.5+" + +[[REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[Random]] +deps = ["Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[SparseArrays]] +deps = ["LinearAlgebra", "Random"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + +[[Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[Test]] +deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[UUIDs]] +deps = ["Random"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[VersionParsing]] +deps = ["Compat"] +git-tree-sha1 = "c9d5aa108588b978bd859554660c8a5c4f2f7669" +uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" +version = "1.1.3" diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..0944eeb --- /dev/null +++ b/Project.toml @@ -0,0 +1,7 @@ +name = "IPython" +uuid = "18364772-b071-5c00-bfd7-ceeaffab630a" + +[deps] +Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" +Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d" +PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" From 935662796e39dc9a4eb36859a4f1c9bae0ebc1fe Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:12:19 -0800 Subject: [PATCH 05/13] [DON'T MERGE] Use Pkg.build() --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d03ecd4..0e731fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ git: # - gfortran before_script: - - julia --color=yes ci/before_script.jl + - julia --color=yes -e "using Pkg; Pkg.build()" # - if [ $TRAVIS_OS_NAME = osx ]; then brew install gcc; fi script: From e97562246ee86e33e8d14bc456a107641dc63fa2 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:15:39 -0800 Subject: [PATCH 06/13] Remove test/install_dependencies.jl --- test/install_dependencies.jl | 31 ------------------------------- test/runtests.jl | 19 ------------------- 2 files changed, 50 deletions(-) delete mode 100644 test/install_dependencies.jl diff --git a/test/install_dependencies.jl b/test/install_dependencies.jl deleted file mode 100644 index c08dc15..0000000 --- a/test/install_dependencies.jl +++ /dev/null @@ -1,31 +0,0 @@ -if VERSION >= v"0.7.0-" - # Adding Pkg in test/REQUIRE would be an error in 0.6. Using - # Project.toml still has some gotchas. So: - Pkg = Base.require(Base.PkgId(Base.UUID(0x44cfe95a1eb252eab672e2afdf69b78f), "Pkg")) -end - -# Let PyCall.jl use Python interpreter from Conda.jl -# See: https://github.com/JuliaPy/PyCall.jl -ENV["PYTHON"] = "" -Pkg.build("PyCall") - -using Compat: @info -using IPython - -IPython.install_dependency("pytest"; force=true) -IPython.install_dependency("ipython"; force=true) -if get(ENV, "CONDA_JL_VERSION", "") == "2" - # For IPython.testing.globalipapp - IPython.install_dependency("mock"; force=true) -end - -# Build PyCall again, since above installation could have changed -# Python versions. -Pkg.build("PyCall") - -if VERSION >= v"0.7.0-" - @info "PyCall/deps/build.log:" - print(read( - joinpath(dirname(dirname(pathof(IPython.PyCall))), "deps", "build.log"), - String)) -end diff --git a/test/runtests.jl b/test/runtests.jl index d635a5d..8977d1e 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,24 +1,5 @@ # module TestIPython -if lowercase(get(ENV, "CI", "false")) == "true" - let - if VERSION < v"0.7.0-" - setup_code = "" - else - setup_code = Base.load_path_setup_code() - end - path = joinpath(@__DIR__, "install_dependencies.jl") - code = """ - $setup_code - include("$(escape_string(path))") - """ - run(`$(Base.julia_cmd()) -e $code`) - # Run install_dependencies.jl in a separate process since it - # may re-build PyCall. In that case, we need to load - # re-precompiled PyCall and IPython. - end -end - include("preamble.jl") IPython.envinfo() From 6aca987683798650be804acbaa7e8bc0916297c8 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:18:30 -0800 Subject: [PATCH 07/13] [DON'T MERGE] Add stdlibs to Project.toml --- Project.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Project.toml b/Project.toml index 0944eeb..b0e76c6 100644 --- a/Project.toml +++ b/Project.toml @@ -4,4 +4,6 @@ uuid = "18364772-b071-5c00-bfd7-ceeaffab630a" [deps] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" From ae18d750aa367735f0d291b41141e6abeb4a0cdc Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:23:04 -0800 Subject: [PATCH 08/13] Fix deps/build.jl --- deps/build.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deps/build.jl b/deps/build.jl index 2ea0629..ddb7730 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -1,3 +1,9 @@ +if VERSION >= v"0.7.0-" + # Adding Pkg in test/REQUIRE would be an error in 0.6. Using + # Project.toml still has some gotchas. So: + Pkg = Base.require(Base.PkgId(Base.UUID(0x44cfe95a1eb252eab672e2afdf69b78f), "Pkg")) +end + in_CI = lowercase(get(ENV, "CI", "false")) == "true" if in_CI From 2e3aadd9001e06c85e39374dc01de92ecb38f47b Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:23:55 -0800 Subject: [PATCH 09/13] [DON'T MERGE] Add Test to Project.toml --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index b0e76c6..6ecce33 100644 --- a/Project.toml +++ b/Project.toml @@ -7,3 +7,4 @@ Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" From 50f953d9650a68c4f8ef3bd304243c5d8ef87385 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:34:36 -0800 Subject: [PATCH 10/13] Fix UndefVarError in deps/build.jl --- deps/build.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/build.jl b/deps/build.jl index ddb7730..3527892 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -28,6 +28,6 @@ PyCall.conda_add(packages) if VERSION >= v"0.7.0-" @info "PyCall/deps/build.log:" print(read( - joinpath(dirname(dirname(pathof(IPython.PyCall))), "deps", "build.log"), + joinpath(dirname(dirname(pathof(PyCall))), "deps", "build.log"), String)) end From c199ce5c6e202465ac220bceb56deb13781fcc74 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:36:32 -0800 Subject: [PATCH 11/13] [DON'T MERGE] cat deps/build.log --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 0e731fd..757e3cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,7 @@ git: before_script: - julia --color=yes -e "using Pkg; Pkg.build()" + - cat deps/build.log # - if [ $TRAVIS_OS_NAME = osx ]; then brew install gcc; fi script: From c683af67c1551d4de86489be9eef4a46fc0a3b4f Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 20:39:17 -0800 Subject: [PATCH 12/13] [DON'T MERGE] PyCall.conda_add(["python=3.6"]) --- deps/build.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deps/build.jl b/deps/build.jl index 3527892..1d009a6 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -15,6 +15,11 @@ end using PyCall +if get(ENV, "CONDA_JL_VERSION", "") == "3" + PyCall.conda_add(["python=3.6"]) + PyCall.conda_add(["python=3.7"]) +end + packages = ["ipython"] if in_CI push!(packages, "pytest") From 7ef1937e1fb3fb51c5625fc8350f7f60a22ce697 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 7 Nov 2018 22:10:27 -0800 Subject: [PATCH 13/13] [DON'T MERGE] Update PyCall --- Manifest.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index f7a4ef3..00429dc 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -71,8 +71,8 @@ uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[PyCall]] deps = ["Compat", "Conda", "MacroTools", "Statistics", "VersionParsing"] -git-tree-sha1 = "4df39c8b7f78b9472b32a48681588408c84d1cda" -repo-rev = "c83e853785d0f30ec5e015e14fb6cb44963e3293" +git-tree-sha1 = "e307c5e1d85fda84200117b90c874df91b57066d" +repo-rev = "899518b8b976ebc0f5cef1f9d0e53f4fb8768364" repo-url = "https://github.com/JuliaPy/PyCall.jl.git" uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" version = "1.18.5+"