huxuan / ss-python

A Python project template covering the entire development lifecycle with various integrations, configurations and modules.
https://huxuan.github.io/ss-python/
MIT License
1 stars 0 forks source link

Serious Scaffold Python

An evolving Python project template that covers the full development lifecycle.

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

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

🔧 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.3.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.