You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current detect API seems like it cannot handle use cases like so -
Let's say we have 3 buildpacks -
System package manager (like apt or yum but it can run without root - for eg conda)
A go buildpack that provides go binaries
A go mod buildpack that knows how to build applications with go.mod.
Now let's say the provisions and requirements of each buildpack look like so
System package manager -
This is responsible for installing any system-wide packages
Provides - {"name": "system-packages"}
Go buildpack
This is responsible for requesting the appropriate go system package and setting the go env. vars like GOPROXY or GOPRIVATE or GOPATH etc.
Provides - {"name": "go"}
Note - the go buildpack can also request other go versions here if it knows which versions to request before hand. It supports versions 1.14, 1.15 and 1.16 let's say.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The current detect API seems like it cannot handle use cases like so -
Let's say we have 3 buildpacks -
go.mod
.Now let's say the provisions and requirements of each buildpack look like so
System package manager -
This is responsible for installing any system-wide packages
Provides - {"name": "system-packages"}
Go buildpack
This is responsible for requesting the appropriate go system package and setting the go env. vars like GOPROXY or GOPRIVATE or GOPATH etc.
Provides - {"name": "go"}
Note - the go buildpack can also request other go versions here if it knows which versions to request before hand. It supports versions 1.14, 1.15 and 1.16 let's say.
Requires - {"name": "system-packages", "metadata": {"packages": "go-1.16"}}
Go mod buildpack
This looks at the
go.mod
file and reads the required version tag off it. For eg the version constraint it might read might be something like>=1.16
Provides - {"name": "go-mod"}
Requires - {"name": "go", "metadata": {"version": ">=1.16"}}
There isn't anyway for this current set of buildpacks to pass the correct information to one another.
Beta Was this translation helpful? Give feedback.
All reactions