diff --git a/.travis.yml b/.travis.yml index f590ef22c6f21..5d533c70f6b5b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,9 +59,9 @@ matrix: before_install: sudo apt-get install -yqq libatlas3gf-base libatlas-dev -install: source continuous_integration/install.sh -script: bash continuous_integration/test_script.sh -after_success: source continuous_integration/after_success.sh +install: source build_tools/travis/install.sh +script: bash build_tools/travis/test_script.sh +after_success: source build_tools/travis/after_success.sh notifications: webhooks: urls: diff --git a/appveyor.yml b/appveyor.yml index 05390a515461d..205018f166bf6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,7 +7,7 @@ environment: # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the # /E:ON and /V:ON options are not enabled in the batch script interpreter # See: http://stackoverflow.com/a/13751649/163740 - CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\continuous_integration\\appveyor\\run_with_env.cmd" + CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\build_tools\\appveyor\\run_with_env.cmd" WHEELHOUSE_UPLOADER_USERNAME: sklearn-appveyor WHEELHOUSE_UPLOADER_SECRET: secure: BQm8KfEj6v2Y+dQxb2syQvTFxDnHXvaNktkLcYSq7jfbTOO6eH9n09tfQzFUVcWZ @@ -38,7 +38,7 @@ environment: install: # Install Python (from the official .msi of http://python.org) and pip when # not already installed. - - "powershell ./continuous_integration/appveyor/install.ps1" + - "powershell ./build_tools/appveyor/install.ps1" - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - "python -m pip install -U pip" @@ -48,7 +48,7 @@ install: - "pip --version" # Install the build and runtime dependencies of the project. - - "%CMD_IN_ENV% pip install --timeout=60 --trusted-host 28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com -r continuous_integration/appveyor/requirements.txt" + - "%CMD_IN_ENV% pip install --timeout=60 --trusted-host 28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com -r build_tools/appveyor/requirements.txt" - "%CMD_IN_ENV% python setup.py bdist_wheel bdist_wininst -b doc/logos/scikit-learn-logo.bmp" - ps: "ls dist" diff --git a/continuous_integration/appveyor/install.ps1 b/build_tools/appveyor/install.ps1 similarity index 100% rename from continuous_integration/appveyor/install.ps1 rename to build_tools/appveyor/install.ps1 diff --git a/continuous_integration/appveyor/requirements.txt b/build_tools/appveyor/requirements.txt similarity index 100% rename from continuous_integration/appveyor/requirements.txt rename to build_tools/appveyor/requirements.txt diff --git a/continuous_integration/appveyor/run_with_env.cmd b/build_tools/appveyor/run_with_env.cmd similarity index 100% rename from continuous_integration/appveyor/run_with_env.cmd rename to build_tools/appveyor/run_with_env.cmd diff --git a/continuous_integration/circle/build_doc.sh b/build_tools/circle/build_doc.sh similarity index 96% rename from continuous_integration/circle/build_doc.sh rename to build_tools/circle/build_doc.sh index da84ecd3b8b5f..bde8539c8058e 100755 --- a/continuous_integration/circle/build_doc.sh +++ b/build_tools/circle/build_doc.sh @@ -5,7 +5,7 @@ set -e # documentation: a pull request that does not change any file in doc/ or # examples/ folder should be skipped unless the "[doc: build]" is found the # commit message. -BUILD_DOC=`python continuous_integration/circle/check_build_doc.py` +BUILD_DOC=`python build_tools/circle/check_build_doc.py` echo -e $BUILD_DOC if [[ $BUILD_DOC == "SKIP:"* ]]; then touch ~/log.txt # the "test" segment needs that file diff --git a/continuous_integration/circle/check_build_doc.py b/build_tools/circle/check_build_doc.py similarity index 100% rename from continuous_integration/circle/check_build_doc.py rename to build_tools/circle/check_build_doc.py diff --git a/continuous_integration/circle/push_doc.sh b/build_tools/circle/push_doc.sh similarity index 100% rename from continuous_integration/circle/push_doc.sh rename to build_tools/circle/push_doc.sh diff --git a/sklearn/_build_utils/cythonize.py b/build_tools/cythonize.py similarity index 100% rename from sklearn/_build_utils/cythonize.py rename to build_tools/cythonize.py diff --git a/continuous_integration/after_success.sh b/build_tools/travis/after_success.sh similarity index 100% rename from continuous_integration/after_success.sh rename to build_tools/travis/after_success.sh diff --git a/continuous_integration/install.sh b/build_tools/travis/install.sh similarity index 100% rename from continuous_integration/install.sh rename to build_tools/travis/install.sh diff --git a/continuous_integration/test_script.sh b/build_tools/travis/test_script.sh similarity index 100% rename from continuous_integration/test_script.sh rename to build_tools/travis/test_script.sh diff --git a/continuous_integration/windows/windows_testing_downloader.ps1 b/build_tools/windows/windows_testing_downloader.ps1 similarity index 97% rename from continuous_integration/windows/windows_testing_downloader.ps1 rename to build_tools/windows/windows_testing_downloader.ps1 index bb9cc5a44e85b..d72b6786ee504 100644 --- a/continuous_integration/windows/windows_testing_downloader.ps1 +++ b/build_tools/windows/windows_testing_downloader.ps1 @@ -1,270 +1,270 @@ -# Author: Kyle Kastner -# License: BSD 3 clause - -# This script is a helper to download the base python, numpy, and scipy -# packages from their respective websites. -# To quickly execute the script, run the following Powershell command: -# powershell.exe -ExecutionPolicy unrestricted "iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-learn/scikit-learn/master/continuous_integration/windows/windows_testing_downloader.ps1'))" - -# This is a stopgap solution to make Windows testing easier -# until Windows CI issues are resolved. - -# Rackspace's default Windows VMs have several security features enabled by default. -# The DisableInternetExplorerESC function disables a feature which -# prevents any webpage from opening without explicit permission. -# This is a default setting of Windows VMs on Rackspace, and makes it annoying to -# download other packages to test! - -# Powershell scripts are also disabled by default. One must run the command: -# set-executionpolicy unrestricted -# from a Powershell terminal with administrator rights to enable scripts. -# To start an administrator Powershell terminal, right click second icon from the left on Windows Server 2012's bottom taskbar. - -param ( - [string]$python = "None", - [string]$nogit = "False" -) - -function DisableInternetExplorerESC { - # Disables InternetExplorerESC to enable easier manual downloads of testing packages. - # http://stackoverflow.com/questions/9368305/disable-ie-security-on-windows-server-via-powershell - $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" - $UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" - Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0 - Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0 - Stop-Process -Name Explorer - Write-Host "IE Enhanced Security Configuration (ESC) has been disabled." -ForegroundColor Green -} - -function DownloadPackages ($package_dict, $append_string) { - $webclient = New-Object System.Net.WebClient - - ForEach ($key in $package_dict.Keys) { - $url = $package_dict[$key] - $file = $key + $append_string - if ($url -match "(\.*exe$)") { - $file = $file + ".exe" - } elseif ($url -match "(\.*msi$)") { - $file = $file + ".msi" - } else { - $file = $file + ".py" - } - $basedir = $pwd.Path + "\" - $filepath = $basedir + $file - Write-Host "Downloading" $file "from" $url - - # Retry up to 5 times in case of network transient errors. - $retry_attempts = 5 - for($i=0; $i -lt $retry_attempts; $i++){ - try{ - $webclient.DownloadFile($url, $filepath) - break - } - Catch [Exception]{ - Start-Sleep 1 - } - } - Write-Host "File saved at" $filepath - } -} - -function InstallPython($match_string) { - $pkg_regex = "python" + $match_string + "*" - $pkg = Get-ChildItem -Filter $pkg_regex -Name - Invoke-Expression -Command "msiexec /qn /i $pkg" - - Write-Host "Installing Python" - Start-Sleep 25 - Write-Host "Python installation complete" -} - -function InstallPip($match_string, $python_version) { - $pkg_regex = "get-pip" + $match_string + "*" - $py = $python_version -replace "\." - $pkg = Get-ChildItem -Filter $pkg_regex -Name - $python_path = "C:\Python" + $py + "\python.exe" - Invoke-Expression -Command "$python_path $pkg" -} - -function EnsurePip($python_version) { - $py = $python_version -replace "\." - $python_path = "C:\Python" + $py + "\python.exe" - Invoke-Expression -Command "$python_path -m ensurepip" -} - -function GetPythonHome($python_version) { - $py = $python_version -replace "\." - $pypath = "C:\Python" + $py + "\" - return $pypath -} - -function GetPipPath($python_version) { - $py = $python_version -replace "\." - $pypath = GetPythonHome $python_version - if ($py.StartsWith("3")) { - $pip = $pypath + "Scripts\pip3.exe" - } else { - $pip = $pypath + "Scripts\pip.exe" - } - return $pip -} - -function PipInstall($pkg_name, $python_version, $extra_args) { - $pip = GetPipPath $python_version - Invoke-Expression -Command "$pip install $pkg_name" -} - -function InstallNose($python_version) { - PipInstall "nose" $python_version -} - -function WheelInstall($name, $url, $python_version) { - $pip = GetPipPath $python_version - $args = "install --use-wheel --no-index" - Invoke-Expression -Command "$pip $args $url $name" -} - -function InstallWheel($python_version) { - PipInstall "virtualenv" $python_version - PipInstall "wheel" $python_version -} - -function InstallNumpy($package_dict, $python_version) { - #Don't pass name so we can use URL directly. - WheelInstall "" $package_dict["numpy"] $python_version -} - -function InstallScipy($package_dict, $python_version) { - #Don't pass name so we can use URL directly. - WheelInstall "" $package_dict["scipy"] $python_version -} - -function InstallGit { - $pkg_regex = "git*" - $pkg = Get-ChildItem -Filter $pkg_regex -Name - $pkg_cmd = $pwd.ToString() + "\" + $pkg + " /verysilent" - Invoke-Expression -Command $pkg_cmd - - Write-Host "Installing Git" - Start-Sleep 20 - # Remove the installer - seems to cause weird issues with Git Bash - Invoke-Expression -Command "rm git.exe" - Write-Host "Git installation complete" -} - -function ReadAndUpdateFromRegistry { - # http://stackoverflow.com/questions/14381650/how-to-update-windows-powershell-session-environment-variables-from-registry - foreach($level in "Machine","User") { - [Environment]::GetEnvironmentVariables($level).GetEnumerator() | % { - # For Path variables, append the new values, if they're not already in there - if($_.Name -match 'Path$') { - $_.Value = ($((Get-Content "Env:$($_.Name)") + ";$($_.Value)") -split ';' | Select -unique) -join ';' - } - $_ - } | Set-Content -Path { "Env:$($_.Name)" } - } -} - -function UpdatePaths($python_version) { - #This function makes local path updates required in order to install Python and supplementary packages in a single shell. - $pypath = GetPythonHome $python_version - $env:PATH = $env:PATH + ";" + $pypath - $env:PYTHONPATH = $pypath + "DLLs;" + $pypath + "Lib;" + $pypath + "Lib\site-packages" - $env:PYTHONHOME = $pypath - Write-Host "PYTHONHOME temporarily set to" $env:PYTHONHOME - Write-Host "PYTHONPATH temporarily set to" $env:PYTHONPATH - Write-Host "PATH temporarily set to" $env:PATH -} - -function Python27URLs { - # Function returns a dictionary of packages to download for Python 2.7. - $urls = @{ - "python" = "https://www.python.org/ftp/python/2.7.7/python-2.7.7.msi" - "numpy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/numpy-1.8.1-cp27-none-win32.whl" - "scipy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/scipy-0.14.0-cp27-none-win32.whl" - "get-pip" = "https://bootstrap.pypa.io/get-pip.py" - } - return $urls -} - -function Python34URLs { - # Function returns a dictionary of packages to download for Python 3.4. - $urls = @{ - "python" = "https://www.python.org/ftp/python/3.4.1/python-3.4.1.msi" - "numpy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/numpy-1.8.1-cp34-none-win32.whl" - "scipy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/scipy-0.14.0-cp34-none-win32.whl" - } - return $urls -} - -function GitURLs { - # Function returns a dictionary of packages to download for Git - $urls = @{ - "git" = "https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-preview20140611/Git-1.9.4-preview20140611.exe" - } - return $urls -} - -function main { - $versions = @{ - "2.7" = Python27URLs - "3.4" = Python34URLs - } - - if ($nogit -eq "False") { - Write-Host "Downloading and installing Gitbash" - $urls = GitURLs - DownloadPackages $urls "" - InstallGit ".exe" - } - - if (($python -eq "None")) { - Write-Host "Installing all supported python versions" - Write-Host "Current versions supported are:" - ForEach ($key in $versions.Keys) { - Write-Host $key - $all_python += @($key) - } - } elseif(!($versions.ContainsKey($python))) { - Write-Host "Python version not recognized!" - Write-Host "Pass python version with -python" - Write-Host "Current versions supported are:" - ForEach ($key in $versions.Keys) { - Write-Host $key - } - return - } else { - $all_python += @($python) - } - ForEach ($py in $all_python) { - Write-Host "Installing Python" $py - DisableInternetExplorerESC - $pystring = $py -replace "\." - $pystring = "_py" + $pystring - $package_dict = $versions[$py] - - # This will download the whl packages as well which is - # clunky but makes configuration simpler. - DownloadPackages $package_dict $pystring - UpdatePaths $py - InstallPython $pystring - ReadAndUpdateFromRegistry - if ($package_dict.ContainsKey("get-pip")) { - InstallPip $pystring $py - } else { - EnsurePip $py - } - InstallNose $py - InstallWheel $py - - # The installers below here use wheel packages. - # Wheels were created from CGohlke's installers with - # wheel convert - # These are hosted in Rackspace Cloud Files. - InstallNumpy $package_dict $py - InstallScipy $package_dict $py - } - return -} - -main +# Author: Kyle Kastner +# License: BSD 3 clause + +# This script is a helper to download the base python, numpy, and scipy +# packages from their respective websites. +# To quickly execute the script, run the following Powershell command: +# powershell.exe -ExecutionPolicy unrestricted "iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-learn/scikit-learn/master/continuous_integration/windows/windows_testing_downloader.ps1'))" + +# This is a stopgap solution to make Windows testing easier +# until Windows CI issues are resolved. + +# Rackspace's default Windows VMs have several security features enabled by default. +# The DisableInternetExplorerESC function disables a feature which +# prevents any webpage from opening without explicit permission. +# This is a default setting of Windows VMs on Rackspace, and makes it annoying to +# download other packages to test! + +# Powershell scripts are also disabled by default. One must run the command: +# set-executionpolicy unrestricted +# from a Powershell terminal with administrator rights to enable scripts. +# To start an administrator Powershell terminal, right click second icon from the left on Windows Server 2012's bottom taskbar. + +param ( + [string]$python = "None", + [string]$nogit = "False" +) + +function DisableInternetExplorerESC { + # Disables InternetExplorerESC to enable easier manual downloads of testing packages. + # http://stackoverflow.com/questions/9368305/disable-ie-security-on-windows-server-via-powershell + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + $UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0 + Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0 + Stop-Process -Name Explorer + Write-Host "IE Enhanced Security Configuration (ESC) has been disabled." -ForegroundColor Green +} + +function DownloadPackages ($package_dict, $append_string) { + $webclient = New-Object System.Net.WebClient + + ForEach ($key in $package_dict.Keys) { + $url = $package_dict[$key] + $file = $key + $append_string + if ($url -match "(\.*exe$)") { + $file = $file + ".exe" + } elseif ($url -match "(\.*msi$)") { + $file = $file + ".msi" + } else { + $file = $file + ".py" + } + $basedir = $pwd.Path + "\" + $filepath = $basedir + $file + Write-Host "Downloading" $file "from" $url + + # Retry up to 5 times in case of network transient errors. + $retry_attempts = 5 + for($i=0; $i -lt $retry_attempts; $i++){ + try{ + $webclient.DownloadFile($url, $filepath) + break + } + Catch [Exception]{ + Start-Sleep 1 + } + } + Write-Host "File saved at" $filepath + } +} + +function InstallPython($match_string) { + $pkg_regex = "python" + $match_string + "*" + $pkg = Get-ChildItem -Filter $pkg_regex -Name + Invoke-Expression -Command "msiexec /qn /i $pkg" + + Write-Host "Installing Python" + Start-Sleep 25 + Write-Host "Python installation complete" +} + +function InstallPip($match_string, $python_version) { + $pkg_regex = "get-pip" + $match_string + "*" + $py = $python_version -replace "\." + $pkg = Get-ChildItem -Filter $pkg_regex -Name + $python_path = "C:\Python" + $py + "\python.exe" + Invoke-Expression -Command "$python_path $pkg" +} + +function EnsurePip($python_version) { + $py = $python_version -replace "\." + $python_path = "C:\Python" + $py + "\python.exe" + Invoke-Expression -Command "$python_path -m ensurepip" +} + +function GetPythonHome($python_version) { + $py = $python_version -replace "\." + $pypath = "C:\Python" + $py + "\" + return $pypath +} + +function GetPipPath($python_version) { + $py = $python_version -replace "\." + $pypath = GetPythonHome $python_version + if ($py.StartsWith("3")) { + $pip = $pypath + "Scripts\pip3.exe" + } else { + $pip = $pypath + "Scripts\pip.exe" + } + return $pip +} + +function PipInstall($pkg_name, $python_version, $extra_args) { + $pip = GetPipPath $python_version + Invoke-Expression -Command "$pip install $pkg_name" +} + +function InstallNose($python_version) { + PipInstall "nose" $python_version +} + +function WheelInstall($name, $url, $python_version) { + $pip = GetPipPath $python_version + $args = "install --use-wheel --no-index" + Invoke-Expression -Command "$pip $args $url $name" +} + +function InstallWheel($python_version) { + PipInstall "virtualenv" $python_version + PipInstall "wheel" $python_version +} + +function InstallNumpy($package_dict, $python_version) { + #Don't pass name so we can use URL directly. + WheelInstall "" $package_dict["numpy"] $python_version +} + +function InstallScipy($package_dict, $python_version) { + #Don't pass name so we can use URL directly. + WheelInstall "" $package_dict["scipy"] $python_version +} + +function InstallGit { + $pkg_regex = "git*" + $pkg = Get-ChildItem -Filter $pkg_regex -Name + $pkg_cmd = $pwd.ToString() + "\" + $pkg + " /verysilent" + Invoke-Expression -Command $pkg_cmd + + Write-Host "Installing Git" + Start-Sleep 20 + # Remove the installer - seems to cause weird issues with Git Bash + Invoke-Expression -Command "rm git.exe" + Write-Host "Git installation complete" +} + +function ReadAndUpdateFromRegistry { + # http://stackoverflow.com/questions/14381650/how-to-update-windows-powershell-session-environment-variables-from-registry + foreach($level in "Machine","User") { + [Environment]::GetEnvironmentVariables($level).GetEnumerator() | % { + # For Path variables, append the new values, if they're not already in there + if($_.Name -match 'Path$') { + $_.Value = ($((Get-Content "Env:$($_.Name)") + ";$($_.Value)") -split ';' | Select -unique) -join ';' + } + $_ + } | Set-Content -Path { "Env:$($_.Name)" } + } +} + +function UpdatePaths($python_version) { + #This function makes local path updates required in order to install Python and supplementary packages in a single shell. + $pypath = GetPythonHome $python_version + $env:PATH = $env:PATH + ";" + $pypath + $env:PYTHONPATH = $pypath + "DLLs;" + $pypath + "Lib;" + $pypath + "Lib\site-packages" + $env:PYTHONHOME = $pypath + Write-Host "PYTHONHOME temporarily set to" $env:PYTHONHOME + Write-Host "PYTHONPATH temporarily set to" $env:PYTHONPATH + Write-Host "PATH temporarily set to" $env:PATH +} + +function Python27URLs { + # Function returns a dictionary of packages to download for Python 2.7. + $urls = @{ + "python" = "https://www.python.org/ftp/python/2.7.7/python-2.7.7.msi" + "numpy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/numpy-1.8.1-cp27-none-win32.whl" + "scipy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/scipy-0.14.0-cp27-none-win32.whl" + "get-pip" = "https://bootstrap.pypa.io/get-pip.py" + } + return $urls +} + +function Python34URLs { + # Function returns a dictionary of packages to download for Python 3.4. + $urls = @{ + "python" = "https://www.python.org/ftp/python/3.4.1/python-3.4.1.msi" + "numpy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/numpy-1.8.1-cp34-none-win32.whl" + "scipy" = "http://28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com/scipy-0.14.0-cp34-none-win32.whl" + } + return $urls +} + +function GitURLs { + # Function returns a dictionary of packages to download for Git + $urls = @{ + "git" = "https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-preview20140611/Git-1.9.4-preview20140611.exe" + } + return $urls +} + +function main { + $versions = @{ + "2.7" = Python27URLs + "3.4" = Python34URLs + } + + if ($nogit -eq "False") { + Write-Host "Downloading and installing Gitbash" + $urls = GitURLs + DownloadPackages $urls "" + InstallGit ".exe" + } + + if (($python -eq "None")) { + Write-Host "Installing all supported python versions" + Write-Host "Current versions supported are:" + ForEach ($key in $versions.Keys) { + Write-Host $key + $all_python += @($key) + } + } elseif(!($versions.ContainsKey($python))) { + Write-Host "Python version not recognized!" + Write-Host "Pass python version with -python" + Write-Host "Current versions supported are:" + ForEach ($key in $versions.Keys) { + Write-Host $key + } + return + } else { + $all_python += @($python) + } + ForEach ($py in $all_python) { + Write-Host "Installing Python" $py + DisableInternetExplorerESC + $pystring = $py -replace "\." + $pystring = "_py" + $pystring + $package_dict = $versions[$py] + + # This will download the whl packages as well which is + # clunky but makes configuration simpler. + DownloadPackages $package_dict $pystring + UpdatePaths $py + InstallPython $pystring + ReadAndUpdateFromRegistry + if ($package_dict.ContainsKey("get-pip")) { + InstallPip $pystring $py + } else { + EnsurePip $py + } + InstallNose $py + InstallWheel $py + + # The installers below here use wheel packages. + # Wheels were created from CGohlke's installers with + # wheel convert + # These are hosted in Rackspace Cloud Files. + InstallNumpy $package_dict $py + InstallScipy $package_dict $py + } + return +} + +main diff --git a/circle.yml b/circle.yml index dff2b533a5344..dd26453fa2e9c 100644 --- a/circle.yml +++ b/circle.yml @@ -6,7 +6,7 @@ dependencies: # Check whether the doc build is required, install build dependencies and # run sphinx to build the doc. override: - - ./continuous_integration/circle/build_doc.sh + - ./build_tools/circle/build_doc.sh test: # Grep error on the documentation override: @@ -15,7 +15,7 @@ deployment: push: branch: master commands: - - bash continuous_integration/circle/push_doc.sh + - bash build_tools/circle/push_doc.sh general: # Open the doc to the API artifacts: diff --git a/setup.py b/setup.py index 3f4f2aa121d99..ba5b3d31be756 100755 --- a/setup.py +++ b/setup.py @@ -176,8 +176,9 @@ def get_numpy_status(): def generate_cython(): cwd = os.path.abspath(os.path.dirname(__file__)) print("Cythonizing sources") - p = subprocess.call([sys.executable, os.path.join(cwd, 'sklearn', - '_build_utils', 'cythonize.py'), + p = subprocess.call([sys.executable, os.path.join(cwd, + 'build_tools', + 'cythonize.py'), 'sklearn'], cwd=cwd) if p != 0: diff --git a/sklearn/_build_utils/__init__.py b/sklearn/_build_utils/__init__.py index 25c33d6809145..85049f7492621 100644 --- a/sklearn/_build_utils/__init__.py +++ b/sklearn/_build_utils/__init__.py @@ -6,15 +6,8 @@ from __future__ import division, print_function, absolute_import -HASH_FILE = 'cythonize.dat' DEFAULT_ROOT = 'sklearn' -# WindowsError is not defined on unix systems -try: - WindowsError -except NameError: - WindowsError = None - from numpy.distutils.system_info import get_info