Patches are welcome! We currently use the vanilla GitHub merge workflow, where individual pull requests are merged by a human via the web UI.
During the review, any changes should be made as a new commit or an amended commit. These can be force pushed to your branch and GitHub should be able to show the "interdiff" between pushes.
Please look at git log
and match the commit log style, which is very
similar to the
Linux kernel.
You may use Signed-off-by
, but we're not requiring it.
General Commit Message Guidelines:
- Title
- Specify the context or category of the changes e.g.
lib
for library changes,docs
for document changes,bin/<command-name>
for command changes, etc. - Begin the title with the first letter of the first word capitalized.
- Aim for less than 50 characters, otherwise 72 characters max.
- Do not end the title with a period.
- Use an imperative tone.
- Specify the context or category of the changes e.g.
- Body
- Separate the body with a blank line after the title.
- Begin a paragraph with the first letter of the first word capitalized.
- Each paragraph should be formatted within 72 characters.
- Content should be about what was changed and why this change was made.
- If your commit fixes an issue, the commit message should end with
Closes: #<number>
.
Commit Message example:
<context>: Less than 50 characters for subject title
A paragraph of the body should be within 72 characters.
This paragraph is also less than 72 characters.
For more information see How to Write a Git Commit Message
Editing a Committed Message:
To edit the message from the most recent commit run git commit --amend
. To change older commits on the branch use git rebase -i
. For a successful rebase have the branch track upstream master
. Once the changes have been made and saved, run git push --force origin <branch-name>
.
At a bare minimum, your changes should pass the tests/check.sh
script. This is just
some simple syntax checking, but is better than nothing at all.
A more useful test of your changes would include the following:
- local build of
coreos-assembler
container image - a build of
coreos-assembler
container image on Quay.io - a successful
coreos-assembler build && coreos-assembler run
of Fedora CoreOS using your changes in a "rootless" configuration (i.e. no use of--privileged
)
We currently use a mix of bash
shell scripts and Python.
The current preference is to use spaces instead of tabs. We require the use of spaces when working with Python (as covered in PEP8). We will tolerate tabs when working with the shell scripts, but we have a strong preference for spaces. In both cases, we most commonly use 4 spaces per indent. Please follow the convention of the file that you are changing and avoid mixing tabs/spaces whenever possible.
Our enforcement of bash
style is mostly handled via ShellCheck.
We have a loose of set of guidelines being discussed about what we expect for Python style. The agreed upon items: