n-api: restrict exports by version#19962
Conversation
Sorry, something went wrong.
|
can we just call it napi_version |
Sorry, something went wrong.
|
I updated it to |
Sorry, something went wrong.
|
Note to self: Add a versioning section to the docs. |
Sorry, something went wrong.
|
Discussed a bit in the N-API meeting today, Kyle will do a few refinements and then we'll review in detail. |
Sorry, something went wrong.
|
What’s the motivation for restricting exports? |
Sorry, something went wrong.
|
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. |
Sorry, something went wrong.
|
@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. |
Sorry, something went wrong.
|
The changes look good but I think we discussed adding a section to the doc which explains how the to use the define etc. |
Sorry, something went wrong.
|
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. |
Sorry, something went wrong.
2902039 to
3ce6459
Compare
May 4, 2018 01:00
|
I rebased the changes (pending a build/test locally), I believe I have addressed @mhdawson's comments as well. |
Sorry, something went wrong.
|
Ping @nodejs/n-api |
Sorry, something went wrong.
|
@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. |
Sorry, something went wrong.
|
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. |
Sorry, something went wrong.
gabrielschulhof
left a comment
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
|
Rebased and squashed: https://ci.nodejs.org/job/node-test-pull-request/15657/ |
Sorry, something went wrong.
Sorry, something went wrong.
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
Sorry, something went wrong.
86b0958 to
fa003a3
Compare
June 29, 2018 22:22
Sorry, something went wrong.
Sorry, something went wrong.
|
@mhdawson Any other issues? I'm hoping to land this today, if possible |
Sorry, something went wrong.
mhdawson
left a comment
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
|
@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? |
Sorry, something went wrong.
* 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: #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