From cd175bbea36217de92effbd92f79f064bf7e48fd Mon Sep 17 00:00:00 2001 From: Joe Kutner Date: Thu, 18 Nov 2021 15:49:25 -0600 Subject: [PATCH 1/7] RFC: Replace positional args to Buildpack executables with env vars Signed-off-by: Joe Kutner --- text/0000-buildpack-input-vars.md | 142 ++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 text/0000-buildpack-input-vars.md diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md new file mode 100644 index 000000000..ef3e7d1e4 --- /dev/null +++ b/text/0000-buildpack-input-vars.md @@ -0,0 +1,142 @@ +# Meta +[meta]: #meta +- Name: Replace positional args to Buildpack executables with env vars +- Start Date: 2021-11-18 +- Author(s): [jkutner](https://github.com/jkutner) +- Status: Draft Draft +- RFC Pull Request: (leave blank) +- CNB Pull Request: (leave blank) +- CNB Issue: (leave blank) +- Supersedes: N/A + +# Summary +[summary]: #summary + +This is a proposal to replace the positional arguments of Buildpack executables with named environment variables. + +# Definitions +[definitions]: #definitions + +- *positional arguments* - values passed into an executable command such that they are accessible as `$1`, `$2`, etc + +# Motivation +[motivation]: #motivation + +Postional arguments to Buildpack executables have been the way for the buildpack execution engine to provide inputs for buildpacks since buildpacks v1 was created. However, positional arguments are limiting, and what they represent is not obvious without reading the spec. + +In the spec today they are defined as: + +* `/bin/detect ` +* `/bin/build ` + +Using env vars helps make these inputs more easily accesible from language bindings like [libcnb.bash](https://github.com/jkutner/libcnb.bash). + +# What it is +[what-it-is]: #what-it-is + +We will deprecate the positional arguments to `bin/detect` and `bin/build` with the following environment variables: + +### bin/detect + +* `CNB_PLATFORM_DIR` - replaces the first positional argument to `bin/build`. Uses the same env var name as the Platform spec. +* `CNB_PLAN_PATH` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. + +### bin/build + +* `CNB_BP_LAYERS_DIR` - replaces the first positional argument to `bin/build`. Uses `_BP_` to differentiate it from the `CNB_LAYERS_DIR` in the Plaform spec, which is a different value. +* `CNB_PLATFORM_DIR` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. +* `CNB_PLAN_PATH` - replaces the third positional argument to `bin/build`. Uses the same env var name as the Platform spec. + +# How it Works +[how-it-works]: #how-it-works + +Provide the environment variables with the same mechanism used to provide `CNB_BUILDPACK_DIR`. For example in [lifecycle's `build.go`](https://github.com/buildpacks/lifecycle/blob/880a801db2d4bfbb39671a66f7aadd96c0231e37/buildpack/build.go): + +```go +cmd.Env = append(cmd.Env, EnvPlatformDir+"="+b.Dir) +``` + +The positional arguments will be deprecated, but no warnings will be emitted if they are consumed. The lifecycle will continue to provide them to buildpack executable indefinitely, with no plan to remove them. + +# Drawbacks +[drawbacks]: #drawbacks + +- People have been using positional arguments to buildpacks for literally a decade + +# Alternatives +[alternatives]: #alternatives + +- Do this but don't deprecate the positional arguments (support both) + +# Prior Art +[prior-art]: #prior-art + +- Buildpack v1, v2a, & v2b + +# Unresolved Questions +[unresolved-questions]: #unresolved-questions + +N/A + +# Spec. Changes (OPTIONAL) +[spec-changes]: #spec-changes + +In the Buildpack spec: + +### Detection + +Executable: `/bin/detect`, Working Dir: `` + +| Input | Attributes | Description +|---------------------------|------------|---------------------------------------------- +| `$0` | | Absolute path of `/bin/detect` executable +| `$CNB_PLAN_PATH` | E | Absolute path to the build plan +| `$CNB_PLATFORM_DIR` | AR | Absolute path to the platform directory +| `$CNB_PLATFORM_DIR/env/` | | User-provided environment variables for build +| `$CNB_PLATFORM_DIR/#` | | Platform-specific extensions + +| Output | Description +|--------------------|---------------------------------------------- +| [exit status] | Pass (0), fail (100), or error (1-99, 101+) +| Standard output | Logs (info) +| Standard error | Logs (warnings, errors) +| `$CNB_PLAN_PATH` | Contributions to the the Build Plan (TOML) + +### Build + +Executable: `/bin/build`, Working Dir: `` + +| Input | Attributes | Description +|---------------------------|------------|---------------------------------- +| `$0` | | Absolute path of `/bin/build` executable +| `$CNB_BP_LAYERS_DIR` | EIC | Absolute path to the buildpack layers directory +| `$CNB_PLAN_PATH` | ER | Relevant [Buildpack Plan entries](#buildpack-plan-toml) from detection (TOML) +| `$CNB_PLATFORM_DIR` | AR | Absolute path to the platform directory +| `$CNB_PLATFORM_DIR/env/` | | User-provided environment variables for build +| `$CNB_PLATFORM_DIR/#` | | Platform-specific extensions + +| Output | Description +|------------------------------------------|-------------------------------------- +| [exit status] | Success (0) or failure (1+) +| Standard output | Logs (info) +| Standard error | Logs (warnings, errors) +| `$CNB_BP_LAYERS_DIR/launch.toml` | App metadata (see [launch.toml](#launchtoml-toml)) +| `$CNB_BP_LAYERS_DIR/launch.sbom.` | Launch Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) +| `$CNB_BP_LAYERS_DIR/build.toml` | Build metadata (see [build.toml](#buildtoml-toml)) +| `$CNB_BP_LAYERS_DIR/build.sbom.` | Build Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) +| `$CNB_BP_LAYERS_DIR/store.toml` | Persistent metadata (see [store.toml](#storetoml-toml)) +| `$CNB_BP_LAYERS_DIR/.toml` | Layer metadata (see [Layer Content Metadata](#layer-content-metadata-toml)) +| `$CNB_BP_LAYERS_DIR/.sbom.` | Layer Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) +| `$CNB_BP_LAYERS_DIR//bin/` | Binaries for launch and/or subsequent buildpacks +| `$CNB_BP_LAYERS_DIR//lib/` | Shared libraries for launch and/or subsequent buildpacks +| `$CNB_BP_LAYERS_DIR//profile.d/` | Scripts sourced by Bash before launch +| `$CNB_BP_LAYERS_DIR//profile.d//` | Scripts sourced by Bash before launch for a particular process type +| `$CNB_BP_LAYERS_DIR//exec.d/` | Executables that provide env vars via the [Exec.d Interface](#execd) before launch +| `$CNB_BP_LAYERS_DIR//exec.d//` | Executables that provide env vars for a particular process type via the [Exec.d Interface](#execd) before launch +| `$CNB_BP_LAYERS_DIR//include/` | C/C++ headers for subsequent buildpacks +| `$CNB_BP_LAYERS_DIR//pkgconfig/` | Search path for pkg-config for subsequent buildpacks +| `$CNB_BP_LAYERS_DIR//env/` | Env vars for launch and/or subsequent buildpacks +| `$CNB_BP_LAYERS_DIR//env.launch/` | Env vars for launch (after `env`, before `profile.d`) +| `$CNB_BP_LAYERS_DIR//env.launch//` | Env vars for launch (after `env`, before `profile.d`) for the launched process +| `$CNB_BP_LAYERS_DIR//env.build/` | Env vars for subsequent buildpacks (after `env`) +| `$CNB_BP_LAYERS_DIR//*` | Other content for launch and/or subsequent buildpacks From 9eb6251271c3a0d6f5fa085c6a73e72c48beb504 Mon Sep 17 00:00:00 2001 From: Joe Kutner Date: Thu, 27 Jan 2022 09:52:02 -0600 Subject: [PATCH 2/7] Update text/0000-buildpack-input-vars.md Signed-off-by: Joe Kutner --- text/0000-buildpack-input-vars.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md index ef3e7d1e4..1cea47483 100644 --- a/text/0000-buildpack-input-vars.md +++ b/text/0000-buildpack-input-vars.md @@ -39,7 +39,7 @@ We will deprecate the positional arguments to `bin/detect` and `bin/build` with ### bin/detect * `CNB_PLATFORM_DIR` - replaces the first positional argument to `bin/build`. Uses the same env var name as the Platform spec. -* `CNB_PLAN_PATH` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. +* `CNB_BUILD_PLAN_PATH` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. ### bin/build From 3611d65f9a38056bb50606a5cfed539ff9f966e1 Mon Sep 17 00:00:00 2001 From: Joe Kutner Date: Fri, 4 Feb 2022 08:04:36 -0600 Subject: [PATCH 3/7] rename CNB_LAYERS_DIR in platform spec Signed-off-by: Joe Kutner --- text/0000-buildpack-input-vars.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md index 1cea47483..ced4672cc 100644 --- a/text/0000-buildpack-input-vars.md +++ b/text/0000-buildpack-input-vars.md @@ -43,7 +43,7 @@ We will deprecate the positional arguments to `bin/detect` and `bin/build` with ### bin/build -* `CNB_BP_LAYERS_DIR` - replaces the first positional argument to `bin/build`. Uses `_BP_` to differentiate it from the `CNB_LAYERS_DIR` in the Plaform spec, which is a different value. +* `CNB_LAYERS_DIR` - replaces the first positional argument to `bin/build`. **Note:** `CNB_LAYERS_DIR` conflicts with the platform spec, which will beupdated to rename its `CNB_LAYERS_DIR` to `CNB_PARENT_LAYERS_DIR`. * `CNB_PLATFORM_DIR` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. * `CNB_PLAN_PATH` - replaces the third positional argument to `bin/build`. Uses the same env var name as the Platform spec. @@ -81,7 +81,11 @@ N/A # Spec. Changes (OPTIONAL) [spec-changes]: #spec-changes -In the Buildpack spec: +## Platform Spec + +Rename `CNB_LAYERS_DIR` to `CNB_PARENT_LAYERS_DIR`. + +## Buildpack spec ### Detection From f1a4e026d2cf84a43d0ea5cb5f684c916879bba7 Mon Sep 17 00:00:00 2001 From: Terence Lee Date: Fri, 4 Feb 2022 10:43:16 -0600 Subject: [PATCH 4/7] Update text/0000-buildpack-input-vars.md Signed-off-by: Terence Lee --- text/0000-buildpack-input-vars.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md index ced4672cc..ad258388d 100644 --- a/text/0000-buildpack-input-vars.md +++ b/text/0000-buildpack-input-vars.md @@ -43,7 +43,7 @@ We will deprecate the positional arguments to `bin/detect` and `bin/build` with ### bin/build -* `CNB_LAYERS_DIR` - replaces the first positional argument to `bin/build`. **Note:** `CNB_LAYERS_DIR` conflicts with the platform spec, which will beupdated to rename its `CNB_LAYERS_DIR` to `CNB_PARENT_LAYERS_DIR`. +* `CNB_LAYERS_DIR` - replaces the first positional argument to `bin/build`. **Note:** `CNB_LAYERS_DIR` conflicts with the platform spec, which will be updated to rename its `CNB_LAYERS_DIR` to `CNB_PARENT_LAYERS_DIR`. * `CNB_PLATFORM_DIR` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. * `CNB_PLAN_PATH` - replaces the third positional argument to `bin/build`. Uses the same env var name as the Platform spec. From 8873b7c3ace7eafc4f7ddedae78fee4f2a8b8912 Mon Sep 17 00:00:00 2001 From: Joe Kutner Date: Fri, 4 Feb 2022 16:12:50 -0600 Subject: [PATCH 5/7] fix CNB_BP_ prefix Signed-off-by: Joe Kutner --- text/0000-buildpack-input-vars.md | 42 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md index ad258388d..a1bbe8d5a 100644 --- a/text/0000-buildpack-input-vars.md +++ b/text/0000-buildpack-input-vars.md @@ -113,7 +113,7 @@ Executable: `/bin/build`, Working Dir: `` | Input | Attributes | Description |---------------------------|------------|---------------------------------- | `$0` | | Absolute path of `/bin/build` executable -| `$CNB_BP_LAYERS_DIR` | EIC | Absolute path to the buildpack layers directory +| `$CNB_LAYERS_DIR` | EIC | Absolute path to the buildpack layers directory | `$CNB_PLAN_PATH` | ER | Relevant [Buildpack Plan entries](#buildpack-plan-toml) from detection (TOML) | `$CNB_PLATFORM_DIR` | AR | Absolute path to the platform directory | `$CNB_PLATFORM_DIR/env/` | | User-provided environment variables for build @@ -124,23 +124,23 @@ Executable: `/bin/build`, Working Dir: `` | [exit status] | Success (0) or failure (1+) | Standard output | Logs (info) | Standard error | Logs (warnings, errors) -| `$CNB_BP_LAYERS_DIR/launch.toml` | App metadata (see [launch.toml](#launchtoml-toml)) -| `$CNB_BP_LAYERS_DIR/launch.sbom.` | Launch Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) -| `$CNB_BP_LAYERS_DIR/build.toml` | Build metadata (see [build.toml](#buildtoml-toml)) -| `$CNB_BP_LAYERS_DIR/build.sbom.` | Build Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) -| `$CNB_BP_LAYERS_DIR/store.toml` | Persistent metadata (see [store.toml](#storetoml-toml)) -| `$CNB_BP_LAYERS_DIR/.toml` | Layer metadata (see [Layer Content Metadata](#layer-content-metadata-toml)) -| `$CNB_BP_LAYERS_DIR/.sbom.` | Layer Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) -| `$CNB_BP_LAYERS_DIR//bin/` | Binaries for launch and/or subsequent buildpacks -| `$CNB_BP_LAYERS_DIR//lib/` | Shared libraries for launch and/or subsequent buildpacks -| `$CNB_BP_LAYERS_DIR//profile.d/` | Scripts sourced by Bash before launch -| `$CNB_BP_LAYERS_DIR//profile.d//` | Scripts sourced by Bash before launch for a particular process type -| `$CNB_BP_LAYERS_DIR//exec.d/` | Executables that provide env vars via the [Exec.d Interface](#execd) before launch -| `$CNB_BP_LAYERS_DIR//exec.d//` | Executables that provide env vars for a particular process type via the [Exec.d Interface](#execd) before launch -| `$CNB_BP_LAYERS_DIR//include/` | C/C++ headers for subsequent buildpacks -| `$CNB_BP_LAYERS_DIR//pkgconfig/` | Search path for pkg-config for subsequent buildpacks -| `$CNB_BP_LAYERS_DIR//env/` | Env vars for launch and/or subsequent buildpacks -| `$CNB_BP_LAYERS_DIR//env.launch/` | Env vars for launch (after `env`, before `profile.d`) -| `$CNB_BP_LAYERS_DIR//env.launch//` | Env vars for launch (after `env`, before `profile.d`) for the launched process -| `$CNB_BP_LAYERS_DIR//env.build/` | Env vars for subsequent buildpacks (after `env`) -| `$CNB_BP_LAYERS_DIR//*` | Other content for launch and/or subsequent buildpacks +| `$CNB_LAYERS_DIR/launch.toml` | App metadata (see [launch.toml](#launchtoml-toml)) +| `$CNB_LAYERS_DIR/launch.sbom.` | Launch Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) +| `$CNB_LAYERS_DIR/build.toml` | Build metadata (see [build.toml](#buildtoml-toml)) +| `$CNB_LAYERS_DIR/build.sbom.` | Build Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) +| `$CNB_LAYERS_DIR/store.toml` | Persistent metadata (see [store.toml](#storetoml-toml)) +| `$CNB_LAYERS_DIR/.toml` | Layer metadata (see [Layer Content Metadata](#layer-content-metadata-toml)) +| `$CNB_LAYERS_DIR/.sbom.` | Layer Software Bill of Materials (see [Software-Bill-of-Materials](#bill-of-materials)) +| `$CNB_LAYERS_DIR//bin/` | Binaries for launch and/or subsequent buildpacks +| `$CNB_LAYERS_DIR//lib/` | Shared libraries for launch and/or subsequent buildpacks +| `$CNB_LAYERS_DIR//profile.d/` | Scripts sourced by Bash before launch +| `$CNB_LAYERS_DIR//profile.d//` | Scripts sourced by Bash before launch for a particular process type +| `$CNB_LAYERS_DIR//exec.d/` | Executables that provide env vars via the [Exec.d Interface](#execd) before launch +| `$CNB_LAYERS_DIR//exec.d//` | Executables that provide env vars for a particular process type via the [Exec.d Interface](#execd) before launch +| `$CNB_LAYERS_DIR//include/` | C/C++ headers for subsequent buildpacks +| `$CNB_LAYERS_DIR//pkgconfig/` | Search path for pkg-config for subsequent buildpacks +| `$CNB_LAYERS_DIR//env/` | Env vars for launch and/or subsequent buildpacks +| `$CNB_LAYERS_DIR//env.launch/` | Env vars for launch (after `env`, before `profile.d`) +| `$CNB_LAYERS_DIR//env.launch//` | Env vars for launch (after `env`, before `profile.d`) for the launched process +| `$CNB_LAYERS_DIR//env.build/` | Env vars for subsequent buildpacks (after `env`) +| `$CNB_LAYERS_DIR//*` | Other content for launch and/or subsequent buildpacks From 05e2c15360013b244b8bbbee0c2176a88ca33929 Mon Sep 17 00:00:00 2001 From: Joe Kutner Date: Thu, 10 Feb 2022 07:27:21 -0600 Subject: [PATCH 6/7] update input var names to address conflict with platform spec Signed-off-by: Joe Kutner --- text/0000-buildpack-input-vars.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md index a1bbe8d5a..5c0fc8183 100644 --- a/text/0000-buildpack-input-vars.md +++ b/text/0000-buildpack-input-vars.md @@ -43,9 +43,9 @@ We will deprecate the positional arguments to `bin/detect` and `bin/build` with ### bin/build -* `CNB_LAYERS_DIR` - replaces the first positional argument to `bin/build`. **Note:** `CNB_LAYERS_DIR` conflicts with the platform spec, which will be updated to rename its `CNB_LAYERS_DIR` to `CNB_PARENT_LAYERS_DIR`. +* `CNB_LAYERS_DIR` - replaces the first positional argument to `bin/build`. **Note:** Uses the same env var name as the Platform spec, but refers to a different location. * `CNB_PLATFORM_DIR` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. -* `CNB_PLAN_PATH` - replaces the third positional argument to `bin/build`. Uses the same env var name as the Platform spec. +* `CNB_PLAN_PATH` - replaces the third positional argument to `bin/build`. **Note:** Uses the same env var name as the Platform spec, but refers to a different file. # How it Works [how-it-works]: #how-it-works @@ -58,10 +58,17 @@ cmd.Env = append(cmd.Env, EnvPlatformDir+"="+b.Dir) The positional arguments will be deprecated, but no warnings will be emitted if they are consumed. The lifecycle will continue to provide them to buildpack executable indefinitely, with no plan to remove them. +## Renaming Platform Env Vars + +Because some of the new buildpack input vars conflict with platform env var names, we intend to rename the platform env vars as part of a larger effort to refactor the platform spec. That will be convered in a future RFC. + +The conflict of env var names is strictly an experience problem. Because the env vars are used in different contexts, there is little risk that they will be reused by the internals of lifecycle or pack. + # Drawbacks [drawbacks]: #drawbacks - People have been using positional arguments to buildpacks for literally a decade +- New env var names conflict with platform env vars # Alternatives [alternatives]: #alternatives @@ -81,10 +88,6 @@ N/A # Spec. Changes (OPTIONAL) [spec-changes]: #spec-changes -## Platform Spec - -Rename `CNB_LAYERS_DIR` to `CNB_PARENT_LAYERS_DIR`. - ## Buildpack spec ### Detection From 6e15d37112895de121e97e22aabf7f933f75e50a Mon Sep 17 00:00:00 2001 From: Joe Kutner Date: Thu, 10 Feb 2022 07:32:56 -0600 Subject: [PATCH 7/7] update input var names to address conflict with platform spec Signed-off-by: Joe Kutner --- text/0000-buildpack-input-vars.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/text/0000-buildpack-input-vars.md b/text/0000-buildpack-input-vars.md index 5c0fc8183..66085f868 100644 --- a/text/0000-buildpack-input-vars.md +++ b/text/0000-buildpack-input-vars.md @@ -45,7 +45,7 @@ We will deprecate the positional arguments to `bin/detect` and `bin/build` with * `CNB_LAYERS_DIR` - replaces the first positional argument to `bin/build`. **Note:** Uses the same env var name as the Platform spec, but refers to a different location. * `CNB_PLATFORM_DIR` - replaces the second positional argument to `bin/build`. Uses the same env var name as the Platform spec. -* `CNB_PLAN_PATH` - replaces the third positional argument to `bin/build`. **Note:** Uses the same env var name as the Platform spec, but refers to a different file. +* `CNB_BP_PLAN_PATH` - replaces the third positional argument to `bin/build`. # How it Works [how-it-works]: #how-it-works @@ -60,7 +60,7 @@ The positional arguments will be deprecated, but no warnings will be emitted if ## Renaming Platform Env Vars -Because some of the new buildpack input vars conflict with platform env var names, we intend to rename the platform env vars as part of a larger effort to refactor the platform spec. That will be convered in a future RFC. +Because `CNB_LAYERS_DIR` in the new input vars conflicts with a platform env var name, we intend to rename the platform env var as part of a larger effort to refactor the platform spec. That will be convered in a future RFC. The conflict of env var names is strictly an experience problem. Because the env vars are used in different contexts, there is little risk that they will be reused by the internals of lifecycle or pack. @@ -97,7 +97,7 @@ Executable: `/bin/detect`, Working Dir: `` | Input | Attributes | Description |---------------------------|------------|---------------------------------------------- | `$0` | | Absolute path of `/bin/detect` executable -| `$CNB_PLAN_PATH` | E | Absolute path to the build plan +| `$CNB_BUILD_PLAN_PATH` | E | Absolute path to the build plan | `$CNB_PLATFORM_DIR` | AR | Absolute path to the platform directory | `$CNB_PLATFORM_DIR/env/` | | User-provided environment variables for build | `$CNB_PLATFORM_DIR/#` | | Platform-specific extensions @@ -107,7 +107,7 @@ Executable: `/bin/detect`, Working Dir: `` | [exit status] | Pass (0), fail (100), or error (1-99, 101+) | Standard output | Logs (info) | Standard error | Logs (warnings, errors) -| `$CNB_PLAN_PATH` | Contributions to the the Build Plan (TOML) +| `$CNB_BUILD_PLAN_PATH` | Contributions to the the Build Plan (TOML) ### Build @@ -116,8 +116,8 @@ Executable: `/bin/build`, Working Dir: `` | Input | Attributes | Description |---------------------------|------------|---------------------------------- | `$0` | | Absolute path of `/bin/build` executable -| `$CNB_LAYERS_DIR` | EIC | Absolute path to the buildpack layers directory -| `$CNB_PLAN_PATH` | ER | Relevant [Buildpack Plan entries](#buildpack-plan-toml) from detection (TOML) +| `$CNB_LAYERS_DIR` | EIC | Absolute path to the buildpack layers directory +| `$CNB_BP_PLAN_PATH` | ER | Relevant [Buildpack Plan entries](#buildpack-plan-toml) from detection (TOML) | `$CNB_PLATFORM_DIR` | AR | Absolute path to the platform directory | `$CNB_PLATFORM_DIR/env/` | | User-provided environment variables for build | `$CNB_PLATFORM_DIR/#` | | Platform-specific extensions