| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
@MylesBorins build started: https://ci.nodejs.org/blue/organizations/jenkins/node-test-pull-request-lite-pipeline/detail/node-test-pull-request-lite-pipeline/493/pipeline |
Sorry, something went wrong.
|
cc @nodejs/delivery-channels |
Sorry, something went wrong.
There was a problem hiding this comment.
We should probably strongly encourage people who do this to contact us, so that we have consistent NODE_MODULE_VERSION values between distributors?
Sorry, something went wrong.
There was a problem hiding this comment.
So qq, I wasn't sure the answer to, can we support NODE_MODULE_VERSION to have characters in it or does gyp assume it is a number?
Sorry, something went wrong.
There was a problem hiding this comment.
I'm curious if this is something we could actually detect during build so that the build can actually fail if the NODE_MODULE_VERSION is not bumped.
Sorry, something went wrong.
There was a problem hiding this comment.
@MylesBorins The value is programatically accessible to addons, so changing its type would be a breaking change by itself.
@jasnell We might be able detect mismatching dependency versions, but not every API version change also means that the ABI has changed (or vice versa)
Sorry, something went wrong.
There was a problem hiding this comment.
I guess the implication of this is we'll need to maintain a list of NODE_MODULE_VERSION. Do we have anything other than
Lines 74 to 114 in dcfd323
Sorry, something went wrong.
|
@MylesBorins Likely not the right place, this file seems to be targeted at NodeJS upstream maintainer responsible for doing releases. Maybe https://github.com/nodejs/node/blob/master/BUILDING.md would be a better place? Also I would then advocate to specify in each release which version of each library was used for this release. Those are information that can be retrieved by looking at the commit history of the deps/ folder, but having it directly accessible from there would be a plus. ;) |
Sorry, something went wrong.
There was a problem hiding this comment.
Micro-nit: Remove *Note*: here and in the paragraph above. Just say what you have to say.
Sorry, something went wrong.
There was a problem hiding this comment.
Nit: Semver Major -> semver major for consistency.
I dislike the term semver major because I think it's jargon that we understand but that not everyone should be expected to. However, I don't have a better alternative. Suggestions welcome, although it's certainly outside the scope of this PR. It's been bugging me for a long time.
Sorry, something went wrong.
There was a problem hiding this comment.
I think just within a major version is fine?
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM with nits addressed
Sorry, something went wrong.
For stuff that we've built and released on https://nodejs.org, the versions of the dependencies are recorded in https://nodejs.org/dist/index.json and https://nodejs.org/dist/index.tab. |
Sorry, something went wrong.
|
I've addressed all above nits and moved the note into building.md Thoughts? |
Sorry, something went wrong.
There was a problem hiding this comment.
consult with the TSC may seem a bit vague to someone unfamiliar with our organization. Maybe explicitly suggest them to open an issue in https://github.com/nodejs/tsc/issues ? (Also it's likely to be request to join @nodejs/delivery-channels)
Sorry, something went wrong.
There was a problem hiding this comment.
I think in line with the above suggestion for reversed bits we could ask that the PR themselves into the list of reserved values for those bits.
Sorry, something went wrong.
There was a problem hiding this comment.
I think we should flesh out a bit more what is involved in a custom NODE_MODULE_VERSION. The problem is that we don't necessarily have "room" in the incrementally increasing versions to anticipate needs apriori.
My proposal is:
Sorry, something went wrong.
There was a problem hiding this comment.
reserving a number of bits makes sense to me.
Sorry, something went wrong.
There was a problem hiding this comment.
+1. Does someone want to push a commit that adds this specific documentation?
Sorry, something went wrong.
There was a problem hiding this comment.
@ofrobots would you be able to supply explicit copy for this? Otherwise I'd like to land this in an iteration of this PR
Sorry, something went wrong.
|
just chiming in to say this would be pretty useful for electron. right now people get confused and think that their module should work because it has the right NODE_MODULE_VERSION, but in fact it was built against a non-Electron set of headers. It'd be great if we could use a different NMV to make it really clear that building against stock headers won't work. |
Sorry, something went wrong.
|
This seems a bit vague to me, you're essentially saying "any dependency needs to be the same version, no matter what", but I only understand exactly one dependency to actually be public ABI, that being openssl due to exporting openssl symbols to binary node_modules. Could this be a little more specific so that distro packagers can actually know what they're dealing with? For example we build with icu 62, even on nodejs-lts-carbon which vendors icu 60. Is this too, to be considered public ABI? e.g.:
P.S. This is a statement being made about whether or not ABI compatibility is maintained, and this does, apparently, require the same versions of dependencies. Stating that it is "expected" is a rather soft way of describing a technological requirement that has no ambiguity. Either there is ABI compatibility or there is not. Saying that you don't expect ABI compatibility implies you think there is a slim chance that there might accidentally be ABI compatibility anyway. |
Sorry, something went wrong.
|
Ping |
Sorry, something went wrong.
|
I need to review this and update based on comments. Will try and do so later today. If anyone else wants to take lead and push a commit please feel free to do so |
Sorry, something went wrong.
|
updated, will land in 48 hours if there are no objections |
Sorry, something went wrong.
|
The technical connotations i mentioned of expected vs. required have been clarified sufficiently IMO. You still don't enumerate what the publicly exported dependencies in question are, though. Are there any, other than openssl? |
Sorry, something went wrong.
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION.
Sorry, something went wrong.
|
/cc @nodejs/platform-aix is this a known failure? I'm going to land this anyways as it is a doc fix unrelated to the failures but wanted to raise this |
Sorry, something went wrong.
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
I don't believe it's a known failure. I've opened #23962 to look into it. |
Sorry, something went wrong.
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Building node against versions of the dependencies that differ from the ones we vendor will result in a non ABI compatible version of Node.js This patch adds a note to make it explicit that if individuals build node against different versions of a dependency they should make a custom NODE_MODULE_VERSION. PR-URL: #22237 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
| Back | FazBrowse Home | New Git URL |
Building node against versions of the dependencies that differ from the
ones we vendor will result in a non ABI compatible version of Node.js
This patch adds a note to make it explicit that if individuals build
node against different versions of a dependency they should make a
custom NODE_MODULE_VERSION.