platform

This document details each data structure and field that does or can exist within a platform spec file for spk.

Platform Spec

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

Requirement

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.