Skip to content

Feature Request: track optional plugin dependencies. #3361

@JettJones

Description

@JettJones

Is your feature request related to a problem? Please describe.
I've been adding plugins to a project that started as a base golang image - and frequently hitting runtime errors for missing programs. As a concrete example - the cache plugin might use the aws command line, or tar, or zstd depending on the configuration passed to the plugin. So the requirements definition for the plugin is empty, but as a caller I still hit missing program errors via trial-and-error.

Describe the solution you'd like
One option: add optional-dependencies to the plugin specification. That gives a clear path to install everything up front, rather than discovering it while configuring.

Describe alternatives you've considered

  • Current status: run + fail the plugin several times, until I find all the missing tools.

  • add optional dependencies + runtime behavior (warn if optional dependencies are not present, or look for configuration to no-op, warn, or fail).

  • run plugins in a dedicated container. Likely way more work to synchronize environment and disk to the main commands, but has the benefit that basic containers like golang:1.24-bookworm will be able to use plugins, saving a custom build step.

Additional context
reference: buildkite-plugins/cache-buildkite-plugin#122

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions