-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
Use Case
As a... Native addon user
I want... to obtain prebuilds for common platforms
So that... I can use the supporting packages without needing build tools
The package is officially deprecated and there's a known breakage starting in npm@12
- https://github.com/prebuild/prebuild-install/issues/216#issuecomment-3666500733
- https://github.com/npm/cli/issues/8153
Affected repositories (with native binaries):
- zstd
- client-encryption
- kerberos
User Experience
- TBD: Is this enough motivation to reconsider how we ship our addons to users or will we still distribute them as a "post-install script that downloads from github" step?
- One Alt: platform specific packages, zstd used to work this way, look at esbuild as an example
- Another alt: a mega tar ships all prebuilds in one npm package (might not actually be that big)
Dependencies
- Popularity of NPM 12 may make this more urgent when it releases
- We should fix the build-from-source flag but keep in mind that this may also not work as it once did in older npm versions? (needs confirmation)
Risks/Unknowns
- What could go wrong while implementing this change? (e.g., performance, inadvertent behavioral changes in adjacent functionality, existing tech debt, etc)
- Is there an opportunity for better cross-driver alignment or testing in this area?
- Is there an opportunity to improve existing documentation on this subject?
Acceptance Criteria
Implementation Requirements
- TODO - The new approach needs to be decided on.
Testing Requirements
- unit test, spec test sync, etc
Documentation Requirements
- DOCSP ticket, API docs, etc
Follow Up Requirements
- Follow up with user as promised in https://github.com/mongodb-js/mongodb-client-encryption/pull/127#issuecomment-4542886393
- if node behavior differs/will differ from other drivers, confirm with dbx devs what standard to aim for and what plan, if any, exists to reconcile the diverging behavior moving forward