Uh oh!
There was an error while loading. Please reload this page.
n-api: restrict exports by version - #19962
Conversation
kfarnung
commented
Apr 12, 2018
devsnek
commented
Apr 12, 2018
can we just call it napi_version |
kfarnung
commented
Apr 12, 2018
I updated it to |
kfarnung
commented
Apr 12, 2018
Note to self: Add a versioning section to the docs. |
mhdawson
commented
Apr 12, 2018
Discussed a bit in the N-API meeting today, Kyle will do a few refinements and then we'll review in detail. |
addaleax
commented
Apr 21, 2018
What’s the motivation for restricting exports? |
kfarnung
commented
Apr 21, 2018
The idea is that an embedder can declare the version of N-API they want to target and trying to use any newer APIs would result in a build break. |
There was a problem hiding this comment.
with our styles i think this should be
#ifndefNAPI_VERSION#defineNAPI_VERSION 2
#endif// NAPI_VERSIONkfarnung
commented
Apr 24, 2018
@mhdawson I bumped the default NAPI_VERSION to 3 since v10.0.0 is coming out soon and we're in the process of backporting the version 3 changes anyway. |
mhdawson
commented
Apr 24, 2018
The changes look good but I think we discussed adding a section to the doc which explains how the to use the define etc. |
kfarnung
commented
Apr 24, 2018
Yeah, sorry about that, I haven't had a chance to flesh that out yet. Now that 10.0.0 is out I should have a little more time. |
2902039 to
3ce6459CompareBridgeAR
commented
May 15, 2018
Ping @kfarnung |
kfarnung
commented
May 15, 2018
I rebased the changes (pending a build/test locally), I believe I have addressed @mhdawson's comments as well. |
kfarnung
commented
May 15, 2018
Ping @nodejs/n-api |
mhdawson
commented
May 29, 2018
@kfarnung I think the one thing we discussed addint to this since you updated was the concept of EXPERIMENTAL that we could use to manage the flow of new functions into N-API. |
kfarnung
commented
May 29, 2018
That change is on my backlog, I've just been busy with other stuff. I'm hoping to get to that before the N-API meeting on Thursday. |
kfarnung
commented
Jun 28, 2018
Rebased and squashed: https://ci.nodejs.org/job/node-test-pull-request/15657/ |
kfarnung
commented
Jun 29, 2018
There was a problem hiding this comment.
I believe fatal_exception is part of NAPI_VERSION 3, it is already exposed in 6.x
There was a problem hiding this comment.
These 2 are already in 10.x but not in 6.x so we probably missed bumping the NAPI_VERSION when they went out.
If we leave as experimental like this PR does we risk breaking somebody, but the same goes if we add a guard for NAPI_VERSION 4. I think we'll need to figure out who added them and figure out what makes the most sense. I do think getting this PR landed would be good though, so maybe just leave them in the regular set (ie non-experimental) for this PR ?
There was a problem hiding this comment.
@addaleax What do you think the best approach is? I've moved them to NAPI_VERSION 3 for now.
mhdawson
left a comment
There was a problem hiding this comment.
LGTM once napi_fatal_exception is moved under version 3, and napi_add_env_cleanup_hook and napi_remove_env_cleanup_hook are moved out of experimental
86b0958 to
fa003a3Comparekfarnung
commented
Jun 29, 2018
kfarnung
commented
Jul 3, 2018
kfarnung
commented
Jul 3, 2018
@mhdawson Any other issues? I'm hoping to land this today, if possible |
mhdawson
commented
Jul 4, 2018
@kfarnung agreeing we should land, as would like this in place so we can make sure all future API are added as experimental. Can you take the action to follow up on napi_add_env_cleanup_hook/napi_remove_env_cleanup_hook to see if we can move out to NAPI_VERSION 4.x without breaking people? |
* Move `napi_get_uv_event_loop` into the `NAPI_VERSION >= 2` section * Move `napi_open_callback_scope`, `napi_close_callback_scope`, `napi_fatal_exception`, `napi_add_env_cleanup_hook`, and `napi_remove_env_cleanup_hook` into the `NAPI_VERSION >= 3` section * Added a missing `added` property to `napi_get_uv_event_loop` in the docs * Added a `napiVersion` property to the docs and updated the parser and generator to use it. * Added usage documentation PR-URL: #19962 Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
kfarnung
commented
Jul 5, 2018
Landed in 8476053 |
* Move `napi_get_uv_event_loop` into the `NAPI_VERSION >= 2` section * Move `napi_open_callback_scope`, `napi_close_callback_scope`, `napi_fatal_exception`, `napi_add_env_cleanup_hook`, and `napi_remove_env_cleanup_hook` into the `NAPI_VERSION >= 3` section * Added a missing `added` property to `napi_get_uv_event_loop` in the docs * Added a `napiVersion` property to the docs and updated the parser and generator to use it. * Added usage documentation PR-URL: #19962 Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
* Move `napi_get_uv_event_loop` into the `NAPI_VERSION >= 2` section * Move `napi_open_callback_scope`, `napi_close_callback_scope`, `napi_fatal_exception`, `napi_add_env_cleanup_hook`, and `napi_remove_env_cleanup_hook` into the `NAPI_VERSION >= 3` section * Added a missing `added` property to `napi_get_uv_event_loop` in the docs * Added a `napiVersion` property to the docs and updated the parser and generator to use it. * Added usage documentation PR-URL: nodejs#19962 Backport-PR-URL: nodejs#25648 Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
* Move `napi_get_uv_event_loop` into the `NAPI_VERSION >= 2` section * Move `napi_open_callback_scope`, `napi_close_callback_scope`, `napi_fatal_exception`, `napi_add_env_cleanup_hook`, and `napi_remove_env_cleanup_hook` into the `NAPI_VERSION >= 3` section * Added a missing `added` property to `napi_get_uv_event_loop` in the docs * Added a `napiVersion` property to the docs and updated the parser and generator to use it. * Added usage documentation PR-URL: #19962 Backport-PR-URL: #25648 Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>

napi_get_uv_event_loopinto theNAPI_VERSION >= 2sectionnapi_open_callback_scope,napi_close_callback_scope,napi_fatal_exception,napi_add_env_cleanup_hook, andnapi_remove_env_cleanup_hookinto theNAPI_VERSION >= 3sectionaddedproperty tonapi_get_uv_event_loopin thedocs
napiVersionproperty to the docs and updated the parser andgenerator to use it.
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes