Minimal Python Project Skeleton
About The Project
This folder structure should act as a simple starting point for your next python project.
.
├── .envrc
├── .github
│ ├── dependabot.yml
│ └── workflows
│ ├── docs.yaml
│ ├── pre-commit.yaml
│ ├── release.yaml
│ └── test.yaml
├── .gitignore
├── .pre-commit-config.yaml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── README.org
├── docs
│ ├── api.md
│ └── index.md
├── mkdocs.yml
├── pyproject.toml
├── src
│ └── minimal_python_project_skeleton
│ └── __init__.py
└── test
└── test_func.py
7 directories, 19 files
It contains just the minimum to get you started with a ready configured GitHub actions for automated linting, testing, documenting with MkDocs and mike and releasing on PiPy.
Getting Started
Use this template directly to create a new GitHub repository or just clone the repository to your desired destination and start working on your new project.
The docs workflow publishes one docs version per branch to a gh-pages branch. After the first push, set Settings -> Pages -> Source to Deploy from a branch: gh-pages, / (root). The site root works after the first push to main.
I have marked all the relevant parts that you might want to adjust.
.github/workflows/release.yaml: url: https://pypi.org/p/minimal-python-project-skeleton # TODO: Replace with your PyPI project name
.github/workflows/release.yaml: url: https://test.pypi.org/p/minimal-python-project-skeleton # TODO: Replace with your TestPyPI project name
docs/api.md:<!-- TODO: Change package name -->
mkdocs.yml:site_name: minimal_python_project_skeleton # TODO: Change project name
mkdocs.yml:repo_url: https://github.com/MArpogaus/minimal_python_project_skeleton # TODO: Change project repo
pyproject.toml:dependencies = [] # TODO: Add dependencies
pyproject.toml:license = { text = "MIT" } # TODO: Choose license
pyproject.toml:name = "minimal_python_project_skeleton" # TODO: Change package name
pyproject.toml: 'minimal_python_project_skeleton[test]', # TODO: Change package name
pyproject.toml:Changelog = "https://github.com/MArpogaus/minimal_python_project_skeleton/blob/dev/CHANGELOG.md" # TODO: Change project repo
pyproject.toml:Documentation = "https://marpogaus.github.io/minimal_python_project_skeleton" # TODO: Change project repo
pyproject.toml:Issues = "https://github.com/MArpogaus/minimal_python_project_skeleton/issues" # TODO: Change project repo
pyproject.toml:Repository = "https://github.com/MArpogaus/minimal_python_project_skeleton" # TODO: Change project repo
Pro-Tipp: If you later want to update the template, keep a separate branch (i.e. skeleton) around and cherry-pick the changes you would like to keep for future projects.
This way you can also pull the latest version from upstream and checkout the new files you would like to use in your project.
Installation
This package is available on PyPI. You install it using pip:
pip install minimal_python_project_skeleton
Contributing
Any Contributions are greatly appreciated! If you have a question, an issue or would like to contribute, please read our contributing guidelines.
License
Distributed under the MIT License
Contact
Marcel Arpogaus - znepry.necbtnhf@tznvy.pbz (encrypted with ROT13)
Project Link: https://github.com/MArpogaus/python-project-skeleton
Acknowledgments
- README inspired by othneildrew/Best-README-Template
- Contribution guidelines inspired by probabilists/zuko
- Release workflow inspired by packaging.python.org
Metadata
Release files for minimal-python-project-skeleton 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| minimal_python_project_skeleton-0.4.0.tar.gz | 14.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| minimal_python_project_skeleton-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.6 kB
Release files / minimal_python_project_skeleton-0.4.0.tar.gz
| Download URL | minimal_python_project_skeleton-0.4.0.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3cf7851bc73a6f7fd6774a2da35ca98feeb2d38f7f9ce1a61f8de1de28ea931e
|
|
BLAKE2b-256 checksum How to use checksums |
b34d6d4c1434b210a5846e1de0d75893be7badac55721cffd56021668ff97cbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / minimal_python_project_skeleton-0.4.0-py3-none-any.whl
| Download URL | minimal_python_project_skeleton-0.4.0-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
083ff4553d5c9f42266b13993fe2b7939d14388d8ceef24fb89b914ba084420d
|
|
BLAKE2b-256 checksum How to use checksums |
36275e7cfd8d2536f1aa1450976c4b405fd65a46fde262b844686254bf264f37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log