Skip to content

Commit 75a6e65

Browse files
authored
Merge dev to main (#54)
* Reorganization of folder, adding more folders and other updates * Stop tracking uv.lock and ignore it * Added AGENTS.md, restored Makefile to root, changes in docs and more
1 parent 7ed9bf3 commit 75a6e65

22 files changed

Lines changed: 241 additions & 2405 deletions
File renamed without changes.
File renamed without changes.
Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,59 @@
11
name: "Bug Report"
2-
description: Report a bug to help us improve python-project-template.
2+
description: "Report a bug to help us improve python-project-template."
33
labels: ["bug"]
4+
45
body:
56
- type: markdown
67
attributes:
7-
value: |
8-
Thank you for taking the time to report a bug!
9-
10-
For more information, please refer to our [Contribution Guide](https://github.com/danibcorr/python-project-template/blob/main/CONTRIBUTING.md).
8+
value:
9+
"Thank you for taking the time to report a bug!\n\nFor more information, please
10+
refer to our [Contribution Guide](../CONTRIBUTING.md)."
1111

1212
- type: textarea
1313
id: system-info
1414
attributes:
15-
label: System Information
16-
description: Please provide details about your system configuration.
17-
placeholder: |
18-
python-project-template version:
19-
Platform/OS:
20-
Python version:
21-
Backend:
15+
label: "System Information"
16+
description: "Please provide details about your system configuration."
17+
placeholder:
18+
"python-project-template version:\nPlatform/OS:\nPython version:\nBackend:"
2219
validations:
2320
required: true
2421

2522
- type: textarea
2623
id: who-can-help
2724
attributes:
28-
label: Who Can Help?
29-
description: |
30-
If you know the relevant maintainer, please tag them (e.g., @username). If not, leave blank and a core maintainer will assign it.
25+
label: "Who Can Help?"
26+
description:
27+
"If you know the relevant maintainer, please tag them (e.g., @username). If not,
28+
leave blank and a core maintainer will assign it."
3129
placeholder: "@Username ..."
3230

3331
- type: checkboxes
3432
id: information-scripts-examples
3533
attributes:
36-
label: Code Source
37-
description: Where did the code causing the issue come from?
34+
label: "Code Source"
35+
description: "Where did the code causing the issue come from?"
3836
options:
3937
- label: "Official example scripts"
4038
- label: "My own modified scripts"
4139

4240
- type: textarea
4341
id: reproduction
4442
attributes:
45-
label: Steps to Reproduce
46-
description: |
47-
Provide a **minimal, reproducible example** with any relevant configuration. Use code blocks for formatting. Avoid screenshots as they can’t be easily copied.
48-
placeholder: |
49-
Steps to reproduce:
50-
1.
51-
2.
52-
3.
53-
Code snippet / Colab link:
54-
```python
55-
# your code here
56-
```
43+
label: "Steps to Reproduce"
44+
description:
45+
"Provide a minimal, reproducible example with any relevant configuration. Use
46+
code blocks for formatting. Avoid screenshots as they can’t be easily copied."
47+
placeholder:
48+
"Steps to reproduce:\n1.\n2.\n3.\nCode snippet / Colab link:\n```python\n# your
49+
code here\n```"
5750
validations:
5851
required: true
5952

6053
- type: textarea
6154
id: expected-behavior
6255
attributes:
63-
label: Expected Behavior
64-
description: Clearly describe what you expected to happen.
56+
label: "Expected Behavior"
57+
description: "Clearly describe what you expected to happen."
6558
validations:
6659
required: true

.github/ISSUE_TEMPLATE/feature-request.yml

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,56 @@
11
name: "Feature Proposal"
2-
description: Suggest a new feature for python-project-template.
2+
description: "Suggest a new feature for python-project-template."
33
labels: ["Feature request"]
4+
45
body:
56
- type: textarea
67
id: proposal-summary
78
attributes:
8-
label: Proposal Summary
9+
label: "Proposal Summary"
910
description:
1011
"Describe your proposal clearly. Include relevant information if available."
11-
placeholder: |
12-
Example:
13-
- Type: Example
14-
- Feature: New future to support
15-
- Code: https://github.com/...
12+
placeholder:
13+
"Example:\n- Type: Example\n- Feature: New feature to support\n- Code:
14+
https://github.com/..."
1615
validations:
1716
required: true
1817

1918
- type: textarea
2019
id: motivation
2120
attributes:
22-
label: Motivation
21+
label: "Motivation"
2322
description:
2423
"Explain why this proposal is valuable. Is it solving a limitation or adding a
2524
unique advantage? If it's related to another GitHub issue, please link it."
26-
placeholder: |
27-
Example:
28-
- Problem: ...
29-
- Benefit: ...
25+
placeholder: "Example:\n- Problem: ...\n- Benefit: ..."
3026
validations:
3127
required: true
3228

3329
- type: checkboxes
3430
id: open-source-status
3531
attributes:
36-
label: Open Source Status
32+
label: "Open Source Status"
3733
description: "This helps assess implementation feasibility."
3834
options:
3935
- label: "Implementation code is available"
4036

4137
- type: textarea
4238
id: useful-links
4339
attributes:
44-
label: Useful Links & References
40+
label: "Useful Links & References"
4541
description:
4642
"Provide additional resources or relevant repositories. Mention authors with
4743
@username if known."
48-
placeholder: |
49-
- Implementation repo: ...
50-
- Paper link: ...
51-
- Author: @gh-username
44+
placeholder:
45+
"- Implementation repo: ...\n- Paper link: ...\n- Author: @gh-username"
5246

5347
- type: textarea
5448
id: contribution
5549
attributes:
56-
label: Contribution Possibility
50+
label: "Contribution Possibility"
5751
description:
58-
"Can you help implement this? Please review the [Contribution
59-
Guide](https://github.com/danibcorr/python-project-template/blob/main/CONTRIBUTING.md)
60-
before offering code."
52+
"Can you help implement this? Please review the Contribution Guide
53+
(../CONTRIBUTING.md) before offering code."
6154
placeholder:
6255
"Yes, I can submit a PR / No, but I can help with testing / No, but I can help
6356
with design"

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,16 @@ __pycache__/
1414
*.egg-info/
1515
.pytest_cache/
1616
*.ruff_cache/
17+
.cache
18+
.complexipy_cache/
1719

1820
# Files
1921
*.pyc
2022
*.pyo
2123
*.pyd
2224
*.egg-info
25+
.python-version
26+
uv.lock
2327

2428
# Exceptions
2529
!/.devcontainer/*

.python-version

Lines changed: 0 additions & 1 deletion
This file was deleted.

AGENTS.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Agent Instructions
2+
3+
This project is a **Cookiecutter template** used to generate new Python projects with a
4+
professional, ready-to-use structure. It integrates best practices for code quality,
5+
testing, security, documentation, and CI/CD. Because it is highly dynamic, it includes
6+
many optional settings and Jinja2 template blocks.
7+
8+
## Getting Context
9+
10+
Before interacting with the template, make sure to:
11+
12+
1. **Review the README**: The `README.md` provides a high-level overview of the
13+
template, its features, CI/CD workflow, and instructions to generate new projects.
14+
Key features include:
15+
16+
- Linting & type checking (Ruff & Mypy)
17+
- Security scanning (Bandit)
18+
- Code complexity analysis (Complexipy)
19+
- Testing (Pytest)
20+
- Auto documentation (MkDocs + GitHub Pages)
21+
- Preconfigured GitHub Actions for CI/CD
22+
23+
2. **Review `AGENTS.md` in the generated project**: After generating a new project, the
24+
template copies an `AGENTS.md` file to the project itself
25+
(`{{cookiecutter.__package_slug}}/AGENTS.md`). This file provides project-specific
26+
instructions for agents.
27+
28+
## Working with the Template
29+
30+
- **Jinja2 blocks**: Because this is a Cookiecutter template, many files contain Jinja2
31+
template syntax. Agents should expect template variables like
32+
`{{ cookiecutter.project_name }}` or conditional blocks.
33+
34+
- **Testing functionality**:
35+
36+
- Create new projects inside the `workspaces/` directory.
37+
- Run the Makefile targets to validate functionality:
38+
39+
- `make install` → installs dependencies
40+
- `make pipeline` → runs linting, type checking, security analysis, complexity
41+
checks, and tests
42+
- `make all` → full workflow including documentation preview
43+
44+
- Ensure the environment is isolated (e.g., via `venv`) and that
45+
[`uv`](https://github.com/astral-sh/uv) is installed to handle grouped dependency
46+
installations.
47+
48+
## Summary
49+
50+
Agents interacting with this template should:
51+
52+
- Understand it is a **dynamic project generator**, not a single static project.
53+
- Always use the generated `workspaces/` directory for testing.
54+
- Follow the Makefile workflow to validate and test features.
55+
- Keep track of optional components and ensure `post_gen_project.py` handles cleanup
56+
properly.
57+
58+
By following these instructions, agents will be able to safely generate, test, and
59+
maintain projects derived from this Python template.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ professional foundation.
2929
- **Auto Documentation**: MkDocs + GitHub Pages for automated docs.
3030
- **CI/CD**: GitHub Actions automates linting, testing, and documentation deployment.
3131

32+
And more.
33+
3234
## GitHub Actions
3335

3436
The template includes a preconfigured GitHub Actions workflow that runs automatically on

0 commit comments

Comments
 (0)