Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e77b370
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 7, 2025
cab740b
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 8, 2025
2079b48
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 8, 2025
087ac97
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 8, 2025
907a354
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 8, 2025
12c62ac
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 8, 2025
c53cbd5
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
d3ab3e3
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
acdc477
Revert "chore: update demo to the latest cookiecutter-robust-python"
56kyle Jul 9, 2025
0dc4578
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
d296d49
Revert "chore: update demo to the latest cookiecutter-robust-python"
56kyle Jul 9, 2025
bc74943
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
49f6948
fix: resolve conflicts
56kyle Jul 9, 2025
213a067
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
f9a6f8c
fix: resolve conflicts
56kyle Jul 9, 2025
eca20a3
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
9340c95
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
e2028fc
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
f144fec
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
6b9da70
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
20567e5
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
59a1de9
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
ebaf40d
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
add6f61
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
3bbf5bf
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
e78d70f
Revert "chore: update demo to the latest cookiecutter-robust-python"
56kyle Jul 9, 2025
3fa42b3
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
59c7a59
Revert "chore: update demo to the latest cookiecutter-robust-python"
56kyle Jul 9, 2025
f2464be
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 9, 2025
5009bc7
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 11, 2025
fa6b6f8
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
5d7ebd0
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
1fbc971
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
1f74cdd
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
8da1be8
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
a8392ed
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
0b44ebd
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
fa55f88
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 12, 2025
3143c87
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 14, 2025
f57de81
chore: remove accidentally tracked files
56kyle Jul 17, 2025
2c9e91a
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 17, 2025
395d8eb
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 17, 2025
800aa28
bump: version 0.0.0 → 0.1.0
56kyle Jul 17, 2025
1f22704
chore: update demo to the latest cookiecutter-robust-python
56kyle Jul 17, 2025
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": "dab1f8da6cb6be90a50db1aafb4411ec61fbcb2c",
"_commit": "e75916b0cb7d49cc8b12acaf0af9098ec3ccca28",
"_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": "dab1f8da6cb6be90a50db1aafb4411ec61fbcb2c",
"commit": "e75916b0cb7d49cc8b12acaf0af9098ec3ccca28",
"checkout": null,
"context": {
"cookiecutter": {
Expand All @@ -18,7 +18,7 @@
"license": "MIT",
"development_status": "Development Status :: 1 - Planning",
"_template": "C:\\Users\\56kyl\\source\\repos\\cookiecutter-robust-python",
"_commit": "dab1f8da6cb6be90a50db1aafb4411ec61fbcb2c"
"_commit": "e75916b0cb7d49cc8b12acaf0af9098ec3ccca28"
}
},
"directory": null
Expand Down
31 changes: 0 additions & 31 deletions .github/workflows/bump-version.yml

This file was deleted.

52 changes: 52 additions & 0 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Prepare Release

on:
push:
branches:
- "release/*"

permissions:
contents: write

jobs:
prepare-release:
name: Prepare Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- name: Set up uv
uses: astral-sh/setup-uv@v6

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: .github/workflows/.python-version

- name: Get Current Version
id: current_version
run: echo "CURRENT_VERSION=$(uvx --from commitizen cz version -p)" >> $GITHUB_OUTPUT

- name: Get New Release Version
id: new_version
run: echo "NEW_VERSION=${GITHUB_REF_NAME#release/}" >> $GITHUB_OUTPUT

- name: Bump Version
if: ${{ steps.current_version.outputs.CURRENT_VERSION != steps.new_version.outputs.NEW_VERSION }}
run: uvx nox -s bump-version ${{ steps.new_version.outputs.NEW_VERSION }}

- name: Get Release Notes
run: uvx nox -s get-release-notes -- ${{ github.workspace }}-CHANGELOG.md

- name: Create Release Draft
uses: softprops/action-gh-release@v2
with:
body_path: ${{ github.workspace }}-CHANGELOG.md
draft: true
tag_name: ${{ steps.new_version.outputs.NEW_VERSION }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89 changes: 40 additions & 49 deletions .github/workflows/release-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,41 @@ name: Release Python Package

on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
- "v[0-9]+.[0-9]+.[0-9]+-*" # Include pre-release tags
branches:
- main
- master

workflow_dispatch:
inputs:
tag:
description: "Git tag to build and release (e.g., v1.2.3). Must already exist."
required: true

jobs:
get_tag:
name: Get Tag
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.current_version.outputs.CURRENT_VERSION }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up uv
uses: astral-sh/setup-uv@v6

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: ".github/workflows/.python-version"

- name: Get Current Version
id: current_version
run: echo "CURRENT_VERSION=$(uvx --from commitizen cz version -p)" >> $GITHUB_OUTPUT


build_and_testpypi:
name: Build & Publish to TestPyPI
runs-on: ubuntu-latest

needs: get_tag
outputs:
tag: ${{ needs.get_tag.outputs.tag }}
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -44,7 +64,7 @@ jobs:
- name: Download built package artifacts
uses: actions/download-artifact@v4
with:
name: distribution-packages-${{ github.event.inputs.tag }}
name: distribution-packages-${{ needs.get_tag.outputs.tag }}
path: dist/

- name: Publish to TestPyPI
Expand All @@ -53,24 +73,11 @@ jobs:
TWINE_PASSWORD: ${{ secrets.TESTPYPI_API_TOKEN }}
run: uvx nox -s publish-package -- --repository testpypi

- name: Get Release Notes from Changelog
id: changelog
uses: simple-changelog/action@v3
with:
path: CHANGELOG.md
tag: ${{ github.event_name == 'push' && github.ref_name || github.event.inputs.tag }}

outputs:
changelog_body:
description: "Release notes body extracted from CHANGELOG.md"
value: ${{ steps.changelog.outputs.changes }} # Output the extracted changelog body

publish_pypi:
name: Publish to Production PyPI
publish_pypi_and_github:
name: Publish to Production PyPI and GitHub
runs-on: ubuntu-latest
needs: build_and_testpypi

if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')"
steps:
- name: Download package artifacts
uses: actions/download-artifact@v4
Expand All @@ -86,34 +93,18 @@ jobs:
- name: Set up uv
uses: astral-sh/setup-uv@v6

- name: Create Tag
run: |
git tag ${{ needs.build_and_testpypi.outputs.tag }}
git push origin ${{ needs.build_and_testpypi.outputs.tag }}

- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: uvx nox -s publish-python

create_github_release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs: build_and_testpypi

if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')"

steps:
- name: Download package artifacts # Get built artifacts for release assets
uses: actions/download-artifact@v4
with:
name: distribution-packages

- name: Get tag name
id: get_tag
run: echo "tag=${{ github.ref_name }}" >> $GITHUB_OUTPUT

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.get_tag.outputs.tag }}
name: Release ${{ steps.get_tag.outputs.tag }}
body: ${{ needs.build_and_testpypi.outputs.changelog_body }}
files: dist/*
prerelease: ${{ contains(steps.get_tag.outputs.tag, '-') }} # Checks if tag contains hyphen (e.g. v1.0.0-rc.1)
- name: Publish to GitHub
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload ${{ needs.build_and_testpypi.outputs.tag }} dist/
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,6 @@ nohup.out

# Prettier dependencies
node_modules/

# Release Notes
body.md
2 changes: 1 addition & 1 deletion .ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ max-complexity = 10
]
"exceptions.py" = ["D107"]
"noxfile.py" = ["S101"]
"scripts/*" = ["S603"]
"scripts/*" = ["S603", "S607"]

[lint.pydocstyle]
convention = "google"
Expand Down
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## v0.1.0 (2025-07-16)

### Feat

- initial commit
- remove unneeded python venvs from noxfile.py
- run pre-commit autoupdate
- initial commit
- initial commit
- initial commit
- add new pre-commit hooks for validating the pyproject.toml
- initial commit
- initial commit
- initial commit
- initial commit
- initial commit
- initial commit
- initial commit

### Fix

- resolve conflicts
- resolve conflicts
- fix path syntax in build-python.yml
1 change: 0 additions & 1 deletion build/lib/robust_python_demo/__init__.py

This file was deleted.

15 changes: 0 additions & 15 deletions build/lib/robust_python_demo/__main__.py

This file was deleted.

Empty file.
Loading
Loading