question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Consider dropping dtrace-provider

See original GitHub issue

Hi,

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 to devDependencies 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 own package.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:closed
  • Created 8 years ago
  • Reactions:1
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

3reactions
pfmooneycommented, Oct 16, 2015

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.

2reactions
sorccucommented, Oct 16, 2015

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:

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.

— Reply to this email directly or view it on GitHub https://github.com/mcavage/node-ldapjs/issues/286#issuecomment-148596188 .

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found