Skip to content
This repository was archived by the owner on Mar 22, 2022. It is now read-only.

Commit e5c44be

Browse files
committed
Rework CONTRIBUTING
Signed-off-by: Christopher Crone <[email protected]>
1 parent bb78577 commit e5c44be

File tree

1 file changed

+40
-35
lines changed

1 file changed

+40
-35
lines changed

CONTRIBUTING.md

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,56 +3,61 @@
33
Contributions should be made via pull requests. Pull requests will be reviewed
44
by one or more maintainers and merged when acceptable.
55

6-
The goal of the Compose Reference Implementation is to be a complete and simple implementation of [the Compose Specification](https://github.com/compose-spec/compose-spec/).
7-
A developer should be able by reading the code:
8-
- to understand the main concept of the specification
9-
- have concrete examples to develop his own implementation.
10-
6+
The goal of the Compose Reference Implementation is to be a complete and simple
7+
implementation of the
8+
[Compose Specification](https://github.com/compose-spec/compose-spec/) that
9+
targets the [Docker API](https://docs.docker.com/engine/api/). Contributors
10+
using this code code should be able to:
11+
- use it as a test harness to experiment with Compose specification changes
12+
- understand the main concepts of the specification
13+
- see a concrete example of how to develop her/his own implementation
14+
1115
## Successful Changes
1216

13-
We ask that before contributing, please make the effort to ensure you have read the [Compose Specification](https://github.com/compose-spec/compose-spec/blob/master/spec.md) and
14-
[Compose Vision](https://github.com/compose-spec/compose-spec/blob/master/VISION.md) to ensure that your change is in keeping with the objectives of Compose.
15-
You can coordinate with the maintainers of the project before submitting large proposals
16-
or high impact PRs, this will prevent you from doing extra work that may or may not be merged.
17-
PRs that are just submitted without any prior communication will likely be summarily closed.
18-
19-
While pull requests are the methodology for submitting changes, changes are much more
20-
likely to be accepted if they are accompanied by a full justification of what developer
21-
problem you are solving. Often times, it helps to first state the problem before presenting
22-
solutions.
23-
24-
Typically, the best methods of accomplishing this are to submit an issue, stating the
25-
problem. This issue can include a problem statement and a checklist with requirements.
26-
If solutions are proposed, alternatives should be listed and eliminated. Even if the
27-
criteria for elimination of a solution is frivolous, say so.
28-
Larger changes typically work best with design documents, these are items which may
29-
change the scope or vision for Compose. These should be accompanied with a more detailed
30-
overview of the proposal, providing context to the justfication at the time the feature
31-
was conceived and can inform future documentation contributions.
17+
We ask that contributors read the [Compose
18+
Specification](https://github.com/compose-spec/compose-spec/blob/master/spec.md)
19+
and [Compose
20+
Vision](https://github.com/compose-spec/compose-spec/blob/master/VISION.md)
21+
to ensure that proposed changes are aligned with the objectives of the Compose
22+
project.
23+
24+
To help maintainers understand what user or developer problem needs to be
25+
solved, the first step to a contribution is usually submitting an issue. A well
26+
written issue is one that clearly outlines the developer or user problem that
27+
needs to be solved along with a list of requirements for resolution of the
28+
problem. If there are multiple possible solutions to the problem, these can be
29+
outlined in the issue. Once consensus is reached on how to resolve the issue, a
30+
pull request can be created.
31+
32+
Pull requests that propose minor changes or improvements may be submitted
33+
without an associated issue or discussion.
34+
35+
For large or high impact changes, contributors can reach out to maintainers
36+
before starting work. This will ensure that contributors and maintainers are
37+
aligned and increase the chance that the change is accepted.
3238

3339
## Commit Messages
3440

35-
There are times for one line commit messages and this is not one of them.
36-
Commit messages should follow best practices, including explaining the context
37-
of the problem and how it was solved, including in caveats or follow up changes
38-
required. They should tell the story of the change and provide readers
41+
Commit messages should follow best practices and explain the context of the
42+
problem and how it was solved-- including any caveats or follow up changes
43+
required. They should tell the story of the change and provide readers an
3944
understanding of what led to it.
4045

41-
If you're lost about what this even means, please see [How to Write a Git
42-
Commit Message](http://chris.beams.io/posts/git-commit/) for a start.
46+
[How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/)
47+
provides a good guide for how to do so.
4348

4449
In practice, the best approach to maintaining a nice commit message is to
4550
leverage a `git add -p` and `git commit --amend` to formulate a solid
46-
changeset. This allows one to piece together a change, as information becomes
51+
change set. This allows one to piece together a change, as information becomes
4752
available.
4853

4954
If you squash a series of commits, don't just submit that. Re-write the commit
5055
message, as if the series of commits was a single stroke of brilliance.
5156

52-
That said, there is no requirement to have a single commit for a PR, as long as
53-
each commit tells the story. For example, if there is a feature that requires a
54-
package, it might make sense to have the package in a separate commit then have
55-
a subsequent commit that uses it.
57+
That said, there is no requirement to have a single commit for a pull request,
58+
as long as each commit tells the story. For example, if there is a feature that
59+
requires a package, it might make sense to have the package in a separate commit
60+
then have a subsequent commit that uses it.
5661

5762
Remember, you're telling part of the story with the commit message. Don't make
5863
your chapter weird.

0 commit comments

Comments
 (0)