Skip to content

A Python project template covering the entire development lifecycle with various integrations, configurations and modules.

License

Notifications You must be signed in to change notification settings

huxuan/ss-python

 
 

Repository files navigation

Serious Scaffold Python

A Python Project Template for Long-Term Maintainability.

CI CommitLint DevContainer Release Renovate Semantic Release Coverage Release PyPI PyPI - Python Version GitHub

pdm-managed pre-commit Checked with mypy Ruff Conventional Commits Pydantic v2 Copier Serious Scaffold Python Open in Dev Containers

Warning

Serious Scaffold Python is in the Alpha phase. Frequent changes and instability should be anticipated. Any feedback, comments, suggestions and contributions are welcome!

Serious Scaffold Python

Serious Scaffold Python is crafted for long-term, maintainable Python projects. It includes GitHub Actions and GitLab CI/CD, automated dependency updates via Renovate, and comprehensive linting, testing, and documentation. Key integrations like pdm for environment and dependency management, click for CLI development, and pydantic for configuration enhance project robustness. With copier’s easy project setup and continuous updating, your project stays aligned with best practices for sustainable development. Pre-configured dev containers and cross-platform CI support ensure maintainability from the start.

If you find this helpful, please consider sponsorship.

🛠️ Features

🔧 Prerequisites

pipx is required to manage the standalone tools used across the development lifecycle. Please refer to pipx's installation instructions here. Once pipx is set up, install the copier for project generation using the following command:

pipx install copier==9.4.1

🚀 Quickstart

  1. Generate the project.

    copier copy gh:serious-scaffold/ss-python /path/to/project
  2. Navigate to the project directory and initialize a git repository.

    cd /path/to/project
    git init
  3. Install standalone tools.

    make prerequisites
  4. Set up the development environment.

    make dev
  5. Commit the initialized project.

    git add .
    git commit -m "Initialize from serious-scaffold."
  6. That's it! Feel free to focus on the coding within src folder.

📜 License

MIT License, for more details, see the LICENSE file.

About

A Python project template covering the entire development lifecycle with various integrations, configurations and modules.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Languages

  • Jinja 94.1%
  • Makefile 2.8%
  • Dockerfile 1.6%
  • Other 1.5%