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

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

Open
dlqqq opened this issue Nov 12, 2023 · 6 comments

Comments

@dlqqq
Copy link

dlqqq commented Nov 12, 2023

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
@cclauss
Copy link
Contributor

cclauss commented Nov 13, 2023

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

@Apollon77
Copy link

Apollon77 commented Nov 13, 2023

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

@dlqqq
Copy link
Author

dlqqq commented Nov 13, 2023

@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.

@cclauss
Copy link
Contributor

cclauss commented Nov 13, 2023

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

@dlqqq
Copy link
Author

dlqqq commented Nov 13, 2023

@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.

@cclauss
Copy link
Contributor

cclauss commented Nov 13, 2023

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

No branches or pull requests

3 participants