buildkite / buildkite/agent

Feature Request: track optional plugin dependencies.

Open
#3,361 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
1.1k
Forks
378
Avg merge
2d 6h
Merged PRs (30d)
74

Description

**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: https://github.com/buildkite-plugins/cache-buildkite-plugin/issues/122

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.