This specification defines interactions between a platform, a lifecycle, a number of buildpacks, and an application
- For the purpose of transforming that application into an OCI image and
- For the purpose of developing or executing automated tests on that application.
A buildpack is software that partially or completely transforms application source code into runnable artifacts.
A lifecycle is software that orchestrates buildpacks and transforms the resulting artifacts into an OCI image.
A platform is software that orchestrates a lifecycle to make buildpack functionality available to end-users such as application developers.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119.
The key words "unspecified", "undefined", and "implementation-defined" are to be interpreted as described in the rationale for the C99 standard.
An implementation is not compliant if it fails to satisfy one or more of the MUST, MUST NOT, REQUIRED, SHALL, or SHALL NOT requirements for the protocols it implements. An implementation is compliant if it satisfies all the MUST, MUST NOT, REQUIRED, SHALL, and SHALL NOT requirements for the protocols it implements.