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
Copy file name to clipboardExpand all lines: README.md
+74-65Lines changed: 74 additions & 65 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,99 +22,108 @@ For outstanding `satosa` image PRs, check [PRs with the "library/satosa" label o
22
22
23
23
---
24
24
25
-
## Coding Style
26
-
27
-
Please follow the style of the other Docker Official Images. In particular, use tabs for indentation instead of spaces.
25
+
# Contributing
28
26
29
-
## Git Commit Messages
27
+
This project uses the [Git feature branch workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow). Please submit your changes for review as a [GitHub pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests).
30
28
31
-
Please follow [Angular Commit Message Conventions](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit). The following scopes are currently in use:
32
-
-**docker-entrypoint**: the Dockerfile ENTRYPOINT scripts; currently only [docker-entrypoint.sh](docker-entrypoint.sh)
33
-
-**docker-library**: the Docker Official Images library entry generator; currently only [generate-stackbrew-library.sh](generate-stackbrew-library.sh)
34
-
-**dockerfile-linux**: all Linux variants of the container image itself; includes [Dockerfile-linux.template](Dockerfile-linux.template) and the corresponding Linux variant image definitions in the SATOSA version-specific directories, e.g., **8.2/bullseye/Dockerfile**
35
-
-**dockerfile-windows**: currently unused
36
-
-**git**: Git repository configuration or GitHub-specific files; includes [.gitignore](.gitignore), [.gitattributes](.gitattributes), and [the GitHub Actions workflows](.github/workflows)
37
-
-**license**: software licensing information; currently only [LICENSE.md](LICENSE.md)
38
-
-**readme**: this file
39
-
-**templating**: the gawk/jq-based templating engine itself, as opposed to the templates; currently only [apply-templates.sh](apply-templates.sh)
40
-
-**update**: a helper script that executes both the version tracker and templating engine; currently only [update.sh](update.sh)
41
-
-**versions**: the SATOSA version tracker; includes [versions.sh](versions.sh) and [versions.json](versions.json)
29
+
In forks of this repository, enable the GitHub Actions workflows. GitHub Actions runs two workflows when developers push commits to a branch. [Verify Templating](actions/workflows/verify-templating.yml) checks for uncommitted changes. [GitHub CI](actions/workflows/ci.yml) builds and tests the container images.
42
30
43
31
## Development Environment
44
32
45
-
To develop Docker Official Images, please install [bashbrew](https://github.com/docker-library/bashbrew), the Docker Official Images build tool:
Please make note of these tools' dependencies, in particular [GNU Make](https://www.gnu.org/software/make/) and [Go](https://go.dev/).
69
-
70
-
The templating engine and version tracker require [GNU awk](https://www.gnu.org/software/gawk/), [GNU Find Utilities](https://www.gnu.org/software/findutils/), [GNU Wget](https://www.gnu.org/software/wget/), and [jq](https://stedolan.github.io/jq/).
71
-
72
-
Use [qemu-user-static](https://github.com/multiarch/qemu-user-static) to work with multi-architecture containers.
73
-
74
-
In forks of this repository, enable both GitHub Actions and the GitHub CI workflow after reviewing the workflow definitions.
33
+
This project uses the following software:
34
+
35
+
-[Docker 20.10 or newer](https://docs.docker.com/engine/install/)
36
+
37
+
-[GNU awk](https://www.gnu.org/software/gawk/), [GNU Find Utilities](https://www.gnu.org/software/findutils/), [GNU Wget](https://www.gnu.org/software/wget/), and [jq](https://stedolan.github.io/jq/), for the templating engine and version tracker
38
+
39
+
-[GNU Make](https://www.gnu.org/software/make/) and [Go](https://go.dev/), required by bashbrew and manifest-tool
40
+
41
+
-[bashbrew](https://github.com/docker-library/bashbrew), the Docker Official Images build tool
42
+
43
+
-[manifest-tool](https://github.com/estesp/manifest-tool), which generates the shared tag index
44
+
45
+
- (optional) [qemu-user-static](https://github.com/multiarch/qemu-user-static), to test containers on other hardware architecture via emulation
75
46
76
47
Before cloning the repository or working within it, set the [file mode creation mask](https://en.wikipedia.org/wiki/Umask) to `0022` or `u=rwx,g=rx,o=rx`.
77
48
49
+
## Coding Style
50
+
51
+
Follow [the Docker Official Images review guidelines](https://github.com/docker-library/official-images#review-guidelines) and [Dockerfile best practices](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/).
52
+
53
+
In Dockerfiles and shell scripts, please use tabs for indentation instead of spaces.
54
+
55
+
## Commit Messages
56
+
57
+
This project uses [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/). Valid commit types are:
58
+
59
+
-**build**—changes to the build system or external dependencies
60
+
61
+
-**ci**—changes to the CI configuration files and scripts
62
+
63
+
-**docs**—documentation-only changes
64
+
65
+
-**feat**—a new feature
66
+
67
+
-**fix**—a bug fix
68
+
69
+
-**perf**—a code change that improves performance
70
+
71
+
-**refactor**—a code change that neither fixes a bug nor adds a feature
72
+
73
+
-**test**—new tests or corrections to existing tests
74
+
75
+
No commit scopes are currently in use.
76
+
78
77
## Update Process
79
78
80
-
1. If necessary, update the list of version aliases at the beginning of `generate-stackbrew-library.sh`.
79
+
In a fork of this repository:
80
+
81
+
1. Review the list of version aliases at the beginning of `generate-stackbrew-library.sh`.
82
+
83
+
2. Run [update.sh](update.sh), specifying the desired major and minor version of SATOSA. For example:
81
84
82
-
2. Update `versions.json` and the container image definitions by running `update.sh`. Specify the desired major and minor version of SATOSA. For example:
83
85
```bash
84
86
./update.sh 8.1
85
87
```
86
88
87
-
3.If necessary, remove outdated versions of SATOSA or the base container images from `versions.json`. Delete the corresponding SATOSA container image definitions, e.g., `8.0/`, `8.1/*alpine3.14*/`.
89
+
3.Remove outdated versions of SATOSA or base container images from `versions.json`, and delete the corresponding SATOSA container image definitions from the repository, e.g., the `8.0/` or `8.1/*alpine3.14*/` folders.
88
90
89
-
4. Commit all of the modified files. Mention the new SATOSA or base container version in the commit message subject. Reference the release announcement in the commit message body. For example:
90
-
```
91
-
feat: version bump to SATOSA v8.1.0
91
+
4. Mention the new SATOSA or base container version in the commit message subject, reference the release announcement in the commit message body. For example:
5. GitHub Actions will run two workflows on push. [Verify Templating](../../actions/workflows/verify-templating.yml) checks for uncommitted changes. [GitHub CI](../../actions/workflows/ci.yml) builds and tests all of the container images.
99
+
Or for example:
103
100
104
-
6. If both workflows complete successfully, generate a new [Docker Official Images](https://github.com/docker-library/official-images/) library entry by running the following command:
5. Submit a pull request after both GitHub Actions workflows complete successfully.
108
+
109
+
After accepting a pull request, fork and edit [the Docker Official Images library entry for SATOSA](https://github.com/docker-library/official-images/edit/master/library/satosa):
110
+
111
+
1. Replace its contents with the output of [generate-stackbrew-library.sh](generate-stackbrew-library.sh).
112
+
113
+
2. Use a commit message referencing the release announcement. For example:
108
114
109
-
7. Fork and edit [the Docker Official Images library entry for SATOSA](https://github.com/docker-library/official-images/edit/master/library/satosa). Replace its contents with the output of `generate-stackbrew-library.sh`. Use a commit message referencing the release announcement. Submit a pull request when done. For example:
0 commit comments