Skip to content

Commit 95932cd

Browse files
committed
Merge pull request #4019 from carmstrong/proposal-issues
docs(contributing): add section on Design Documents
2 parents 23690c3 + db3a11c commit 95932cd

6 files changed

Lines changed: 97 additions & 28 deletions

File tree

CONTRIBUTING.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,11 @@ This is a rough outline of what a contributor's workflow looks like:
4444

4545
Thanks for your contributions!
4646

47-
### Design Proposals
47+
### Design Documents
4848

49-
When considering a design proposal, we are looking for:
50-
51-
- A description of the problem this design proposal solves
52-
- A pull request that modifies the documentation, describing the feature you are proposing
53-
- Prefix your pull request with `Proposal:` in the title
54-
- Please review the existing Proposals before reporting a new one.
49+
Most substantial changes to Deis should follow a [Design Document](http://docs.deis.io/en/latest/contributing/design-documents/)
50+
describing the proposed changes and how they are tested and verified before they
51+
are accepted into the project.
5552

5653
### Commit Style Guideline
5754

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
:title: Design Documents
2+
:description: Information necessary for a feature design document.
3+
4+
.. _design-documents:
5+
6+
Design Documents
7+
================
8+
9+
Before submitting a pull request which will change the behavior of Deis significantly,
10+
such as a new feature or major refactoring, contributors should first open
11+
an issue representing a design document.
12+
13+
Goals
14+
-----
15+
16+
Design documents help ensure project contributors:
17+
18+
* Involve stakeholders as early as possible in a feature's development
19+
* Ensure code changes accomplish the original motivations and design goals
20+
* Establish clear acceptance criteria for a feature or change
21+
* Enforce test-driven design methodology and automated test coverage
22+
23+
Contents
24+
--------
25+
26+
Design document issues should be named ``Design Doc: <change description>`` and
27+
contain the following sections.
28+
29+
Goal
30+
^^^^
31+
32+
This section should briefly describe the proposed change and the motivations
33+
behind it. Tests will be written to ensure this design goal is met by
34+
the change.
35+
36+
This section should also reference a separate GitHub issue tracking
37+
the feature or change, which will typically be assigned to a release milestone.
38+
39+
Code Changes
40+
^^^^^^^^^^^^
41+
42+
This section should detail the code changes necessary to accomplish the change,
43+
as well as the proposed implementation. This should be as detailed as necessary to
44+
help reviewers understand the change.
45+
46+
Tests
47+
^^^^^
48+
49+
All changes should be covered by automated tests, either unit or integration tests
50+
(ideally both). This section should detail how tests will be written to validate
51+
that the change accomplishes the design goals and doesn't introduce any regressions.
52+
53+
If a change cannot be sufficiently covered by automated testing, the design
54+
should be reconsidered. If there is no test coverage whatsoever for an affected
55+
section of code, a separate issue should be filed to integrate automated testing
56+
with that section of the codebase.
57+
58+
The tests described here also form the acceptance criteria for the change, so
59+
that when it's completed maintainers can merge the pull request after confirming
60+
the tests pass CI.
61+
62+
Approval
63+
--------
64+
65+
A design document follows the same :ref:`merge_approval` review process as final
66+
PRs do, and maintainers will take extra care to ensure that any stakeholders for
67+
the change are included in the discussion and review of the design document.
68+
69+
Once the design is accepted, the author can complete the change and submit a pull
70+
request for review. The pull request should close both the design document for
71+
the change as well as any issues that either track the issue or are closed as a
72+
result of the change.
73+
74+
See :ref:`standards` for more information on pull request and commit message formatting.

docs/contributing/hacking.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
.. _hacking:
44

5-
Hacking on Deis
6-
===============
5+
Development Environment
6+
=======================
77

88
This document is for developers who are interested in working directly on the
99
Deis codebase. In this guide, we walk you through the process of setting up

docs/contributing/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Contributing
1010
.. toctree::
1111

1212
overview
13+
design-documents
1314
hacking
1415
testing
1516
standards

docs/contributing/overview.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Contribute Code
2424
We are always looking for help improving the core framework, modules, tooling and test coverage.
2525
Interested in contributing code? Let’s chat in IRC. Make sure to check out issues tagged `easy-fix`_.
2626

27+
When you're ready to begin writing code, review :ref:`design-documents` and :ref:`hacking`.
28+
2729
Share your Experience
2830
---------------------
2931
Interact with the community on our user mailing list or live in our IRC channel,

docs/contributing/standards.rst

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,26 @@
44

55
.. _standards:
66

7-
PR Checklist
8-
============
7+
Submitting a Pull Request
8+
=========================
99

1010
Proposed changes to Deis are made as GitHub `pull requests`_.
1111

1212
Please make sure your PR follows this checklist:
1313

14-
1. `Single Issue`_
15-
2. `Include Tests`_
16-
3. `Include Docs`_
17-
4. `Code Standards`_
18-
5. `Commit Style`_
14+
1. `Design Document`_
15+
2. `Single Issue`_
16+
3. `Include Tests`_
17+
4. `Include Docs`_
18+
5. `Code Standards`_
19+
6. `Commit Style`_
1920

21+
Design Document
22+
---------------
23+
24+
Before opening a pull request, ensure your change also references a design
25+
document if the contribution is substantial. For more information, see
26+
:ref:`design-documents`.
2027

2128
Single Issue
2229
------------
@@ -82,18 +89,6 @@ the exception that lines of code may be up to 99 characters long. Docstrings and
8289
tests are required for all public methods, although the flake8_ tool used by
8390
Deis does not enforce this.
8491

85-
86-
Design Proposals
87-
----------------
88-
89-
When considering a design proposal, we are looking for:
90-
91-
- A description of the problem this design proposal solves
92-
- A pull request that modifies the documentation, describing the feature you are proposing
93-
- Prefix your pull request with ``Proposal:`` in the title
94-
- Please review the existing Proposals before reporting a new one.
95-
96-
9792
.. _commit_style_guide:
9893

9994
Commit Style

0 commit comments

Comments
 (0)