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

[Try PyCall.jl#613] Use PyCall.conda_add to install dependencies in deps/build.jl #14

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
4 changes: 2 additions & 2 deletions .travis.yml
Expand Up @@ -4,7 +4,6 @@ os:
- linux
# - osx
julia:
- 0.6
- 0.7
- 1.0
# - nightly
Expand All @@ -29,7 +28,8 @@ git:
# - gfortran

before_script:
- julia --color=yes ci/before_script.jl
- julia --color=yes -e "using Pkg; Pkg.build()"
- cat deps/build.log
# - if [ $TRAVIS_OS_NAME = osx ]; then brew install gcc; fi

script:
Expand Down
124 changes: 124 additions & 0 deletions 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 = "e307c5e1d85fda84200117b90c874df91b57066d"
repo-rev = "899518b8b976ebc0f5cef1f9d0e53f4fb8768364"
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"
10 changes: 10 additions & 0 deletions Project.toml
@@ -0,0 +1,10 @@
name = "IPython"
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"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
38 changes: 38 additions & 0 deletions deps/build.jl
@@ -0,0 +1,38 @@
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
# Let PyCall.jl use Python interpreter from Conda.jl
# See: https://github.com/JuliaPy/PyCall.jl
ENV["PYTHON"] = ""
Pkg.build("PyCall")
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")
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(PyCall))), "deps", "build.log"),
String))
end
7 changes: 2 additions & 5 deletions src/convenience.jl
Expand Up @@ -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
Expand Down
31 changes: 0 additions & 31 deletions test/install_dependencies.jl

This file was deleted.

19 changes: 0 additions & 19 deletions 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()
Expand Down