├── .editorconfig
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .travis.yml
├── AUTHORS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Pipfile
├── Pipfile.lock
├── README.md
├── ROADMAP.md
├── __init__.py
├── appveyor.yml
├── cookiecutter.json
├── hooks
├── __init__.py
└── post_gen_project.py
├── images
├── cookiecutter-git.png
└── logo-256.png
├── requirements.txt
├── tasks.py
├── tests
├── __init__.py
└── test_bake_project.py
└── {{cookiecutter.repo_slug}}
├── .editorconfig
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── AUTHORS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSES
├── AGPL-3.0.txt
├── Apache-2.0.txt
├── BSD-2-Clause.txt
├── BSD-3-Clause.txt
├── EPL-1.0.txt
├── GPL-2.0.txt
├── GPL-3.0.txt
├── LGPL-2.1.txt
├── LGPL-3.0.txt
├── MIT.txt
├── MPL-2.0.txt
└── Unlicense.txt
├── NOTICE
├── README.md
└── ROADMAP.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | # end_of_line = git
6 | indent_size = 2
7 | indent_style = space
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.py]
12 | indent_size = 4
13 | indent_style = space
14 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 |
5 | ---
6 |
7 | # Bug report
8 |
9 | Create a report to help us improve
10 |
11 | ## Describe the bug
12 |
13 | A clear and concise description of what the bug is.
14 |
15 | ## To Reproduce
16 |
17 | Steps to reproduce the behavior:
18 |
19 | 1. Go to '...'
20 | 2. Click on '....'
21 | 3. Scroll down to '....'
22 | 4. See error
23 |
24 | ## Expected behavior
25 |
26 | A clear and concise description of what you expected to happen.
27 |
28 | ## Screenshots
29 |
30 | If applicable, add screenshots to help explain your problem.
31 |
32 | ## Desktop (please complete the following information):
33 |
34 | - OS: [e.g. iOS]
35 | - Browser [e.g. chrome, safari]
36 | - Version [e.g. 22]
37 |
38 | ## Smartphone (please complete the following information):
39 |
40 | - Device: [e.g. iPhone6]
41 | - OS: [e.g. iOS8.1]
42 | - Browser [e.g. stock browser, safari]
43 | - Version [e.g. 22]
44 |
45 | ## Additional context
46 |
47 | Add any other context about the problem here.
48 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | # Feature request
8 |
9 | Suggest an idea for this project
10 |
11 | ## Is your feature request related to a problem? Please describe
12 |
13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14 |
15 | ## Describe the solution you'd like
16 |
17 | A clear and concise description of what you want to happen.
18 |
19 | ## Describe alternatives you've considered
20 |
21 | A clear and concise description of any alternative solutions or features you've considered.
22 |
23 | ## Additional context
24 |
25 | Add any other context or screenshots about the feature request here.
26 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Pull request
3 | about: Create a pull request to help us improve
4 |
5 | ---
6 |
7 | # Pull request
8 |
9 | Create a pull request to help us improve
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Created by https://www.gitignore.io/api/windows,macos,linux,git,python
3 |
4 | .vscode/
5 |
6 | ### Git ###
7 | *.orig
8 |
9 | ### Linux ###
10 | *~
11 |
12 | # temporary files which can be created if a process still has a handle open of a deleted file
13 | .fuse_hidden*
14 |
15 | # KDE directory preferences
16 | .directory
17 |
18 | # Linux trash folder which might appear on any partition or disk
19 | .Trash-*
20 |
21 | # .nfs files are created when an open file is removed but is still being accessed
22 | .nfs*
23 |
24 | ### macOS ###
25 | # General
26 | .DS_Store
27 | .AppleDouble
28 | .LSOverride
29 |
30 | # Icon must end with two \r
31 | Icon
32 |
33 | # Thumbnails
34 | ._*
35 |
36 | # Files that might appear in the root of a volume
37 | .DocumentRevisions-V100
38 | .fseventsd
39 | .Spotlight-V100
40 | .TemporaryItems
41 | .Trashes
42 | .VolumeIcon.icns
43 | .com.apple.timemachine.donotpresent
44 |
45 | # Directories potentially created on remote AFP share
46 | .AppleDB
47 | .AppleDesktop
48 | Network Trash Folder
49 | Temporary Items
50 | .apdisk
51 |
52 | ### Python ###
53 | # Byte-compiled / optimized / DLL files
54 | __pycache__/
55 | *.py[cod]
56 | *$py.class
57 |
58 | # C extensions
59 | *.so
60 |
61 | # Distribution / packaging
62 | .Python
63 | build/
64 | develop-eggs/
65 | dist/
66 | downloads/
67 | eggs/
68 | .eggs/
69 | lib/
70 | lib64/
71 | parts/
72 | sdist/
73 | var/
74 | wheels/
75 | *.egg-info/
76 | .installed.cfg
77 | *.egg
78 | MANIFEST
79 |
80 | # PyInstaller
81 | # Usually these files are written by a python script from a template
82 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
83 | *.manifest
84 | *.spec
85 |
86 | # Installer logs
87 | pip-log.txt
88 | pip-delete-this-directory.txt
89 |
90 | # Unit test / coverage reports
91 | htmlcov/
92 | .tox/
93 | .coverage
94 | .coverage.*
95 | .cache
96 | nosetests.xml
97 | coverage.xml
98 | *.cover
99 | .hypothesis/
100 | .pytest_cache/
101 |
102 | # Translations
103 | *.mo
104 | *.pot
105 |
106 | # Django stuff:
107 | *.log
108 | local_settings.py
109 | db.sqlite3
110 |
111 | # Flask stuff:
112 | instance/
113 | .webassets-cache
114 |
115 | # Scrapy stuff:
116 | .scrapy
117 |
118 | # Sphinx documentation
119 | docs/_build/
120 |
121 | # PyBuilder
122 | target/
123 |
124 | # Jupyter Notebook
125 | .ipynb_checkpoints
126 |
127 | # pyenv
128 | .python-version
129 |
130 | # celery beat schedule file
131 | celerybeat-schedule
132 |
133 | # SageMath parsed files
134 | *.sage.py
135 |
136 | # Environments
137 | .env
138 | .venv
139 | env/
140 | venv/
141 | ENV/
142 | env.bak/
143 | venv.bak/
144 |
145 | # Spyder project settings
146 | .spyderproject
147 | .spyproject
148 |
149 | # Rope project settings
150 | .ropeproject
151 |
152 | # mkdocs documentation
153 | /site
154 |
155 | # mypy
156 | .mypy_cache/
157 |
158 | ### Python Patch ###
159 | .venv/
160 |
161 | ### Windows ###
162 | # Windows thumbnail cache files
163 | Thumbs.db
164 | ehthumbs.db
165 | ehthumbs_vista.db
166 |
167 | # Dump file
168 | *.stackdump
169 |
170 | # Folder config file
171 | [Dd]esktop.ini
172 |
173 | # Recycle Bin used on file shares
174 | $RECYCLE.BIN/
175 |
176 | # Windows Installer files
177 | *.cab
178 | *.msi
179 | *.msix
180 | *.msm
181 | *.msp
182 |
183 | # Windows shortcuts
184 | *.lnk
185 |
186 |
187 | # End of https://www.gitignore.io/api/windows,macos,linux,git,python
188 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | os: linux
2 |
3 | branches:
4 | only:
5 | - master
6 | - develop
7 |
8 | sudo: false
9 |
10 | language: python
11 |
12 | matrix:
13 | fast_finish: true
14 | include:
15 | - python: "2.7"
16 | - python: "3.4"
17 | - python: "3.5"
18 | - python: "3.6"
19 | - python: "3.7"
20 | dist: xenial
21 | sudo: true
22 |
23 | - os: osx
24 | language: generic
25 | env: PYTHON=2.7.15
26 |
27 | - os: osx
28 | language: generic
29 | env: PYTHON=3.4.8
30 |
31 | - os: osx
32 | language: generic
33 | env: PYTHON=3.5.5
34 |
35 | - os: osx
36 | language: generic
37 | env: PYTHON=3.6.6
38 |
39 | - os: osx
40 | language: generic
41 | env: PYTHON=3.7.0
42 |
43 | before_install: |
44 | if [ "$TRAVIS_OS_NAME" == "osx" ]; then
45 | brew update
46 | brew install openssl readline
47 | brew outdated pyenv || brew upgrade pyenv
48 | brew install pyenv-virtualenv
49 | pyenv install $PYTHON
50 | export PYENV_VERSION=$PYTHON
51 | export PATH="/Users/travis/.pyenv/shims:${PATH}"
52 | pyenv-virtualenv venv
53 | source venv/bin/activate
54 | python --version
55 | fi
56 |
57 | install: pip install -r requirements.txt
58 |
59 | script: invoke tests
60 |
61 | after_success: codecov
62 |
--------------------------------------------------------------------------------
/AUTHORS.md:
--------------------------------------------------------------------------------
1 | # Authors
2 |
3 | ## Core Contributor
4 |
5 | [Nathan Urwin](https://github.com/NathanUrwin) <me@nathanurwin.com>
6 |
7 | ## Logo Designer
8 |
9 | [Dylan Yates](https://github.com/dylantyates) <dyates.texas@gmail.com>
10 |
11 | ## Contributors
12 |
13 | None yet. [Why not be the first?](CONTRIBUTING.md)
14 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | ## [v0.6.1](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.6.1) (2018-08-06)
4 |
5 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.6.0...v0.6.1)
6 |
7 | **Implemented enhancements:**
8 |
9 | - Add note about $PATH [\#35](https://github.com/NathanUrwin/cookiecutter-git/issues/35)
10 |
11 | **Fixed bugs:**
12 |
13 | - Fix Windows support [\#42](https://github.com/NathanUrwin/cookiecutter-git/issues/42)
14 |
15 | ## [v0.6.0](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.6.0) (2018-08-01)
16 |
17 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.5.1...v0.6.0)
18 |
19 | **Implemented enhancements:**
20 |
21 | - Add code\_of\_conduct prompt [\#38](https://github.com/NathanUrwin/cookiecutter-git/issues/38)
22 | - Add AppVeyor support [\#33](https://github.com/NathanUrwin/cookiecutter-git/issues/33)
23 |
24 | **Fixed bugs:**
25 |
26 | - Fix repo\_slug dirs outdated content [\#39](https://github.com/NathanUrwin/cookiecutter-git/issues/39)
27 | - Remove copy\_cookiecutter\_git prompt [\#37](https://github.com/NathanUrwin/cookiecutter-git/issues/37)
28 | - Fix tests on Windows [\#26](https://github.com/NathanUrwin/cookiecutter-git/issues/26)
29 |
30 | ## [v0.5.1](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.5.1) (2018-07-30)
31 |
32 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.5.0...v0.5.1)
33 |
34 | **Fixed bugs:**
35 |
36 | - Fix Invoke on Windows [\#34](https://github.com/NathanUrwin/cookiecutter-git/issues/34)
37 |
38 | ## [v0.5.0](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.5.0) (2018-07-26)
39 |
40 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.4.1...v0.5.0)
41 |
42 | **Implemented enhancements:**
43 |
44 | - Add cookie-cookie feature [\#32](https://github.com/NathanUrwin/cookiecutter-git/issues/32)
45 | - Add Codecov support [\#30](https://github.com/NathanUrwin/cookiecutter-git/issues/30)
46 | - Add Travis Continuous Integration support [\#9](https://github.com/NathanUrwin/cookiecutter-git/issues/9)
47 |
48 | **Fixed bugs:**
49 |
50 | - Fix gitlab.com as remote\_provider [\#22](https://github.com/NathanUrwin/cookiecutter-git/issues/22)
51 | - Fix urllib2 URLError urlopen error [\#21](https://github.com/NathanUrwin/cookiecutter-git/issues/21)
52 | - Fix bash tests with pytest [\#8](https://github.com/NathanUrwin/cookiecutter-git/issues/8)
53 |
54 | ## [v0.4.1](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.4.1) (2018-03-16)
55 |
56 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.4.0...v0.4.1)
57 |
58 | **Fixed bugs:**
59 |
60 | - Bitbucket remote repo failed [\#20](https://github.com/NathanUrwin/cookiecutter-git/issues/20)
61 |
62 | ## [v0.4.0](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.4.0) (2018-03-15)
63 |
64 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.3.0...v0.4.0)
65 |
66 | **Implemented enhancements:**
67 |
68 | - Add python3 support [\#15](https://github.com/NathanUrwin/cookiecutter-git/issues/15)
69 |
70 | **Fixed bugs:**
71 |
72 | - Fix UnboundLocalError [\#17](https://github.com/NathanUrwin/cookiecutter-git/issues/17)
73 | - Fix Windows TypeError [\#16](https://github.com/NathanUrwin/cookiecutter-git/issues/16)
74 |
75 | ## [v0.3.0](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.3.0) (2017-03-25)
76 |
77 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.2.0...v0.3.0)
78 |
79 | **Implemented enhancements:**
80 |
81 | - Add cookiecutter.json documentation [\#14](https://github.com/NathanUrwin/cookiecutter-git/issues/14)
82 | - Refactor cookiecutter.json keys [\#13](https://github.com/NathanUrwin/cookiecutter-git/issues/13)
83 |
84 | ## [v0.2.0](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.2.0) (2017-03-24)
85 |
86 | [Full Changelog](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.1.0...v0.2.0)
87 |
88 | **Implemented enhancements:**
89 |
90 | - Add bitbucket.org support [\#5](https://github.com/NathanUrwin/cookiecutter-git/issues/5)
91 | - Add first tagged release [\#3](https://github.com/NathanUrwin/cookiecutter-git/issues/3)
92 |
93 | ## [v0.1.0](https://github.com/NathanUrwin/cookiecutter-git/tree/v0.1.0) (2017-03-24)
94 |
95 | **Implemented enhancements:**
96 |
97 | - Add more license choices [\#4](https://github.com/NathanUrwin/cookiecutter-git/issues/4)
98 | - Use github-changelog-generator [\#2](https://github.com/NathanUrwin/cookiecutter-git/issues/2)
99 | - Add gitlab.com support [\#1](https://github.com/NathanUrwin/cookiecutter-git/issues/1)
100 |
101 | **Fixed bugs:**
102 |
103 | - Fix insecure gitlab\_token retrieval [\#6](https://github.com/NathanUrwin/cookiecutter-git/issues/6)
104 |
105 | \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
106 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at me@nathanurwin.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44 |
45 | [homepage]: http://contributor-covenant.org
46 | [version]: http://contributor-covenant.org/version/1/4/
47 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | Contributions are welcome, and they are greatly appreciated!
4 |
5 | Every little bit helps, and credit will always be given.
6 |
7 | ## Types of Contributions
8 |
9 | ### Bug Reports, Feature Requests, and Feedback
10 |
11 | Create a [new project issue][1]! Try to be as descriptive as possible.
12 |
13 | ### Bug Fixes, New Features and Documentation
14 |
15 | Create a [new merge/pull request][2]! Make sure to follow the guidelines.
16 |
17 | ## Merge/Pull Request Guidelines
18 |
19 | Make sure to have atomic commits and contextual commit messages!
20 |
21 | [Check out this awesome blog post by Chris Beams for more information.][3]
22 |
23 | [1]: https://github.com/NathanUrwin/cookiecutter-git/issues/new
24 | [2]: https://github.com/NathanUrwin/cookiecutter-git/compare
25 | [3]: http://chris.beams.io/posts/git-commit/
26 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Nathan Urwin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Pipfile:
--------------------------------------------------------------------------------
1 | [[source]]
2 | url = "https://pypi.python.org/simple"
3 | name = "pypi"
4 | verify_ssl = true
5 |
6 | [packages]
7 | cookiecutter = "*"
8 | invoke = "*"
9 | requests = "*"
10 |
11 | [dev-packages]
12 | black = "*"
13 | codecov = "*"
14 | pylint = "*"
15 | pytest = "*"
16 | pytest-cookies = "*"
17 | pytest-cov = "*"
18 | pytest-dotenv = "*"
19 | requests-mock = "*"
20 |
21 | [requires]
22 | python_version = "3.6"
23 |
24 | [pipenv]
25 | allow_prereleases = true
26 |
--------------------------------------------------------------------------------
/Pipfile.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_meta": {
3 | "hash": {
4 | "sha256": "b0ea53d2b41e27b6b3a6b8e9070130b6c7217fb6e9285cfdb7afbf4b3025c20f"
5 | },
6 | "pipfile-spec": 6,
7 | "requires": {
8 | "python_version": "3.6"
9 | },
10 | "sources": [
11 | {
12 | "name": "pypi",
13 | "url": "https://pypi.python.org/simple",
14 | "verify_ssl": true
15 | }
16 | ]
17 | },
18 | "default": {
19 | "arrow": {
20 | "hashes": [
21 | "sha256:a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd"
22 | ],
23 | "version": "==0.12.1"
24 | },
25 | "binaryornot": {
26 | "hashes": [
27 | "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061",
28 | "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"
29 | ],
30 | "version": "==0.4.4"
31 | },
32 | "certifi": {
33 | "hashes": [
34 | "sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7",
35 | "sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0"
36 | ],
37 | "version": "==2018.4.16"
38 | },
39 | "chardet": {
40 | "hashes": [
41 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
42 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
43 | ],
44 | "version": "==3.0.4"
45 | },
46 | "click": {
47 | "hashes": [
48 | "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
49 | "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
50 | ],
51 | "version": "==6.7"
52 | },
53 | "cookiecutter": {
54 | "hashes": [
55 | "sha256:1316a52e1c1f08db0c9efbf7d876dbc01463a74b155a0d83e722be88beda9a3e",
56 | "sha256:ed8f54a8fc79b6864020d773ce11539b5f08e4617f353de1f22d23226f6a0d36"
57 | ],
58 | "index": "pypi",
59 | "version": "==1.6.0"
60 | },
61 | "future": {
62 | "hashes": [
63 | "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
64 | ],
65 | "version": "==0.16.0"
66 | },
67 | "idna": {
68 | "hashes": [
69 | "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
70 | "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
71 | ],
72 | "version": "==2.7"
73 | },
74 | "invoke": {
75 | "hashes": [
76 | "sha256:21274204515dca62206470b088bbcf9d41ffda82b3715b90e01d71b7a4681921",
77 | "sha256:4a4cc031db311cbfb3fdd8ec93a06c892533c27b931f4be14b24c97cd042b14e",
78 | "sha256:621b6564f992c37166e16090d7e7cccb3b922e03a58e980dfa5e543a931b652f"
79 | ],
80 | "index": "pypi",
81 | "version": "==1.0.0"
82 | },
83 | "jinja2": {
84 | "hashes": [
85 | "sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd",
86 | "sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
87 | ],
88 | "version": "==2.10"
89 | },
90 | "jinja2-time": {
91 | "hashes": [
92 | "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40",
93 | "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"
94 | ],
95 | "version": "==0.2.0"
96 | },
97 | "markupsafe": {
98 | "hashes": [
99 | "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665"
100 | ],
101 | "version": "==1.0"
102 | },
103 | "poyo": {
104 | "hashes": [
105 | "sha256:103b4ee3e1c7765098fe1cabe43f828db2e2a6079646561a2117e1a809f352d6",
106 | "sha256:230ec11c2f35a23410c1f0e474f09fa4e203686f40ab3adca7b039c845d8c325"
107 | ],
108 | "version": "==0.4.1"
109 | },
110 | "python-dateutil": {
111 | "hashes": [
112 | "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0",
113 | "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8"
114 | ],
115 | "version": "==2.7.3"
116 | },
117 | "requests": {
118 | "hashes": [
119 | "sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1",
120 | "sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
121 | ],
122 | "index": "pypi",
123 | "version": "==2.19.1"
124 | },
125 | "six": {
126 | "hashes": [
127 | "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
128 | "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
129 | ],
130 | "version": "==1.11.0"
131 | },
132 | "urllib3": {
133 | "hashes": [
134 | "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
135 | "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
136 | ],
137 | "version": "==1.23"
138 | },
139 | "whichcraft": {
140 | "hashes": [
141 | "sha256:9e0d51c9387cb7e9f28b7edb549e6a03da758f7784f991eb4397d7f7808c57fd",
142 | "sha256:cd0e10b58960ab877d9f273cd28788730936c3cdaceec2dafad97c7cf3067d46"
143 | ],
144 | "version": "==0.4.1"
145 | }
146 | },
147 | "develop": {
148 | "appdirs": {
149 | "hashes": [
150 | "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92",
151 | "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"
152 | ],
153 | "version": "==1.4.3"
154 | },
155 | "arrow": {
156 | "hashes": [
157 | "sha256:a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd"
158 | ],
159 | "version": "==0.12.1"
160 | },
161 | "astroid": {
162 | "hashes": [
163 | "sha256:a8d8c7fe34e34e868426b9bafce852c355a3951eef60bc831b2ed541558f8d37",
164 | "sha256:e722228b5259ce8c7cbf75f3b0ee8b483cfbd4df01167474a84087d1aeade22c"
165 | ],
166 | "version": "==2.0.0.dev4"
167 | },
168 | "atomicwrites": {
169 | "hashes": [
170 | "sha256:240831ea22da9ab882b551b31d4225591e5e447a68c5e188db5b89ca1d487585",
171 | "sha256:a24da68318b08ac9c9c45029f4a10371ab5b20e4226738e150e6e7c571630ae6"
172 | ],
173 | "version": "==1.1.5"
174 | },
175 | "attrs": {
176 | "hashes": [
177 | "sha256:4b90b09eeeb9b88c35bc642cbac057e45a5fd85367b985bd2809c62b7b939265",
178 | "sha256:e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b"
179 | ],
180 | "version": "==18.1.0"
181 | },
182 | "binaryornot": {
183 | "hashes": [
184 | "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061",
185 | "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"
186 | ],
187 | "version": "==0.4.4"
188 | },
189 | "black": {
190 | "hashes": [
191 | "sha256:22158b89c1a6b4eb333a1e65e791a3f8b998cf3b11ae094adb2570f31f769a44",
192 | "sha256:4b475bbd528acce094c503a3d2dbc2d05a4075f6d0ef7d9e7514518e14cc5191"
193 | ],
194 | "index": "pypi",
195 | "version": "==18.6b4"
196 | },
197 | "certifi": {
198 | "hashes": [
199 | "sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7",
200 | "sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0"
201 | ],
202 | "version": "==2018.4.16"
203 | },
204 | "chardet": {
205 | "hashes": [
206 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
207 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
208 | ],
209 | "version": "==3.0.4"
210 | },
211 | "click": {
212 | "hashes": [
213 | "sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
214 | "sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
215 | ],
216 | "version": "==6.7"
217 | },
218 | "codecov": {
219 | "hashes": [
220 | "sha256:8ed8b7c6791010d359baed66f84f061bba5bd41174bf324c31311e8737602788",
221 | "sha256:ae00d68e18d8a20e9c3288ba3875ae03db3a8e892115bf9b83ef20507732bed4"
222 | ],
223 | "index": "pypi",
224 | "version": "==2.0.15"
225 | },
226 | "cookiecutter": {
227 | "hashes": [
228 | "sha256:1316a52e1c1f08db0c9efbf7d876dbc01463a74b155a0d83e722be88beda9a3e",
229 | "sha256:ed8f54a8fc79b6864020d773ce11539b5f08e4617f353de1f22d23226f6a0d36"
230 | ],
231 | "index": "pypi",
232 | "version": "==1.6.0"
233 | },
234 | "coverage": {
235 | "hashes": [
236 | "sha256:10cfac276cf3dd0acefc49444fc4e1a0a4c23c855d9fcbd555681c3a47a328e6",
237 | "sha256:18797137634b64fe488b239d3709e5f8fdea80aea09f86ec819c633a2c84f79c",
238 | "sha256:1a54b37e265dd81922f32eff50559630905770cdf8a8e560aa5a4f3297e5d5bf",
239 | "sha256:245709d580be9c7a5f8e2aeebab889f571ac323ff34bdde497072e82c0295546",
240 | "sha256:316881a28d2a1a5853495092267fcacf245805b4139f0fc996f8a6c4be6fb499",
241 | "sha256:3368098e2c633ec6b2af4f91abde94b5c3b8fa66857452137485f40be77aeda6",
242 | "sha256:33e0aa553d256b0daf43e0026db3bd415eb4b94c8dc7984afb84c10efa51a83b",
243 | "sha256:35fe7a6c06851c4c6a4c171eb796d27e023f5a1ce1e25837ea720f5b8cb76fce",
244 | "sha256:3a1c8ed67a64627ef317de64356731f8f173b76457672e933db896c080e1cc2b",
245 | "sha256:3e79318f0ddb197e775a742cc44807b1e9f3b8a57325f422fe547d3e0ca01b86",
246 | "sha256:59fa7e9857205b8d6f6fce0eaea07409bcdffd68eaec3db7e0b1ac720d4fe0f3",
247 | "sha256:6b2e2ef7572b399b0cc2f6d05c06ada40329166d6fc58beef8081fb94a41201f",
248 | "sha256:712599fc602c302c540fe7e83b6d82aaf381ec5bfb4a51dc5c30f57d214d649f",
249 | "sha256:773c0e658503538554516f5f901e775cda760648d8d2b988e16f187812c0c089",
250 | "sha256:7c8dbbc9e5480856125511f11a5c735cff3200e367adc3ba342dad506a25407d",
251 | "sha256:7fc25906ecb0a6af0c434370da6cfbcf8badb257c5cf9a6464f5e37fe4ebc949",
252 | "sha256:88d81556e00ac7e1cc9e70a2376859f41e46d187b6dd5883422aa537505f8a98",
253 | "sha256:91a915f5fc88db7adace367e8ef65d1a418d29f7ade62514d604eed87c861355",
254 | "sha256:9f696b90ff4886ba5a277995397a13b0600bfd97c70d8ae4241c2aecea11ee61",
255 | "sha256:a863f4540446d7eeaf6bf716aee277eaf38842718e86bdb80cdca78cdf1fed0d",
256 | "sha256:ab3981817dcec2dd9ea552e46538ee2e34480ec623fc365019ddae82bc9be143",
257 | "sha256:b3b6d8d8194e7e1300240402dfd9c54840d03621e69da821d8ffc8bbebe00137",
258 | "sha256:c296ac03ba12e184bef03387d89c4a0be79daff214294917ce77df32240bf4d8",
259 | "sha256:c75b3de73cc7ba2e911a907322c65dd10da216f37e7477f22dbd0098775f6345",
260 | "sha256:c87c9ee13ce431305734b8e3f0bf00468a1d4f4ee60b6ef63c69282776ab94d6",
261 | "sha256:c89c895ff5cfda45a5f681514b647986f76a4f984df125d210c154e5a1a2472b",
262 | "sha256:c9fa8fbda281b1ddf25b8fa7ccf0564198a86c9da8a413111fcadd510a98a232",
263 | "sha256:ccdf1bd8fd848690fb3d5153d0c54c41169e59804acb9652664f5f669fe25c11"
264 | ],
265 | "version": "==5.0a1"
266 | },
267 | "future": {
268 | "hashes": [
269 | "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
270 | ],
271 | "version": "==0.16.0"
272 | },
273 | "idna": {
274 | "hashes": [
275 | "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
276 | "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
277 | ],
278 | "version": "==2.7"
279 | },
280 | "isort": {
281 | "hashes": [
282 | "sha256:1153601da39a25b14ddc54955dbbacbb6b2d19135386699e2ad58517953b34af",
283 | "sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8",
284 | "sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497"
285 | ],
286 | "version": "==4.3.4"
287 | },
288 | "jinja2": {
289 | "hashes": [
290 | "sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd",
291 | "sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
292 | ],
293 | "version": "==2.10"
294 | },
295 | "jinja2-time": {
296 | "hashes": [
297 | "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40",
298 | "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"
299 | ],
300 | "version": "==0.2.0"
301 | },
302 | "lazy-object-proxy": {
303 | "hashes": [
304 | "sha256:0ce34342b419bd8f018e6666bfef729aec3edf62345a53b537a4dcc115746a33",
305 | "sha256:1b668120716eb7ee21d8a38815e5eb3bb8211117d9a90b0f8e21722c0758cc39",
306 | "sha256:209615b0fe4624d79e50220ce3310ca1a9445fd8e6d3572a896e7f9146bbf019",
307 | "sha256:27bf62cb2b1a2068d443ff7097ee33393f8483b570b475db8ebf7e1cba64f088",
308 | "sha256:27ea6fd1c02dcc78172a82fc37fcc0992a94e4cecf53cb6d73f11749825bd98b",
309 | "sha256:2c1b21b44ac9beb0fc848d3993924147ba45c4ebc24be19825e57aabbe74a99e",
310 | "sha256:2df72ab12046a3496a92476020a1a0abf78b2a7db9ff4dc2036b8dd980203ae6",
311 | "sha256:320ffd3de9699d3892048baee45ebfbbf9388a7d65d832d7e580243ade426d2b",
312 | "sha256:50e3b9a464d5d08cc5227413db0d1c4707b6172e4d4d915c1c70e4de0bbff1f5",
313 | "sha256:5276db7ff62bb7b52f77f1f51ed58850e315154249aceb42e7f4c611f0f847ff",
314 | "sha256:61a6cf00dcb1a7f0c773ed4acc509cb636af2d6337a08f362413c76b2b47a8dd",
315 | "sha256:6ae6c4cb59f199d8827c5a07546b2ab7e85d262acaccaacd49b62f53f7c456f7",
316 | "sha256:7661d401d60d8bf15bb5da39e4dd72f5d764c5aff5a86ef52a042506e3e970ff",
317 | "sha256:7bd527f36a605c914efca5d3d014170b2cb184723e423d26b1fb2fd9108e264d",
318 | "sha256:7cb54db3535c8686ea12e9535eb087d32421184eacc6939ef15ef50f83a5e7e2",
319 | "sha256:7f3a2d740291f7f2c111d86a1c4851b70fb000a6c8883a59660d95ad57b9df35",
320 | "sha256:81304b7d8e9c824d058087dcb89144842c8e0dea6d281c031f59f0acf66963d4",
321 | "sha256:933947e8b4fbe617a51528b09851685138b49d511af0b6c0da2539115d6d4514",
322 | "sha256:94223d7f060301b3a8c09c9b3bc3294b56b2188e7d8179c762a1cda72c979252",
323 | "sha256:ab3ca49afcb47058393b0122428358d2fbe0408cf99f1b58b295cfeb4ed39109",
324 | "sha256:bd6292f565ca46dee4e737ebcc20742e3b5be2b01556dafe169f6c65d088875f",
325 | "sha256:cb924aa3e4a3fb644d0c463cad5bc2572649a6a3f68a7f8e4fbe44aaa6d77e4c",
326 | "sha256:d0fc7a286feac9077ec52a927fc9fe8fe2fabab95426722be4c953c9a8bede92",
327 | "sha256:ddc34786490a6e4ec0a855d401034cbd1242ef186c20d79d2166d6a4bd449577",
328 | "sha256:e34b155e36fa9da7e1b7c738ed7767fc9491a62ec6af70fe9da4a057759edc2d",
329 | "sha256:e5b9e8f6bda48460b7b143c3821b21b452cb3a835e6bbd5dd33aa0c8d3f5137d",
330 | "sha256:e81ebf6c5ee9684be8f2c87563880f93eedd56dd2b6146d8a725b50b7e5adb0f",
331 | "sha256:eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a",
332 | "sha256:f460d1ceb0e4a5dcb2a652db0904224f367c9b3c1470d5a7683c0480e582468b"
333 | ],
334 | "version": "==1.3.1"
335 | },
336 | "markupsafe": {
337 | "hashes": [
338 | "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665"
339 | ],
340 | "version": "==1.0"
341 | },
342 | "mccabe": {
343 | "hashes": [
344 | "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
345 | "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
346 | ],
347 | "version": "==0.6.1"
348 | },
349 | "more-itertools": {
350 | "hashes": [
351 | "sha256:2b6b9893337bfd9166bee6a62c2b0c9fe7735dcf85948b387ec8cba30e85d8e8",
352 | "sha256:6703844a52d3588f951883005efcf555e49566a48afd4db4e965d69b883980d3",
353 | "sha256:a18d870ef2ffca2b8463c0070ad17b5978056f403fb64e3f15fe62a52db21cc0"
354 | ],
355 | "version": "==4.2.0"
356 | },
357 | "pluggy": {
358 | "hashes": [
359 | "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff",
360 | "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c",
361 | "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"
362 | ],
363 | "version": "==0.6.0"
364 | },
365 | "poyo": {
366 | "hashes": [
367 | "sha256:103b4ee3e1c7765098fe1cabe43f828db2e2a6079646561a2117e1a809f352d6",
368 | "sha256:230ec11c2f35a23410c1f0e474f09fa4e203686f40ab3adca7b039c845d8c325"
369 | ],
370 | "version": "==0.4.1"
371 | },
372 | "py": {
373 | "hashes": [
374 | "sha256:3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7",
375 | "sha256:e31fb2767eb657cbde86c454f02e99cb846d3cd9d61b318525140214fdc0e98e"
376 | ],
377 | "version": "==1.5.4"
378 | },
379 | "pylint": {
380 | "hashes": [
381 | "sha256:285c9ae7255acb584057fe31051a37498985e632b99fc0ec93b7eb38a1b137f9",
382 | "sha256:dd5c0fc4e6a4cb9483a4367699099a7dfc8a13de9ecac4cb16855ffac68d49de"
383 | ],
384 | "index": "pypi",
385 | "version": "==2.0.0.dev2"
386 | },
387 | "pytest": {
388 | "hashes": [
389 | "sha256:0453c8676c2bee6feb0434748b068d5510273a916295fd61d306c4f22fbfd752",
390 | "sha256:4b208614ae6d98195430ad6bde03641c78553acee7c83cec2e85d613c0cd383d"
391 | ],
392 | "index": "pypi",
393 | "version": "==3.6.3"
394 | },
395 | "pytest-cookies": {
396 | "hashes": [
397 | "sha256:7054b5abd87704c3769b46deb65c332fadba80905d4103b0b1e0b4fe8a9a852a",
398 | "sha256:a6f37393b697eb3357625a5c226888d9dd020cca3d112b38c630467ce9ff7844"
399 | ],
400 | "index": "pypi",
401 | "version": "==0.3.0"
402 | },
403 | "pytest-cov": {
404 | "hashes": [
405 | "sha256:03aa752cf11db41d281ea1d807d954c4eda35cfa1b21d6971966cc041bbf6e2d",
406 | "sha256:890fe5565400902b0c78b5357004aab1c814115894f4f21370e2433256a3eeec"
407 | ],
408 | "index": "pypi",
409 | "version": "==2.5.1"
410 | },
411 | "pytest-dotenv": {
412 | "hashes": [
413 | "sha256:9b66e667b8a78e0f2377e87539a2a9359e1414f67adf2fe8b3ecd84239c3351d"
414 | ],
415 | "index": "pypi",
416 | "version": "==0.1.1"
417 | },
418 | "python-dateutil": {
419 | "hashes": [
420 | "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0",
421 | "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8"
422 | ],
423 | "version": "==2.7.3"
424 | },
425 | "python-dotenv": {
426 | "hashes": [
427 | "sha256:4965ed170bf51c347a89820e8050655e9c25db3837db6602e906b6d850fad85c",
428 | "sha256:509736185257111613009974e666568a1b031b028b61b500ef1ab4ee780089d5"
429 | ],
430 | "version": "==0.8.2"
431 | },
432 | "requests": {
433 | "hashes": [
434 | "sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1",
435 | "sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
436 | ],
437 | "index": "pypi",
438 | "version": "==2.19.1"
439 | },
440 | "requests-mock": {
441 | "hashes": [
442 | "sha256:a029fe6c5244963ef042c6224ff787049bfc5bab958a1b7e5b632ef0bbb05de4",
443 | "sha256:ea06be249562e52c550cb252e03058d058d9eaca792076b0b2b54d4dc87ff5c7"
444 | ],
445 | "index": "pypi",
446 | "version": "==1.5.0"
447 | },
448 | "six": {
449 | "hashes": [
450 | "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
451 | "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
452 | ],
453 | "version": "==1.11.0"
454 | },
455 | "toml": {
456 | "hashes": [
457 | "sha256:8e86bd6ce8cc11b9620cb637466453d94f5d57ad86f17e98a98d1f73e3baab2d"
458 | ],
459 | "version": "==0.9.4"
460 | },
461 | "typed-ast": {
462 | "hashes": [
463 | "sha256:0948004fa228ae071054f5208840a1e88747a357ec1101c17217bfe99b299d58",
464 | "sha256:10703d3cec8dcd9eef5a630a04056bbc898abc19bac5691612acba7d1325b66d",
465 | "sha256:1f6c4bd0bdc0f14246fd41262df7dfc018d65bb05f6e16390b7ea26ca454a291",
466 | "sha256:25d8feefe27eb0303b73545416b13d108c6067b846b543738a25ff304824ed9a",
467 | "sha256:29464a177d56e4e055b5f7b629935af7f49c196be47528cc94e0a7bf83fbc2b9",
468 | "sha256:2e214b72168ea0275efd6c884b114ab42e316de3ffa125b267e732ed2abda892",
469 | "sha256:3e0d5e48e3a23e9a4d1a9f698e32a542a4a288c871d33ed8df1b092a40f3a0f9",
470 | "sha256:519425deca5c2b2bdac49f77b2c5625781abbaf9a809d727d3a5596b30bb4ded",
471 | "sha256:57fe287f0cdd9ceaf69e7b71a2e94a24b5d268b35df251a88fef5cc241bf73aa",
472 | "sha256:668d0cec391d9aed1c6a388b0d5b97cd22e6073eaa5fbaa6d2946603b4871efe",
473 | "sha256:68ba70684990f59497680ff90d18e756a47bf4863c604098f10de9716b2c0bdd",
474 | "sha256:6de012d2b166fe7a4cdf505eee3aaa12192f7ba365beeefaca4ec10e31241a85",
475 | "sha256:79b91ebe5a28d349b6d0d323023350133e927b4de5b651a8aa2db69c761420c6",
476 | "sha256:8550177fa5d4c1f09b5e5f524411c44633c80ec69b24e0e98906dd761941ca46",
477 | "sha256:898f818399cafcdb93cbbe15fc83a33d05f18e29fb498ddc09b0214cdfc7cd51",
478 | "sha256:94b091dc0f19291adcb279a108f5d38de2430411068b219f41b343c03b28fb1f",
479 | "sha256:a26863198902cda15ab4503991e8cf1ca874219e0118cbf07c126bce7c4db129",
480 | "sha256:a8034021801bc0440f2e027c354b4eafd95891b573e12ff0418dec385c76785c",
481 | "sha256:bc978ac17468fe868ee589c795d06777f75496b1ed576d308002c8a5756fb9ea",
482 | "sha256:c05b41bc1deade9f90ddc5d988fe506208019ebba9f2578c622516fd201f5863",
483 | "sha256:c9b060bd1e5a26ab6e8267fd46fc9e02b54eb15fffb16d112d4c7b1c12987559",
484 | "sha256:edb04bdd45bfd76c8292c4d9654568efaedf76fe78eb246dde69bdb13b2dad87",
485 | "sha256:f19f2a4f547505fe9072e15f6f4ae714af51b5a681a97f187971f50c283193b6"
486 | ],
487 | "markers": "python_version < '3.7' and implementation_name == 'cpython'",
488 | "version": "==1.1.0"
489 | },
490 | "urllib3": {
491 | "hashes": [
492 | "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
493 | "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
494 | ],
495 | "version": "==1.23"
496 | },
497 | "whichcraft": {
498 | "hashes": [
499 | "sha256:9e0d51c9387cb7e9f28b7edb549e6a03da758f7784f991eb4397d7f7808c57fd",
500 | "sha256:cd0e10b58960ab877d9f273cd28788730936c3cdaceec2dafad97c7cf3067d46"
501 | ],
502 | "version": "==0.4.1"
503 | },
504 | "wrapt": {
505 | "hashes": [
506 | "sha256:d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6"
507 | ],
508 | "version": "==1.10.11"
509 | }
510 | }
511 | }
512 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # cookiecutter-git
2 |
3 | [](https://github.com/NathanUrwin/cookiecutter-git/releases/tag/v0.6.1)
4 | [](ROADMAP.md)
5 | [](https://travis-ci.org/NathanUrwin/cookiecutter-git)
6 | [](https://ci.appveyor.com/project/NathanUrwin/cookiecutter-git/branch/master)
7 | [](https://codecov.io/gh/NathanUrwin/cookiecutter-git)
8 | [](https://www.python.org/downloads/)
9 |
10 | > Git repo project template using Cookiecutter :cookie:
11 |
12 | [](https://dylantyates.com/graphics)
13 |
14 | This project is inspired by [cookiecutter-template by eviweb](https://github.com/eviweb/cookiecutter-template), and consists of a [cookiecutter](https://github.com/audreyr/cookiecutter#cookiecutter) (project template) that provides the necessary [markdown](https://guides.github.com/features/mastering-markdown/) docs and other files to pass [GitHub's open source guidelines](https://opensource.guide/) with an added bonus: remote repos are created for you [*automagically*](https://youtu.be/Z3qK8gT5LLg?t=24s)! :crystal_ball::zap::boom:
15 |
16 | _**Note:** The [Beta release](https://github.com/NathanUrwin/cookiecutter-git/releases/tag/v0.5.0) introduces [breaking changes](https://github.com/NathanUrwin/cookiecutter-git/compare/v0.4.1...v0.5.0)! [Invoke](http://docs.pyinvoke.org/en/1.1/) and [Requests](http://docs.python-requests.org/en/master/) are **now required** and [the prompts](#documentation) have changed!_
17 |
18 | ## Table of Contents
19 |
20 | - [Table of Contents](#table-of-contents)
21 | - [Features](#features)
22 | - [Requirements](#requirements)
23 | - [Recommended](#recommended)
24 | - [Installation](#installation)
25 | - [Users](#users)
26 | - [Contributors](#contributors)
27 | - [Usage](#usage)
28 | - [Example](#example)
29 | - [Documentation](#documentation)
30 | - [Resources](#resources)
31 | - [Development](#development)
32 | - [Future](#future)
33 | - [History](#history)
34 | - [Community](#community)
35 | - [Credits](#credits)
36 | - [License](#license)
37 |
38 | ## Features
39 |
40 | - Creates new project directory
41 | - [Bare project structure](https://github.com/nathanurwin/cookiecutter-git-demo)
42 | - For any programming language or codebase
43 | - Useful but not overruling organization
44 | - [License customization](https://choosealicense.com/)
45 | - Code of Conduct customization
46 | - [Git Ignore customization](https://www.gitignore.io/)
47 | - Git repo initialization
48 | - Remote repo creation
49 | - [Bitbucket.org](https://bitbucket.org/) using HTTP Basic auth (2FA disabled only)
50 | - [GitHub.com](https://github.com/) using HTTP Basic auth (2FA support *coming soon*)
51 | - [GitLab.com](https://gitlab.com/) using `git push` (HTTP Basic auth or SSH)
52 | - Cross-platform support
53 | - [Windows](https://www.microsoft.com/en-us/windows)
54 | - [macOS](https://www.apple.com/macos/high-sierra/)
55 | - [Linux](https://www.linux.org/)
56 |
57 | ## Requirements
58 |
59 | - [Cookiecutter](https://github.com/audreyr/cookiecutter)
60 | - [Invoke](http://www.pyinvoke.org/)
61 | - [Requests](http://docs.python-requests.org/en/master/)
62 |
63 | _**Note:** Cookiecutter **should be** installed with [pip](https://pip.pypa.io/en/stable/installing/), or else `invoke` and `requests` may not be in `$PATH` and/or `$PYTHONPATH`!_
64 |
65 | ### Recommended
66 |
67 | - [ghi](https://github.com/stephencelis/ghi)
68 | - [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator)
69 | - [pyenv](https://github.com/pyenv/pyenv) ([conda](https://github.com/conda/conda) on Windows)
70 |
71 | ## Installation
72 |
73 | ### Users
74 |
75 | ```bash
76 | $ pip install --user cookiecutter invoke requests
77 | Collecting cookiecutter
78 | Using cached https://files.pythonhosted.org/packages/16/99/1ca3a75978270288354f419e9166666801cf7e7d8df984de44a7d5d8b8d0/cookiecutter-1.6.0-py2.py3-none-any.whl
79 | Collecting invoke
80 | Using cached https://files.pythonhosted.org/packages/6c/66/9e232c59e61f0a0b6552d68419a5c5a5dba368e105fdbfd2b6c74c402234/invoke-1.0.0-py3-none-any.whl
81 | Collecting requests
82 | Cache entry deserialization failed, entry ignored
83 | Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
84 | Collecting binaryornot>=0.2.0 (from cookiecutter)
85 | Using cached https://files.pythonhosted.org/packages/24/7e/f7b6f453e6481d1e233540262ccbfcf89adcd43606f44a028d7f5fae5eb2/binaryornot-0.4.4-py2.py3-none-any.whl
86 | Collecting poyo>=0.1.0 (from cookiecutter)
87 | Using cached https://files.pythonhosted.org/packages/ea/6c/62c76c12015f6a1849446fb73da59be1229312c54d6d05068275e52bf29f/poyo-0.4.1-py2.py3-none-any.whl
88 | Collecting future>=0.15.2 (from cookiecutter)
89 | Collecting jinja2-time>=0.1.0 (from cookiecutter)
90 | Using cached https://files.pythonhosted.org/packages/6a/a1/d44fa38306ffa34a7e1af09632b158e13ec89670ce491f8a15af3ebcb4e4/jinja2_time-0.2.0-py2.py3-none-any.whl
91 | Collecting whichcraft>=0.4.0 (from cookiecutter)
92 | Using cached https://files.pythonhosted.org/packages/60/8a/5c52e30e11672f7e3aa61f348ddae443d122bcd96bc8b785ac76dbae944b/whichcraft-0.4.1-py2.py3-none-any.whl
93 | Collecting jinja2>=2.7 (from cookiecutter)
94 | Using cached https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl
95 | Collecting click>=5.0 (from cookiecutter)
96 | Using cached https://files.pythonhosted.org/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl
97 | Collecting certifi>=2017.4.17 (from requests)
98 | Cache entry deserialization failed, entry ignored
99 | Using cached https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl
100 | Collecting chardet<3.1.0,>=3.0.2 (from requests)
101 | Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
102 | Collecting urllib3<1.24,>=1.21.1 (from requests)
103 | Cache entry deserialization failed, entry ignored
104 | Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
105 | Collecting idna<2.8,>=2.5 (from requests)
106 | Cache entry deserialization failed, entry ignored
107 | Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
108 | Collecting arrow (from jinja2-time>=0.1.0->cookiecutter)
109 | Collecting MarkupSafe>=0.23 (from jinja2>=2.7->cookiecutter)
110 | Collecting python-dateutil (from arrow->jinja2-time>=0.1.0->cookiecutter)
111 | Cache entry deserialization failed, entry ignored
112 | Using cached https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl
113 | Collecting six>=1.5 (from python-dateutil->arrow->jinja2-time>=0.1.0->cookiecutter)
114 | Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
115 | Installing collected packages: chardet, binaryornot, poyo, future, six, python-dateutil, arrow, MarkupSafe, jinja2, jinja2-time, whichcraft, certifi, urllib3, idna, requests, click, cookiecutter, invoke
116 | Successfully installed MarkupSafe-1.0 arrow-0.12.1 binaryornot-0.4.4 certifi-2018.4.16 chardet-3.0.4 click-6.7 cookiecutter-1.6.0 future-0.16.0 idna-2.7 invoke-1.0.0 jinja2-2.10 jinja2-time-0.2.0 poyo-0.4.1 python-dateutil-2.7.3 requests-2.19.1 six-1.11.0 urllib3-1.23 whichcraft-0.4.1
117 | ```
118 |
119 | See [Usage](#usage)
120 |
121 | ### Contributors
122 |
123 | ```bash
124 | $ git clone https://github.com/NathanUrwin/cookiecutter-git
125 | Cloning into 'cookiecutter-git'...
126 | remote: Counting objects: 757, done.
127 | remote: Compressing objects: 100% (80/80), done.
128 | remote: Total 757 (delta 63), reused 73 (delta 32), pack-reused 645
129 | Receiving objects: 100% (757/757), 337.48 KiB | 0 bytes/s, done.
130 | Resolving deltas: 100% (432/432), done.
131 | $ cd cookiecutter-git
132 | $ pipenv install --dev --pre
133 | Creating a virtualenv for this project…
134 | Using /home/user/.pyenv/versions/3.6.6/bin/python3.6m to create virtualenv…
135 | ⠋Running virtualenv with interpreter /home/user/.pyenv/versions/3.6.6/bin/python3.6m
136 | Using base prefix '/home/user/.pyenv/versions/3.6.6'
137 | New python executable in /home/user/.local/share/virtualenvs/cookiecutter-git-Jx1W2Sde/bin/python3.6m
138 | Also creating executable in /home/user/.local/share/virtualenvs/cookiecutter-git-Jx1W2Sde/bin/python
139 | Installing setuptools, pip, wheel...done.
140 |
141 | Virtualenv location: /home/user/.local/share/virtualenvs/cookiecutter-git-Jx1W2Sde
142 | Installing dependencies from Pipfile.lock (25c20f)…
143 | 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 58/58 — 00:00:07
144 | To activate this project's virtualenv, run the following:
145 | $ pipenv shell
146 | $ pipenv run invoke tests
147 | # before running tests you may have to run:
148 | $ pipenv run pip install -r requirements.txt
149 | ```
150 |
151 | See [CONTRIBUTING](#contributing)
152 |
153 | ## Usage
154 |
155 | ```bash
156 | $ mkdir -p ~/Projects/NathanUrwin
157 | $ cd ~/Projects/NathanUrwin
158 | $ cookiecutter gh:NathanUrwin/cookiecutter-git
159 | You've downloaded /home/user/.cookiecutters/cookiecutter-git before. Is it okay to delete and re-download it? [yes]:
160 | git_name [Nathan Urwin]:
161 | git_email [me@nathanurwin.com]:
162 | git_ignore [windows,macos,linux,git]:
163 | repo_slug [cookiecutter-git-demo]:
164 | repo_tagline [A cookiecutter-git demonstration :tada:]:
165 | repo_summary [This project ...]:
166 | Select remote_provider:
167 | 1 - github.com
168 | 2 - gitlab.com
169 | 3 - bitbucket.org
170 | 4 - none
171 | Choose from 1, 2, 3, 4 [1]:
172 | remote_username [NathanUrwin]:
173 | remote_namespace [NathanUrwin]:
174 | Select remote_protocol:
175 | 1 - https
176 | 2 - ssh
177 | Choose from 1, 2 [1]:
178 | Select code_of_conduct:
179 | 1 - contributor_covenant
180 | 2 - citizen_code_of_conduct
181 | Choose from 1, 2 [1]:
182 | Select copyright_license:
183 | 1 - MIT
184 | 2 - Apache-2.0
185 | 3 - BSD-2-Clause
186 | 4 - BSD-3-Clause
187 | 5 - GPL-2.0
188 | 6 - GPL-3.0
189 | 7 - AGPL-3.0
190 | 8 - LGPL-2.1
191 | 9 - LGPL-3.0
192 | 10 - EPL-1.0
193 | 11 - MPL-2.0
194 | 12 - Unlicense
195 | Choose from 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 [1]:
196 | copyright_holder [Nathan Urwin]:
197 | make_dirs [docs,src,tests]:
198 | Password for 'https://NathanUrwin@github.com':
199 | Initialized empty Git repository in /home/user/Projects/NathanUrwin/cookiecutter-git-demo/.git/
200 | [master (root-commit) 5bdaa5c] Initial commit
201 | 15 files changed, 350 insertions(+)
202 | create mode 100644 .editorconfig
203 | create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
204 | create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md
205 | create mode 100644 .github/PULL_REQUEST_TEMPLATE.md
206 | create mode 100644 .gitignore
207 | create mode 100644 AUTHORS.md
208 | create mode 100644 CHANGELOG.md
209 | create mode 100644 CODE_OF_CONDUCT.md
210 | create mode 100644 CONTRIBUTING.md
211 | create mode 100644 LICENSE
212 | create mode 100644 README.md
213 | create mode 100644 ROADMAP.md
214 | create mode 100644 docs/.gitkeep
215 | create mode 100644 src/.gitkeep
216 | create mode 100644 tests/.gitkeep
217 | To https://github.com/NathanUrwin/cookiecutter-git-demo.git
218 | * [new branch] master -> master
219 | Branch master set up to track remote branch master from origin.
220 |
221 |
222 | Success! Your project was created here:
223 | /home/user/Projects/NathanUrwin/cookiecutter-git-demo
224 | Also see: https://github.com/NathanUrwin/cookiecutter-git-demo
225 | Thanks for using cookiecutter-git! :)
226 |
227 |
228 | ```
229 |
230 | See generated [README.md](https://github.com/NathanUrwin/cookiecutter-git-demo/blob/master/README.md)
231 |
232 | ### Example
233 |
234 | See [cookiecutter-git-demo](https://github.com/NathanUrwin/cookiecutter-git-demo)
235 |
236 | ```bash
237 | $ tree -a -I .git cookiecutter-git-demo
238 | cookiecutter-git-demo
239 | ├── AUTHORS.md
240 | ├── CHANGELOG.md
241 | ├── CODE_OF_CONDUCT.md
242 | ├── CONTRIBUTING.md
243 | ├── docs
244 | │ └── .gitkeep
245 | ├── .editorconfig
246 | ├── .github
247 | │ ├── ISSUE_TEMPLATE
248 | │ │ ├── bug_report.md
249 | │ │ └── feature_request.md
250 | │ └── PULL_REQUEST_TEMPLATE.md
251 | ├── .gitignore
252 | ├── LICENSE
253 | ├── README.md
254 | ├── ROADMAP.md
255 | ├── src
256 | │ └── .gitkeep
257 | └── tests
258 | └── .gitkeep
259 |
260 | 5 directories, 15 files
261 | ```
262 |
263 | ## Documentation
264 |
265 | Cookiecutter prompts explained in-depth. See [cookiecutter.json](cookiecutter.json) for default values.
266 |
267 | Prompt | Explanation
268 | --- | ---
269 | `git_name` | Your full name, including first and last names, titles, and possibly even your middle name. This will go under *Core Contributor* in **AUTHORS.md**. See `git config --global user.name`
270 | `git_email` | Your git user email address you want associated with the repository. This will go under *Core Contributor* in **AUTHORS.md**. See `git config --global user.email`
271 | `git_ignore` | A comma-separated values (csv) list of preset templates of paths for git to ignore. See the [gitignore.io README](https://github.com/joeblau/gitignore.io#list) for available values. This will be used to generate the **.gitignore** file.
272 | `repo_slug` | The repository name containing only alphanumeric characters and dashes. This will be the local, top-level directory name, the remote repo endpoint, and the *H1* in the **README.md**.
273 | `repo_tagline` | A short description about the repository in *50 words or less*. This will be the remote description setting, and the content under the *H1* in the **README.md**.
274 | `repo_summary` | A long description about the repository in *50 words or more*. This will go after the `repo_tagline` with the content under the *H1* in the **README.md**.
275 | `remote_provider` | A choice between `bitbucket.org`, `github.com`, `gitlab.com`, or `none`. This option creates a remote repository for you, and is this project's main feature so defaults to `github.com`.
276 | `remote_username` | Your git `remote_provider` account username. This will be used for all git remote-based actions. This is accompanied with a `remote_password` prompt that is never saved.
277 | `remote_namespace` | Where the remote repository will live, which can be a user or organization, group, or team (depending on the `remote_provider`). Only used if `remote_provider` is not `none`.
278 | `remote_protocol` | A choice between the `https` and `ssh` protocols. Defaults to `https`, since those using `ssh` qualify as power users and should be able to handle setting up a [cookiecutter user config](https://cookiecutter.readthedocs.io/en/latest/advanced/user_config.html).
279 | `code_of_conduct` | Adopt a code of conduct to define community standards, signal a welcoming and inclusive project, and outline procedures for handling abuse. A choice between the [Contributor Covenant](https://www.contributor-covenant.org/) or [Citizen Code of Conduct](http://citizencodeofconduct.org/).
280 | `copyright_license` | The copyright license for the repository. This will be used to generate the **LICENSE** and **NOTICE** files, and determines how end users can ultimately use your source code.
281 | `copyright_holder` | The individual or company that holds the intellectual property copyright. This will be used in the **LICENSE** file, rather than the `git_name`.
282 | `make_dirs` | A comma-separated values (csv) list of directory names which are made with **.gitkeep** files. Nested dirs work if the system path separator is correct! (For example: **tests/unit** for Mac/Linux or **tests\\\\unit** for Windows)
283 |
284 | ## Resources
285 |
286 | - [GitHub's recommended community standards](https://blog.github.com/2017-06-14-new-community-tools/)
287 | - [Creating a Cookiecutter](https://cookiecutter.readthedocs.io/en/latest/first_steps.html)
288 | - [Using Pre/Post-Generate Hooks](https://cookiecutter.readthedocs.io/en/latest/advanced/hooks.html)
289 | - [GitHub Developer Licenses](https://developer.github.com/v3/licenses/)
290 | - [mkdir -p functionality in python](https://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python)
291 | - [Create empty file using python](https://stackoverflow.com/questions/12654772/create-empty-file-using-python)
292 | - [Git Ignore Dot IO Docs](https://www.gitignore.io/docs)
293 | - [Bitbucket API Basic auth](https://developer.atlassian.com/bitbucket/api/2/reference/meta/authentication#basic-auth)
294 | - [Bitbucket API repos](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D#post)
295 | - [GitHub API Basic auth](https://developer.github.com/v3/#basic-authentication)
296 | - [GitHub API Create repos](https://developer.github.com/v3/repos/#create)
297 | - [GitLab Push to create a new project](https://docs.gitlab.com/ce/gitlab-basics/create-project.html#push-to-create-a-new-project)
298 |
299 | ## Development
300 |
301 | See [CONTRIBUTING](CONTRIBUTING.md)
302 |
303 | ### Future
304 |
305 | See [ROADMAP](ROADMAP.md)
306 |
307 | ### History
308 |
309 | See [CHANGELOG](CHANGELOG.md)
310 |
311 | ### Community
312 |
313 | See [CODE OF CONDUCT](CODE_OF_CONDUCT.md)
314 |
315 | ## Credits
316 |
317 | See [AUTHORS](AUTHORS.md)
318 |
319 | ## License
320 |
321 | See [LICENSE](LICENSE)
322 |
--------------------------------------------------------------------------------
/ROADMAP.md:
--------------------------------------------------------------------------------
1 | # Road Map
2 |
3 | ## Development Status
4 |
5 | - [ ] 
6 | - [ ] 
7 | - [ ] 
8 | - [x] 
9 | - [ ] 
10 | - [ ] 
11 | - [ ] 
12 |
13 | ## Project Milestones
14 |
15 | - [x] Release [Version 0.5.0 (Beta)](https://github.com/NathanUrwin/cookiecutter-git/releases/tag/v0.5.0)
16 | - [x] Release [Version 0.6.0 (Beta)](https://github.com/NathanUrwin/cookiecutter-git/releases/tag/v0.6.0)
17 | - [ ] Release [Version 0.7.0 (Beta)](https://github.com/NathanUrwin/cookiecutter-git/milestone/4)
18 | - [ ] Release [Version 1.0.0 (Stable)](https://github.com/NathanUrwin/cookiecutter-git/milestone/2)
19 |
--------------------------------------------------------------------------------
/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanUrwin/cookiecutter-git/ae4f73d9db7a270bfdc8c6c581b235b8be2189d8/__init__.py
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: v0.6.1+appveyor.{build}
2 |
3 | environment:
4 | matrix:
5 | - PYTHON: "C:\\Python27"
6 | - PYTHON: "C:\\Python34"
7 | - PYTHON: "C:\\Python35"
8 | - PYTHON: "C:\\Python36"
9 | - PYTHON: "C:\\Python37"
10 | - PYTHON: "C:\\Python27-x64"
11 | - PYTHON: "C:\\Python34-x64"
12 | - PYTHON: "C:\\Python35-x64"
13 | - PYTHON: "C:\\Python36-x64"
14 | - PYTHON: "C:\\Python37-x64"
15 |
16 | init:
17 | - "git config --global user.email me@nathanurwin.com"
18 | - "git config --global user.name 'Nathan Urwin'"
19 |
20 | install:
21 | - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
22 | - "python -m pip install --upgrade pip"
23 | - "python -m pip install -r requirements.txt"
24 |
25 | build: off
26 |
27 | test_script: "invoke tests"
28 |
29 | after_test: "codecov"
30 |
--------------------------------------------------------------------------------
/cookiecutter.json:
--------------------------------------------------------------------------------
1 | {
2 | "git_name": "Nathan Urwin",
3 | "git_email": "me@nathanurwin.com",
4 | "git_ignore": "windows,macos,linux,git",
5 |
6 | "repo_slug": "cookiecutter-git-demo",
7 | "repo_tagline": "A cookiecutter-git demonstration :tada:",
8 | "repo_summary": "This project ...",
9 |
10 | "remote_provider": ["github.com", "gitlab.com", "bitbucket.org", "none"],
11 | "remote_username": "{{ cookiecutter.git_name | replace(' ', '') }}",
12 | "remote_namespace": "{{ cookiecutter.remote_username }}",
13 | "remote_protocol": ["https", "ssh"],
14 |
15 | "code_of_conduct": ["contributor_covenant", "citizen_code_of_conduct"],
16 | "copyright_license": [
17 | "MIT",
18 | "Apache-2.0",
19 | "BSD-2-Clause",
20 | "BSD-3-Clause",
21 | "GPL-2.0",
22 | "GPL-3.0",
23 | "AGPL-3.0",
24 | "LGPL-2.1",
25 | "LGPL-3.0",
26 | "EPL-1.0",
27 | "MPL-2.0",
28 | "Unlicense"
29 | ],
30 | "copyright_holder": "{{ cookiecutter.git_name }}",
31 |
32 | "make_dirs": "docs,src,tests",
33 |
34 | "_testing": false
35 | }
36 |
--------------------------------------------------------------------------------
/hooks/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanUrwin/cookiecutter-git/ae4f73d9db7a270bfdc8c6c581b235b8be2189d8/hooks/__init__.py
--------------------------------------------------------------------------------
/hooks/post_gen_project.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from __future__ import (
3 | absolute_import,
4 | division,
5 | print_function,
6 | unicode_literals,
7 | )
8 |
9 | """
10 | Cookiecutter-Git Post Project Generation Hook Module.
11 | """
12 | import base64
13 | from contextlib import contextmanager
14 | import errno
15 | import getpass
16 | import json
17 | import os
18 | import re
19 | import shutil
20 |
21 | if os.name == "nt":
22 |
23 | def quote(arg):
24 | # https://stackoverflow.com/a/29215357
25 | if re.search(r'(["\s])', arg):
26 | arg = '"' + arg.replace('"', r"\"") + '"'
27 | meta_chars = '()%!^"<>&|'
28 | meta_re = re.compile(
29 | "(" + "|".join(re.escape(char) for char in list(meta_chars)) + ")"
30 | )
31 | meta_map = {char: "^%s" % char for char in meta_chars}
32 |
33 | def escape_meta_chars(m):
34 | char = m.group(1)
35 | return meta_map[char]
36 |
37 | return meta_re.sub(escape_meta_chars, arg)
38 |
39 |
40 | else:
41 | try: # py34, py35, py36, py37
42 | from shlex import quote
43 | except ImportError: # py27
44 | from pipes import quote
45 |
46 | from invoke import Result, run, UnexpectedExit
47 | import requests
48 |
49 |
50 | class MockResult(Result):
51 | mock_stdout = {
52 | "github.com": """Password for 'https://NathanUrwin@github.com':
53 | Counting objects: 18, done.
54 | Delta compression using up to 8 threads.
55 | Compressing objects: 100% (15/15), done.
56 | Writing objects: 100% (18/18), 6.24 KiB | 0 bytes/s, done.
57 | Total 18 (delta 0), reused 0 (delta 0)
58 | To https://github.com/NathanUrwin/cookiecutter-git-demo.git
59 | * [new branch] master -> master
60 | Branch master set up to track remote branch master from origin.""",
61 | "gitlab.com": """Password for 'https://NathanUrwin@gitlab.com':
62 | Counting objects: 13, done.
63 | Delta compression using up to 8 threads.
64 | Compressing objects: 100% (10/10), done.
65 | Writing objects: 100% (13/13), 5.25 KiB | 0 bytes/s, done.
66 | Total 13 (delta 0), reused 0 (delta 0)
67 | remote:
68 | remote: The private project NathanUrwin/cookiecutter-git-demo was successfully created.
69 | remote:
70 | remote: To configure the remote, run:
71 | remote: git remote add origin https://gitlab.com/NathanUrwin/cookiecutter-git-demo.git
72 | remote:
73 | remote: To view the project, visit:
74 | remote: https://gitlab.com/NathanUrwin/cookiecutter-git-demo
75 | remote:
76 | To https://gitlab.com/NathanUrwin/cookiecutter-git-demo.git
77 | * [new branch] master -> master
78 | Branch master set up to track remote branch master from origin.""",
79 | "bitbucket.org": """Password for 'https://NathanUrwin@bitbucket.org':
80 | Counting objects: 13, done.
81 | Delta compression using up to 8 threads.
82 | Compressing objects: 100% (10/10), done.
83 | Writing objects: 100% (13/13), 5.26 KiB | 0 bytes/s, done.
84 | Total 13 (delta 0), reused 0 (delta 0)
85 | To https://bitbucket.org/NathanUrwin/cookiecutter-git-demo.git
86 | * [new branch] master -> master
87 | Branch master set up to track remote branch master from origin.""",
88 | }
89 |
90 | def __init__(self, remote_provider, **kwargs):
91 | stdout = self.mock_stdout.get(remote_provider, "")
92 | super(MockResult, self).__init__(stdout, **kwargs)
93 |
94 |
95 | @contextmanager
96 | def git_disable_gpgsign():
97 | """
98 | Disables git commit GPG signing temporarily.
99 | """
100 | try:
101 | result = run("git config --global --get commit.gpgSign", hide=True)
102 | # throws only on travis-ci. unknown reason
103 | except UnexpectedExit:
104 |
105 | class ResultNone:
106 | stdout = ""
107 |
108 | result = ResultNone()
109 | if result.stdout.strip() == "true":
110 | # turn off gpg signing commits
111 | try:
112 | run("git config --global --unset commit.gpgSign")
113 | yield
114 | # turn gpg signing back on
115 | except KeyboardInterrupt:
116 | run("git config --global --bool commit.gpgSign true")
117 | finally:
118 | run("git config --global --bool commit.gpgSign true")
119 | else:
120 | yield
121 |
122 |
123 | class PostGenProjectHook(object):
124 | """
125 | Post Project Generation Class Hook.
126 | """
127 |
128 | bitbucket_repos_url_base = (
129 | "https://api.bitbucket.org/2.0/repositories/{}/{}"
130 | )
131 | create_remote_url = None
132 | github_repos_url = "https://api.github.com/user/repos"
133 | git_ignore_url_base = "https://www.gitignore.io/api/{}"
134 | headers = {}
135 | json_header = {"Content-Type": "application/json; charset=utf-8"}
136 | password_prompt_base = "Password for 'https://{}@{}': "
137 | remote_message_base = "Also see: https://{}/{}/{}"
138 | success_message_base = "\n\nSuccess! Your project was created here:\n{}\n{}\nThanks for using cookiecutter-git! :)\n\n"
139 | repo_dirpath = os.getcwd()
140 | cookiecutter_json_filepath = os.path.join(
141 | repo_dirpath, "cookiecutter.json"
142 | )
143 | raw_repo_slug_dirpath = os.path.join(
144 | repo_dirpath, "{% raw %}{{cookiecutter.repo_slug}}{% endraw %}"
145 | )
146 | github_dirpath = os.path.join(repo_dirpath, ".github")
147 | git_ignore_filepath = os.path.join(repo_dirpath, ".gitignore")
148 | hooks_dirpath = os.path.join(repo_dirpath, "hooks")
149 | licenses_dirpath = os.path.join(repo_dirpath, "LICENSES")
150 | license_filepath = os.path.join(repo_dirpath, "LICENSE")
151 | notice_filepath = os.path.join(repo_dirpath, "NOTICE")
152 |
153 | def __init__(self, *args, **kwargs):
154 | """
155 | Initializes the class instance.
156 | """
157 | self.result = self._get_cookiecutter_result()
158 | self.copyright_holder = self.result.get("copyright_holder")
159 | self.copyright_license = self.result.get("copyright_license")
160 | self.git_email = self.result.get("git_email")
161 | self.git_ignore = self.result.get("git_ignore")
162 | self.git_name = self.result.get("git_name")
163 | self.make_dirs = self.result.get("make_dirs")
164 | self.remote_namespace = self.result.get("remote_namespace")
165 | self.remote_protocol = self.result.get("remote_protocol")
166 | self.remote_provider = str(self.result.get("remote_provider")).lower()
167 | self.remote_username = self.result.get("remote_username")
168 | self.repo_slug = self.result.get("repo_slug")
169 | self.repo_summary = self.result.get("repo_summary")
170 | self.repo_tagline = self.result.get("repo_tagline")
171 | self._testing = str(self.result.get("_testing")).lower() == "true"
172 | #
173 | self.apache_license = self.copyright_license == "Apache-2.0"
174 | self.bitbucket_repos_url = self.bitbucket_repos_url_base.format(
175 | self.remote_namespace, self.repo_slug
176 | )
177 | self.git_ignore_url = self.git_ignore_url_base.format(self.git_ignore)
178 | self.nested_license_filepath = os.path.join(
179 | self.licenses_dirpath, "{}.txt".format(self.copyright_license)
180 | )
181 | self.new_git_ignore = self.git_ignore != "windows,macos,linux,git"
182 | self.password_prompt = self.password_prompt_base.format(
183 | self.remote_username, self.remote_provider
184 | )
185 | self.project_dirpaths = [
186 | os.path.join(self.repo_dirpath, dirname.strip())
187 | for dirname in self.make_dirs.split(",")
188 | if dirname.strip()
189 | ]
190 | self.remote_data = {
191 | "name": self.repo_slug,
192 | "description": self.repo_tagline,
193 | }
194 | self.create_remote_url = self._get_create_remote_url()
195 | self.encoded_data = json.dumps(self.remote_data).encode()
196 | self.remote_password = ""
197 | self.remote_repo = self.remote_provider != "none"
198 | if self.remote_repo:
199 | self.remote_password = self._get_remote_password()
200 | self.remote_origin_url = self._get_remote_origin_url()
201 | self.remote_origin_url_with_pass = self._get_remote_origin_url(
202 | with_pass=True
203 | )
204 | self.remote_message = (
205 | self.remote_message_base.format(
206 | self.remote_provider, self.remote_namespace, self.repo_slug
207 | )
208 | if self.remote_repo
209 | else ""
210 | )
211 | self.success_message = self.success_message_base.format(
212 | self.repo_dirpath, self.remote_message
213 | )
214 |
215 | @staticmethod
216 | def format_basic_auth(username, password):
217 | """
218 | Formats HTTP Basic auth with base64 encoding.
219 |
220 | :param username:
221 | :param password:
222 | """
223 | auth_data = "{}:{}".format(username, password)
224 | return base64.b64encode(auth_data.encode())
225 |
226 | @staticmethod
227 | def git_init():
228 | """
229 | Runs git init.
230 | """
231 | run("git init")
232 |
233 | @staticmethod
234 | def git_add():
235 | """
236 | Runs git add all.
237 | """
238 | # `git add -A`
239 | run("git add --all")
240 |
241 | @staticmethod
242 | def git_commit(message="Initial commit"):
243 | """
244 | Runs git commit with an initial message.
245 |
246 | :param message:
247 | """
248 | command = "git commit --message {}".format(quote(message))
249 | if os.name == "nt":
250 | # See https://github.com/NathanUrwin/cookiecutter-git/issues/43
251 | with git_disable_gpgsign():
252 | run(command)
253 | else:
254 | # `git commit -m "Initial commit"`
255 | run(command)
256 |
257 | @staticmethod
258 | def _get_cookiecutter_result():
259 | """
260 | Removes as much jinja2 templating from the hook as possible.
261 | """
262 | # http://flask.pocoo.org/docs/latest/templating/#standard-filters
263 | try:
264 | result = json.loads("""{{ cookiecutter | tojson() }}""")
265 | # current temp hack around for `pipenv run pytest -s`
266 | except json.JSONDecodeError:
267 | result = {}
268 | repo_dirpath = os.path.dirname(
269 | os.path.dirname(os.path.abspath(__file__))
270 | )
271 | json_filepath = os.path.join(repo_dirpath, "cookiecutter.json")
272 | with open(json_filepath) as f:
273 | for k, v in json.loads(f.read()).items():
274 | result[k] = v
275 | if isinstance(v, list):
276 | result[k] = v[0]
277 | return result
278 |
279 | def _get_create_remote_url(self):
280 | """
281 | Gets the create remote URL.
282 | """
283 | create_remote_url = None
284 | if self.remote_username != self.remote_namespace:
285 | self.github_repos_url = "https://api.github.com/orgs/{}/repos".format(
286 | self.remote_namespace
287 | )
288 | if self.remote_provider == "bitbucket.org":
289 | create_remote_url = self.bitbucket_repos_url
290 | self.headers.update(self.json_header)
291 | self.remote_data.update({"has_issues": True, "is_private": True})
292 | elif self.remote_provider == "github.com":
293 | create_remote_url = self.github_repos_url
294 | return create_remote_url
295 |
296 | def _get_remote_origin_url(self, with_pass=False):
297 | """
298 | Gets the remote origin URL.
299 | """
300 | if with_pass:
301 | remote_origin_url = "https://{}:{}@{}/{}/{}.git".format(
302 | requests.utils.quote(self.remote_username, safe=""),
303 | requests.utils.quote(self.remote_password, safe=""),
304 | self.remote_provider,
305 | self.remote_namespace,
306 | self.repo_slug,
307 | )
308 | else:
309 | remote_origin_url = "https://{}@{}/{}/{}.git".format(
310 | requests.utils.quote(self.remote_username, safe=""),
311 | self.remote_provider,
312 | self.remote_namespace,
313 | self.repo_slug,
314 | )
315 | if self.remote_protocol == "ssh":
316 | remote_origin_url = "git@{}:{}/{}.git".format(
317 | self.remote_provider, self.remote_namespace, self.repo_slug
318 | )
319 | return remote_origin_url
320 |
321 | def _get_remote_password(self):
322 | """
323 | Gets the remote password with getpass.
324 | """
325 | # current hack for tests. better work around ?
326 | if self._testing:
327 | remote_password = "notmypassword"
328 | else:
329 | # prompt CLI users for password
330 | remote_password = getpass.getpass(self.password_prompt).strip()
331 | return remote_password
332 |
333 | def _git_remote_set(self):
334 | """
335 | Sets the git remote origin url.
336 | """
337 | run(
338 | "git remote set-url origin {}".format(
339 | quote(self.remote_origin_url)
340 | )
341 | )
342 |
343 | def _git_push(self):
344 | """
345 | Pushes the git remote and sets as upstream.
346 | """
347 | command = "git push --set-upstream origin master"
348 | if self._testing:
349 | print("_testing _git_push")
350 | r = MockResult(self.remote_provider, command=command)
351 | print(r.stdout)
352 | return r
353 | else:
354 | # `git push -u origin master`
355 | run(command)
356 |
357 | def _git_remote_add(self):
358 | """
359 | Adds the git remote origin url with included password.
360 | """
361 | run(
362 | "git remote add origin {}".format(
363 | quote(self.remote_origin_url_with_pass)
364 | )
365 | )
366 |
367 | def _git_remote_repo(self):
368 | """
369 | Creates a remote repo if needed.
370 | """
371 | if self.remote_provider in ["bitbucket.org", "github.com"]:
372 | # http basic auth if needed
373 | auth_base64 = self.format_basic_auth(
374 | self.remote_username, self.remote_password
375 | )
376 | self.headers["Authorization"] = "Basic {}".format(
377 | auth_base64.decode()
378 | )
379 | # create remote POST request
380 | requests.post(
381 | self.create_remote_url,
382 | data=self.encoded_data,
383 | headers=self.headers,
384 | )
385 |
386 | def _git_ignore(self):
387 | """
388 | Creates a new .gitignore if needed from gitignore.io.
389 | """
390 | if self.new_git_ignore:
391 | # gitignore.io/api -> {{cookiecutter.repo_slug}}/.gitignore
392 | response = requests.get(self.git_ignore_url)
393 | with open(self.git_ignore_filepath, "w") as f:
394 | f.write(response.text)
395 |
396 | def _git_repo(self):
397 | """
398 | Adds a .gitignore, initial commit, and remote repo.
399 | """
400 | self._git_ignore()
401 | self.git_init()
402 | self.git_add()
403 | self.git_commit()
404 | if self.remote_repo:
405 | self._git_remote_repo()
406 | self._git_remote_add()
407 | self._git_push()
408 | self._git_remote_set()
409 |
410 | def _github_dir(self):
411 | """
412 | Removes the .github dir if GitHub is not the remote provider.
413 | """
414 | if not self.remote_provider == "github.com":
415 | shutil.rmtree(self.github_dirpath, ignore_errors=True)
416 |
417 | def _make_dirs(self):
418 | """
419 | Makes dirs and adds .gitkeep files to them.
420 | """
421 | for dirpath in self.project_dirpaths:
422 | # equal to bash `mkdir -p $dirpath`
423 | try:
424 | os.makedirs(dirpath)
425 | except OSError as exc:
426 | if exc.errno == errno.EEXIST and os.path.isdir(dirpath):
427 | pass
428 | else:
429 | raise
430 | # equal to bash `touch $dirpath/.gitkeep`
431 | gitkeep = os.path.join(dirpath, ".gitkeep")
432 | with open(gitkeep, "a"):
433 | os.utime(gitkeep, None)
434 |
435 | def _copyright_license(self):
436 | """
437 | Adds the chosen LICENSE and removes the rest.
438 | """
439 | if not self.apache_license:
440 | os.remove(self.notice_filepath)
441 | shutil.move(self.nested_license_filepath, self.license_filepath)
442 | shutil.rmtree(self.licenses_dirpath, ignore_errors=True)
443 |
444 | def run(self):
445 | """
446 | Sets up the project license, dirs, and git repo.
447 | """
448 | self._copyright_license()
449 | self._make_dirs()
450 | self._github_dir()
451 | self._git_repo()
452 | print(self.success_message)
453 |
454 |
455 | def main():
456 | """
457 | Runs the post gen project hook main entry point.
458 | """
459 | PostGenProjectHook().run()
460 |
461 |
462 | # This is required! Don't remove!!
463 | if __name__ == "__main__":
464 | main()
465 |
--------------------------------------------------------------------------------
/images/cookiecutter-git.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanUrwin/cookiecutter-git/ae4f73d9db7a270bfdc8c6c581b235b8be2189d8/images/cookiecutter-git.png
--------------------------------------------------------------------------------
/images/logo-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanUrwin/cookiecutter-git/ae4f73d9db7a270bfdc8c6c581b235b8be2189d8/images/logo-256.png
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | codecov==2.0.15
2 | cookiecutter==1.6.0
3 | invoke==1.0.0
4 | pytest==3.6.3
5 | pytest-cookies==0.3.0
6 | pytest-cov==2.5.1
7 | pytest-dotenv==0.1.1
8 | requests==2.19.1
9 | requests-mock==1.5.0
10 |
--------------------------------------------------------------------------------
/tasks.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from __future__ import (
3 | absolute_import,
4 | division,
5 | print_function,
6 | unicode_literals,
7 | )
8 |
9 | from invoke import task
10 |
11 |
12 | @task
13 | def changelog(x):
14 | """
15 | Generates a new Change Log.
16 |
17 | :param x: invoke.context.Context
18 | """
19 | x.run("github_changelog_generator -u NathanUrwin -p cookiecutter-git")
20 |
21 |
22 | @task
23 | def clean_build(x):
24 | """
25 | Removes build artifacts.
26 |
27 | :param x: invoke.context.Context
28 | """
29 | x.run("rm -frv build/")
30 | x.run("rm -frv dist/")
31 | x.run("rm -frv .eggs/")
32 | x.run("find . -name '*.egg-info' -exec rm -frv {} +")
33 | x.run("find . -name '*.egg' -exec rm -frv {} +")
34 |
35 |
36 | @task
37 | def clean_pyc(x):
38 | """
39 | Removes python file artifacts.
40 |
41 | :param x: invoke.context.Context
42 | """
43 | x.run("find . -name '*.pyc' -exec rm -frv {} +")
44 | x.run("find . -name '*.pyo' -exec rm -frv {} +")
45 | x.run("find . -name '__pycache__' -exec rm -frv {} +")
46 | x.run("find . -name '*~' -exec rm -frv {} +")
47 |
48 |
49 | @task
50 | def clean_test(x):
51 | """
52 | Removes test artifacts.
53 |
54 | :param x: invoke.context.Context
55 | """
56 | x.run("rm -fr .tox/")
57 | x.run("rm -f .coverage")
58 | x.run("rm -fr htmlcov/")
59 |
60 |
61 | @task(clean_build, clean_pyc, clean_test)
62 | def clean(x):
63 | """
64 | Removes all build artifacts.
65 |
66 | :param x: invoke.context.Context
67 | """
68 | x.run("find . -name '*~' -exec rm -frv {} +")
69 |
70 |
71 | @task
72 | def copy_cookie(x):
73 | """
74 | Copies the cookiecutter-git features into the to-be generated project dir.
75 |
76 | :param x: invoke.context.Context
77 | """
78 | x.run("cp -afrv cookiecutter.json '{{cookiecutter.repo_slug}}'")
79 | x.run("cp -afrv hooks '{{cookiecutter.repo_slug}}'")
80 | x.run("cp -afrv '{{cookiecutter.repo_slug}}' '{{cookiecutter.repo_slug}}'")
81 |
82 |
83 | @task(name="format")
84 | def format_python(x):
85 | """
86 | Formats the python source files using the uncompromising black.
87 |
88 | :param x: invoke.context.Context
89 | """
90 | x.run("black --line-length 79 .")
91 | x.run("git add --all")
92 |
93 |
94 | @task
95 | def tests(x):
96 | """
97 | Runs the py.test no-stdout-capture, entire-repo-coverage tests.
98 |
99 | :param x: invoke.context.Context
100 | """
101 | x.run(
102 | "pytest --capture=no --cov-report term:skip-covered --cov-report html --cov=. tests"
103 | )
104 |
--------------------------------------------------------------------------------
/tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NathanUrwin/cookiecutter-git/ae4f73d9db7a270bfdc8c6c581b235b8be2189d8/tests/__init__.py
--------------------------------------------------------------------------------
/tests/test_bake_project.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from __future__ import (
3 | absolute_import,
4 | division,
5 | print_function,
6 | unicode_literals,
7 | )
8 |
9 | """
10 | Cookiecutter-Git PostGenProjectHook Tests.
11 | """
12 | import base64
13 | from contextlib import contextmanager
14 | import datetime
15 | import json
16 | import os
17 | import shlex
18 | import subprocess
19 |
20 | from cookiecutter.utils import rmtree
21 | from invoke import run
22 | import pytest
23 |
24 | from hooks.post_gen_project import git_disable_gpgsign, PostGenProjectHook
25 |
26 |
27 | @contextmanager
28 | def bake_in_temp_dir(cookies, *args, **kwargs):
29 | """
30 | Delete the temporal directory that is created when executing the tests.
31 |
32 | https://github.com/audreyr/cookiecutter-pypackage/blob/master/tests/test_bake_project.py#L33
33 |
34 | :param cookies: pytest_cookies.Cookies, cookie to be baked and its temporal files will be removed
35 | """
36 | with git_disable_gpgsign():
37 | extra_context = kwargs.pop("extra_context", {})
38 | extra_context["_testing"] = True
39 | result = cookies.bake(*args, extra_context=extra_context, **kwargs)
40 | try:
41 | yield result
42 | finally:
43 | if result.project:
44 | rmtree(str(result.project))
45 |
46 |
47 | def mock_request_with_remote_provider_as_bitbucket(mock):
48 | """
49 | Mocks the Bitbucket API POST request that creates the remote repo.
50 |
51 | :param mock: requests_mock.mocker.Mocker
52 | """
53 | bitbucket_repos_url = PostGenProjectHook.bitbucket_repos_url_base.format(
54 | "NathanUrwin", "cookiecutter-git-demo"
55 | )
56 | auth_base64 = PostGenProjectHook.format_basic_auth(
57 | "NathanUrwin", "notmypassword"
58 | )
59 | request_headers = {"Authorization": "Basic {}".format(auth_base64)}
60 | request_headers.update(PostGenProjectHook.json_header)
61 | mock.post(
62 | bitbucket_repos_url,
63 | json=json.dumps(
64 | {
65 | "name": "cookiecutter-git-demo",
66 | "description": "A cookiecutter-git demonstration :tada:",
67 | "has_issues": True,
68 | "is_private": True,
69 | }
70 | ).encode(),
71 | request_headers=request_headers,
72 | )
73 |
74 |
75 | def mock_request_with_remote_provider_as_github(mock):
76 | """
77 | Mocks the GitHub API POST request that creates the remote repo.
78 |
79 | :param mock: requests_mock.mocker.Mocker
80 | """
81 | auth_base64 = PostGenProjectHook.format_basic_auth(
82 | "NathanUrwin", "notmypwd"
83 | )
84 | mock.post(
85 | PostGenProjectHook.github_repos_url,
86 | json=json.dumps(
87 | {
88 | "name": "cookiecutter-git-demo",
89 | "description": "A cookiecutter-git demonstration :tada:",
90 | }
91 | ).encode(),
92 | request_headers={"Authorization": "Basic {}".format(auth_base64)},
93 | )
94 |
95 |
96 | def test_cookiecutter_git(cookies, requests_mock):
97 | """
98 | Tests `$ cookiecutter gh:NathanUrwin/cookiecutter-git --no-input`.
99 |
100 | :param cookies: pytest_cookies.Cookies
101 | :param requests_mock: requests_mock.mocker.Mocker
102 | """
103 | mock_request_with_remote_provider_as_github(requests_mock)
104 |
105 | with bake_in_temp_dir(cookies) as result:
106 |
107 | # https://pytest-cookies.readthedocs.io/en/latest/getting_started/
108 | assert result.exception is None
109 | assert result.exit_code == 0
110 | assert result.project.basename == "cookiecutter-git-demo"
111 | assert result.project.isdir()
112 |
113 | # PostGenProjectHook._copyright_license
114 | assert not result.project.join("NOTICE").check()
115 | assert "MIT" in result.project.join("LICENSE").read()
116 | assert not result.project.join("LICENSES").check()
117 |
118 | # PostGenProjectHook._make_dirs
119 | assert result.project.join("docs", ".gitkeep").check()
120 | assert result.project.join("src", ".gitkeep").check()
121 | assert result.project.join("tests", ".gitkeep").check()
122 |
123 | # PostGenProjectHook._github_dir
124 | assert result.project.join(".github").check()
125 |
126 | # PostGenProjectHook._git_ignore
127 | assert (
128 | "windows,macos,linux,git"
129 | in result.project.join(".gitignore").read()
130 | )
131 |
132 | # PostGenProjectHook._git_init
133 | assert result.project.join(".git").check()
134 |
135 |
136 | def test_cookiecutter_git_with_bitbucket(cookies, requests_mock):
137 | """
138 | Tests `$ cookiecutter gh:NathanUrwin/cookiecutter-git --no-input remote_provider=bitbucket.org`.
139 |
140 | :param cookies: pytest_cookies.Cookies
141 | :param requests_mock: requests_mock.mocker.Mocker
142 | """
143 | mock_request_with_remote_provider_as_bitbucket(requests_mock)
144 |
145 | with bake_in_temp_dir(
146 | cookies, extra_context={"remote_provider": "bitbucket.org"}
147 | ) as result:
148 |
149 | # https://pytest-cookies.readthedocs.io/en/latest/getting_started/
150 | assert result.exception is None
151 | assert result.exit_code == 0
152 | assert result.project.basename == "cookiecutter-git-demo"
153 | assert result.project.isdir()
154 |
155 | # PostGenProjectHook._copyright_license
156 | assert not result.project.join("NOTICE").check()
157 | assert "MIT" in result.project.join("LICENSE").read()
158 | assert not result.project.join("LICENSES").check()
159 |
160 | # PostGenProjectHook._make_dirs
161 | assert result.project.join("docs", ".gitkeep").check()
162 | assert result.project.join("src", ".gitkeep").check()
163 | assert result.project.join("tests", ".gitkeep").check()
164 |
165 | # PostGenProjectHook._github_dir
166 | assert not result.project.join(".github").check()
167 |
168 | # PostGenProjectHook._git_ignore
169 | assert (
170 | "windows,macos,linux,git"
171 | in result.project.join(".gitignore").read()
172 | )
173 |
174 | # PostGenProjectHook._git_init
175 | assert result.project.join(".git").check()
176 |
177 |
178 | def test_cookiecutter_git_with_gitlab(cookies):
179 | """
180 | Tests `$ cookiecutter gh:NathanUrwin/cookiecutter-git --no-input remote_provider=gitlab.com`.
181 |
182 | :param cookies: pytest_cookies.Cookies
183 | """
184 | with bake_in_temp_dir(
185 | cookies, extra_context={"remote_provider": "gitlab.com"}
186 | ) as result:
187 |
188 | # https://pytest-cookies.readthedocs.io/en/latest/getting_started/
189 | assert result.exception is None
190 | assert result.exit_code == 0
191 | assert result.project.basename == "cookiecutter-git-demo"
192 | assert result.project.isdir()
193 |
194 | # PostGenProjectHook._copyright_license
195 | assert not result.project.join("NOTICE").check()
196 | assert "MIT" in result.project.join("LICENSE").read()
197 | assert not result.project.join("LICENSES").check()
198 |
199 | # PostGenProjectHook._make_dirs
200 | assert result.project.join("docs", ".gitkeep").check()
201 | assert result.project.join("src", ".gitkeep").check()
202 | assert result.project.join("tests", ".gitkeep").check()
203 |
204 | # PostGenProjectHook._github_dir
205 | assert not result.project.join(".github").check()
206 |
207 | # PostGenProjectHook._git_ignore
208 | assert (
209 | "windows,macos,linux,git"
210 | in result.project.join(".gitignore").read()
211 | )
212 |
213 | # PostGenProjectHook._git_init
214 | assert result.project.join(".git").check()
215 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | # end_of_line = git
6 | indent_size = 2
7 | indent_style = space
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.py]
12 | indent_size = 4
13 | indent_style = space
14 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 |
5 | ---
6 |
7 | # Bug report
8 |
9 | Create a report to help us improve
10 |
11 | ## Describe the bug
12 |
13 | A clear and concise description of what the bug is.
14 |
15 | ## To Reproduce
16 |
17 | Steps to reproduce the behavior:
18 |
19 | 1. Go to '...'
20 | 2. Click on '....'
21 | 3. Scroll down to '....'
22 | 4. See error
23 |
24 | ## Expected behavior
25 |
26 | A clear and concise description of what you expected to happen.
27 |
28 | ## Screenshots
29 |
30 | If applicable, add screenshots to help explain your problem.
31 |
32 | ## Desktop (please complete the following information):
33 |
34 | - OS: [e.g. iOS]
35 | - Browser [e.g. chrome, safari]
36 | - Version [e.g. 22]
37 |
38 | ## Smartphone (please complete the following information):
39 |
40 | - Device: [e.g. iPhone6]
41 | - OS: [e.g. iOS8.1]
42 | - Browser [e.g. stock browser, safari]
43 | - Version [e.g. 22]
44 |
45 | ## Additional context
46 |
47 | Add any other context about the problem here.
48 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | # Feature request
8 |
9 | Suggest an idea for this project
10 |
11 | ## Is your feature request related to a problem? Please describe
12 |
13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14 |
15 | ## Describe the solution you'd like
16 |
17 | A clear and concise description of what you want to happen.
18 |
19 | ## Describe alternatives you've considered
20 |
21 | A clear and concise description of any alternative solutions or features you've considered.
22 |
23 | ## Additional context
24 |
25 | Add any other context or screenshots about the feature request here.
26 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Pull request
3 | about: Create a pull request to help us improve
4 |
5 | ---
6 |
7 | # Pull request
8 |
9 | Create a pull request to help us improve
10 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Created by https://www.gitignore.io/api/windows,macos,linux,git
3 |
4 | ### Git ###
5 | *.orig
6 |
7 | ### Linux ###
8 | *~
9 |
10 | # temporary files which can be created if a process still has a handle open of a deleted file
11 | .fuse_hidden*
12 |
13 | # KDE directory preferences
14 | .directory
15 |
16 | # Linux trash folder which might appear on any partition or disk
17 | .Trash-*
18 |
19 | # .nfs files are created when an open file is removed but is still being accessed
20 | .nfs*
21 |
22 | ### macOS ###
23 | # General
24 | .DS_Store
25 | .AppleDouble
26 | .LSOverride
27 |
28 | # Icon must end with two \r
29 | Icon
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear in the root of a volume
35 | .DocumentRevisions-V100
36 | .fseventsd
37 | .Spotlight-V100
38 | .TemporaryItems
39 | .Trashes
40 | .VolumeIcon.icns
41 | .com.apple.timemachine.donotpresent
42 |
43 | # Directories potentially created on remote AFP share
44 | .AppleDB
45 | .AppleDesktop
46 | Network Trash Folder
47 | Temporary Items
48 | .apdisk
49 |
50 | ### Windows ###
51 | # Windows thumbnail cache files
52 | Thumbs.db
53 | ehthumbs.db
54 | ehthumbs_vista.db
55 |
56 | # Dump file
57 | *.stackdump
58 |
59 | # Folder config file
60 | [Dd]esktop.ini
61 |
62 | # Recycle Bin used on file shares
63 | $RECYCLE.BIN/
64 |
65 | # Windows Installer files
66 | *.cab
67 | *.msi
68 | *.msix
69 | *.msm
70 | *.msp
71 |
72 | # Windows shortcuts
73 | *.lnk
74 |
75 |
76 | # End of https://www.gitignore.io/api/windows,macos,linux,git
77 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/AUTHORS.md:
--------------------------------------------------------------------------------
1 | # Authors
2 |
3 | ## Core Contributor
4 |
5 | {% if cookiecutter.remote_provider != "none" %}[{{cookiecutter.git_name}}](https://{{cookiecutter.remote_provider}}/{{cookiecutter.remote_username}}) <{{cookiecutter.git_email}}>{% else %}{{cookiecutter.git_name}} <{{cookiecutter.git_email}}>{% endif %}
6 |
7 | ## Contributors
8 |
9 | None yet. [Why not be the first?](CONTRIBUTING.md)
10 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | {% if cookiecutter.code_of_conduct == "contributor_covenant" %}# Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at {{cookiecutter.git_email}}. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
41 | ## Attribution
42 |
43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44 |
45 | [homepage]: http://contributor-covenant.org
46 | [version]: http://contributor-covenant.org/version/1/4/
47 | {% else %}
48 | # Code of Conduct
49 |
50 | ## 1. Purpose
51 |
52 | A primary goal of {{cookiecutter.repo_slug}} is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).
53 |
54 | This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
55 |
56 | We invite all those who participate in {{cookiecutter.repo_slug}} to help us create safe and positive experiences for everyone.
57 |
58 | ## 2. Open Source Citizenship
59 |
60 | A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.
61 |
62 | Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.
63 |
64 | If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.
65 |
66 | ## 3. Expected Behavior
67 |
68 | The following behaviors are expected and requested of all community members:
69 |
70 | * Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
71 | * Exercise consideration and respect in your speech and actions.
72 | * Attempt collaboration before conflict.
73 | * Refrain from demeaning, discriminatory, or harassing behavior and speech.
74 | * Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
75 | * Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.
76 |
77 | ## 4. Unacceptable Behavior
78 |
79 | The following behaviors are considered harassment and are unacceptable within our community:
80 |
81 | * Violence, threats of violence or violent language directed against another person.
82 | * Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
83 | * Posting or displaying sexually explicit or violent material.
84 | * Posting or threatening to post other people’s personally identifying information ("doxing").
85 | * Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
86 | * Inappropriate photography or recording.
87 | * Inappropriate physical contact. You should have someone’s consent before touching them.
88 | * Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
89 | * Deliberate intimidation, stalking or following (online or in person).
90 | * Advocating for, or encouraging, any of the above behavior.
91 | * Sustained disruption of community events, including talks and presentations.
92 |
93 | ## 5. Consequences of Unacceptable Behavior
94 |
95 | Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.
96 |
97 | Anyone asked to stop unacceptable behavior is expected to comply immediately.
98 |
99 | If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).
100 |
101 | ## 6. Reporting Guidelines
102 |
103 | If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. {{cookiecutter.git_email}}.
104 |
105 | [Reporting Guidelines](http://github.com/NathanUrwin/testing)
106 |
107 | Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.
108 |
109 | ## 7. Addressing Grievances
110 |
111 | If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify {{cookiecutter.copyright_holder}} with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.
112 |
113 | [Policy](http://github.com/NathanUrwin/testing)
114 |
115 | ## 8. Scope
116 |
117 | We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business.
118 |
119 | This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.
120 |
121 | ## 9. Contact info
122 |
123 | {{cookiecutter.git_email}}
124 |
125 | ## 10. License and attribution
126 |
127 | This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
128 |
129 | Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).
130 |
131 | Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/){% endif %}
132 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | Contributions are welcome, and they are greatly appreciated!
4 |
5 | Every little bit helps, and credit will always be given.
6 |
7 | ## Types of Contributions
8 |
9 | ### Bug Reports, Feature Requests, and Feedback
10 |
11 | Create a [new project issue][issue-link]! Try to be as descriptive as possible.
12 |
13 | ### Bug Fixes, New Features and Documentation
14 |
15 | Create a [new merge/pull request][merge-link]! Make sure to follow the guidelines.
16 |
17 | ## Merge/Pull Request Guidelines
18 |
19 | Make sure to have atomic commits and contextual commit messages!
20 |
21 | ["How to Write a Git Commit Message" by Chris Beams.][chris-beams]
22 |
23 | [issue-link]: {% if cookiecutter.remote_provider == "none" %}mailto:{{cookiecutter.git_email}}{% else %}https://{{cookiecutter.remote_provider}}/{{cookiecutter.remote_namespace}}/{{cookiecutter.repo_slug}}/issues/new{% endif %}
24 | [merge-link]: {% if cookiecutter.remote_provider == "none" %}mailto:{{cookiecutter.git_email}}{% else %}https://{{cookiecutter.remote_provider}}/{{cookiecutter.remote_namespace}}/{{cookiecutter.repo_slug}}/{% if cookiecutter.remote_provider == "github.com" %}compare{% elif cookiecutter.remote_provider == "gitlab.com" %}merge_requests/new{% elif cookiecutter.remote_provider == "bitbucket.org" %}pull-requests/new{% endif %}{% endif %}
25 | [chris-beams]: http://chris.beams.io/posts/git-commit/
26 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/Apache-2.0.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {% now 'utc', '%Y' %} {{cookiecutter.copyright_holder}}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/BSD-2-Clause.txt:
--------------------------------------------------------------------------------
1 | BSD 2-Clause License
2 |
3 | Copyright (c) {% now 'utc', '%Y' %}, {{cookiecutter.copyright_holder}}
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/BSD-3-Clause.txt:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) {% now 'utc', '%Y' %}, {{cookiecutter.copyright_holder}}
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/EPL-1.0.txt:
--------------------------------------------------------------------------------
1 | Eclipse Public License - v 1.0
2 |
3 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
4 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
5 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
6 |
7 | 1. DEFINITIONS
8 |
9 | "Contribution" means:
10 |
11 | a) in the case of the initial Contributor, the initial code and documentation
12 | distributed under this Agreement, and
13 | b) in the case of each subsequent Contributor:
14 | i) changes to the Program, and
15 | ii) additions to the Program;
16 |
17 | where such changes and/or additions to the Program originate from and are
18 | distributed by that particular Contributor. A Contribution 'originates'
19 | from a Contributor if it was added to the Program by such Contributor
20 | itself or anyone acting on such Contributor's behalf. Contributions do not
21 | include additions to the Program which: (i) are separate modules of
22 | software distributed in conjunction with the Program under their own
23 | license agreement, and (ii) are not derivative works of the Program.
24 |
25 | "Contributor" means any person or entity that distributes the Program.
26 |
27 | "Licensed Patents" mean patent claims licensable by a Contributor which are
28 | necessarily infringed by the use or sale of its Contribution alone or when
29 | combined with the Program.
30 |
31 | "Program" means the Contributions distributed in accordance with this
32 | Agreement.
33 |
34 | "Recipient" means anyone who receives the Program under this Agreement,
35 | including all Contributors.
36 |
37 | 2. GRANT OF RIGHTS
38 | a) Subject to the terms of this Agreement, each Contributor hereby grants
39 | Recipient a non-exclusive, worldwide, royalty-free copyright license to
40 | reproduce, prepare derivative works of, publicly display, publicly
41 | perform, distribute and sublicense the Contribution of such Contributor,
42 | if any, and such derivative works, in source code and object code form.
43 | b) Subject to the terms of this Agreement, each Contributor hereby grants
44 | Recipient a non-exclusive, worldwide, royalty-free patent license under
45 | Licensed Patents to make, use, sell, offer to sell, import and otherwise
46 | transfer the Contribution of such Contributor, if any, in source code and
47 | object code form. This patent license shall apply to the combination of
48 | the Contribution and the Program if, at the time the Contribution is
49 | added by the Contributor, such addition of the Contribution causes such
50 | combination to be covered by the Licensed Patents. The patent license
51 | shall not apply to any other combinations which include the Contribution.
52 | No hardware per se is licensed hereunder.
53 | c) Recipient understands that although each Contributor grants the licenses
54 | to its Contributions set forth herein, no assurances are provided by any
55 | Contributor that the Program does not infringe the patent or other
56 | intellectual property rights of any other entity. Each Contributor
57 | disclaims any liability to Recipient for claims brought by any other
58 | entity based on infringement of intellectual property rights or
59 | otherwise. As a condition to exercising the rights and licenses granted
60 | hereunder, each Recipient hereby assumes sole responsibility to secure
61 | any other intellectual property rights needed, if any. For example, if a
62 | third party patent license is required to allow Recipient to distribute
63 | the Program, it is Recipient's responsibility to acquire that license
64 | before distributing the Program.
65 | d) Each Contributor represents that to its knowledge it has sufficient
66 | copyright rights in its Contribution, if any, to grant the copyright
67 | license set forth in this Agreement.
68 |
69 | 3. REQUIREMENTS
70 |
71 | A Contributor may choose to distribute the Program in object code form under
72 | its own license agreement, provided that:
73 |
74 | a) it complies with the terms and conditions of this Agreement; and
75 | b) its license agreement:
76 | i) effectively disclaims on behalf of all Contributors all warranties
77 | and conditions, express and implied, including warranties or
78 | conditions of title and non-infringement, and implied warranties or
79 | conditions of merchantability and fitness for a particular purpose;
80 | ii) effectively excludes on behalf of all Contributors all liability for
81 | damages, including direct, indirect, special, incidental and
82 | consequential damages, such as lost profits;
83 | iii) states that any provisions which differ from this Agreement are
84 | offered by that Contributor alone and not by any other party; and
85 | iv) states that source code for the Program is available from such
86 | Contributor, and informs licensees how to obtain it in a reasonable
87 | manner on or through a medium customarily used for software exchange.
88 |
89 | When the Program is made available in source code form:
90 |
91 | a) it must be made available under this Agreement; and
92 | b) a copy of this Agreement must be included with each copy of the Program.
93 | Contributors may not remove or alter any copyright notices contained
94 | within the Program.
95 |
96 | Each Contributor must identify itself as the originator of its Contribution,
97 | if
98 | any, in a manner that reasonably allows subsequent Recipients to identify the
99 | originator of the Contribution.
100 |
101 | 4. COMMERCIAL DISTRIBUTION
102 |
103 | Commercial distributors of software may accept certain responsibilities with
104 | respect to end users, business partners and the like. While this license is
105 | intended to facilitate the commercial use of the Program, the Contributor who
106 | includes the Program in a commercial product offering should do so in a manner
107 | which does not create potential liability for other Contributors. Therefore,
108 | if a Contributor includes the Program in a commercial product offering, such
109 | Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
110 | every other Contributor ("Indemnified Contributor") against any losses,
111 | damages and costs (collectively "Losses") arising from claims, lawsuits and
112 | other legal actions brought by a third party against the Indemnified
113 | Contributor to the extent caused by the acts or omissions of such Commercial
114 | Contributor in connection with its distribution of the Program in a commercial
115 | product offering. The obligations in this section do not apply to any claims
116 | or Losses relating to any actual or alleged intellectual property
117 | infringement. In order to qualify, an Indemnified Contributor must:
118 | a) promptly notify the Commercial Contributor in writing of such claim, and
119 | b) allow the Commercial Contributor to control, and cooperate with the
120 | Commercial Contributor in, the defense and any related settlement
121 | negotiations. The Indemnified Contributor may participate in any such claim at
122 | its own expense.
123 |
124 | For example, a Contributor might include the Program in a commercial product
125 | offering, Product X. That Contributor is then a Commercial Contributor. If
126 | that Commercial Contributor then makes performance claims, or offers
127 | warranties related to Product X, those performance claims and warranties are
128 | such Commercial Contributor's responsibility alone. Under this section, the
129 | Commercial Contributor would have to defend claims against the other
130 | Contributors related to those performance claims and warranties, and if a
131 | court requires any other Contributor to pay any damages as a result, the
132 | Commercial Contributor must pay those damages.
133 |
134 | 5. NO WARRANTY
135 |
136 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
137 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
138 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
139 | NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
140 | Recipient is solely responsible for determining the appropriateness of using
141 | and distributing the Program and assumes all risks associated with its
142 | exercise of rights under this Agreement , including but not limited to the
143 | risks and costs of program errors, compliance with applicable laws, damage to
144 | or loss of data, programs or equipment, and unavailability or interruption of
145 | operations.
146 |
147 | 6. DISCLAIMER OF LIABILITY
148 |
149 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
150 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
151 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
152 | LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
153 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
154 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
155 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
156 | OF SUCH DAMAGES.
157 |
158 | 7. GENERAL
159 |
160 | If any provision of this Agreement is invalid or unenforceable under
161 | applicable law, it shall not affect the validity or enforceability of the
162 | remainder of the terms of this Agreement, and without further action by the
163 | parties hereto, such provision shall be reformed to the minimum extent
164 | necessary to make such provision valid and enforceable.
165 |
166 | If Recipient institutes patent litigation against any entity (including a
167 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself
168 | (excluding combinations of the Program with other software or hardware)
169 | infringes such Recipient's patent(s), then such Recipient's rights granted
170 | under Section 2(b) shall terminate as of the date such litigation is filed.
171 |
172 | All Recipient's rights under this Agreement shall terminate if it fails to
173 | comply with any of the material terms or conditions of this Agreement and does
174 | not cure such failure in a reasonable period of time after becoming aware of
175 | such noncompliance. If all Recipient's rights under this Agreement terminate,
176 | Recipient agrees to cease use and distribution of the Program as soon as
177 | reasonably practicable. However, Recipient's obligations under this Agreement
178 | and any licenses granted by Recipient relating to the Program shall continue
179 | and survive.
180 |
181 | Everyone is permitted to copy and distribute copies of this Agreement, but in
182 | order to avoid inconsistency the Agreement is copyrighted and may only be
183 | modified in the following manner. The Agreement Steward reserves the right to
184 | publish new versions (including revisions) of this Agreement from time to
185 | time. No one other than the Agreement Steward has the right to modify this
186 | Agreement. The Eclipse Foundation is the initial Agreement Steward. The
187 | Eclipse Foundation may assign the responsibility to serve as the Agreement
188 | Steward to a suitable separate entity. Each new version of the Agreement will
189 | be given a distinguishing version number. The Program (including
190 | Contributions) may always be distributed subject to the version of the
191 | Agreement under which it was received. In addition, after a new version of the
192 | Agreement is published, Contributor may elect to distribute the Program
193 | (including its Contributions) under the new version. Except as expressly
194 | stated in Sections 2(a) and 2(b) above, Recipient receives no rights or
195 | licenses to the intellectual property of any Contributor under this Agreement,
196 | whether expressly, by implication, estoppel or otherwise. All rights in the
197 | Program not expressly granted under this Agreement are reserved.
198 |
199 | This Agreement is governed by the laws of the State of New York and the
200 | intellectual property laws of the United States of America. No party to this
201 | Agreement will bring a legal action under this Agreement more than one year
202 | after the cause of action arose. Each party waives its rights to a jury trial in
203 | any resulting litigation.
204 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/GPL-2.0.txt:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 | {description}
294 | Copyright (C) {year} {fullname}
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | {signature of Ty Coon}, 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/LGPL-2.1.txt:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 2.1, February 1999
3 |
4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc.
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | (This is the first released version of the Lesser GPL. It also counts
10 | as the successor of the GNU Library Public License, version 2, hence
11 | the version number 2.1.)
12 |
13 | Preamble
14 |
15 | The licenses for most software are designed to take away your
16 | freedom to share and change it. By contrast, the GNU General Public
17 | Licenses are intended to guarantee your freedom to share and change
18 | free software--to make sure the software is free for all its users.
19 |
20 | This license, the Lesser General Public License, applies to some
21 | specially designated software packages--typically libraries--of the
22 | Free Software Foundation and other authors who decide to use it. You
23 | can use it too, but we suggest you first think carefully about whether
24 | this license or the ordinary General Public License is the better
25 | strategy to use in any particular case, based on the explanations below.
26 |
27 | When we speak of free software, we are referring to freedom of use,
28 | not price. Our General Public Licenses are designed to make sure that
29 | you have the freedom to distribute copies of free software (and charge
30 | for this service if you wish); that you receive source code or can get
31 | it if you want it; that you can change the software and use pieces of
32 | it in new free programs; and that you are informed that you can do
33 | these things.
34 |
35 | To protect your rights, we need to make restrictions that forbid
36 | distributors to deny you these rights or to ask you to surrender these
37 | rights. These restrictions translate to certain responsibilities for
38 | you if you distribute copies of the library or if you modify it.
39 |
40 | For example, if you distribute copies of the library, whether gratis
41 | or for a fee, you must give the recipients all the rights that we gave
42 | you. You must make sure that they, too, receive or can get the source
43 | code. If you link other code with the library, you must provide
44 | complete object files to the recipients, so that they can relink them
45 | with the library after making changes to the library and recompiling
46 | it. And you must show them these terms so they know their rights.
47 |
48 | We protect your rights with a two-step method: (1) we copyright the
49 | library, and (2) we offer you this license, which gives you legal
50 | permission to copy, distribute and/or modify the library.
51 |
52 | To protect each distributor, we want to make it very clear that
53 | there is no warranty for the free library. Also, if the library is
54 | modified by someone else and passed on, the recipients should know
55 | that what they have is not the original version, so that the original
56 | author's reputation will not be affected by problems that might be
57 | introduced by others.
58 |
59 | Finally, software patents pose a constant threat to the existence of
60 | any free program. We wish to make sure that a company cannot
61 | effectively restrict the users of a free program by obtaining a
62 | restrictive license from a patent holder. Therefore, we insist that
63 | any patent license obtained for a version of the library must be
64 | consistent with the full freedom of use specified in this license.
65 |
66 | Most GNU software, including some libraries, is covered by the
67 | ordinary GNU General Public License. This license, the GNU Lesser
68 | General Public License, applies to certain designated libraries, and
69 | is quite different from the ordinary General Public License. We use
70 | this license for certain libraries in order to permit linking those
71 | libraries into non-free programs.
72 |
73 | When a program is linked with a library, whether statically or using
74 | a shared library, the combination of the two is legally speaking a
75 | combined work, a derivative of the original library. The ordinary
76 | General Public License therefore permits such linking only if the
77 | entire combination fits its criteria of freedom. The Lesser General
78 | Public License permits more lax criteria for linking other code with
79 | the library.
80 |
81 | We call this license the "Lesser" General Public License because it
82 | does Less to protect the user's freedom than the ordinary General
83 | Public License. It also provides other free software developers Less
84 | of an advantage over competing non-free programs. These disadvantages
85 | are the reason we use the ordinary General Public License for many
86 | libraries. However, the Lesser license provides advantages in certain
87 | special circumstances.
88 |
89 | For example, on rare occasions, there may be a special need to
90 | encourage the widest possible use of a certain library, so that it becomes
91 | a de-facto standard. To achieve this, non-free programs must be
92 | allowed to use the library. A more frequent case is that a free
93 | library does the same job as widely used non-free libraries. In this
94 | case, there is little to gain by limiting the free library to free
95 | software only, so we use the Lesser General Public License.
96 |
97 | In other cases, permission to use a particular library in non-free
98 | programs enables a greater number of people to use a large body of
99 | free software. For example, permission to use the GNU C Library in
100 | non-free programs enables many more people to use the whole GNU
101 | operating system, as well as its variant, the GNU/Linux operating
102 | system.
103 |
104 | Although the Lesser General Public License is Less protective of the
105 | users' freedom, it does ensure that the user of a program that is
106 | linked with the Library has the freedom and the wherewithal to run
107 | that program using a modified version of the Library.
108 |
109 | The precise terms and conditions for copying, distribution and
110 | modification follow. Pay close attention to the difference between a
111 | "work based on the library" and a "work that uses the library". The
112 | former contains code derived from the library, whereas the latter must
113 | be combined with the library in order to run.
114 |
115 | GNU LESSER GENERAL PUBLIC LICENSE
116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
117 |
118 | 0. This License Agreement applies to any software library or other
119 | program which contains a notice placed by the copyright holder or
120 | other authorized party saying it may be distributed under the terms of
121 | this Lesser General Public License (also called "this License").
122 | Each licensee is addressed as "you".
123 |
124 | A "library" means a collection of software functions and/or data
125 | prepared so as to be conveniently linked with application programs
126 | (which use some of those functions and data) to form executables.
127 |
128 | The "Library", below, refers to any such software library or work
129 | which has been distributed under these terms. A "work based on the
130 | Library" means either the Library or any derivative work under
131 | copyright law: that is to say, a work containing the Library or a
132 | portion of it, either verbatim or with modifications and/or translated
133 | straightforwardly into another language. (Hereinafter, translation is
134 | included without limitation in the term "modification".)
135 |
136 | "Source code" for a work means the preferred form of the work for
137 | making modifications to it. For a library, complete source code means
138 | all the source code for all modules it contains, plus any associated
139 | interface definition files, plus the scripts used to control compilation
140 | and installation of the library.
141 |
142 | Activities other than copying, distribution and modification are not
143 | covered by this License; they are outside its scope. The act of
144 | running a program using the Library is not restricted, and output from
145 | such a program is covered only if its contents constitute a work based
146 | on the Library (independent of the use of the Library in a tool for
147 | writing it). Whether that is true depends on what the Library does
148 | and what the program that uses the Library does.
149 |
150 | 1. You may copy and distribute verbatim copies of the Library's
151 | complete source code as you receive it, in any medium, provided that
152 | you conspicuously and appropriately publish on each copy an
153 | appropriate copyright notice and disclaimer of warranty; keep intact
154 | all the notices that refer to this License and to the absence of any
155 | warranty; and distribute a copy of this License along with the
156 | Library.
157 |
158 | You may charge a fee for the physical act of transferring a copy,
159 | and you may at your option offer warranty protection in exchange for a
160 | fee.
161 |
162 | 2. You may modify your copy or copies of the Library or any portion
163 | of it, thus forming a work based on the Library, and copy and
164 | distribute such modifications or work under the terms of Section 1
165 | above, provided that you also meet all of these conditions:
166 |
167 | a) The modified work must itself be a software library.
168 |
169 | b) You must cause the files modified to carry prominent notices
170 | stating that you changed the files and the date of any change.
171 |
172 | c) You must cause the whole of the work to be licensed at no
173 | charge to all third parties under the terms of this License.
174 |
175 | d) If a facility in the modified Library refers to a function or a
176 | table of data to be supplied by an application program that uses
177 | the facility, other than as an argument passed when the facility
178 | is invoked, then you must make a good faith effort to ensure that,
179 | in the event an application does not supply such function or
180 | table, the facility still operates, and performs whatever part of
181 | its purpose remains meaningful.
182 |
183 | (For example, a function in a library to compute square roots has
184 | a purpose that is entirely well-defined independent of the
185 | application. Therefore, Subsection 2d requires that any
186 | application-supplied function or table used by this function must
187 | be optional: if the application does not supply it, the square
188 | root function must still compute square roots.)
189 |
190 | These requirements apply to the modified work as a whole. If
191 | identifiable sections of that work are not derived from the Library,
192 | and can be reasonably considered independent and separate works in
193 | themselves, then this License, and its terms, do not apply to those
194 | sections when you distribute them as separate works. But when you
195 | distribute the same sections as part of a whole which is a work based
196 | on the Library, the distribution of the whole must be on the terms of
197 | this License, whose permissions for other licensees extend to the
198 | entire whole, and thus to each and every part regardless of who wrote
199 | it.
200 |
201 | Thus, it is not the intent of this section to claim rights or contest
202 | your rights to work written entirely by you; rather, the intent is to
203 | exercise the right to control the distribution of derivative or
204 | collective works based on the Library.
205 |
206 | In addition, mere aggregation of another work not based on the Library
207 | with the Library (or with a work based on the Library) on a volume of
208 | a storage or distribution medium does not bring the other work under
209 | the scope of this License.
210 |
211 | 3. You may opt to apply the terms of the ordinary GNU General Public
212 | License instead of this License to a given copy of the Library. To do
213 | this, you must alter all the notices that refer to this License, so
214 | that they refer to the ordinary GNU General Public License, version 2,
215 | instead of to this License. (If a newer version than version 2 of the
216 | ordinary GNU General Public License has appeared, then you can specify
217 | that version instead if you wish.) Do not make any other change in
218 | these notices.
219 |
220 | Once this change is made in a given copy, it is irreversible for
221 | that copy, so the ordinary GNU General Public License applies to all
222 | subsequent copies and derivative works made from that copy.
223 |
224 | This option is useful when you wish to copy part of the code of
225 | the Library into a program that is not a library.
226 |
227 | 4. You may copy and distribute the Library (or a portion or
228 | derivative of it, under Section 2) in object code or executable form
229 | under the terms of Sections 1 and 2 above provided that you accompany
230 | it with the complete corresponding machine-readable source code, which
231 | must be distributed under the terms of Sections 1 and 2 above on a
232 | medium customarily used for software interchange.
233 |
234 | If distribution of object code is made by offering access to copy
235 | from a designated place, then offering equivalent access to copy the
236 | source code from the same place satisfies the requirement to
237 | distribute the source code, even though third parties are not
238 | compelled to copy the source along with the object code.
239 |
240 | 5. A program that contains no derivative of any portion of the
241 | Library, but is designed to work with the Library by being compiled or
242 | linked with it, is called a "work that uses the Library". Such a
243 | work, in isolation, is not a derivative work of the Library, and
244 | therefore falls outside the scope of this License.
245 |
246 | However, linking a "work that uses the Library" with the Library
247 | creates an executable that is a derivative of the Library (because it
248 | contains portions of the Library), rather than a "work that uses the
249 | library". The executable is therefore covered by this License.
250 | Section 6 states terms for distribution of such executables.
251 |
252 | When a "work that uses the Library" uses material from a header file
253 | that is part of the Library, the object code for the work may be a
254 | derivative work of the Library even though the source code is not.
255 | Whether this is true is especially significant if the work can be
256 | linked without the Library, or if the work is itself a library. The
257 | threshold for this to be true is not precisely defined by law.
258 |
259 | If such an object file uses only numerical parameters, data
260 | structure layouts and accessors, and small macros and small inline
261 | functions (ten lines or less in length), then the use of the object
262 | file is unrestricted, regardless of whether it is legally a derivative
263 | work. (Executables containing this object code plus portions of the
264 | Library will still fall under Section 6.)
265 |
266 | Otherwise, if the work is a derivative of the Library, you may
267 | distribute the object code for the work under the terms of Section 6.
268 | Any executables containing that work also fall under Section 6,
269 | whether or not they are linked directly with the Library itself.
270 |
271 | 6. As an exception to the Sections above, you may also combine or
272 | link a "work that uses the Library" with the Library to produce a
273 | work containing portions of the Library, and distribute that work
274 | under terms of your choice, provided that the terms permit
275 | modification of the work for the customer's own use and reverse
276 | engineering for debugging such modifications.
277 |
278 | You must give prominent notice with each copy of the work that the
279 | Library is used in it and that the Library and its use are covered by
280 | this License. You must supply a copy of this License. If the work
281 | during execution displays copyright notices, you must include the
282 | copyright notice for the Library among them, as well as a reference
283 | directing the user to the copy of this License. Also, you must do one
284 | of these things:
285 |
286 | a) Accompany the work with the complete corresponding
287 | machine-readable source code for the Library including whatever
288 | changes were used in the work (which must be distributed under
289 | Sections 1 and 2 above); and, if the work is an executable linked
290 | with the Library, with the complete machine-readable "work that
291 | uses the Library", as object code and/or source code, so that the
292 | user can modify the Library and then relink to produce a modified
293 | executable containing the modified Library. (It is understood
294 | that the user who changes the contents of definitions files in the
295 | Library will not necessarily be able to recompile the application
296 | to use the modified definitions.)
297 |
298 | b) Use a suitable shared library mechanism for linking with the
299 | Library. A suitable mechanism is one that (1) uses at run time a
300 | copy of the library already present on the user's computer system,
301 | rather than copying library functions into the executable, and (2)
302 | will operate properly with a modified version of the library, if
303 | the user installs one, as long as the modified version is
304 | interface-compatible with the version that the work was made with.
305 |
306 | c) Accompany the work with a written offer, valid for at
307 | least three years, to give the same user the materials
308 | specified in Subsection 6a, above, for a charge no more
309 | than the cost of performing this distribution.
310 |
311 | d) If distribution of the work is made by offering access to copy
312 | from a designated place, offer equivalent access to copy the above
313 | specified materials from the same place.
314 |
315 | e) Verify that the user has already received a copy of these
316 | materials or that you have already sent this user a copy.
317 |
318 | For an executable, the required form of the "work that uses the
319 | Library" must include any data and utility programs needed for
320 | reproducing the executable from it. However, as a special exception,
321 | the materials to be distributed need not include anything that is
322 | normally distributed (in either source or binary form) with the major
323 | components (compiler, kernel, and so on) of the operating system on
324 | which the executable runs, unless that component itself accompanies
325 | the executable.
326 |
327 | It may happen that this requirement contradicts the license
328 | restrictions of other proprietary libraries that do not normally
329 | accompany the operating system. Such a contradiction means you cannot
330 | use both them and the Library together in an executable that you
331 | distribute.
332 |
333 | 7. You may place library facilities that are a work based on the
334 | Library side-by-side in a single library together with other library
335 | facilities not covered by this License, and distribute such a combined
336 | library, provided that the separate distribution of the work based on
337 | the Library and of the other library facilities is otherwise
338 | permitted, and provided that you do these two things:
339 |
340 | a) Accompany the combined library with a copy of the same work
341 | based on the Library, uncombined with any other library
342 | facilities. This must be distributed under the terms of the
343 | Sections above.
344 |
345 | b) Give prominent notice with the combined library of the fact
346 | that part of it is a work based on the Library, and explaining
347 | where to find the accompanying uncombined form of the same work.
348 |
349 | 8. You may not copy, modify, sublicense, link with, or distribute
350 | the Library except as expressly provided under this License. Any
351 | attempt otherwise to copy, modify, sublicense, link with, or
352 | distribute the Library is void, and will automatically terminate your
353 | rights under this License. However, parties who have received copies,
354 | or rights, from you under this License will not have their licenses
355 | terminated so long as such parties remain in full compliance.
356 |
357 | 9. You are not required to accept this License, since you have not
358 | signed it. However, nothing else grants you permission to modify or
359 | distribute the Library or its derivative works. These actions are
360 | prohibited by law if you do not accept this License. Therefore, by
361 | modifying or distributing the Library (or any work based on the
362 | Library), you indicate your acceptance of this License to do so, and
363 | all its terms and conditions for copying, distributing or modifying
364 | the Library or works based on it.
365 |
366 | 10. Each time you redistribute the Library (or any work based on the
367 | Library), the recipient automatically receives a license from the
368 | original licensor to copy, distribute, link with or modify the Library
369 | subject to these terms and conditions. You may not impose any further
370 | restrictions on the recipients' exercise of the rights granted herein.
371 | You are not responsible for enforcing compliance by third parties with
372 | this License.
373 |
374 | 11. If, as a consequence of a court judgment or allegation of patent
375 | infringement or for any other reason (not limited to patent issues),
376 | conditions are imposed on you (whether by court order, agreement or
377 | otherwise) that contradict the conditions of this License, they do not
378 | excuse you from the conditions of this License. If you cannot
379 | distribute so as to satisfy simultaneously your obligations under this
380 | License and any other pertinent obligations, then as a consequence you
381 | may not distribute the Library at all. For example, if a patent
382 | license would not permit royalty-free redistribution of the Library by
383 | all those who receive copies directly or indirectly through you, then
384 | the only way you could satisfy both it and this License would be to
385 | refrain entirely from distribution of the Library.
386 |
387 | If any portion of this section is held invalid or unenforceable under any
388 | particular circumstance, the balance of the section is intended to apply,
389 | and the section as a whole is intended to apply in other circumstances.
390 |
391 | It is not the purpose of this section to induce you to infringe any
392 | patents or other property right claims or to contest validity of any
393 | such claims; this section has the sole purpose of protecting the
394 | integrity of the free software distribution system which is
395 | implemented by public license practices. Many people have made
396 | generous contributions to the wide range of software distributed
397 | through that system in reliance on consistent application of that
398 | system; it is up to the author/donor to decide if he or she is willing
399 | to distribute software through any other system and a licensee cannot
400 | impose that choice.
401 |
402 | This section is intended to make thoroughly clear what is believed to
403 | be a consequence of the rest of this License.
404 |
405 | 12. If the distribution and/or use of the Library is restricted in
406 | certain countries either by patents or by copyrighted interfaces, the
407 | original copyright holder who places the Library under this License may add
408 | an explicit geographical distribution limitation excluding those countries,
409 | so that distribution is permitted only in or among countries not thus
410 | excluded. In such case, this License incorporates the limitation as if
411 | written in the body of this License.
412 |
413 | 13. The Free Software Foundation may publish revised and/or new
414 | versions of the Lesser General Public License from time to time.
415 | Such new versions will be similar in spirit to the present version,
416 | but may differ in detail to address new problems or concerns.
417 |
418 | Each version is given a distinguishing version number. If the Library
419 | specifies a version number of this License which applies to it and
420 | "any later version", you have the option of following the terms and
421 | conditions either of that version or of any later version published by
422 | the Free Software Foundation. If the Library does not specify a
423 | license version number, you may choose any version ever published by
424 | the Free Software Foundation.
425 |
426 | 14. If you wish to incorporate parts of the Library into other free
427 | programs whose distribution conditions are incompatible with these,
428 | write to the author to ask for permission. For software which is
429 | copyrighted by the Free Software Foundation, write to the Free
430 | Software Foundation; we sometimes make exceptions for this. Our
431 | decision will be guided by the two goals of preserving the free status
432 | of all derivatives of our free software and of promoting the sharing
433 | and reuse of software generally.
434 |
435 | NO WARRANTY
436 |
437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
446 |
447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
456 | DAMAGES.
457 |
458 | END OF TERMS AND CONDITIONS
459 |
460 | How to Apply These Terms to Your New Libraries
461 |
462 | If you develop a new library, and you want it to be of the greatest
463 | possible use to the public, we recommend making it free software that
464 | everyone can redistribute and change. You can do so by permitting
465 | redistribution under these terms (or, alternatively, under the terms of the
466 | ordinary General Public License).
467 |
468 | To apply these terms, attach the following notices to the library. It is
469 | safest to attach them to the start of each source file to most effectively
470 | convey the exclusion of warranty; and each file should have at least the
471 | "copyright" line and a pointer to where the full notice is found.
472 |
473 | {description}
474 | Copyright (C) {year} {fullname}
475 |
476 | This library is free software; you can redistribute it and/or
477 | modify it under the terms of the GNU Lesser General Public
478 | License as published by the Free Software Foundation; either
479 | version 2.1 of the License, or (at your option) any later version.
480 |
481 | This library is distributed in the hope that it will be useful,
482 | but WITHOUT ANY WARRANTY; without even the implied warranty of
483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
484 | Lesser General Public License for more details.
485 |
486 | You should have received a copy of the GNU Lesser General Public
487 | License along with this library; if not, write to the Free Software
488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
489 | USA
490 |
491 | Also add information on how to contact you by electronic and paper mail.
492 |
493 | You should also get your employer (if you work as a programmer) or your
494 | school, if any, to sign a "copyright disclaimer" for the library, if
495 | necessary. Here is a sample; alter the names:
496 |
497 | Yoyodyne, Inc., hereby disclaims all copyright interest in the
498 | library `Frob' (a library for tweaking knobs) written by James Random
499 | Hacker.
500 |
501 | {signature of Ty Coon}, 1 April 1990
502 | Ty Coon, President of Vice
503 |
504 | That's all there is to it!
505 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/LGPL-3.0.txt:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 |
9 | This version of the GNU Lesser General Public License incorporates
10 | the terms and conditions of version 3 of the GNU General Public
11 | License, supplemented by the additional permissions listed below.
12 |
13 | 0. Additional Definitions.
14 |
15 | As used herein, "this License" refers to version 3 of the GNU Lesser
16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU
17 | General Public License.
18 |
19 | "The Library" refers to a covered work governed by this License,
20 | other than an Application or a Combined Work as defined below.
21 |
22 | An "Application" is any work that makes use of an interface provided
23 | by the Library, but which is not otherwise based on the Library.
24 | Defining a subclass of a class defined by the Library is deemed a mode
25 | of using an interface provided by the Library.
26 |
27 | A "Combined Work" is a work produced by combining or linking an
28 | Application with the Library. The particular version of the Library
29 | with which the Combined Work was made is also called the "Linked
30 | Version".
31 |
32 | The "Minimal Corresponding Source" for a Combined Work means the
33 | Corresponding Source for the Combined Work, excluding any source code
34 | for portions of the Combined Work that, considered in isolation, are
35 | based on the Application, and not on the Linked Version.
36 |
37 | The "Corresponding Application Code" for a Combined Work means the
38 | object code and/or source code for the Application, including any data
39 | and utility programs needed for reproducing the Combined Work from the
40 | Application, but excluding the System Libraries of the Combined Work.
41 |
42 | 1. Exception to Section 3 of the GNU GPL.
43 |
44 | You may convey a covered work under sections 3 and 4 of this License
45 | without being bound by section 3 of the GNU GPL.
46 |
47 | 2. Conveying Modified Versions.
48 |
49 | If you modify a copy of the Library, and, in your modifications, a
50 | facility refers to a function or data to be supplied by an Application
51 | that uses the facility (other than as an argument passed when the
52 | facility is invoked), then you may convey a copy of the modified
53 | version:
54 |
55 | a) under this License, provided that you make a good faith effort to
56 | ensure that, in the event an Application does not supply the
57 | function or data, the facility still operates, and performs
58 | whatever part of its purpose remains meaningful, or
59 |
60 | b) under the GNU GPL, with none of the additional permissions of
61 | this License applicable to that copy.
62 |
63 | 3. Object Code Incorporating Material from Library Header Files.
64 |
65 | The object code form of an Application may incorporate material from
66 | a header file that is part of the Library. You may convey such object
67 | code under terms of your choice, provided that, if the incorporated
68 | material is not limited to numerical parameters, data structure
69 | layouts and accessors, or small macros, inline functions and templates
70 | (ten or fewer lines in length), you do both of the following:
71 |
72 | a) Give prominent notice with each copy of the object code that the
73 | Library is used in it and that the Library and its use are
74 | covered by this License.
75 |
76 | b) Accompany the object code with a copy of the GNU GPL and this license
77 | document.
78 |
79 | 4. Combined Works.
80 |
81 | You may convey a Combined Work under terms of your choice that,
82 | taken together, effectively do not restrict modification of the
83 | portions of the Library contained in the Combined Work and reverse
84 | engineering for debugging such modifications, if you also do each of
85 | the following:
86 |
87 | a) Give prominent notice with each copy of the Combined Work that
88 | the Library is used in it and that the Library and its use are
89 | covered by this License.
90 |
91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license
92 | document.
93 |
94 | c) For a Combined Work that displays copyright notices during
95 | execution, include the copyright notice for the Library among
96 | these notices, as well as a reference directing the user to the
97 | copies of the GNU GPL and this license document.
98 |
99 | d) Do one of the following:
100 |
101 | 0) Convey the Minimal Corresponding Source under the terms of this
102 | License, and the Corresponding Application Code in a form
103 | suitable for, and under terms that permit, the user to
104 | recombine or relink the Application with a modified version of
105 | the Linked Version to produce a modified Combined Work, in the
106 | manner specified by section 6 of the GNU GPL for conveying
107 | Corresponding Source.
108 |
109 | 1) Use a suitable shared library mechanism for linking with the
110 | Library. A suitable mechanism is one that (a) uses at run time
111 | a copy of the Library already present on the user's computer
112 | system, and (b) will operate properly with a modified version
113 | of the Library that is interface-compatible with the Linked
114 | Version.
115 |
116 | e) Provide Installation Information, but only if you would otherwise
117 | be required to provide such information under section 6 of the
118 | GNU GPL, and only to the extent that such information is
119 | necessary to install and execute a modified version of the
120 | Combined Work produced by recombining or relinking the
121 | Application with a modified version of the Linked Version. (If
122 | you use option 4d0, the Installation Information must accompany
123 | the Minimal Corresponding Source and Corresponding Application
124 | Code. If you use option 4d1, you must provide the Installation
125 | Information in the manner specified by section 6 of the GNU GPL
126 | for conveying Corresponding Source.)
127 |
128 | 5. Combined Libraries.
129 |
130 | You may place library facilities that are a work based on the
131 | Library side by side in a single library together with other library
132 | facilities that are not Applications and are not covered by this
133 | License, and convey such a combined library under terms of your
134 | choice, if you do both of the following:
135 |
136 | a) Accompany the combined library with a copy of the same work based
137 | on the Library, uncombined with any other library facilities,
138 | conveyed under the terms of this License.
139 |
140 | b) Give prominent notice with the combined library that part of it
141 | is a work based on the Library, and explaining where to find the
142 | accompanying uncombined form of the same work.
143 |
144 | 6. Revised Versions of the GNU Lesser General Public License.
145 |
146 | The Free Software Foundation may publish revised and/or new versions
147 | of the GNU Lesser General Public License from time to time. Such new
148 | versions will be similar in spirit to the present version, but may
149 | differ in detail to address new problems or concerns.
150 |
151 | Each version is given a distinguishing version number. If the
152 | Library as you received it specifies that a certain numbered version
153 | of the GNU Lesser General Public License "or any later version"
154 | applies to it, you have the option of following the terms and
155 | conditions either of that published version or of any later version
156 | published by the Free Software Foundation. If the Library as you
157 | received it does not specify a version number of the GNU Lesser
158 | General Public License, you may choose any version of the GNU Lesser
159 | General Public License ever published by the Free Software Foundation.
160 |
161 | If the Library as you received it specifies that a proxy can decide
162 | whether future versions of the GNU Lesser General Public License shall
163 | apply, that proxy's public statement of acceptance of any version is
164 | permanent authorization for you to choose that version for the
165 | Library.
166 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/MIT.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) {% now 'utc', '%Y' %} {{cookiecutter.copyright_holder}}
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/MPL-2.0.txt:
--------------------------------------------------------------------------------
1 | Mozilla Public License Version 2.0
2 | ==================================
3 |
4 | 1. Definitions
5 | --------------
6 |
7 | 1.1. "Contributor"
8 | means each individual or legal entity that creates, contributes to
9 | the creation of, or owns Covered Software.
10 |
11 | 1.2. "Contributor Version"
12 | means the combination of the Contributions of others (if any) used
13 | by a Contributor and that particular Contributor's Contribution.
14 |
15 | 1.3. "Contribution"
16 | means Covered Software of a particular Contributor.
17 |
18 | 1.4. "Covered Software"
19 | means Source Code Form to which the initial Contributor has attached
20 | the notice in Exhibit A, the Executable Form of such Source Code
21 | Form, and Modifications of such Source Code Form, in each case
22 | including portions thereof.
23 |
24 | 1.5. "Incompatible With Secondary Licenses"
25 | means
26 |
27 | (a) that the initial Contributor has attached the notice described
28 | in Exhibit B to the Covered Software; or
29 |
30 | (b) that the Covered Software was made available under the terms of
31 | version 1.1 or earlier of the License, but not also under the
32 | terms of a Secondary License.
33 |
34 | 1.6. "Executable Form"
35 | means any form of the work other than Source Code Form.
36 |
37 | 1.7. "Larger Work"
38 | means a work that combines Covered Software with other material, in
39 | a separate file or files, that is not Covered Software.
40 |
41 | 1.8. "License"
42 | means this document.
43 |
44 | 1.9. "Licensable"
45 | means having the right to grant, to the maximum extent possible,
46 | whether at the time of the initial grant or subsequently, any and
47 | all of the rights conveyed by this License.
48 |
49 | 1.10. "Modifications"
50 | means any of the following:
51 |
52 | (a) any file in Source Code Form that results from an addition to,
53 | deletion from, or modification of the contents of Covered
54 | Software; or
55 |
56 | (b) any new file in Source Code Form that contains any Covered
57 | Software.
58 |
59 | 1.11. "Patent Claims" of a Contributor
60 | means any patent claim(s), including without limitation, method,
61 | process, and apparatus claims, in any patent Licensable by such
62 | Contributor that would be infringed, but for the grant of the
63 | License, by the making, using, selling, offering for sale, having
64 | made, import, or transfer of either its Contributions or its
65 | Contributor Version.
66 |
67 | 1.12. "Secondary License"
68 | means either the GNU General Public License, Version 2.0, the GNU
69 | Lesser General Public License, Version 2.1, the GNU Affero General
70 | Public License, Version 3.0, or any later versions of those
71 | licenses.
72 |
73 | 1.13. "Source Code Form"
74 | means the form of the work preferred for making modifications.
75 |
76 | 1.14. "You" (or "Your")
77 | means an individual or a legal entity exercising rights under this
78 | License. For legal entities, "You" includes any entity that
79 | controls, is controlled by, or is under common control with You. For
80 | purposes of this definition, "control" means (a) the power, direct
81 | or indirect, to cause the direction or management of such entity,
82 | whether by contract or otherwise, or (b) ownership of more than
83 | fifty percent (50%) of the outstanding shares or beneficial
84 | ownership of such entity.
85 |
86 | 2. License Grants and Conditions
87 | --------------------------------
88 |
89 | 2.1. Grants
90 |
91 | Each Contributor hereby grants You a world-wide, royalty-free,
92 | non-exclusive license:
93 |
94 | (a) under intellectual property rights (other than patent or trademark)
95 | Licensable by such Contributor to use, reproduce, make available,
96 | modify, display, perform, distribute, and otherwise exploit its
97 | Contributions, either on an unmodified basis, with Modifications, or
98 | as part of a Larger Work; and
99 |
100 | (b) under Patent Claims of such Contributor to make, use, sell, offer
101 | for sale, have made, import, and otherwise transfer either its
102 | Contributions or its Contributor Version.
103 |
104 | 2.2. Effective Date
105 |
106 | The licenses granted in Section 2.1 with respect to any Contribution
107 | become effective for each Contribution on the date the Contributor first
108 | distributes such Contribution.
109 |
110 | 2.3. Limitations on Grant Scope
111 |
112 | The licenses granted in this Section 2 are the only rights granted under
113 | this License. No additional rights or licenses will be implied from the
114 | distribution or licensing of Covered Software under this License.
115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a
116 | Contributor:
117 |
118 | (a) for any code that a Contributor has removed from Covered Software;
119 | or
120 |
121 | (b) for infringements caused by: (i) Your and any other third party's
122 | modifications of Covered Software, or (ii) the combination of its
123 | Contributions with other software (except as part of its Contributor
124 | Version); or
125 |
126 | (c) under Patent Claims infringed by Covered Software in the absence of
127 | its Contributions.
128 |
129 | This License does not grant any rights in the trademarks, service marks,
130 | or logos of any Contributor (except as may be necessary to comply with
131 | the notice requirements in Section 3.4).
132 |
133 | 2.4. Subsequent Licenses
134 |
135 | No Contributor makes additional grants as a result of Your choice to
136 | distribute the Covered Software under a subsequent version of this
137 | License (see Section 10.2) or under the terms of a Secondary License (if
138 | permitted under the terms of Section 3.3).
139 |
140 | 2.5. Representation
141 |
142 | Each Contributor represents that the Contributor believes its
143 | Contributions are its original creation(s) or it has sufficient rights
144 | to grant the rights to its Contributions conveyed by this License.
145 |
146 | 2.6. Fair Use
147 |
148 | This License is not intended to limit any rights You have under
149 | applicable copyright doctrines of fair use, fair dealing, or other
150 | equivalents.
151 |
152 | 2.7. Conditions
153 |
154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155 | in Section 2.1.
156 |
157 | 3. Responsibilities
158 | -------------------
159 |
160 | 3.1. Distribution of Source Form
161 |
162 | All distribution of Covered Software in Source Code Form, including any
163 | Modifications that You create or to which You contribute, must be under
164 | the terms of this License. You must inform recipients that the Source
165 | Code Form of the Covered Software is governed by the terms of this
166 | License, and how they can obtain a copy of this License. You may not
167 | attempt to alter or restrict the recipients' rights in the Source Code
168 | Form.
169 |
170 | 3.2. Distribution of Executable Form
171 |
172 | If You distribute Covered Software in Executable Form then:
173 |
174 | (a) such Covered Software must also be made available in Source Code
175 | Form, as described in Section 3.1, and You must inform recipients of
176 | the Executable Form how they can obtain a copy of such Source Code
177 | Form by reasonable means in a timely manner, at a charge no more
178 | than the cost of distribution to the recipient; and
179 |
180 | (b) You may distribute such Executable Form under the terms of this
181 | License, or sublicense it under different terms, provided that the
182 | license for the Executable Form does not attempt to limit or alter
183 | the recipients' rights in the Source Code Form under this License.
184 |
185 | 3.3. Distribution of a Larger Work
186 |
187 | You may create and distribute a Larger Work under terms of Your choice,
188 | provided that You also comply with the requirements of this License for
189 | the Covered Software. If the Larger Work is a combination of Covered
190 | Software with a work governed by one or more Secondary Licenses, and the
191 | Covered Software is not Incompatible With Secondary Licenses, this
192 | License permits You to additionally distribute such Covered Software
193 | under the terms of such Secondary License(s), so that the recipient of
194 | the Larger Work may, at their option, further distribute the Covered
195 | Software under the terms of either this License or such Secondary
196 | License(s).
197 |
198 | 3.4. Notices
199 |
200 | You may not remove or alter the substance of any license notices
201 | (including copyright notices, patent notices, disclaimers of warranty,
202 | or limitations of liability) contained within the Source Code Form of
203 | the Covered Software, except that You may alter any license notices to
204 | the extent required to remedy known factual inaccuracies.
205 |
206 | 3.5. Application of Additional Terms
207 |
208 | You may choose to offer, and to charge a fee for, warranty, support,
209 | indemnity or liability obligations to one or more recipients of Covered
210 | Software. However, You may do so only on Your own behalf, and not on
211 | behalf of any Contributor. You must make it absolutely clear that any
212 | such warranty, support, indemnity, or liability obligation is offered by
213 | You alone, and You hereby agree to indemnify every Contributor for any
214 | liability incurred by such Contributor as a result of warranty, support,
215 | indemnity or liability terms You offer. You may include additional
216 | disclaimers of warranty and limitations of liability specific to any
217 | jurisdiction.
218 |
219 | 4. Inability to Comply Due to Statute or Regulation
220 | ---------------------------------------------------
221 |
222 | If it is impossible for You to comply with any of the terms of this
223 | License with respect to some or all of the Covered Software due to
224 | statute, judicial order, or regulation then You must: (a) comply with
225 | the terms of this License to the maximum extent possible; and (b)
226 | describe the limitations and the code they affect. Such description must
227 | be placed in a text file included with all distributions of the Covered
228 | Software under this License. Except to the extent prohibited by statute
229 | or regulation, such description must be sufficiently detailed for a
230 | recipient of ordinary skill to be able to understand it.
231 |
232 | 5. Termination
233 | --------------
234 |
235 | 5.1. The rights granted under this License will terminate automatically
236 | if You fail to comply with any of its terms. However, if You become
237 | compliant, then the rights granted under this License from a particular
238 | Contributor are reinstated (a) provisionally, unless and until such
239 | Contributor explicitly and finally terminates Your grants, and (b) on an
240 | ongoing basis, if such Contributor fails to notify You of the
241 | non-compliance by some reasonable means prior to 60 days after You have
242 | come back into compliance. Moreover, Your grants from a particular
243 | Contributor are reinstated on an ongoing basis if such Contributor
244 | notifies You of the non-compliance by some reasonable means, this is the
245 | first time You have received notice of non-compliance with this License
246 | from such Contributor, and You become compliant prior to 30 days after
247 | Your receipt of the notice.
248 |
249 | 5.2. If You initiate litigation against any entity by asserting a patent
250 | infringement claim (excluding declaratory judgment actions,
251 | counter-claims, and cross-claims) alleging that a Contributor Version
252 | directly or indirectly infringes any patent, then the rights granted to
253 | You by any and all Contributors for the Covered Software under Section
254 | 2.1 of this License shall terminate.
255 |
256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
257 | end user license agreements (excluding distributors and resellers) which
258 | have been validly granted by You or Your distributors under this License
259 | prior to termination shall survive termination.
260 |
261 | ************************************************************************
262 | * *
263 | * 6. Disclaimer of Warranty *
264 | * ------------------------- *
265 | * *
266 | * Covered Software is provided under this License on an "as is" *
267 | * basis, without warranty of any kind, either expressed, implied, or *
268 | * statutory, including, without limitation, warranties that the *
269 | * Covered Software is free of defects, merchantable, fit for a *
270 | * particular purpose or non-infringing. The entire risk as to the *
271 | * quality and performance of the Covered Software is with You. *
272 | * Should any Covered Software prove defective in any respect, You *
273 | * (not any Contributor) assume the cost of any necessary servicing, *
274 | * repair, or correction. This disclaimer of warranty constitutes an *
275 | * essential part of this License. No use of any Covered Software is *
276 | * authorized under this License except under this disclaimer. *
277 | * *
278 | ************************************************************************
279 |
280 | ************************************************************************
281 | * *
282 | * 7. Limitation of Liability *
283 | * -------------------------- *
284 | * *
285 | * Under no circumstances and under no legal theory, whether tort *
286 | * (including negligence), contract, or otherwise, shall any *
287 | * Contributor, or anyone who distributes Covered Software as *
288 | * permitted above, be liable to You for any direct, indirect, *
289 | * special, incidental, or consequential damages of any character *
290 | * including, without limitation, damages for lost profits, loss of *
291 | * goodwill, work stoppage, computer failure or malfunction, or any *
292 | * and all other commercial damages or losses, even if such party *
293 | * shall have been informed of the possibility of such damages. This *
294 | * limitation of liability shall not apply to liability for death or *
295 | * personal injury resulting from such party's negligence to the *
296 | * extent applicable law prohibits such limitation. Some *
297 | * jurisdictions do not allow the exclusion or limitation of *
298 | * incidental or consequential damages, so this exclusion and *
299 | * limitation may not apply to You. *
300 | * *
301 | ************************************************************************
302 |
303 | 8. Litigation
304 | -------------
305 |
306 | Any litigation relating to this License may be brought only in the
307 | courts of a jurisdiction where the defendant maintains its principal
308 | place of business and such litigation shall be governed by laws of that
309 | jurisdiction, without reference to its conflict-of-law provisions.
310 | Nothing in this Section shall prevent a party's ability to bring
311 | cross-claims or counter-claims.
312 |
313 | 9. Miscellaneous
314 | ----------------
315 |
316 | This License represents the complete agreement concerning the subject
317 | matter hereof. If any provision of this License is held to be
318 | unenforceable, such provision shall be reformed only to the extent
319 | necessary to make it enforceable. Any law or regulation which provides
320 | that the language of a contract shall be construed against the drafter
321 | shall not be used to construe this License against a Contributor.
322 |
323 | 10. Versions of the License
324 | ---------------------------
325 |
326 | 10.1. New Versions
327 |
328 | Mozilla Foundation is the license steward. Except as provided in Section
329 | 10.3, no one other than the license steward has the right to modify or
330 | publish new versions of this License. Each version will be given a
331 | distinguishing version number.
332 |
333 | 10.2. Effect of New Versions
334 |
335 | You may distribute the Covered Software under the terms of the version
336 | of the License under which You originally received the Covered Software,
337 | or under the terms of any subsequent version published by the license
338 | steward.
339 |
340 | 10.3. Modified Versions
341 |
342 | If you create software not governed by this License, and you want to
343 | create a new license for such software, you may create and use a
344 | modified version of this License if you rename the license and remove
345 | any references to the name of the license steward (except to note that
346 | such modified license differs from this License).
347 |
348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary
349 | Licenses
350 |
351 | If You choose to distribute Source Code Form that is Incompatible With
352 | Secondary Licenses under the terms of this version of the License, the
353 | notice described in Exhibit B of this License must be attached.
354 |
355 | Exhibit A - Source Code Form License Notice
356 | -------------------------------------------
357 |
358 | This Source Code Form is subject to the terms of the Mozilla Public
359 | License, v. 2.0. If a copy of the MPL was not distributed with this
360 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
361 |
362 | If it is not possible or desirable to put the notice in a particular
363 | file, then You may include the notice in a location (such as a LICENSE
364 | file in a relevant directory) where a recipient would be likely to look
365 | for such a notice.
366 |
367 | You may add additional accurate notices of copyright ownership.
368 |
369 | Exhibit B - "Incompatible With Secondary Licenses" Notice
370 | ---------------------------------------------------------
371 |
372 | This Source Code Form is "Incompatible With Secondary Licenses", as
373 | defined by the Mozilla Public License, v. 2.0.
374 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/LICENSES/Unlicense.txt:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to
25 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/NOTICE:
--------------------------------------------------------------------------------
1 | Apache License, Version 2.0
2 | Copyright {% now 'utc', '%Y' %} The Apache Software Foundation
3 |
4 | This product includes software developed at
5 | The Apache Software Foundation (http://www.apache.org/).
6 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/README.md:
--------------------------------------------------------------------------------
1 | # {{cookiecutter.repo_slug}}
2 |
3 | [](CHANGELOG.md)
4 | [](ROADMAP.md)
5 | [](https://travis-ci.org)
6 | [](https://www.appveyor.com)
7 | [](https://codecov.io)
8 |
9 | > {{cookiecutter.repo_tagline}}
10 |
11 | {{cookiecutter.repo_summary}}
12 |
13 | _**Note:** This project was initially created by [cookiecutter-git](https://github.com/NathanUrwin/cookiecutter-git)!_ :cookie:
14 |
15 | ## Table of Contents
16 |
17 | - [Table of Contents](#table-of-contents)
18 | - [Features](#features)
19 | - [Requirements](#requirements)
20 | - [Installation](#installation)
21 | - [Usage](#usage)
22 | - [Development](#development)
23 | - [Future](#future)
24 | - [History](#history)
25 | - [Community](#community)
26 | - [Credits](#credits)
27 | - [License](#license)
28 |
29 | ## Features
30 |
31 | ## Requirements
32 |
33 | ## Installation
34 |
35 | ## Usage
36 |
37 | ## Development
38 |
39 | See [CONTRIBUTING](CONTRIBUTING.md)
40 |
41 | ### Future
42 |
43 | See [ROADMAP](ROADMAP.md)
44 |
45 | ### History
46 |
47 | See [CHANGELOG](CHANGELOG.md)
48 |
49 | ### Community
50 |
51 | See [CODE OF CONDUCT](CODE_OF_CONDUCT.md)
52 |
53 | ## Credits
54 |
55 | See [AUTHORS](AUTHORS.md)
56 |
57 | ## License
58 |
59 | See [LICENSE](LICENSE){% if cookiecutter.copyright_license == "Apache-2.0" %}, [NOTICE](NOTICE){% endif %}
60 |
--------------------------------------------------------------------------------
/{{cookiecutter.repo_slug}}/ROADMAP.md:
--------------------------------------------------------------------------------
1 | # Road Map
2 |
3 | ## Development Status
4 |
5 | - [x] 
6 | - [ ] 
7 | - [ ] 
8 | - [ ] 
9 | - [ ] 
10 | - [ ] 
11 | - [ ] 
12 |
13 | ## Project Milestones
14 |
15 | - [ ] Release Version 0.1.0 (Pre-Alpha)
16 | - [ ] Release Version 0.x.0 (Alpha)
17 | - [ ] Release Version 0.x.0 (Beta)
18 | - [ ] Release Version 1.0.0 (Stable)
19 | - [ ] Release Version x.0.0 (Mature)
20 |
--------------------------------------------------------------------------------