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

lib: restore python 2.6 in semverRange for v5.x #1912

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,33 +31,33 @@ matrix:

- name: "Node.js 6 & Python 3.7 on Linux"
python: 3.7
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: nvm install 6
- name: "Node.js 8 & Python 3.7 on Linux"
python: 3.7
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: nvm install 8
- name: "Node.js 10 & Python 3.7 on Linux"
python: 3.7
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: nvm install 10
- name: "Node.js 12 & Python 3.5 on Linux"
python: 3.5
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: nvm install 12
- name: "Node.js 12 & Python 3.6 on Linux"
python: 3.6
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: nvm install 12
- name: "Node.js 12 & Python 3.7 on Linux"
python: 3.7
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: nvm install 12
- name: "Python 3.7 on macOS"
os: osx
#osx_image: xcode11
language: shell # 'language: python' is not yet supported on macOS
env: NODE_GYP_FORCE_PYTHON=python3 EXPERIMENTAL_NODE_GYP_PYTHON3=1
env: NODE_GYP_FORCE_PYTHON=python3
before_install: HOMEBREW_NO_AUTO_UPDATE=1 brew install npm
- name: "Node.js 12 & Python 3.7 on Windows"
os: windows
Expand All @@ -66,7 +66,6 @@ matrix:
env: >-
PATH=/c/Python37:/c/Python37/Scripts:$PATH
NODE_GYP_FORCE_PYTHON=/c/Python37/python.exe
EXPERIMENTAL_NODE_GYP_PYTHON3=1
before_install: choco install python

install:
Expand All @@ -79,6 +78,7 @@ before_script:
# exit-zero treats all errors as warnings. Two space indentation is OK. The GitHub editor is 127 chars wide
- flake8 . --count --exit-zero --ignore=E111,E114,W503 --max-complexity=10 --max-line-length=127 --statistics
- npm install
- npm list
script:
- node -e 'require("npmlog").level="verbose"; require("./lib/find-python")(null,()=>{})'
- npm test
Expand Down
3 changes: 3 additions & 0 deletions gyp/pylib/gyp/MSVSNew.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ def __cmp__(self, other):
# Sort by name then guid (so things are in order on vs2008).
return cmp((self.name, self.get_guid()), (other.name, other.get_guid()))

def __lt__(self, other):
return self.__cmp__(other) < 0


class MSVSFolder(MSVSSolutionEntry):
"""Folder in a Visual Studio project or solution."""
Expand Down
10 changes: 7 additions & 3 deletions lib/find-python.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ PythonFinder.prototype = {
log: logWithPrefix(log, 'find Python'),
argsExecutable: ['-c', 'import sys; print(sys.executable);'],
argsVersion: ['-c', 'import sys; print("%s.%s.%s" % sys.version_info[:3]);'],
semverRange: process.env.EXPERIMENTAL_NODE_GYP_PYTHON3 ? '2.7.x || >=3.5.0'
: '>=2.6.0 <3.0.0',
semverRange: '^2.6.0 || >=3.5.0',

// These can be overridden for testing:
execFile: cp.execFile,
Expand Down Expand Up @@ -97,6 +96,11 @@ PythonFinder.prototype = {
before: () => { this.addLog('checking if "python2" can be used') },
check: this.checkCommand,
arg: 'python2'
},
{
before: () => { this.addLog('checking if "python3" can be used') },
check: this.checkCommand,
arg: 'python3'
}
]

Expand Down Expand Up @@ -286,7 +290,7 @@ PythonFinder.prototype = {
// X
const info = [
'**********************************************************',
'You need to install the latest version of Python 2.7.',
'You need to install the latest version of Python.',
'Node-gyp should be able to find and use Python. If not,',
'you can try one of the following options:',
`- Use the switch --python="${pathExample}"`,
Expand Down
19 changes: 13 additions & 6 deletions lib/find-visualstudio.js
Original file line number Diff line number Diff line change
Expand Up @@ -279,15 +279,22 @@ VisualStudioFinder.prototype = {
// Helper - process toolset information
getToolset: function getToolset (info, versionYear) {
const pkg = 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64'
const express = 'Microsoft.VisualStudio.WDExpress'

if (info.packages.indexOf(pkg) !== -1) {
this.log.silly('- found VC.Tools.x86.x64')
if (versionYear === 2017) {
return 'v141'
}
if (versionYear === 2019) {
return 'v142'
}
} else if (info.packages.indexOf(express) !== -1) {
this.log.silly('- found Visual Studio Express (looking for toolset)')
} else {
return null
}

if (versionYear === 2017) {
return 'v141'
} else if (versionYear === 2019) {
return 'v142'
}
this.log.silly('- invalid versionYear:', versionYear)
return null
},

Expand Down
Loading