ss-python


Namess-python JSON
Version 0.0.61 PyPI version JSON
download
home_pageNone
SummaryA Python Project Template for Long-Term Maintainability.
upload_time2024-12-03 01:22:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords copier-template full-development-lifecycle project-template serious-scaffold
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Serious Scaffold Python

A Python Project Template for Long-Term Maintainability.

[![CI](https://github.com/serious-scaffold/ss-python/actions/workflows/ci.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/ci.yml)
[![CommitLint](https://github.com/serious-scaffold/ss-python/actions/workflows/commitlint.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/commitlint.yml)
[![DevContainer](https://github.com/serious-scaffold/ss-python/actions/workflows/devcontainer.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/devcontainer.yml)
[![Release](https://github.com/serious-scaffold/ss-python/actions/workflows/release.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/release.yml)
[![Renovate](https://github.com/serious-scaffold/ss-python/actions/workflows/renovate.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/renovate.yml)
[![Semantic Release](https://github.com/serious-scaffold/ss-python/actions/workflows/semantic-release.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/semantic-release.yml)
[![Coverage](https://img.shields.io/endpoint?url=https://serious-scaffold.github.io/ss-python/_static/badges/coverage.json)](https://serious-scaffold.github.io/ss-python/reports/coverage)
[![Release](https://img.shields.io/github/v/release/serious-scaffold/ss-python)](https://github.com/serious-scaffold/ss-python/releases)
[![PyPI](https://img.shields.io/pypi/v/ss-python)](https://pypi.org/project/ss-python/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ss-python)](https://pypi.org/project/ss-python/)
[![GitHub](https://img.shields.io/github/license/serious-scaffold/ss-python)](https://github.com/serious-scaffold/ss-python/blob/main/LICENSE)

[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm-project.org)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
[![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/5697b1e4c4a9790ece607654e6c02a160620c7e1/docs/badge/v2.json)](https://pydantic.dev)
[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-orange.json)](https://github.com/copier-org/copier)
[![Serious Scaffold Python](https://img.shields.io/endpoint?url=https://serious-scaffold.github.io/ss-python/_static/badges/logo.json)](https://serious-scaffold.github.io/ss-python)
[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/serious-scaffold/ss-python)

> [!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](https://serious-scaffold.github.io/ss-python/_static/images/logo.svg)](https://github.com/serious-scaffold/ss-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](https://github.com/sponsors/huxuan).

## ๐Ÿ› ๏ธ Features

- Project setup and template update with [copier](https://copier.readthedocs.io/).
- Manage dependencies and virtual environments with [pdm](https://pdm-project.org/).
- Build with [setuptools](https://github.com/pypa/setuptools) and versioned with [setuptools-scm](https://github.com/pypa/setuptools_scm/).
- Lint with [pre-commit](https://pre-commit.com), [mypy](http://www.mypy-lang.org/), [ruff](https://github.com/charliermarsh/ruff), [pyproject-fmt](https://github.com/tox-dev/pyproject-fmt) and [commitlint](https://commitlint.js.org/).
- Test with [pytest](https://docs.pytest.org/) and [coverage](https://coverage.readthedocs.io) for threshold and reports.
- Documentation with [sphinx](https://www.sphinx-doc.org/), the [furo](https://pradyunsg.me/furo) theme and [MyST parser](https://myst-parser.readthedocs.io/) for markdown.
- Develop Command Line Interfaces with [click](https://click.palletsprojects.com/).
- Manage configurations with [pydantic-settings](https://docs.pydantic.dev/latest/usage/pydantic_settings/).
- [Dev container](https://containers.dev/) for development and GitLab CI/CD.
- Automate dependency updates with [Renovate](https://github.com/renovatebot/renovate).
- Automate version management and release with [semantic-release](https://github.com/semantic-release/semantic-release).
- [Versioned documentation](https://docs.readthedocs.io/en/stable/versions.html) and [pull request previews](https://docs.readthedocs.io/en/stable/pull-requests.html) with [Read the Docs](https://readthedocs.org/).
- 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

[pipx](https://pipx.pypa.io/) is required to manage the standalone tools used across the development lifecycle.
Please refer to pipx's installation instructions [here](https://pipx.pypa.io/stable/installation/).
Once pipx is set up, install the copier for project generation using the following command:

```bash
pipx install copier==9.4.1
```

## ๐Ÿš€ Quickstart

1. Generate the project.

   ```bash
   copier copy gh:serious-scaffold/ss-python /path/to/project
   ```

1. Navigate to the project directory and initialize a git repository.

   ```bash
   cd /path/to/project
   git init
   ```

1. Install standalone tools.

   ```bash
   make prerequisites
   ```

1. Set up the development environment.

   ```bash
   make dev
   ```

1. Commit the initialized project.

   ```bash
   git add .
   git commit -m "Initialize from serious-scaffold."
   ```

1. That's it! Feel free to focus on the coding within `src` folder.

## ๐Ÿ“œ License

MIT License, for more details, see the [LICENSE](https://github.com/serious-scaffold/ss-python/blob/main/LICENSE) file.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ss-python",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "copier-template, full-development-lifecycle, project-template, serious-scaffold",
    "author": null,
    "author_email": "huxuan <i@huxuan.org>",
    "download_url": "https://files.pythonhosted.org/packages/e6/30/9ebd50234a59931a39a8702edd23ff6aa97f46e5bd9c3b0eea77cd29083d/ss_python-0.0.61.tar.gz",
    "platform": null,
    "description": "# Serious Scaffold Python\n\nA Python Project Template for Long-Term Maintainability.\n\n[![CI](https://github.com/serious-scaffold/ss-python/actions/workflows/ci.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/ci.yml)\n[![CommitLint](https://github.com/serious-scaffold/ss-python/actions/workflows/commitlint.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/commitlint.yml)\n[![DevContainer](https://github.com/serious-scaffold/ss-python/actions/workflows/devcontainer.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/devcontainer.yml)\n[![Release](https://github.com/serious-scaffold/ss-python/actions/workflows/release.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/release.yml)\n[![Renovate](https://github.com/serious-scaffold/ss-python/actions/workflows/renovate.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/renovate.yml)\n[![Semantic Release](https://github.com/serious-scaffold/ss-python/actions/workflows/semantic-release.yml/badge.svg)](https://github.com/serious-scaffold/ss-python/actions/workflows/semantic-release.yml)\n[![Coverage](https://img.shields.io/endpoint?url=https://serious-scaffold.github.io/ss-python/_static/badges/coverage.json)](https://serious-scaffold.github.io/ss-python/reports/coverage)\n[![Release](https://img.shields.io/github/v/release/serious-scaffold/ss-python)](https://github.com/serious-scaffold/ss-python/releases)\n[![PyPI](https://img.shields.io/pypi/v/ss-python)](https://pypi.org/project/ss-python/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ss-python)](https://pypi.org/project/ss-python/)\n[![GitHub](https://img.shields.io/github/license/serious-scaffold/ss-python)](https://github.com/serious-scaffold/ss-python/blob/main/LICENSE)\n\n[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm-project.org)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)\n[![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/5697b1e4c4a9790ece607654e6c02a160620c7e1/docs/badge/v2.json)](https://pydantic.dev)\n[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-orange.json)](https://github.com/copier-org/copier)\n[![Serious Scaffold Python](https://img.shields.io/endpoint?url=https://serious-scaffold.github.io/ss-python/_static/badges/logo.json)](https://serious-scaffold.github.io/ss-python)\n[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/serious-scaffold/ss-python)\n\n> [!WARNING]\n> _Serious Scaffold Python_ is in the **Alpha** phase.\n> Frequent changes and instability should be anticipated.\n> Any feedback, comments, suggestions and contributions are welcome!\n\n[![Serious Scaffold Python](https://serious-scaffold.github.io/ss-python/_static/images/logo.svg)](https://github.com/serious-scaffold/ss-python)\n\nSerious 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\u2019s 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.\n\nIf you find this helpful, please consider [sponsorship](https://github.com/sponsors/huxuan).\n\n## \ud83d\udee0\ufe0f Features\n\n- Project setup and template update with [copier](https://copier.readthedocs.io/).\n- Manage dependencies and virtual environments with [pdm](https://pdm-project.org/).\n- Build with [setuptools](https://github.com/pypa/setuptools) and versioned with [setuptools-scm](https://github.com/pypa/setuptools_scm/).\n- Lint with [pre-commit](https://pre-commit.com), [mypy](http://www.mypy-lang.org/), [ruff](https://github.com/charliermarsh/ruff), [pyproject-fmt](https://github.com/tox-dev/pyproject-fmt) and [commitlint](https://commitlint.js.org/).\n- Test with [pytest](https://docs.pytest.org/) and [coverage](https://coverage.readthedocs.io) for threshold and reports.\n- Documentation with [sphinx](https://www.sphinx-doc.org/), the [furo](https://pradyunsg.me/furo) theme and [MyST parser](https://myst-parser.readthedocs.io/) for markdown.\n- Develop Command Line Interfaces with [click](https://click.palletsprojects.com/).\n- Manage configurations with [pydantic-settings](https://docs.pydantic.dev/latest/usage/pydantic_settings/).\n- [Dev container](https://containers.dev/) for development and GitLab CI/CD.\n- Automate dependency updates with [Renovate](https://github.com/renovatebot/renovate).\n- Automate version management and release with [semantic-release](https://github.com/semantic-release/semantic-release).\n- [Versioned documentation](https://docs.readthedocs.io/en/stable/versions.html) and [pull request previews](https://docs.readthedocs.io/en/stable/pull-requests.html) with [Read the Docs](https://readthedocs.org/).\n- Adapted configuration for GitHub, GitLab and self-managed GitLab.\n- Continuous Integration for Linux, MacOS and Windows [GitHub Only].\n- Continuous Integration for multiple Python versions.\n- Release with documentation, package and production container.\n- Centralize common actions with a unified Makefile.\n- VSCode settings with recommended extensions.\n\n## \ud83d\udd27 Prerequisites\n\n[pipx](https://pipx.pypa.io/) is required to manage the standalone tools used across the development lifecycle.\nPlease refer to pipx's installation instructions [here](https://pipx.pypa.io/stable/installation/).\nOnce pipx is set up, install the copier for project generation using the following command:\n\n```bash\npipx install copier==9.4.1\n```\n\n## \ud83d\ude80 Quickstart\n\n1. Generate the project.\n\n   ```bash\n   copier copy gh:serious-scaffold/ss-python /path/to/project\n   ```\n\n1. Navigate to the project directory and initialize a git repository.\n\n   ```bash\n   cd /path/to/project\n   git init\n   ```\n\n1. Install standalone tools.\n\n   ```bash\n   make prerequisites\n   ```\n\n1. Set up the development environment.\n\n   ```bash\n   make dev\n   ```\n\n1. Commit the initialized project.\n\n   ```bash\n   git add .\n   git commit -m \"Initialize from serious-scaffold.\"\n   ```\n\n1. That's it! Feel free to focus on the coding within `src` folder.\n\n## \ud83d\udcdc License\n\nMIT License, for more details, see the [LICENSE](https://github.com/serious-scaffold/ss-python/blob/main/LICENSE) file.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python Project Template for Long-Term Maintainability.",
    "version": "0.0.61",
    "project_urls": {
        "documentation": "https://serious-scaffold.github.io/ss-python",
        "issue": "https://github.com/serious-scaffold/ss-python/issues",
        "repository": "https://github.com/serious-scaffold/ss-python"
    },
    "split_keywords": [
        "copier-template",
        " full-development-lifecycle",
        " project-template",
        " serious-scaffold"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c88d69d04517f768cc4c61180a443389ed79cc250824f33a84731f17ac0d7ab1",
                "md5": "233b41d8a9faf9982aa155bbc60ffc69",
                "sha256": "45693559d0a6915c96c89b1c68816e20a22a65531b160642a85a1883217f2745"
            },
            "downloads": -1,
            "filename": "ss_python-0.0.61-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "233b41d8a9faf9982aa155bbc60ffc69",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 6042,
            "upload_time": "2024-12-03T01:22:29",
            "upload_time_iso_8601": "2024-12-03T01:22:29.948094Z",
            "url": "https://files.pythonhosted.org/packages/c8/8d/69d04517f768cc4c61180a443389ed79cc250824f33a84731f17ac0d7ab1/ss_python-0.0.61-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e6309ebd50234a59931a39a8702edd23ff6aa97f46e5bd9c3b0eea77cd29083d",
                "md5": "860fc0412bb1519371f00896b5033214",
                "sha256": "64388de58fce872f2e9976ed174cb2e72ab5ae8b8b3d9be431af090e4cab46b1"
            },
            "downloads": -1,
            "filename": "ss_python-0.0.61.tar.gz",
            "has_sig": false,
            "md5_digest": "860fc0412bb1519371f00896b5033214",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 502155,
            "upload_time": "2024-12-03T01:22:31",
            "upload_time_iso_8601": "2024-12-03T01:22:31.672381Z",
            "url": "https://files.pythonhosted.org/packages/e6/30/9ebd50234a59931a39a8702edd23ff6aa97f46e5bd9c3b0eea77cd29083d/ss_python-0.0.61.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-03 01:22:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "serious-scaffold",
    "github_project": "ss-python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ss-python"
}
        
Elapsed time: 0.39389s