diff --git a/README.md b/README.md index 7aea3b9a..436d64e9 100644 --- a/README.md +++ b/README.md @@ -27,33 +27,33 @@ An evolving Python project template that covers the full development lifecycle. [![Serious Scaffold Python](https://serious-scaffold.github.io/ss-python/_static/images/logo.svg)](https://github.com/serious-scaffold/ss-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](https://github.com/serious-scaffold/ss-python) streamlines this process. Powered by [`copier`](https://copier.readthedocs.io/), 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. +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](https://github.com/serious-scaffold/ss-python) streamlines this process. Powered by [copier](https://copier.readthedocs.io/), 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](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/). -- Version the package using [dynamic SCM tag](https://backend.pdm-project.org/metadata/#read-from-scm-tag-supporting-git-and-hg) with [`pdm-backend`](https://backend.pdm-project.org/). -- Containerization for development and deployment with [dev container](https://containers.dev/). +- Project setup and template update with [copier](https://copier.readthedocs.io/). +- Manage dependencies and virtual environments with [pdm](https://pdm-project.org/). +- Build with [pdm-backend](https://backend.pdm-project.org/) and versioned with [SCM tag](https://backend.pdm-project.org/metadata/#read-from-scm-tag-supporting-git-and-hg). +- Lint with [pre-commit](https://pre-commit.com), [mypy](http://www.mypy-lang.org/), [ruff](https://github.com/charliermarsh/ruff), [toml-sort](https://github.com/pappasam/toml-sort) and [commitlint](https://commitlint.js.org/). +- Test with [pytest](https://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 [typer](https://typer.tiangolo.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 Git hooks with [pre-commit hooks](https://github.com/pre-commit/pre-commit-hooks) and [local](https://pre-commit.com/#repository-local-hooks) linters. -- Lint with [`mypy`](http://www.mypy-lang.org/), [`ruff`](https://github.com/charliermarsh/ruff), [`toml-sort`](https://github.com/pappasam/toml-sort) and [`commitlint`](https://commitlint.js.org/). -- Test with [`pytest`](https://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 [mypy](https://mypy.readthedocs.io/en/stable/command_line.html?report-generation)/[coverage](https://coverage.readthedocs.io/en/7.3.0/cmd.html#html-reporting-coverage-html) reports. -- Continuous Integration for multiple Python versions and platforms with [GitHub Actions](https://docs.github.com/actions). -- Containerized Continuous Integration for multiple Python versions with [GitLab CI/CD](https://docs.gitlab.com/ee/ci/). -- Latest stable documentation published to [GitHub](https://docs.github.com/en/pages)/[GitLab](https://docs.gitlab.com/ee/user/project/pages/) Pages. - [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/). -- Develop Command Line Interfaces with [`typer`](https://typer.tiangolo.com/). -- Manage configurations with [`pydantic-settings`](https://docs.pydantic.dev/latest/usage/pydantic_settings/). +- 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`](https://pypa.github.io/pipx/) to install and run them in isolated environments. Refer to pipx's installation instructions [here](https://pypa.github.io/pipx/installation/). Once `pipx` is set up, install the necessary tools using the following commands. +Certain system-level Python applications are needed and it is recommended to use [pipx](https://pypa.github.io/pipx/) to install and run them in isolated environments. Refer to pipx's installation instructions [here](https://pypa.github.io/pipx/installation/). Once `pipx` is set up, install the necessary tools using the following commands. ```bash # Copier: Template rendering for projects. diff --git a/includes/sample.jinja b/includes/sample.jinja index cc6dead4..6b6b948b 100644 --- a/includes/sample.jinja +++ b/includes/sample.jinja @@ -5,7 +5,7 @@ [% from pathjoin("includes", "variable.jinja") import repo_url with context -%] [![{{ project_name }}](https://{{ page_url() }}/_static/images/logo.svg)](https://{{ repo_url() }}) -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](https://github.com/serious-scaffold/ss-python) streamlines this process. Powered by [`copier`](https://copier.readthedocs.io/), 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. +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](https://github.com/serious-scaffold/ss-python) streamlines this process. Powered by [copier](https://copier.readthedocs.io/), 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 repo_platform == 'github' -%] If you find this helpful, please consider [sponsorship](https://github.com/sponsors/{{ author_name }}). @@ -14,27 +14,27 @@ If you find this helpful, please consider [sponsorship](https://github.com/spons ## 🛠️ Features -- Project setup and template update with [`copier`](https://copier.readthedocs.io/). -- Manage dependencies and virtual environments with [`pdm`](https://pdm-project.org/). -- Version the package using [dynamic SCM tag](https://backend.pdm-project.org/metadata/#read-from-scm-tag-supporting-git-and-hg) with [`pdm-backend`](https://backend.pdm-project.org/). -- Containerization for development and deployment with [dev container](https://containers.dev/). +- Project setup and template update with [copier](https://copier.readthedocs.io/). +- Manage dependencies and virtual environments with [pdm](https://pdm-project.org/). +- Build with [pdm-backend](https://backend.pdm-project.org/) and versioned with [SCM tag](https://backend.pdm-project.org/metadata/#read-from-scm-tag-supporting-git-and-hg). +- Lint with [pre-commit](https://pre-commit.com), [mypy](http://www.mypy-lang.org/), [ruff](https://github.com/charliermarsh/ruff), [toml-sort](https://github.com/pappasam/toml-sort) and [commitlint](https://commitlint.js.org/). +- Test with [pytest](https://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 [typer](https://typer.tiangolo.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 Git hooks with [pre-commit hooks](https://github.com/pre-commit/pre-commit-hooks) and [local](https://pre-commit.com/#repository-local-hooks) linters. -- Lint with [`mypy`](http://www.mypy-lang.org/), [`ruff`](https://github.com/charliermarsh/ruff), [`toml-sort`](https://github.com/pappasam/toml-sort) and [`commitlint`](https://commitlint.js.org/). -- Test with [`pytest`](https://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 [mypy](https://mypy.readthedocs.io/en/stable/command_line.html?report-generation)/[coverage](https://coverage.readthedocs.io/en/7.3.0/cmd.html#html-reporting-coverage-html) reports. -- Continuous Integration for multiple Python versions and platforms with [GitHub Actions](https://docs.github.com/actions). -- Containerized Continuous Integration for multiple Python versions with [GitLab CI/CD](https://docs.gitlab.com/ee/ci/). -- Latest stable documentation published to [GitHub](https://docs.github.com/en/pages)/[GitLab](https://docs.gitlab.com/ee/user/project/pages/) Pages. - [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/). -- Develop Command Line Interfaces with [`typer`](https://typer.tiangolo.com/). -- Manage configurations with [`pydantic-settings`](https://docs.pydantic.dev/latest/usage/pydantic_settings/). +- 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`](https://pypa.github.io/pipx/) to install and run them in isolated environments. Refer to pipx's installation instructions [here](https://pypa.github.io/pipx/installation/). Once `pipx` is set up, install the necessary tools using the following commands. +Certain system-level Python applications are needed and it is recommended to use [pipx](https://pypa.github.io/pipx/) to install and run them in isolated environments. Refer to pipx's installation instructions [here](https://pypa.github.io/pipx/installation/). Once `pipx` is set up, install the necessary tools using the following commands. ```bash # Copier: Template rendering for projects.