doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

doc: Declare that node-gyp is Python 3 compatible - #1811

Closed
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility
Closed

doc: Declare that node-gyp is Python 3 compatible#1811
cclauss wants to merge 1 commit into
masterfrom
Declare-Python-3-compatibility

Conversation

@cclauss

@cclausscclauss commented Jul 7, 2019

Copy link
Copy Markdown
Contributor

Edit: Blocked because Travis CI tests on Python 3 are failing...

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3. See #1337 (comment)

Careful review please because I am not a Windows user.

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change

Declare that node-gyp is Python 3 compatible as discussed at #1337 (comment)

@joaocgreisjoaocgreis left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this for now, node-gyp only uses Python 2:

semverRange: '>=2.6.0 <3.0.0',
, thus tests are not running in Python 3. I can open a PR to remove that restriction from configure.

@cclauss

Copy link
Copy Markdown
ContributorAuthor

2.7 should be the lower limit.

@joaocgreis

Copy link
Copy Markdown
Member

2.7 should be the lower limit.

@cclauss is there any node-gyp reason for that? Last time I checked (some time ago) it worked. I understand Python 2.6 is not recommendable at all, but is there anything on the node-gyp side forcing us to break users who can't upgrade?

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

After 5 years with no security patches, Python 2.6 represents a rather sizable attack surface area. Also the Python 3 compatibility changes that we have made across many files have not been tested on Python 2.6 and we should not be encouraging our users to run these untested changes on unsupported configurations in production. "Stop using Python 2.6", written by a Python core team member 4+ years ago, goes into more detail.

@joaocgreis

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

@cclauss

cclauss commented Jul 8, 2019

Copy link
Copy Markdown
ContributorAuthor

I have a strong opinion that we should not be encouraging/enabling our users to expose themselves to security risks. Also, we are tied to really out-of-date technologies and this long overdue backward compatibility promise is stunting our modernization.

@rvaggrvagg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems good to me. Great in fact.
Our pace of progress doesn't have to be dictated by nodejs/node so I'm comfortable with moving forward even if we struggle a bit in nodejs/node.

@richardlau

Copy link
Copy Markdown
Member

I don't think accepting it is the same as encouraging users to use it. Perhaps we should be clear in the docs that we only test on the latest version, others may or may not work. I still think that we don't have a reason to break 2.6, but I don't really have a strong opinion so I'll defer to other @nodejs/node-gyp members.

I can get behind dropping support for Python 2.6 at the same time as dropping support for Node.js 6 in a a node-gyp semver major. Declaring Python 3 support (assuming it does actually work) would be a positive change for the semver major.

cclauss added a commit that referenced this pull request Jul 11, 2019
rvagg pushed a commit that referenced this pull request Jul 15, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvaggrvagg mentioned this pull request Jul 16, 2019
rvagg pushed a commit that referenced this pull request Jul 17, 2019
As discussed in #1811
PR-URL: #1818
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

@cclauss@joaocgreis can you update us on the status of this? can we merge it?

@cclauss

Copy link
Copy Markdown
ContributorAuthor

I think we are ready for this PR to land. Of the PRs with a Python label the only one that worries me is the macOS bit of #1844 but that is semver-major.

@joaocgreis

Copy link
Copy Markdown
Member

Can we "declare that node-gyp is Python 3 compatible" if it's broken on macOS?

I can't work on macOS support myself at the moment, so I won't block this if you think it makes sense. Node-gyp would be broken by default on macOS.

NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
Careful review please because I am not a Windows user.
@cclauss
cclaussforce-pushed the Declare-Python-3-compatibility branch from e979d59 to 779483dCompareSeptember 30, 2019 07:51
@cclausscclauss mentioned this pull request Sep 30, 2019
@rvagg

Copy link
Copy Markdown
Member

is this semver-major? would it be appropriate to put on 5.x?

rvagg pushed a commit that referenced this pull request Sep 30, 2019
NOTE: node-gyp is compatible with both Python 2.7 and 3.7 but Node.js itself is not yet compatible with Python 3.
PR-URL: #1811
Reviewed-By: João Reis <reis@janeasystems.com>
@rvagg

Copy link
Copy Markdown
Member

landed in c763ca1 but if this shouldn't be in 5.x, please label it semver-major so it only goes into 6.

@rvaggrvagg closed this Sep 30, 2019
@rvagg
rvagg deleted the Declare-Python-3-compatibility branch September 30, 2019 11:36
@joaocgreis

Copy link
Copy Markdown
Member

This should NOT go into 5.

This depends on #1844, so this should only go into 6.

@rvagg

rvagg commented Oct 1, 2019

Copy link
Copy Markdown
Member

Maybe we should clarify in the readme that v5 is different to >v5 in this respect? A lot of people are going to be landing at this README regardless of their version.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@cclauss@joaocgreis@richardlau@rvagg