Skip to content

Commit 3f9c638

Browse files
authored
Merge pull request aws#779 from awslabs/develop
v0.7.0 Release
2 parents 5febb4e + 8cef556 commit 3f9c638

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+2901
-453
lines changed

.github/PULL_REQUEST_TEMPLATE.md

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

33
*Description of changes:*
44

5+
*Checklist:*
6+
7+
- [ ] Write Design Document ([Do I need to write a design document?](https://github.com/awslabs/aws-sam-cli/blob/develop/DEVELOPMENT_GUIDE.rst#design-document))
8+
- [ ] Write unit tests
9+
- [ ] Write/update functional tests
10+
- [ ] Write/update integration tests
11+
- [ ] `make pr` passes
12+
- [ ] Write documentation
513

614
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ __pycache__/
230230

231231
# Distribution / packaging
232232
.Python
233-
build/
233+
/build/
234234
develop-eggs/
235235
dist/
236236
downloads/
@@ -378,5 +378,7 @@ $RECYCLE.BIN/
378378
# Windows shortcuts
379379
*.lnk
380380

381+
# Temporary scratch directory used by the tests
382+
tests/integration/buildcmd/scratch
381383

382384
# End of https://www.gitignore.io/api/osx,node,macos,linux,python,windows,pycharm,intellij,sublimetext,visualstudiocode

DEVELOPMENT_GUIDE.rst

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Follow the idioms from this `excellent cheatsheet`_ to make sure your code is co
1919
Our CI/CD pipeline is setup to run unit tests against both Python versions. So make sure you test it with both
2020
versions before sending a Pull Request. `pyenv`_ is a great tool to easily setup multiple Python versions.
2121

22-
Note: For Windows, type ``export PATH="/c/Users/<user>/.pyenv/libexec:$PATH"`` to add pyenv to your path.
22+
Note: For Windows, type ``export PATH="/c/Users/<user>/.pyenv/libexec:$PATH"`` to add pyenv to your path.
2323

2424
#. Install PyEnv - ``curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash``
2525
#. ``pyenv install 2.7.14``
@@ -133,9 +133,25 @@ best practices that we have learnt over time.
133133
- Do not catch the broader ``Exception``, unless you have a really strong reason to do. You must explain the reason
134134
in great detail in comments.
135135

136+
Design Document
137+
---------------
138+
139+
A design document is a written description of the feature/capability you are building. We have a
140+
`design document template`_ to help you quickly fill in the blanks and get you working quickly. We encourage you to
141+
write a design document for any feature you write, but for some types of features we definitely require a design
142+
document to proceed with implementation.
143+
144+
**When do you need a design document?**
145+
146+
- Adding a new command
147+
- Making a breaking change to CLI interface
148+
- Refactoring code that alters the design of certain components
149+
- Experimental features
150+
136151

137152
.. _excellent cheatsheet: http://python-future.org/compatible_idioms.html
138153
.. _pyenv: https://github.com/pyenv/pyenv
139154
.. _tox: http://tox.readthedocs.io/en/latest/
140155
.. _numpy docstring: https://numpydoc.readthedocs.io/en/latest/format.html
141156
.. _pipenv: https://docs.pipenv.org/
157+
.. _design document template: ./design/_template.rst

designs/_template.rst

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
Title: Template for design documents
2+
====================================
3+
4+
Use this as a template to write a design document when adding new commands or major features to SAM CLI. It helps
5+
other developers understand the scope of the project, validate technical complexity and feasibility. It also
6+
serves as a public documentation of how the feature actually works.
7+
8+
**Process:**
9+
1. Copy this template to another file in the ``designs`` folder
10+
1. Fill out the sections in the template
11+
1. Send a "Work In Progress" Pull Request with your design document. We can discuss the designs in more detail and
12+
iterate on the requirements. Feel free to start implementing a prototype if you think it will help flush out design.
13+
1. Once the PR is approved, create Github Issues for each task listed in the document and start implementing them.
14+
15+
What is the problem?
16+
--------------------
17+
18+
What will be changed?
19+
---------------------
20+
21+
Success criteria for the change
22+
-------------------------------
23+
24+
Out-of-Scope
25+
------------
26+
27+
User Experience Walkthrough
28+
---------------------------
29+
30+
31+
Implementation
32+
==============
33+
34+
CLI Changes
35+
-----------
36+
*Explain the changes to command line interface, including adding new commands, modifying arguments etc*
37+
38+
Breaking Change
39+
~~~~~~~~~~~~~~~
40+
*Are there any breaking changes to CLI interface? Explain*
41+
42+
Design
43+
------
44+
*Explain how this feature will be implemented. Highlight the components of your implementation, relationships*
45+
*between components, constraints, etc.*
46+
47+
48+
``.samrc`` Changes
49+
------------------
50+
*Explain the new configuration entries, if any, you want to add to .samrc*
51+
52+
53+
Security
54+
--------
55+
56+
*Tip: How does this change impact security? Answer the following questions to help answer this question better:*
57+
58+
**What new dependencies (libraries/cli) does this change require?**
59+
60+
**What other Docker container images are you using?**
61+
62+
**Are you creating a new HTTP endpoint? If so explain how it will be created & used**
63+
64+
**Are you connecting to a remote API? If so explain how is this connection secured**
65+
66+
**Are you reading/writing to a temporary folder? If so, what is this used for and when do you clean up?**
67+
68+
**How do you validate new .samrc configuration?**
69+
70+
71+
Documentation Changes
72+
---------------------
73+
74+
Open Issues
75+
-----------
76+
77+
Task Breakdown
78+
--------------
79+
- [x] Send a Pull Request with this design document
80+
- [ ] Build the command line interface
81+
- [ ] Build the underlying library
82+
- [ ] Unit tests
83+
- [ ] Functional Tests
84+
- [ ] Integration tests
85+
- [ ] Run all tests on Windows
86+
- [ ] Update documentation

0 commit comments

Comments
 (0)