Consider dropping dtrace-provider
See original GitHub issueHi,
I know there’s already been a ticket for this, but I propose that we remove dtrace-provider
from optionalDependencies
, but keep the functionality. From my understanding (although please feel free to correct any misunderstandings) it’s mainly useful for someone who’s developing the ldapjs module itself.
Including dtrace-provider
has the following disadvantages:
- It will always at least attempt to build the native extension. While the dependency is optional, any errors here look extremely bad and confusing to normal users.
- It slows down installation unnecessarily even when everything works fine.
- It breaks easily between Node.js versions.
- Because the dependency is tied to a specific version, ldapjs needs to be released whenever there’s an important
dtrace-provider
update (like 0.12 fixes). A more lax version requirement might help here, though. - You wouldn’t normally expect an ldap module to include a native extension.
I propose that:
- We move dtrace-provider from
optionalDependencies
todevDependencies
so that it can still be used during development. - We keep the dtrace code.
- Whoever needs access to the dtrace probes, will have to do either
npm install -g dtrace-provider
or include dtrace-provider in their ownpackage.json
. They won’t have to do any other changes.
Doing this would achieve:
- No (or at the very least considerably less) GitHub issues about compilation errors.
- No changes required for new Node.js versions.
- More freedom over release schedule, since
dtrace-provider
updates would no longer impact end users. - Happy users (like me) 😃
What do you think?
Issue Analytics
- State:
- Created 8 years ago
- Reactions:1
- Comments:5 (3 by maintainers)
Top Results From Across the Web
fbt Provider - Oracle® Solaris 11.3 DTrace (Dynamic Tracing ...
This chapter describes the Function Boundary Tracing (FBT) provider, which provides probes associated with the entry to and return from most functions in ......
Read more >Brendan's blog » Solaris 11 DTrace syscall Provider Changes
Oracle Solaris 11 dropped many commonly used probes from the DTrace syscall provider, a disappointing side-effect of some code refactoring ...
Read more >How to avoid/solve node-gyp error during npm install on macos?
I am trying to install bunyan: $ npm init $ npm install bunyan > dtrace-provider@0.8.7 install /PATH2/test2/node_modules/dtrace-provider ...
Read more >DTrace Network Providers - Brendan Gregg
The CEC2006 demo of the new DTrace TCP provider, including screenshots. ... drop-saturation probes fire when packets are dropped due to load; other...
Read more >Hooked on DTrace, part 3 - Big Nerd Ranch
The same process ID annoyances happen here like they do with the pid provider. You can provide an explicit process ID in the...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
The point of dtrace is debugging in production. On non-supported platforms, the errors are harmless. I have no intention of removing it from the dependencies at this time.
Hopefully I don’t sound like a complete ahole, and I really do get that open source maintainers (including myself) have very limited time, but the cold hard reality is that you’re not updating the module often enough for dtrace-provider to be actually useful. For the past year or so it has mostly been good at creating compile errors, without any benefit whatsoever in production or development.
If you really want to keep it, at the very least make the version range more liberal so that users can update dtrace-provider without forking ldapjs.
On Friday, 16 October 2015, Patrick Mooney notifications@github.com wrote: