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
57 changes: 41 additions & 16 deletions .github/workflows/python-app-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,59 @@ jobs:
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
python-version: [ 3.12 ]
python-version: [ 3.13 ]
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The matrix variable python-version is defined but never used in the build job steps. Since the job relies on Nix to provide the Python environment, this matrix variable serves no purpose and should be removed to avoid confusion.

Suggested change
python-version: [ 3.13 ]

Copilot uses AI. Check for mistakes.
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Install Nix
uses: cachix/install-nix-action@v27
uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
experimental-features = nix-command flakes
- name: Setup Cachix
uses: cachix/cachix-action@v15
uses: cachix/cachix-action@v16
with:
name: wordweaver
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
skipPush: true
- name: Install dependencies
run: |
nix develop --command uv sync --extra dev
- name: Build executable
run: |
nix develop --command uv run python -m PyInstaller Wordweaver.spec
- name: Get version for macOS installer
id: version
run: |
echo "value=$(cat VERSION | tr -d '\n')" >> "$GITHUB_OUTPUT"
if: runner.os == 'macOS'
- name: Build macOS installer
uses: akiojin/generate-mac-installer-github-action@v1.0.4
with:
output-directory: dist
root-directory: dist
bundle-path: Wordweaver.app
identifier: com.prestonhager.wordweaver
version: ${{ steps.version.outputs.value }}
if: runner.os == 'macOS'
- name: Upload artifacts
uses: actions/upload-artifact@v6
with:
name: wordweaver-${{ matrix.os }}
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The artifact name uses matrix.os which will produce names like "wordweaver-ubuntu-latest" and "wordweaver-macos-latest". These naming conventions are inconsistent with the Windows job which uses "wordweaver-Windows". Consider using a more consistent naming scheme, such as "wordweaver-Ubuntu", "wordweaver-macOS", and "wordweaver-Windows" for clarity.

Suggested change
name: wordweaver-${{ matrix.os }}
name: wordweaver-${{ runner.os }}

Copilot uses AI. Check for mistakes.
path: dist/Wordweaver*
build-windows:
# Because windows is *special* and can't use nix :(
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- name: Install Python and uv
run: |
choco install python --version=3.12.0
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Windows build job is installing Python 3.12.0, but this PR upgrades the project to require Python 3.13. This version should be changed to 3.13.0 to be consistent with the project requirements updated in pyproject.toml and uv.lock.

Suggested change
choco install python --version=3.12.0
choco install python --version=3.13.0

Copilot uses AI. Check for mistakes.
python -m pip install --upgrade pip
pip install uv
- name: Install dependencies
run: |
uv sync --extra dev
- name: Install Windows dependencies
run: |
iwr -useb get.scoop.sh -outfile 'install.ps1'
Expand All @@ -46,21 +80,12 @@ jobs:
if: runner.os == 'Windows'
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This condition if: runner.os == 'Windows' is redundant in the build-windows job, which already runs only on windows-latest. The condition will always evaluate to true and can be removed.

Suggested change
if: runner.os == 'Windows'

Copilot uses AI. Check for mistakes.
- name: Build executable
run: |
nix develop --command uv run python -m PyInstaller Wordweaver.spec
uv run python -m PyInstaller Wordweaver.spec
- name: Build Windows installer
run: |
makensis src/wordweaver.nsi
if: runner.os == 'Windows'
- name: Build macOS installer
uses: akiojin/generate-mac-installer-github-action@v0.1.0
with:
output-directory: dist
root-directory: dist
bundle-path: Wordweaver.app
identifier: com.prestonhager.wordweaver
if: runner.os == 'macOS'
- name: Upload artifacts
uses: actions/upload-artifact@v6
with:
name: wordweaver-${{ matrix.os }}
name: wordweaver-Windows
path: dist/Wordweaver*
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "wordweaver"
version = "0.1.0"
description = "A complete toolbox for all things conlang"
readme = "README.md"
requires-python = ">=3.12"
requires-python = ">=3.13"
license = {text = "MIT"}
authors = [
{name = "Preston Hager", email = "preston@prestonhager.com"}
Expand Down
34 changes: 1 addition & 33 deletions uv.lock

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