Skip to content

Commit f9c7212

Browse files
authored
Merge branch 'main' into feat/dependabot
2 parents 0df6361 + 19178f6 commit f9c7212

File tree

12 files changed

+300
-10
lines changed

12 files changed

+300
-10
lines changed

DEVELOPMENT.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
* [jq](https://stedolan.github.io/jq/)
66
* macOS: `brew install jq`
77
* Windows: `choco install jq`
8+
* Ubuntu: `sudo apt install jq`
89
* Make
910
* macOS: `xcode-select --install`
1011
* Windows: `choco install make`
12+
* Ubuntu: `sudo apt install make`
1113

1214
#### Serve
1315

@@ -22,3 +24,9 @@ make serve
2224
```bash
2325
make build
2426
```
27+
28+
#### Clean
29+
30+
```bash
31+
make clean
32+
```

content/docs/app-developer-guide/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title="App Developer's Guide"
2+
title="App Developer Guide"
33
weight=4
44
include_summaries=true
55
expand=true

content/docs/buildpack-author-guide/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title="Buildpack Author's Guide"
2+
title="Buildpack Author Guide"
33
weight=4
44
include_summaries=true
55
expand=true
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
+++
2+
title="Buildpack Group"
3+
weight=3
4+
summary="A buildpack group is a list of specific buildpacks composed together in an order such that the list is suitable for building an application. Because buildpacks are modular and reusable, a buildpack group is what allows you to connect multiple modular buildpacks together."
5+
+++
6+
7+
## What is a buildpack group?
8+
9+
{{< param "summary" >}}
10+
11+
For example, you might have a buildpack that installs Java and a buildpack that uses Maven to build your application. These two buildpacks can be combined into a group to implement higher-level functionality, specifically that the first one will install Java and the second will use Java to run Maven, which is a Java build tool.
12+
13+
Because you can have many buildpack groups in a [builder][builder] or [meta-buildpack][meta-buildpack] and you can reuse buildpacks, you could have a second buildpack group that reuses the buildpack to provide Java but uses a third buildpack that provides Gradle to build your application. By doing this, you can create additional high-level functionality without having duplication.
14+
15+
## Anatomy of a buildpack group
16+
17+
A [buildpack group][buildpack-group] is a list of buildpack entries defined in the order in which they will run.
18+
19+
A buildpack entry is identified by an id and a version. It may also be marked as optional. While you may have one or more buildpacks in a buildpack group, you may have one or more buildpack groups in a builder or meta-buildpack.
20+
21+
## Detection with buildpack groups
22+
23+
A [builder][builder] or [meta-buildpack][meta-buildpack] may contain multiple buildpack groups. When the lifecycle executes the detection process, it will process each buildpack group it finds in the order that the groups are specified. For each buildpack group, the lifecycle will execute the detect phase of all buildpacks in that group (these can be executed in parallel) and aggregate the results. The lifecycle will select the first buildpack group by order where all of the non-optional buildpacks in that group pass detection.
24+
25+
For example, if a builder has buildpack groups A, B and C. The lifecycle will run detection against A. If all of the non-optional buildpacks in that group pass detection, then it will select A. In that case, B and C will not be processed. If A has any failing non-optional buildpacks, then the lifecycle will move on to process buildpack group B. If B has any failing non-optional buildpacks, then the lifecycle will move on to process buildpack group C. If C fails, then the entire detection process will fail.
26+
27+
If a buildpack group contains meta-buildpacks, which in turn may contain more buildpack groups those are expanded using [the order resolution rules][order-resolution] such that each buildpack group in the meta-buildpack is tried with the other buildpacks in the containg buildpack group.
28+
29+
For example:
30+
31+
- the builder has a buildpack group A that contains buildpacks X, Y and Z
32+
- Y is a meta-buildpack containing buildpack groups B and C
33+
- buildpack group B contains buildpacks T and U
34+
- buildpack group C contains buildpacks V and W
35+
36+
The lifecycle will expand this into the following buildpack groups:
37+
38+
- X, T, U, Z
39+
- X, V, W, Z
40+
41+
Y is not included because meta-buildpacks only provide groups, they do not participate in the build process or contain build/detect binaries.
42+
43+
The [order resolution rules in the buildpacks spec][order-resolution] contains additional examples that illustrate more complex scenarios.
44+
45+
After the buildpack groups are expanded they are processed in the same way and have the same requirements for selection that are defined above.
46+
47+
### Resources
48+
49+
The [Operator's Guide][operator-guide] has more information on creating builders and defining order groups in builders.
50+
51+
[buildpack-group]: /docs/reference/config/builder-config/#order-_list-required_
52+
[order-resolution]: https://github.com/buildpacks/spec/blob/main/buildpack.md#order-resolution
53+
[operator-guide]: /docs/operator-guide/
54+
[builder]: /docs/concepts/components/builder/
55+
[meta-buildpack]: /docs/concepts/components/buildpack/#meta-buildpack

content/docs/operator-guide/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
+++
2-
title="Operator's Guide"
2+
title="Operator Guide"
33
weight=5
44
include_summaries=true
55
expand=true

content/docs/platform-guide/_index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
+++
2+
title="Platform Guide"
3+
weight=6
4+
include_summaries=true
5+
expand=true
6+
+++
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
+++
2+
title="Conventions"
3+
weight=1
4+
include_summaries=true
5+
expand=false
6+
+++
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
+++
2+
title="Source Metadata"
3+
weight=1
4+
summary="Conventions for declaring app source information in the app image."
5+
tags=["spec:platform/0.6", "spec:project-descriptor/0.2"]
6+
+++
7+
8+
## Summary
9+
10+
The following are conventions for declaring different type of source inputs. This information is provided to the [lifecycle][lifecycle] using [project-metadata.toml][project-metadata].
11+
12+
## Sources
13+
14+
### Types
15+
16+
The following types are concrete source types and can use any keys as long as they don't overlap with [additive](#additive) sources.
17+
18+
#### Git
19+
20+
- #### `type` _(string, required)_
21+
Must be `git`
22+
23+
- #### `source` _(required)_
24+
25+
- `version` _(required)_
26+
27+
- `commit` _(string, required)_\
28+
Full commit hash
29+
30+
- `describe` _(string, optional)_\
31+
Description of commit (see `git describe`)
32+
33+
- `metadata` _(optional)_
34+
35+
- `repository` _(string, optional)_\
36+
Repository URL
37+
38+
- `refs` _(list of strings, optional)_\
39+
Additional relevant Git references
40+
41+
###### Example
42+
43+
```toml
44+
[source]
45+
type = "git"
46+
47+
[source.version]
48+
commit = "63a73f1b0f2a4f6978c19184b0ea33ad3f092913"
49+
describe = "v0.18.1-2-g3f092913"
50+
51+
[source.metadata]
52+
repository = "https://github.com/myorg/myrepo.git"
53+
refs = ["master", "v3.0"]
54+
```
55+
56+
#### Image
57+
58+
- #### `type` _(string, required)_
59+
Must be `image`
60+
61+
- #### `source` _(required)_
62+
63+
- `version` _(required)_
64+
65+
- `digest` _(string, required)_\
66+
Image digest
67+
68+
- `metadata` _(optional)_
69+
70+
- `path` _(string, optional)_\
71+
Absolute path to source in image
72+
73+
- `repository` _(string, optional)_\
74+
Fully-qualified image name
75+
76+
- `refs` _(list of strings, optional)_\
77+
Additional relevant image names/tags
78+
79+
###### Example
80+
81+
```toml
82+
[source]
83+
type = "image"
84+
85+
[source.version]
86+
digest = "146c4bce42545e6a4575283b32a7f01924ef86ce848273079693a42b52b27321"
87+
88+
[source.metadata]
89+
path = "/source"
90+
repository = "index.docker.io/example/image:latest"
91+
refs = ["index.docker.io/example/image:mytag", "index.docker.io/example/image@sha256:146c4bce42545e6a4575283b32a7f01924ef86ce848273079693a42b52b27321"]
92+
```
93+
94+
### Additive
95+
96+
The following source information is considered additive and should not overlap with source [types](#types).
97+
98+
#### `project.toml`
99+
100+
- #### `type` _(string, required)_
101+
Must be `project` **(only if no other type is present)**
102+
103+
- #### `source` _(required)_
104+
105+
- `version` _(required)_
106+
107+
- `version` _(string, optional)_\
108+
Version as declared in `_.version`
109+
110+
- `metadata` _(optional)_
111+
112+
- `url` _(string, optional)_\
113+
URL as declared in `_.source-url`
114+
115+
###### Example (standalone)
116+
117+
```toml
118+
[source]
119+
type = "project"
120+
121+
[source.version]
122+
version = "1.2.3"
123+
124+
[source.metadata]
125+
url = "https://github.com/example/repo"
126+
```
127+
128+
###### Example (w/ Image)
129+
130+
```toml
131+
[source]
132+
type = "image"
133+
134+
[source.version]
135+
digest = "146c4bce42545e6a4575283b32a7f01924ef86ce848273079693a42b52b27321"
136+
version = "1.2.3"
137+
138+
[source.metadata]
139+
path = "/source"
140+
repository = "index.docker.io/example/image:latest"
141+
refs = ["index.docker.io/example/image:mytag", "index.docker.io/example/image@sha256:146c4bce42545e6a4575283b32a7f01924ef86ce848273079693a42b52b27321"]
142+
url = "https://github.com/example/repo"
143+
```
144+
145+
[lifecycle]: /docs/concepts/components/lifecycle/
146+
[project-metadata]: https://github.com/buildpacks/spec/blob/platform/0.7/platform.md#project-metadatatoml-toml

themes/buildpacks/layouts/shortcodes/tab.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{ $name := .Get "name" }}
22
{{ $id := $name | urlize }}
3-
{{ $active := cond (eq (.Parent.Get "active" | urlize) $id) "active" "" }}
3+
{{ $active := cond (eq (.Parent.Get "active" | urlize) $id) "active show" "" }}
44
<div
55
class="tab-pane fade {{$active}}"
66
id="tab-content-{{$id}}"

themes/buildpacks/layouts/shortcodes/tabs.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
{{ range findRE "data-tab-name=\"([^\"]+)" .Inner }}
66
{{ $name := replaceRE "data-tab-name=\"([^\"]+)" "$1" . }}
77
{{ $id := $name | urlize }}
8-
{{ $active := cond (eq $activeID $id) "active in show" "" }}
8+
{{ $active := cond (eq $activeID $id) "active" "" }}
99
{{ $selected := cond (eq $activeID $id) "true" "false" }}
1010
<li class="nav-item" role="presentation">
1111
<a class="nav-link {{$active}}" id="tab-{{$id}}" data-toggle="tab" href="#tab-content-{{$id}}" role="tab"

0 commit comments

Comments
 (0)