Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bundle: Add platform-matching config directories
To allow a single bundle to be cross-platform. I've tried to add enough context to motivate the additional complexity without adding so much that the context distracts from the spec changes. The tie-breaking version ranking (step (2) for picking the best config file) also make it possible to write backwards-compatible bundles that still take advantage of new features when possible. For example, placing v1.0, v1.6, and v2.0 configs in the same directory would let you run the same container on all v1.* and v2.* runtimes while still letting you take advantage of v1.6 and v2.0 features for compatible runtimes. After explaining the multi-platform advantages, the multi-version example seemed obvious enough to not be worth cluttering the bundle.md description, but commit-message space is cheap so I'm talking about it explicitly here ;). There was discussion about schemes for sharing content between config files (JSON Schema's $ref [1] and explicit child declarations [2]). However, neither approach makes it convenient to both make mass tweaks across a family of related configs and make targetted tweaks to a single leaf [3], so for now we'll follow the Dockerfile example and have simple, stand-alone configs [4]. Folks who find this tedious or redundant are free to automate it with external tooling, and if a given external tool gains enough mass we can roll it into the spec later. [1]: #73 (comment) [2]: #74 [3]: #73 (comment) [4]: #74 (comment)
- Loading branch information