Skip to content

Commit 0389b50

Browse files
author
Natalie Arellano
authored
Merge pull request #393 from buildpacks/buildpack/0.11
Finalize Buildpack/0.11
2 parents 29d53ac + f56c8db commit 0389b50

File tree

2 files changed

+20
-46
lines changed

2 files changed

+20
-46
lines changed

buildpack.md

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ A **component buildpack** is a buildpack containing `/bin/detect` and `/bin/buil
103103

104104
A **composite buildpack** is a buildpack containing an order definition in `buildpack.toml`. Composite buildpacks do not contain `/bin/detect` or `/bin/build` executables. They MUST be [resolvable](#order-resolution) into a collection of component buildpacks.
105105

106-
An **image extension** (**experimental**) is a directory containing an `extension.toml`. Extensions generate Dockerfiles that can be used to define the runtime base image, prior to buildpack execution. Extensions implement the [Image Extension Interface](image-extension.md). Extensions are always "component": their `extension.toml` cannot contain an order definition.
106+
An **image extension** is a directory containing an `extension.toml`. Extensions generate Dockerfiles that can be used to define the runtime base image, prior to buildpack execution. Extensions implement the [Image Extension Interface](image-extension.md). Extensions are always "component": their `extension.toml` cannot contain an order definition.
107107

108108
**Resolving an order** is the process by which an order (which may contain image extensions, component buildpacks, or composite buildpacks) is evaluated together with application source code to produce an optional group of image extensions and a required group of component buildpacks that can be used to build the application. This process is known as **detection**. During detection, the `/bin/detect` executable for each image extension (if present) and the `/bin/detect` executable for each component buildpack is invoked.
109109

@@ -1242,47 +1242,3 @@ If the `bom` array is used, the buildpack:
12421242
When the build is complete, a legacy build BOM describing the build container MAY be generated for auditing purposes.
12431243

12441244
If generated, this legacy build BOM MUST contain all `bom` entries in each `build.toml` at the end of each `/bin/build` execution, in adherence with the process and data format outlined in the [Platform Interface Specification](platform.md) for legacy BOM formats.
1245-
1246-
### Build Plan (TOML) `requires.version` Key
1247-
1248-
_Deprecated in Buildpack API 0.3._
1249-
1250-
The `requires.version` and `or.requires.version` keys are deprecated.
1251-
1252-
```toml
1253-
[[requires]]
1254-
name = "<dependency name>"
1255-
version = "<dependency version>"
1256-
1257-
[[or.requires]]
1258-
name = "<dependency name>"
1259-
version = "dependency version>"
1260-
```
1261-
1262-
To upgrade, buildpack authors SHOULD set `requires.version` as `requires.metadata.version` and `or.requires.version` as `or.requires.metadata.version`.
1263-
1264-
```toml
1265-
[[requires]]
1266-
name = "<dependency name>"
1267-
1268-
[requires.metadata]
1269-
version = "<dependency version>"
1270-
1271-
[[or.requires]]
1272-
name = "<dependency name>"
1273-
1274-
[or.requires.metadata]
1275-
version = "<dependency version>"
1276-
```
1277-
1278-
If `requires.version` and `requires.metadata.version` or `or.requires.version` and `or.requires.metadata.version` are both defined then lifecycle will fail.
1279-
1280-
For backwards compatibility, the lifecycle will produce a Buildpack Plan (TOML) that puts `version` in `entries.metadata` as long as `version` does not exist in `requires.metadata`.
1281-
1282-
```toml
1283-
[[entries]]
1284-
name = "<dependency name>"
1285-
1286-
[entries.metadata]
1287-
version = "<dependency version>"
1288-
```

image_extension.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Image Extension Interface Specification (**experimental**)
1+
# Image Extension Interface Specification
22

33
This document specifies the interface between a lifecycle program and one or more image extensions.
44

@@ -89,9 +89,27 @@ Correspondingly, each `/bin/generate` executable:
8989
- MAY log output from the build process to `stdout`.
9090
- MAY emit error, warning, or debug messages to `stderr`.
9191
- MAY write either or both of `build.Dockerfile` and `run.Dockerfile` to the `<output>` directory. This file MUST adhere to the requirements listed below.
92+
- MAY create the following folders in the `<output>` directory with an arbitrary content:
93+
94+
either:
95+
96+
- `context`
97+
98+
or the image-specific folders:
99+
100+
- `context.run`
101+
- `context.build`
92102
- MAY write key-value pairs to `<output>/extend-config.toml` that are provided as build args to build.Dockerfile when extending the build image.
93103
- MUST NOT write SBOM (Software-Bill-of-Materials) files as described in the [Software-Bill-of-Materials](#software-bill-of-materials) section.
94104

105+
#### Context Folders
106+
107+
- The `<output>/context` folder MUST NOT be created together with any combination of the image-specific folders.
108+
- If the folder `<output>/context` is present it will be set as the build context during the `extend` phase of the build and run images.
109+
- If the folder `<output>/context.run` is present it will be set as the build context during the `extend` phase of the run image only.
110+
- If the folder `<output>/context.build` is present it will be set as the build context during the `extend` phase of the build image only.
111+
- If none of these folders is not present, the build context defaults to the `<app>` folder.
112+
95113
#### Dockerfile Requirements
96114

97115
A `run.Dockerfile`

0 commit comments

Comments
 (0)