Skip to content

Commit eedd75b

Browse files
chris-cronendeloof
authored andcommitted
Rework CONTRIBUTING guide
Signed-off-by: Christopher Crone <[email protected]>
1 parent 4741eff commit eedd75b

File tree

1 file changed

+42
-43
lines changed

1 file changed

+42
-43
lines changed

CONTRIBUTING.md

+42-43
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,65 @@
11
# Contributing
22

33
Contributions should be made via pull requests. Pull requests will be reviewed
4-
by one or more maintainers and merged when acceptable.
4+
by two or more maintainers and merged when acceptable.
5+
6+
The goal of the Compose Specification is to be the simplest cloud and platform
7+
agnostic way of defining container based applications. A developer should be
8+
able to develop and debug an application on their local system before
9+
confidently deploying it to a production platform– cloud or otherwise. The
10+
format will be portable across container platforms by providing a high level
11+
abstraction for how the containers are built, deployed, networked, and
12+
configured.
13+
14+
When proposing features as part of the Compose Specification, changes should be
15+
focused towards features which enable developers as part of their
16+
[inner loop](https://docs.microsoft.com/en-us/dotnet/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow)
17+
and not focused on operator controls.
18+
Some features may benefit the container ecosystem, however, they may not be
19+
appropriate for a first class feature in Compose.
520

6-
The goal of the Compose Specification is to be the simplest cloud and platform
7-
agnostic way of defining container based applications. A developer should be able
8-
to develop and debug an application on their local system before confidently deploying
9-
it to a production platform– cloud or otherwise. The format will be portable across
10-
container platforms by providing a high level abstraction for how the containers are
11-
built, deployed, networked, and configured.
21+
## Successful Changes
1222

13-
When proposing features as part of the Compose Specification, changes should be focused
14-
towards features which enable developers as part of their [inner loop](https://docs.microsoft.com/en-us/dotnet/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow)
15-
and not focused on operator controls.
16-
Some features may benefit the container ecosystem, however, they may not be appropriate
17-
for a first class feature in Compose.
23+
We ask that contributors read the [Compose Vision](VISION.md) to ensure that
24+
proposed changes are aligned with the objectives of the Compose project.
1825

19-
## Successful Changes
26+
To help maintainers understand what user or developer problem needs to be
27+
solved, the first step to a contribution is usually submitting an issue. A well
28+
written issue is one that clearly outlines the developer or user problem that
29+
needs to be solved along with a list of requirements for resolution of the
30+
problem. If there are multiple possible solutions to the problem, these can be
31+
outlined in the issue. Once consensus is reached on how to resolve the issue, a
32+
pull request can be created.
33+
34+
Pull requests that propose minor changes or improvements may be submitted
35+
without an associated issue or discussion.
2036

21-
We ask that before contributing, please make the effort to ensure you have read the
22-
Compose Vision to ensure that your change is in keeping with the objectives of Compose.
23-
You can coordinate with the maintainers of the project before submitting large proposals
24-
or high impact PRs, this will prevent you from doing extra work that may or may not be merged.
25-
PRs that are just submitted without any prior communication will likely be summarily closed.
26-
27-
While pull requests are the methodology for submitting changes, changes are much more
28-
likely to be accepted if they are accompanied by a full justification of what developer
29-
problem you are solving. Often times, it helps to first state the problem before presenting
30-
solutions.
31-
32-
Typically, the best methods of accomplishing this are to submit an issue, stating the
33-
problem. This issue can include a problem statement and a checklist with requirements.
34-
If solutions are proposed, alternatives should be listed and eliminated. Even if the
35-
criteria for elimination of a solution is frivolous, say so.
36-
Larger changes typically work best with design documents, these are items which may
37-
change the scope or vision for Compose. These should be accompanied with a more detailed
38-
overview of the proposal, providing context to the justfication at the time the feature
39-
was conceived and can inform future documentation contributions.
37+
For large or high impact changes, contributors can reach out to maintainers
38+
before starting work. This will ensure that contributors and maintainers are
39+
aligned and increase the chance that the change is accepted.
4040

4141
## Commit Messages
4242

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

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

5251
In practice, the best approach to maintaining a nice commit message is to
5352
leverage a `git add -p` and `git commit --amend` to formulate a solid
54-
changeset. This allows one to piece together a change, as information becomes
53+
change set. This allows one to piece together a change, as information becomes
5554
available.
5655

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

60-
That said, there is no requirement to have a single commit for a PR, as long as
61-
each commit tells the story. For example, if there is a feature that requires a
62-
package, it might make sense to have the package in a separate commit then have
63-
a subsequent commit that uses it.
59+
That said, there is no requirement to have a single commit for a pull request,
60+
as long as each commit tells the story. For example, if there is a feature that
61+
requires a package, it might make sense to have the package in a separate commit
62+
then have a subsequent commit that uses it.
6463

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

0 commit comments

Comments
 (0)