Welcome to Serious Scaffold Python’s documentation¶
An evolving Python project template that covers the full development lifecycle.
[!WARNING] Serious Scaffold Python is in the Alpha phase. Frequent changes and instability should be anticipated. Any feedback, comments, suggestions and contributions are welcome!
Setting up a project often involves more than just establishing a basic project structure. It involves tasks like integrating GitHub Actions or GitLab CI/CD, configuring lint, test and documentation, as well as implementing settings, logging and other frequently used modules. Serious Scaffold Python streamlines this process. Powered by copier, bootstrapping a new Python project can be done with a single command. By answering a few questions, the project will be fully configured and ready for development. Furthermore, the project can be updated alongside the advancement of the template.
If you find this helpful, please consider sponsorship.
🛠️ Features¶
Project setup and template update with copier.
Manage dependencies and virtual environments with pdm.
Build with setuptools and versioned with setuptools-scm.
Lint with pre-commit, mypy, ruff, toml-sort and commitlint.
Documentation with sphinx, the furo theme and MyST parser for markdown.
Develop Command Line Interfaces with typer.
Manage configurations with pydantic-settings.
Dev container for development and GitLab CI/CD.
Automate dependency updates with Renovate.
Automate version management and release with semantic-release.
Versioned documentation and pull request previews with Read the Docs.
Adapted configuration for GitHub, GitLab and self-managed GitLab.
Continuous Integration for Linux, MacOS and Windows [GitHub Only].
Continuous Integration for multiple Python versions.
Release with documentation, package and production container.
Centralize common actions with a unified Makefile.
VSCode settings with recommended extensions.
🔧 Prerequisites¶
Certain system-level Python applications are needed and it is recommended to use pipx to install and run them in isolated environments. Refer to pipx’s installation instructions here. Once pipx
is set up, install the necessary tools using the following commands.
# Copier: Template rendering for projects.
pipx install copier==9.2.0
# PDM: A modern Python package and dependency manager supporting the latest PEP standards.
pipx install pdm==2.15.2
# Pre-commit: Automates Git hooks for code quality checks.
pipx install pre-commit==3.7.1
🚀 Quickstart¶
Generate the project.
copier copy gh:serious-scaffold/ss-python /path/to/project
Navigate to the project directory and initialize a git repository.
cd /path/to/project git init
Set up the development environment.
make dev
Commit the initialized project.
git add . git commit -m "Initialize from serious-scaffold."
That’s it! Feel free to focus on the coding within
src
folder.
📜 License¶
MIT License, for more details, see the LICENSE file.