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

v5.0.0 proposal #1723

Closed
wants to merge 1 commit into from
Closed

v5.0.0 proposal #1723

wants to merge 1 commit into from

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Apr 24, 2019

This is what a v5.0.0 would look like, can we get this right and clean up the backlog on master out of the door? This is a WIP, I haven't reviewed much of what's in here and can't vouch for its reliability or stability.

@cclauss @refack what does Python 3 support look like at the moment? Are we there yet?

(updated with latest)

  • [81f3a92338] - Update list of Node.js versions to test against. (Ben Noordhuis) #1670
  • [4748f6ab75] - Remove deprecated compatibility code. (Ben Noordhuis) #1670
  • [45e3221fd4] - Remove an outdated workaround for Python 2.4 (cclauss) #1650
  • [721dc7d314] - Add ARM64 to MSBuild /Platform logic (Jon Kunkee) #1655
  • [a5b7410497] - Add ESLint no-unused-vars rule (Jon Moss) #1497
  • [8a83972743] - (SEMVER-MAJOR) bin: follow XDG OS conventions for storing data (Selwyn) #1570
  • [9e46872ea3] - bin,lib: remove extra comments/lines/spaces (Jon Moss) #1508
  • [8098ebdeb4] - deps: replace osenv dependency with native os (Selwyn)
  • [f83b457e03] - deps: bump request to 2.8.7, fixes heok/hawk issues (Rohit Hazra) #1492
  • [323cee7323] - deps: pin request version range (Refael Ackermann) #1300
  • [c515912d08] - doc: improve issue template (Bartosz Sosnowski) #1618
  • [cca2d66727] - doc: python info needs own header (Taylor D. Lee) #1245
  • [3e64c780f5] - doc: lint README.md (Jon Moss) #1498
  • [a20faedc91] - (SEMVER-MAJOR) gyp: enable MARMASM items only on new VS versions (João Reis) #1762
  • [721eb691cf] - gyp: teach MSVS generator about MARMASM Items (Jon Kunkee) #1679
  • [91744bfecc] - gyp: add support for Windows on Arm (Richard Townsend) #1739
  • [a6e0a6c7ed] - gyp: move compile_commands_json (Paul Maréchal) #1661
  • [92e8b52cee] - gyp: fix target --> self.target (cclauss)
  • [febdfa2137] - gyp: fix sntex error (cclauss) #1333
  • [588d333c14] - gyp: _winreg module was renamed to winreg in Python 3. (Craig Rodrigues)
  • [98226d198c] - gyp: replace basestring with str, but only on Python 3. (Craig Rodrigues)
  • [7535e4478e] - gyp: replace deprecated functions (Craig Rodrigues)
  • [2040cd21cc] - gyp: use print as a function, as specified in PEP 3105. (Craig Rodrigues)
  • [abef93ded5] - gyp: get ready for python 3 (cclauss)
  • [43031fadcb] - python: clean-up detection (João Reis) #1582
  • [49ab79d221] - python: more informative error (Refael Ackermann) #1269
  • [997bc3c748] - readme: add ARM64 info to MSVC setup instructions (Jon Kunkee) #1655
  • [788e767179] - test: remove unused variable (João Reis)
  • [6f5a408934] - tools: fix usage of inherited -fPIC and -fPIE (Jens) #1340
  • [0efb8fb34b] - (SEMVER-MAJOR) win: support running in VS Command Prompt (João Reis) #1762
  • [360ddbdf3a] - (SEMVER-MAJOR) win: add support for Visual Studio 2019 (João Reis) #1762
  • [8f43f68275] - (SEMVER-MAJOR) win: detect all VS versions in node-gyp (João Reis) #1762
  • [7fe4095974] - (SEMVER-MAJOR) win: generic Visual Studio 2017 detection (João Reis) #1762
  • [7a71d68bce] - win: use msbuild from the configure stage (Bartosz Sosnowski) #1654
  • [d3b21220a0] - win: fix delay-load hook for electron 4 (Andy Dill)

@rvagg rvagg mentioned this pull request Apr 24, 2019
3 tasks
@refack
Copy link
Contributor

refack commented Apr 24, 2019

BTW this could be 4.0.0...

Python3 is close, Only thing that's known to be broken is cross-compilation, but I need a better CI environment to test the fix.

@rvagg
Copy link
Member Author

rvagg commented Apr 24, 2019

BTW this could be 4.0.0...

No, I just released 4.0.0 based on your 3.x proposal, that last release was semver-major so I just did the full bump

@cclauss
Copy link
Contributor

cclauss commented Apr 24, 2019

Agreed @refack but could you please unpack a better CI environment for us? What exactly is needed?

Given the snafu described @ #1721, perhaps it should be called v5.0.0

@refack
Copy link
Contributor

refack commented Apr 24, 2019

No, I just released 4.0.0 based on your 3.x proposal,

Ok. My main concern is/was coordination with npm...

a better CI environment

Currently GYP3 and node-gyp run on a limited set of platforms, i.e. what is available on free CI services; Windows, Ubuntu, and macOS over Intel x64.

IMHO a better testing environment would be the Node.js build cluster.

@joaocgreis
Copy link
Member

@rvagg can you include #1679 and #1739? Both just landed in master, thanks!

@Stanzilla
Copy link

missing visual studio 2019 support which should be prioritized.

@jkunkee
Copy link
Contributor

jkunkee commented May 21, 2019

@rvagg can you include #1679 and #1739? Both just landed in master, thanks!

#1739 is the last Node.js-ish change necessary for Electron v6 to ship with ARM64 Windows support, so I'm particularly interested in seeing it land in an official node-gyp release. (Right now they have to manually patch node-gyp to HEAD to get builds out.)

@cclauss
Copy link
Contributor

cclauss commented May 21, 2019

Does this repo have any automated testing? I am reluctant to endorse a release that is not supported by at least some level of automated testing. With 225 days until the end of life of Python 2, I still count at least 17 calls to functionality that no longer exists in Python 3. Some basic linting would really help.

@rvagg
Copy link
Member Author

rvagg commented Jun 4, 2019

Re testing: @cclauss we have a ci.nodejs.org job that can be triggered manually, not automatic yet but I think that should be doable with the github-bot setup.

Re 5.0.0: folks, how about we aim to get a 5.0.0 out within the next month, we can be ambitious with what's included but at the same time recommend to npm that they not pick it up as the default version straight away. That would alleviate some of the pressure to get this perfect but we'd still get it in the hands of a large number of people that are using it directly—and we can dogfood it ourselves.

Does that sound like a reasonable strategy? I'm struggling to come up with a better idea for moving forward here.

@Stanzilla
Copy link

@rvagg it's still open if 5.0 will include the move to python3, right?

@cclauss
Copy link
Contributor

cclauss commented Jun 4, 2019

Some of the Python 3 issues that need to be addressed...

https://travis-ci.com/nodejs/node-gyp/jobs/206230674#L9534

@joaocgreis
Copy link
Member

@rvagg #1762 just landed, it would be great if you can include it (essentially, all of master).

The strategy of just making the release and recommending to npm to not pick it up as default right away sounds like the best path forward to me. We just have to be prepared to release a fix quickly if any issue is actually found.

I'd rather see a v5.0.0 come out quickly because of #1764. I don't see a reason to wait for Python 3 support, we can release v6.0.0 as soon as it's ready. It's even probably better to have it in its own release. Let me know if I can help with the release, thanks!

Copy link
Contributor

@cclauss cclauss left a comment

Choose a reason for hiding this comment

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

I suggest that we need automated testing in this release. #1336 was opened in 2017 and ignored.

Recently #1671 and #1752 have attempted to get automated testing in place. A manual testing solution that gets run occasionally is no longer satisfactory given the criticality of this software.

@cclauss cclauss mentioned this pull request Jun 5, 2019
@rvagg rvagg force-pushed the v5.0.0-proposal branch from 9a83913 to 08aa21c Compare June 7, 2019 01:56
@rvagg
Copy link
Member Author

rvagg commented Jun 7, 2019

I've done a rebase and made a new CHANGELOG, it's in OP. Any blockers for pushing this out? If not, maybe we should do it tomorrow?

Again, let's not recommend npm pick this one up straight away but let's also get back onto a more regular cadence of releases and not let these things back up so much. Python 3 support seems like the top priority after this. We're not constrained by major version bump cadence but we should be prepared to go back and fix older majors for folks that really need things fixed but can't afford the breakage, LTS-style.

Copy link
Contributor

@cclauss cclauss left a comment

Choose a reason for hiding this comment

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

Now that Travis CI is enabled for this repo (#1752), I have no further objections to this release.

Good to go. Nice work!

@rvagg
Copy link
Member Author

rvagg commented Jun 13, 2019

Published v5.0.0.

@refack or @joaocgreis do either of you have a login to the new npm bug tracker? We can't open issues on the repo anymore. We need to let them know not to pick this one up until we have a patch or minor release or two and that we can continue to patch 4.x if there are critical bugs. I thought about opening a PR to do it but that'd be a bit too obnoxious I think.

@joaocgreis
Copy link
Member

Thanks @rvagg!

I opened this in npm: https://npm.community/t/node-gyp-v5-0-0-released/8179

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants