|
5 | 5 | --> |
6 | 6 | <h1 id="python3-cookiecutter">python3-cookiecutter</h1> |
7 | 7 |
|
| 8 | +<p><a href="LICENSE.md"><img src="https://img.shields.io/github/license/jcook3701/python3-cookiecutter" alt="License" /></a></p> |
| 9 | + |
8 | 10 | <p><strong>Author:</strong> Jared Cook<br /> |
9 | 11 | <strong>Version:</strong> 0.1.0</p> |
10 | 12 |
|
11 | 13 | <h2 id="overview">Overview</h2> |
12 | 14 | <p>Python3 cookiecutter template project + Github docs template generation + Sphinx docs template generation.</p> |
13 | 15 |
|
| 16 | +<p><strong>Utilizes:</strong><br /> |
| 17 | +The <strong>python3-cookiecutter</strong> depends on the following repositories for its documentation and sub-features.</p> |
| 18 | + |
| 19 | +<ul> |
| 20 | + <li><a href="https://github.com/jcook3701/cookiecutter-cookiecutter">cookiecutter-cookiecutter</a> is the the parent repository for python3-cookiecutter. Updates from <code class="language-plaintext highlighter-rouge">cookiecutter_project_upgrader</code> are pulled from this repository.</li> |
| 21 | + <li><a href="https://github.com/jcook3701/github-docs-cookiecutter">Github docs</a> cookiecutter template generation for Github Pages (Jekyll).</li> |
| 22 | + <li><a href="https://github.com/jcook3701/sphinx-cookiecutter">Sphinx docs</a> cookiecutter template generation for Python Sphinx Documentation.</li> |
| 23 | + <li><a href="https://github.com/jcook3701/nutri-matic">Nutri-Matic</a> cookiecutter utilities for streamlining development and utilization of Cookiecutter templates.</li> |
| 24 | +</ul> |
| 25 | + |
| 26 | +<p><strong>Maintains:</strong><br /> |
| 27 | +The <strong>python3-cookiecutter</strong> is used to maintain the build and ci/cd structure for the following projects.</p> |
| 28 | + |
| 29 | +<ul> |
| 30 | + <li>**<a href="https://github.com/jcook3701/nutri-matic">Nutri-Matic</a> cookiecutter utilities for streamlining development and utilization of Cookiecutter templates.</li> |
| 31 | +</ul> |
| 32 | + |
14 | 33 | <hr /> |
15 | 34 |
|
16 | | -<p><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/dependency-check.yml/badge.svg" alt="dependency-check" /> |
17 | | -<img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/format-check.yml/badge.svg" alt="format-check" /> |
18 | | -<img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/lint-check.yml/badge.svg" alt="lint-check" /> |
19 | | -<img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/security-audit.yml/badge.svg" alt="security-audit" /> |
20 | | -<img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/spellcheck.yml/badge.svg" alt="spellcheck" /> |
21 | | -<img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/tests.yml/badge.svg" alt="tests" /> |
22 | | -<img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/typecheck.yml/badge.svg" alt="typecheck" /></p> |
| 35 | +<p>🛠️ <strong>CI/CD Check List:</strong></p> |
| 36 | + |
| 37 | +<ul> |
| 38 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/dependency-check.yml/badge.svg" alt="dependency-check" /></li> |
| 39 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/format-check.yml/badge.svg" alt="format-check" /></li> |
| 40 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/lint-check.yml/badge.svg" alt="lint-check" /></li> |
| 41 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/security-audit.yml/badge.svg" alt="security-audit" /></li> |
| 42 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/spellcheck.yml/badge.svg" alt="spellcheck" /></li> |
| 43 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/tests.yml/badge.svg" alt="tests" /></li> |
| 44 | + <li><img src="https://github.com/jcook3701/python3-cookiecutter/actions/workflows/typecheck.yml/badge.svg" alt="typecheck" /></li> |
| 45 | +</ul> |
23 | 46 |
|
24 | 47 | <hr /> |
25 | 48 |
|
26 | 49 | <p><strong>Note:</strong> Unless you are using a newer version of cookiecutter >= 2, <code class="language-plaintext highlighter-rouge">--no-input</code> is necessary for template generation without error.</p> |
27 | 50 |
|
28 | | -<h2 id="usage-examples">Usage Examples:</h2> |
| 51 | +<h2 id="usage-examples">Usage Examples</h2> |
29 | 52 |
|
30 | 53 | <p><strong>Example:</strong> Pull from main branch.<br /> |
31 | 54 | <strong>Note:</strong> <a href="https://github.com/jcook3701/nutri-matic">Nutri-Matic</a> is needed in active python environment.</p> |
|
46 | 69 | </ol> |
47 | 70 |
|
48 | 71 | <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>cookiecutter git@github.com:jcook3701/python3-cookiecutter.git <span class="se">\</span> |
49 | | - <span class="nt">--checkout</span> develop <span class="se">\</span> |
| 72 | + <span class="nt">--checkout</span> develop <span class="se">\</span> |
50 | 73 | <span class="nt">--no-input</span> <span class="se">\</span> |
51 | 74 | <span class="nv">project_name</span><span class="o">=</span><span class="s2">"test-project"</span> |
52 | 75 | </code></pre></div></div> |
|
56 | 79 |
|
57 | 80 | <hr /> |
58 | 81 |
|
59 | | -<h2 id="development-strategy">Development Strategy:</h2> |
60 | | - |
61 | | -<p><strong>Note:</strong> All Makefile commands are used in ci/cd to ensure that if they pass locally they should also pass once pushed to github.</p> |
62 | | - |
63 | | -<h3 id="️-build-environment-venv">🐍️ Build environment (.venv)</h3> |
64 | | - |
65 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make <span class="nb">install</span> |
66 | | -</code></pre></div></div> |
67 | | - |
68 | | -<h3 id="-dependency-management-deptry">🧬 Dependency Management (deptry)</h3> |
69 | | - |
70 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make dependency-check |
71 | | -</code></pre></div></div> |
72 | | - |
73 | | -<h3 id="️-security-audit-pip-audit">🛡️ Security Audit (pip-audit)</h3> |
74 | | - |
75 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make security |
76 | | -</code></pre></div></div> |
77 | | - |
78 | | -<h3 id="-formatting-black">🎨 Formatting (black)</h3> |
79 | | - |
80 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make format-check |
81 | | -</code></pre></div></div> |
82 | | - |
83 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make format-fix |
84 | | -</code></pre></div></div> |
85 | | - |
86 | | -<h3 id="-linting-jinja2-cli-ruff-tomllint--yaml-lint">🔍 Linting (jinja2-cli, ruff, tomllint, & yaml-lint)</h3> |
87 | | - |
88 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make lint-check |
89 | | -</code></pre></div></div> |
90 | | - |
91 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make lint-fix |
92 | | -</code></pre></div></div> |
93 | | - |
94 | | -<h3 id="-spellchecking-codespell">🎓 Spellchecking (codespell)</h3> |
95 | | - |
96 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make spellcheck |
97 | | -</code></pre></div></div> |
98 | | - |
99 | | -<h3 id="-typechecking-mypy">🧠 Typechecking (mypy)</h3> |
100 | | - |
101 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make typecheck |
102 | | -</code></pre></div></div> |
103 | | - |
104 | | -<h3 id="-testing-pytest">🧪 Testing (pytest)</h3> |
105 | | - |
106 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make <span class="nb">test</span> |
107 | | -</code></pre></div></div> |
108 | | - |
109 | | -<h3 id="-release-git-tag">🚀 Release (git tag)</h3> |
110 | | - |
111 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make release |
112 | | -</code></pre></div></div> |
113 | | - |
114 | | -<h3 id="-build-help">❓ Build Help</h3> |
| 82 | +<h2 id="-getting-started">🌱 Getting Started</h2> |
115 | 83 |
|
116 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>make <span class="nb">help</span> |
117 | | -</code></pre></div></div> |
118 | | - |
119 | | -<h2 id="commit-help">Commit Help:</h2> |
120 | | - |
121 | | -<p><strong>Note:</strong> Commits are required to be conventional git commit message. This helps with the auto-generation of the changelog files and is enforced by pre-commit.<br /> |
122 | | -<strong>example:</strong></p> |
| 84 | +<ul> |
| 85 | + <li><a href="https://jcook3701.github.io/python3-cookiecutter/manual/setup-guide/requirements">Requirements</a></li> |
| 86 | + <li><a href="https://jcook3701.github.io/python3-cookiecutter/manual/introduction/installation-guide">Installation guide</a></li> |
| 87 | +</ul> |
123 | 88 |
|
124 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><<span class="nb">type</span><span class="o">>[</span>optional scope]: <description> |
| 89 | +<h2 id="-documentation">📚 Documentation</h2> |
125 | 90 |
|
126 | | -<span class="o">[</span>optional body] |
| 91 | +<p>The python3-cookiecutter documentation is available at <a href="https://jcook3701.github.io/python3-cookiecutter">docs</a>.</p> |
127 | 92 |
|
128 | | -<span class="o">[</span>optional footer<span class="o">(</span>s<span class="o">)]</span> |
129 | | -</code></pre></div></div> |
| 93 | +<h2 id="-contributing">🤝 Contributing</h2> |
130 | 94 |
|
| 95 | +<p>If you’re interested in contributing to the python3-cookiecutter project:</p> |
131 | 96 | <ul> |
132 | | - <li><code class="language-plaintext highlighter-rouge"><type></code>: A required noun that describes the nature of the change.</li> |
133 | | - <li><code class="language-plaintext highlighter-rouge">[optional scope]</code>: An optional phrase within parentheses that specifies the part of the codebase being affected (e.g., fix(parser):).</li> |
134 | | - <li><code class="language-plaintext highlighter-rouge"><description></code>: A required short, imperative-mood summary of the changes.</li> |
135 | | - <li><code class="language-plaintext highlighter-rouge">[optional body]</code>: A longer description providing additional context and “what and why” details.</li> |
136 | | - <li><code class="language-plaintext highlighter-rouge">[optional footer(s)]</code>: Used for adding meta-information, such as issue references (Fixes #123) or indicating breaking changes.</li> |
| 97 | + <li>Start by reading the <a href="https://jcook3701.github.io/python3-cookiecutter/manual/developer-resources/contribute">contributing guide</a>.</li> |
| 98 | + <li>Learn how to setup your local environment, in our <a href="https://jcook3701.github.io/python3-cookiecutter/manual/contribute/developer-guide">developer guide</a>.</li> |
| 99 | + <li>Look through our <a href="https://jcook3701.github.io/python3-cookiecutter/manual/contribute/style-guides/index">style guide</a>.</li> |
137 | 100 | </ul> |
138 | 101 |
|
139 | 102 | <hr /> |
140 | 103 |
|
141 | | -<h2 id="requirements">Requirements:</h2> |
| 104 | +<h2 id="-authors-notes">🍹 Authors Notes</h2> |
142 | 105 |
|
143 | | -<p><strong>Python 3.11</strong></p> |
144 | | - |
145 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">sudo </span>apt <span class="nb">install </span>python3.11 |
146 | | -</code></pre></div></div> |
147 | | - |
148 | | -<p><strong><a href="https://github.com/jcook3701/nutri-matic">Nutri-Matic</a></strong><br /> |
149 | | -<strong>Note:</strong> This is needed for the cookiecutter hooks to run correctly. Without this package installed in active python environment cookiecutter pull will fail.</p> |
150 | | - |
151 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>pip <span class="nb">install </span>nutri-matic |
152 | | -</code></pre></div></div> |
| 106 | +<ol> |
| 107 | + <li>This code currently works with cookiecutter (V2.6) from Ubuntu’s apt repositories.</li> |
| 108 | +</ol> |
153 | 109 |
|
154 | | -<p><strong><a href="https://rust-lang.org/tools/install/">rustup</a></strong><br /> |
155 | | -<strong>Note:</strong> I found that it is easiest to use rustup to manage rustc and cargo but this is not required.<br /> |
156 | | -<strong>Example:</strong> Install rustup with the following:</p> |
| 110 | +<h2 id="️-license">⚖️ License</h2> |
157 | 111 |
|
158 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>curl <span class="nt">--proto</span> <span class="s1">'=https'</span> <span class="nt">--tlsv1</span>.2 <span class="nt">-sSf</span> https://sh.rustup.rs | sh |
159 | | -</code></pre></div></div> |
| 112 | +<p>Copyright (c) 2025-2026, Jared Cook</p> |
160 | 113 |
|
161 | | -<p><strong><a href="https://git-cliff.org/">git-cliff</a></strong><br /> |
162 | | -<strong>Note:</strong> git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers.</p> |
| 114 | +<p>This project is licensed under the <strong>AGPL-3.0-or-later License</strong>.<br /> |
| 115 | +See the <a href="https://github.com/jcook3701/python3-cookiecutter/blob/master/LICENSE.md">LICENSE</a> file for the full license text.</p> |
163 | 116 |
|
164 | | -<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>cargo <span class="nb">install </span>git-cliff |
165 | | -</code></pre></div></div> |
| 117 | +<p>SPDX-License-Identifier: AGPL-3.0-or-later</p> |
166 | 118 |
|
167 | 119 | <hr /> |
168 | 120 |
|
|
0 commit comments