Skip to content

Suggestion: New Python & GYP strategic initiative or working group #642

Closed
@rvagg

Description

@rvagg

Python 2

https://www.python.org/dev/peps/pep-0373/

Being the last of the 2.x series, 2.7 will have an extended period of maintenance. Specifically, 2.7 will receive bugfix support until January 1, 2020. After the last release, 2.7 will receive no support.

The Python 2 & 3 debacle is increasingly painful for us and is getting worse as each month goes by. I'm not a Python person so I don't understand the landscape, culture or much else, I just know it hurts Node and we're not taking a strategic approach to fixing our Python related problems.

GYP

GYP is a mess too, Google, as it does, has moved on to shinier things and Node made the mistake of embracing it as a foundational tool for our entire ecosystem. A large portion of the regular stream of issues on nodejs/node-gyp are related to GYP itself or the Python 2 & 3 challenge. The maintenance burden is entirely on us and we're not up to the task because few of us want to have to care about this stuff. We obviously haven't embraced the ownership of GYP, it's now just a huge cost for us.

So many questions, so little strategy

  • Is it time to make a proper switch to Python 3 across the board? (Makefile, vcbuild.bat, tools/, test utilities, build infra, node-gyp) Or should we migrate off Python in some places .. somehow? Support for Python 3 node-gyp#193
  • How do we handle historical version pain with the 2 / 3 division, do we continue to test with 2 on older versions but invoke 3 with newer versions and if so, how do we make that work? Can 'make lint-py PYTHON=python3' be a manditory Jenkins test? build#1631 (comment)
  • Should we have a nodejs/gyp repo for properly maintaining it?
  • Do we have enough people to even maintain GYP?
  • Should we switch to gn? (or go whole-hog with depot_tools while we're at it? HAH. Seriously though, maybe removing deps/v8 and pulling it in on build is a possibility?) Build node with GN node#21410
  • Should we prioritise getting CMake working? [request] cmake build job build#1003
  • If we go CMake for core, do we deprecate node-gyp and provide a migration path for addon authors to move easily to CMake or some other utility?
  • What's the relationship and flow of code between GYP, node-gyp, npm, and nodejs/node/tools/gyp and is it working? tools: remove gyp from tools directory node#22343
  • How do we sustainably manage the flow of node-gyp issues, some of which require fixes and some just need a response ("go blame the package author").

I'm not the person to lead this, but I'd be happy to help with infrastructure changes where possible. What I'd like to see is some folks put up their hands to lead some discussions on putting us into a more strategic frame to deal with these things. Just having a group that we can go to with these kinds of questions would be helpful! On the infra side I'd love to be able to say something like "well, the Python working group says that we're off Python 2 by Node 12 so ...".

I don't think it'd be constructive to use this issue to answer any of the specifics above, those are just examples of the kinds of things we need answering in a holistic way. I'm more interested in establishing a strategic framework for generating those answers.

CC @nodejs/build @nodejs/gyp @nodejs/node-gyp @nodejs/python

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions