Feature Request: track optional plugin dependencies.
- 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
Assessment
This issue has not been assessed yet.