Skip to content

[FEATURE]: Optimize package footprint size by utilizing optional dependencies for os and arch #6983

@TheBaconWizard

Description

@TheBaconWizard

Package Name

No response

Package Version(s)

5.26.0

Describe the feature you'd like

I would like the native dependency packages (@datadog/libdatadog, @datadog/native-appsec, @datadog/pprof, @datadog/native-iast-taint-tracking, @datadog/native-metrics) to use the optionalDependencies pattern to only install platform-specific binaries for the target platform, rather than bundling binaries for all platforms.

libdatadog: 28M
└─ prebuilds: 28M
native-appsec: 19M
└─ prebuilds: 18M
native-iast-taint-tracking: 13M
└─ prebuilds: 13M
native-metrics: 1.0M
└─ prebuilds: 1.0M
pprof: 9.5M
└─ prebuilds: 9.3M

Total all datadog packages:
73M

For linux arm you only need ~10.25mb of these binaries.

Is your feature request related to a problem?

No response

Describe alternatives you've considered

Currently I delete these files out of my node_modules in my docker build steps

    rm -rf node_modules/@turbo-repo/turbo-window-*
    rm -rf node_modules/@turbo-repo/turbo-darwin-*
    ...

Additional context

This issue was discovered while investigating yarn cache bloat in a Docker-based CI/CD pipeline. While manually deleting unnecessary binaries works as a workaround, it's fragile and can require maintenance if changing docker architecture or if package architecture changes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions