Skip to content

Explicitly document supported Node & Python versions per major release in README #2948

Open

Description

@dlqqq

Many users encounter confusing errors because they are using older versions of node-gyp being required by other dependencies. However, some developers, including myself, are hesitant to explicitly resolve to a higher version of node-gyp as it may introduce new compatibility issues, e.g. older versions of Node or Python being dropped.

Can the supported Python & Node versions per major release be explicitly documented in the README? For example, one row may look like:

node-gyp version Compatible Python versions Compatible Node versions
^9.0.0 >=3.7,<=3.10 >=12,<=18

Activity

  1. cclauss commented on Nov 13, 2023

    @cclauss
    Contributor

    Python v3.12 requires node-gyp release >= v10.

  2. Apollon77 commented on Nov 13, 2023

    @Apollon77

    ... and is included in npm >= 10.2.2. Maybe adding that would also be awesome

  3. dlqqq commented on Nov 13, 2023

    @dlqqq
    Author

    @cclauss Thanks for clarifying the behavior of node-gyp@^10! I have another follow-up question for you.

    I believe the current major release policy is as follows:

    • On every major (i.e. backwards-incompatible) stable release of Node & Python (e.g. Node 16 => 18, or Python 3.11 => 3.12):
      • Include support for the latest major versions,
      • Drop support for any newly-deprecated major versions (if any),
      • Finally, bump the major version of node-gyp and cut a release.

    Is the observed major release policy for node-gyp? If not, what is the major release policy? We should also cover this in the documentation.

  4. cclauss commented on Nov 13, 2023

    @cclauss
    Contributor

    My efforts on the Python side is that the current node-gyp tracks with https://devguide.python.org/versions

    That means that node-gyp v10 supports Python 3.8 thru 3.12. Supporting five versions seems like enough complexity.

    Node.js support should similarly track with https://nodejs.org/en/about/previous-releases

  5. dlqqq commented on Nov 13, 2023

    @dlqqq
    Author

    @cclauss That makes sense, thanks for the reference! I am asking, however, what goes into deciding whether to cut a new major release? For example, did you cut node-gyp@^10 because Python 3.12 was released, or for some other reason?

    I think the repository needs a major release policy to be explicitly documented. In other words, there should be documentation that describes when and why new major releases of node-gyp are cut.

  6. cclauss commented on Nov 13, 2023

    @cclauss
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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