This document details each data structure and field that does or can exist within a platform spec file for spk.
The root package spec defines which fields can and should exist at the top level of a spec file.
Field | Type | Description |
---|---|---|
platform | Identifier | The name and version number of this platform |
meta | Meta | Extra package metadata such as description, license, etc |
compat | Compat | The compatibility semantics of this packages versioning scheme |
deprecated | boolean | True if this package has been deprecated, this is usually reserved for internal use only and should not generally be specified directly in spec files |
base | List[Identifier] | (Optional) Base packages to inherit requirements from |
requirements | List[Requirement] | The set of requirements for this platform |
Each platform requirement names a package and the constraints for that package in downstream environments.
Like an Identifier but with a version range rather than an exact version, see versioning.
Field | Type | Description |
---|---|---|
pkg | Identifier | The package request to add to this platform, often with just a name |
atBuild | VersionRange or false |
The restriction to apply to this package when the platform is being used in a downstream build environment (when a package is being built). If false it removes any inherited restriction for downstream build environments. |
atRuntime | VersionRange or false |
The restriction to apply to this package when the platform is being used in a downstream runtime environment (when a package is not being built). If false it removes any inherited restriction for downstream runtime environments. |