Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .cookiecutter.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"_commit": "a6b393f77763f21fffba1b3c994c772bba8ef19b",
"_commit": "f46d0e9611ca496d3600e43343a01dcfb86caee6",
"_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python",
"add_rust_extension": false,
"author": "Kyle Oliver",
Expand Down
4 changes: 2 additions & 2 deletions .cruft.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python",
"commit": "a6b393f77763f21fffba1b3c994c772bba8ef19b",
"commit": "f46d0e9611ca496d3600e43343a01dcfb86caee6",
"checkout": null,
"context": {
"cookiecutter": {
Expand All @@ -20,7 +20,7 @@
"license": "MIT",
"development_status": "Development Status :: 1 - Planning",
"_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python",
"_commit": "a6b393f77763f21fffba1b3c994c772bba8ef19b"
"_commit": "f46d0e9611ca496d3600e43343a01dcfb86caee6"
}
},
"directory": null
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ on:
- "noxfile.py"
- "pyproject.toml"
- ".github/workflows/build-docs.yml"
- ".ruff.toml" # Affects docstrings via linting
- "pyrightconfig.json" # Affects type hints in docs
- ".ruff.toml" # Affects docstrings via linting
- "pyrightconfig.json" # Affects type hints in docs

push:
branches:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ jobs:
id: current_version
run: echo "CURRENT_VERSION=v$(uvx --from commitizen cz version -p)" >> $GITHUB_OUTPUT


build_and_testpypi:
name: Build & Publish to TestPyPI
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,4 @@ repos:
name: Commitizen
- id: commitizen-branch
name: Commitizen Branch
stages: [ commit-msg ]
stages: [commit-msg]
9 changes: 3 additions & 6 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@
"source.organizeImports": "always"
}
},
"ruff.args": [
"--config",
"${workspaceFolder}/.ruff.toml"
],
"ruff.args": ["--config", "${workspaceFolder}/.ruff.toml"],
"python.linting.enabled": true,
"python.linting.ruffEnabled": true,
// Pyright
Expand All @@ -36,8 +33,8 @@
"rust-analyzer.checkOnSave.command": "clippy",

// Prettier for non-Python text formats
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }
}
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
## v0.24.0 (2025-08-01)

## v0.23.0 (2025-08-01)

## v0.21.0 (2025-07-27)
Expand Down
10 changes: 9 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,20 @@ We welcome pull requests! For significant changes, it's best to open an issue fi
### Setting Up Your Development Environment

1. **Fork and clone the repository:**

```bash
git clone https://github.com/56kyle/robust-python-demo.git
cd robust-python-demo
```

2. **Install dependencies:**

```bash
uv sync
```

3. **Set up pre-commit hooks:**

```bash
uvx nox -s pre-commit -- install
```
Expand All @@ -65,6 +68,7 @@ We welcome pull requests! For significant changes, it's best to open an issue fi
### Making Changes

1. **Create a feature branch:**

```bash
git checkout -b feature/your-feature-name
# or
Expand All @@ -74,6 +78,7 @@ We welcome pull requests! For significant changes, it's best to open an issue fi
2. **Make your changes** following our coding standards (see below)

3. **Test your changes:**

```bash
# Run the full test suite
uvx nox -s tests-python
Expand All @@ -86,6 +91,7 @@ We welcome pull requests! For significant changes, it's best to open an issue fi
```

4. **Check code quality:**

```bash
# Format code
uvx nox -s format-python
Expand Down Expand Up @@ -136,6 +142,7 @@ This project follows these standards:

1. **Push your branch** to your fork
2. **Open a pull request** with:

- Clear title describing the change
- Description explaining what and why
- Link to any relevant issues
Expand Down Expand Up @@ -190,9 +197,10 @@ Contributors will be recognized in our release notes and documentation. Thank yo

---

*This project was generated from the [cookiecutter-robust-python][cookiecutter-robust-python] template.*
_This project was generated from the [cookiecutter-robust-python][cookiecutter-robust-python] template._

<!-- Reference Links -->

[code-of-conduct]: CODE_OF_CONDUCT.md
[issues]: https://github.com/56kyle/robust-python-demo/issues
[discussions]: https://github.com/56kyle/robust-python-demo/discussions
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,17 @@ For detailed API documentation and CLI command references, see the **[Documentat

This project uses a robust set of tools for development, testing, and quality assurance. All significant automated tasks are run via [:term:`Nox`](nox-documentation), orchestrated by the central `noxfile.py`.

* **Run all checks (lint, typecheck, security):** `uvx nox -s check`
* **Run test suite with coverage:** `uvx nox -s test`
* **Build documentation:** `uvx nox -s docs`
* **Build package:** `uvx nox -s build`
* **See all available tasks:** `uvx nox -l`
- **Run all checks (lint, typecheck, security):** `uvx nox -s check`
- **Run test suite with coverage:** `uvx nox -s test`
- **Build documentation:** `uvx nox -s docs`
- **Build package:** `uvx nox -s build`
- **See all available tasks:** `uvx nox -l`

Explore the `noxfile.py` and the project documentation for detailed information on the automated workflow.

## Contributing

(This section should guide contributions *to this specific generated project*, not the template. It should refer to the project's `CODE_OF_CONDUCT.md` and link to a `CONTRIBUTING.md` specific to the project, if you choose to generate one.)
(This section should guide contributions _to this specific generated project_, not the template. It should refer to the project's `CODE_OF_CONDUCT.md` and link to a `CONTRIBUTING.md` specific to the project, if you choose to generate one.)

Report bugs or suggest features via the [issue tracker](https://github.com/56kyle/robust-python-demo/issues).

Expand All @@ -90,6 +90,6 @@ Distributed under the terms of the **MIT** license. See [LICENSE](LICENSE) for d
**This project was generated from the [cookiecutter-robust-python template][cookiecutter-robust-python].**

<!-- Reference Links -->
[cookiecutter-robust-python]: https://github.com/56kyle/cookiecutter-robust-python

[cookiecutter-robust-python]: https://github.com/56kyle/cookiecutter-robust-python
[documentation]: https://robust-python-demo.readthedocs.io/
10 changes: 8 additions & 2 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,13 @@ def setup_venv(session: Session) -> None:
def setup_remote(session: Session) -> None:
"""Set up the remote repository for the current project."""
command: list[str] = [
"python", SCRIPTS_FOLDER / "setup-remote.py", REPO_ROOT, "--host", REPOSITORY_HOST, "--path", REPOSITORY_PATH
"python",
SCRIPTS_FOLDER / "setup-remote.py",
REPO_ROOT,
"--host",
REPOSITORY_HOST,
"--path",
REPOSITORY_PATH,
]
session.run(*command, external=True)

Expand Down Expand Up @@ -134,7 +140,7 @@ def tests_python(session: Session) -> None:
"--cov-report=term",
"--cov-report=xml",
f"--junitxml={junitxml_file}",
"tests/"
"tests/",
)


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "robust-python-demo"
version = "0.23.0"
version = "0.24.0"
description = "robust-python-demo"
authors = [
{ name = "Kyle Oliver", email = "56kyleoliver+cookiecutter-robust-python@gmail.com" },
Expand Down
5 changes: 1 addition & 4 deletions pyrightconfig.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
{
"include": [
"src",
"tests"
],
"include": ["src", "tests"],
"exclude": [
".venv",
"venv",
Expand Down
1 change: 1 addition & 0 deletions scripts/get-release-notes.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Script responsible for getting the release notes of the robust-python-demo package."""

import argparse
from pathlib import Path

Expand Down
2 changes: 1 addition & 1 deletion scripts/setup-release.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def setup_release(increment: Optional[str] = None) -> None:
commands: list[list[str]] = [
["uv", "sync", "--all-groups"],
["git", "add", "."],
["git", "commit", "-m", f"bump: version {current_version} → {new_version}", "--no-verify"]
["git", "commit", "-m", f"bump: version {current_version} → {new_version}", "--no-verify"],
]

for command in commands:
Expand Down
4 changes: 3 additions & 1 deletion scripts/setup-remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ def get_parser() -> argparse.ArgumentParser:
help="Path to the repo's root directory (must already exist).",
)
parser.add_argument("-h", "--host", dest="repository_host", help="Repository host (e.g., github.com, gitlab.com).")
parser.add_argument("-p", "--path", dest="repository_path", help="Repository path (e.g., user/repo, group/subgroup/repo).")
parser.add_argument(
"-p", "--path", dest="repository_path", help="Repository path (e.g., user/repo, group/subgroup/repo)."
)
return parser


Expand Down
25 changes: 12 additions & 13 deletions scripts/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,7 @@ def remove_readonly(func: Callable[[str], Any], path: str, _: Any) -> None:
def get_package_version() -> str:
"""Gets the package version."""
result: subprocess.CompletedProcess = subprocess.run(
["uvx", "--from", "commitizen", "cz", "version", "-p"],
cwd=REPO_FOLDER,
capture_output=True
["uvx", "--from", "commitizen", "cz", "version", "-p"], cwd=REPO_FOLDER, capture_output=True
)
return result.stdout.decode("utf-8").strip()

Expand Down Expand Up @@ -98,9 +96,7 @@ def get_latest_tag() -> Optional[str]:
find_last: list[str] = ["grep", "-v", '"${GITHUB_REF_NAME}"']
echo_none: list[str] = ["echo", "''"]
result: subprocess.CompletedProcess = subprocess.run(
[*sort_tags, "|", *find_last, "|", "tail", "-n1", "||", *echo_none],
cwd=REPO_FOLDER,
capture_output=True
[*sort_tags, "|", *find_last, "|", "tail", "-n1", "||", *echo_none], cwd=REPO_FOLDER, capture_output=True
)
tag: str = result.stdout.decode("utf-8").strip()
if tag == "":
Expand All @@ -121,14 +117,17 @@ def get_latest_release_notes() -> str:
)
rev_range: str = "" if latest_tag is None else f"{latest_tag}..{latest_version}"
command: list[str] = [
"uvx", "--from", "commitizen", "cz", "changelog", rev_range, "--dry-run", "--unreleased-version", latest_version
"uvx",
"--from",
"commitizen",
"cz",
"changelog",
rev_range,
"--dry-run",
"--unreleased-version",
latest_version,
]
result: subprocess.CompletedProcess = subprocess.run(
command,
cwd=REPO_FOLDER,
capture_output=True,
check=True
)
result: subprocess.CompletedProcess = subprocess.run(command, cwd=REPO_FOLDER, capture_output=True, check=True)
return result.stdout.decode("utf-8")


Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading