|
3 | 3 | Contributions should be made via pull requests. Pull requests will be reviewed |
4 | 4 | by one or more maintainers and merged when acceptable. |
5 | 5 |
|
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 | + |
11 | 15 | ## Successful Changes |
12 | 16 |
|
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. |
32 | 38 |
|
33 | 39 | ## Commit Messages |
34 | 40 |
|
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 |
39 | 44 | understanding of what led to it. |
40 | 45 |
|
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. |
43 | 48 |
|
44 | 49 | In practice, the best approach to maintaining a nice commit message is to |
45 | 50 | 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 |
47 | 52 | available. |
48 | 53 |
|
49 | 54 | If you squash a series of commits, don't just submit that. Re-write the commit |
50 | 55 | message, as if the series of commits was a single stroke of brilliance. |
51 | 56 |
|
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. |
56 | 61 |
|
57 | 62 | Remember, you're telling part of the story with the commit message. Don't make |
58 | 63 | your chapter weird. |
|
0 commit comments