diff --git a/.travis.yml b/.travis.yml index 335da81..757e3cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ os: - linux # - osx julia: - - 0.6 - 0.7 - 1.0 # - nightly @@ -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: diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000..00429dc --- /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 = "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" diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..6ecce33 --- /dev/null +++ b/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" diff --git a/deps/build.jl b/deps/build.jl new file mode 100644 index 0000000..1d009a6 --- /dev/null +++ b/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 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 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()