Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
8c4c009
WIP change entire system to component based
CoolCat467 Nov 13, 2024
3f20f2d
Start converting to event based and state module
CoolCat467 Nov 14, 2024
6f3f75b
Do some small things with state
CoolCat467 Nov 25, 2024
1b5ce40
Switch to use my `libcomponent` module
CoolCat467 Nov 25, 2024
86f4d2b
Add more tests from catto invasion and upgrade gitignore
CoolCat467 Nov 25, 2024
bd061ab
Work on manual wall tiling and start server side work
CoolCat467 Nov 26, 2024
ec4da64
Add more tests for sprite
CoolCat467 Nov 29, 2024
aae5634
Work on making GUI side work
CoolCat467 Nov 29, 2024
2ee1522
Send board data and get rid of old code
CoolCat467 Nov 29, 2024
35bf6fd
Send factory display tile data over the network
CoolCat467 Nov 29, 2024
086e025
Add PatternRows and fix a few issues
CoolCat467 Nov 30, 2024
db3f8c3
Vectorize detection
CoolCat467 Nov 30, 2024
60ea0f6
Fix a ton of type and lint errors
CoolCat467 Nov 30, 2024
988271c
Implement more parts of grabbing tile logic
CoolCat467 Nov 30, 2024
1d8fe17
WIP pattern line handling
CoolCat467 Dec 1, 2024
06ce6ba
Update requirements
CoolCat467 Dec 3, 2024
03b51eb
Fix encoding and implement decoding for cursor location
CoolCat467 Dec 3, 2024
077f67d
Work on starting to send cursor location
CoolCat467 Dec 13, 2024
c7ea408
Add `zizmor` pre-commit hook
CoolCat467 Dec 13, 2024
d5a0839
Transmit pattern data and current turn changes
CoolCat467 Dec 17, 2024
46e05f1
If user clicks row, probably intended to place tiles.
CoolCat467 Dec 17, 2024
ea9d971
Transmit cursor location
CoolCat467 Dec 18, 2024
c15bc1a
Implement clicking table center and handle several edge cases I hadn'…
CoolCat467 Dec 18, 2024
d2b89a0
Render floor line
CoolCat467 Dec 18, 2024
d212ff2
Use numbers length instead of keeping track of size
CoolCat467 Dec 18, 2024
19d7938
WIP implement being able to click floor line
CoolCat467 Dec 22, 2024
acb31b9
Add `crate-ci/typos` pre-commit hook and associated spelling fixes
CoolCat467 Dec 22, 2024
f24f2f2
Stop writing events after client disconnects
CoolCat467 Dec 22, 2024
8727605
Implement server-side handling for floor line
CoolCat467 Dec 22, 2024
4cc0d65
Update pre-commit hooks
CoolCat467 Dec 23, 2024
bc8cdca
Update dependencies & project
CoolCat467 Dec 30, 2024
30aa342
Work on getting machine client working
CoolCat467 Jan 4, 2025
4f19a8c
More work on minimax AI
CoolCat467 Jan 7, 2025
3405ffe
Replace language module with `database` from MineOS-Market-Server
CoolCat467 Jan 11, 2025
336de98
Use localization files for user-displayed strings
CoolCat467 Jan 12, 2025
37495e4
Update test-requirements
CoolCat467 Jan 12, 2025
ee541f9
Try fixing windows CI issue by explicity disabling submodules
CoolCat467 Jan 12, 2025
0e74738
Try using `set-safe-directory: false` to fix windows CI issue
CoolCat467 Jan 12, 2025
935ca82
Still trying to fix windows CI issues
CoolCat467 Jan 12, 2025
bec254f
Try not disabling `persist-credentials`
CoolCat467 Jan 12, 2025
0eeda4f
Rename files windows doesn't like
CoolCat467 Jan 12, 2025
190d68d
Mypy `--strict` already handles a lot
CoolCat467 Jan 18, 2025
961b518
Switch to uv-based lock file
CoolCat467 Jan 18, 2025
e783b16
Fix activation command
CoolCat467 Jan 18, 2025
441a533
Try to fix activation script again
CoolCat467 Jan 19, 2025
881f454
Run different virtual environment activate depending on platform
CoolCat467 Jan 19, 2025
c4d9d79
Try to fix windows activate
CoolCat467 Jan 19, 2025
851bba7
Remove unused case
CoolCat467 Jan 19, 2025
48d3793
Cleanup
CoolCat467 Jan 19, 2025
f556812
Switch to `uv`-based lock files
CoolCat467 Jan 19, 2025
1555747
Update depencencies & minor CI changes
CoolCat467 Feb 13, 2025
8a817d3
Upgrade dependencies and actions runner
CoolCat467 Mar 1, 2025
dcc83d1
Fix new type issues
CoolCat467 Mar 1, 2025
5d62768
Switch to https://github.com/adhtruong/mirrors-typos
CoolCat467 Apr 8, 2025
871a855
Ruff fixes
CoolCat467 Apr 8, 2025
7936da3
Upgrade dependencies, enable more mypy checks, add licence heder to `…
CoolCat467 Apr 16, 2025
730d093
Update dependencies
CoolCat467 May 7, 2025
9e6eb83
Don't use depreciated numpy plugin
CoolCat467 Jul 9, 2025
56b0607
Merge remote-tracking branch 'origin/main' into event-driven
CoolCat467 Jul 10, 2025
2d0ea58
Fix bad merge
CoolCat467 Jul 10, 2025
1dc25d5
Merge remote-tracking branch 'origin/main' into event-driven
CoolCat467 Jul 10, 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
20 changes: 9 additions & 11 deletions .github/workflows/autodeps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ jobs:

steps:
- name: Checkout
with:
persist-credentials: true # credentials are needed to push commits
uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
Expand All @@ -28,21 +30,17 @@ jobs:

- name: Bump dependencies
run: |
python -m pip install -U pip pre-commit
python -m pip install -r test-requirements.txt
uv pip compile --universal --python-version=3.10 --upgrade test-requirements.in -o test-requirements.txt
pre-commit autoupdate --jobs 0
python -m pip install -U uv
uv lock --upgrade
uv tool install pre-commit
uv run pre-commit autoupdate --jobs 0

- name: Install new requirements
run: python -m pip install -r test-requirements.txt
run: uv sync

# apply newer versions' formatting
- name: Black
run: black src/azul

- name: uv
run: |
uv pip compile --universal --python-version=3.10 test-requirements.in -o test-requirements.txt
- name: Pre-commit updates
run: uv run pre-commit run -a || true

- name: Commit changes and create automerge PR
env:
Expand Down
178 changes: 92 additions & 86 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: CI

permissions: {}

on:
push:
branches-ignore:
Expand All @@ -11,52 +13,52 @@ concurrency:
cancel-in-progress: true

jobs:
## Windows:
## name: 'Windows (${{ matrix.python }}, ${{ matrix.arch }}${{ matrix.extra_name }})'
## timeout-minutes: 20
## runs-on: 'windows-latest'
## strategy:
## fail-fast: false
## matrix:
## python: ['3.10', '3.11', '3.12']
## arch: ['x86', 'x64']
## continue-on-error: >-
## ${{
## (
## endsWith(matrix.python, '-dev')
## || endsWith(matrix.python, '-nightly')
## )
## && true
## || false
## }}
## steps:
## - name: Checkout
## uses: actions/checkout@v4
## - name: Setup python
## uses: actions/setup-python@v5
## with:
## # This allows the matrix to specify just the major.minor version while still
## # expanding it to get the latest patch version including alpha releases.
## # This avoids the need to update for each new alpha, beta, release candidate,
## # and then finally an actual release version. actions/setup-python doesn't
## # support this for PyPy presently so we get no help there.
## #
## # 'CPython' -> '3.9.0-alpha - 3.9.X'
## # 'PyPy' -> 'pypy-3.9'
## python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
## architecture: '${{ matrix.arch }}'
## cache: pip
## cache-dependency-path: test-requirements.txt
## - name: Run tests
## run: ./ci.sh
## shell: bash
Windows:
name: 'Windows (${{ matrix.python }}, ${{ matrix.arch }}${{ matrix.extra_name }})'
timeout-minutes: 20
runs-on: 'windows-latest'
strategy:
fail-fast: false
matrix:
python: ['3.10', '3.11', '3.12', '3.13']
arch: ['x86', 'x64']
continue-on-error: >-
${{
(
endsWith(matrix.python, '-dev')
|| endsWith(matrix.python, '-nightly')
)
&& true
|| false
}}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup python
uses: actions/setup-python@v5
with:
# This allows the matrix to specify just the major.minor version while still
# expanding it to get the latest patch version including alpha releases.
# This avoids the need to update for each new alpha, beta, release candidate,
# and then finally an actual release version. actions/setup-python doesn't
# support this for PyPy presently so we get no help there.
#
# 'CPython' -> '3.9.0-alpha - 3.9.X'
# 'PyPy' -> 'pypy-3.9'
python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
architecture: '${{ matrix.arch }}'
cache: pip
cache-dependency-path: test-requirements.txt
- name: Run tests
run: ./ci.sh
shell: bash

Ubuntu:
name: 'Ubuntu (${{ matrix.python }}${{ matrix.extra_name }})'
timeout-minutes: 10
runs-on: 'ubuntu-latest'
# Only run for PRs or pushes to main
if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/main')
strategy:
fail-fast: false
matrix:
Expand All @@ -78,6 +80,8 @@ jobs:
}}
steps:
- name: Checkout
with:
persist-credentials: false
uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
Expand All @@ -96,49 +100,51 @@ jobs:
env:
CHECK_FORMATTING: '${{ matrix.check_formatting }}'

## macOS:
## name: 'macOS (${{ matrix.python }})'
## timeout-minutes: 15
## runs-on: 'macos-latest'
## strategy:
## fail-fast: false
## matrix:
## python: ['3.10', '3.11', '3.12']
## continue-on-error: >-
## ${{
## (
## endsWith(matrix.python, '-dev')
## || endsWith(matrix.python, '-nightly')
## )
## && true
## || false
## }}
## steps:
## - name: Checkout
## uses: actions/checkout@v4
## - name: Setup python
## uses: actions/setup-python@v5
## with:
## python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
## cache: pip
## cache-dependency-path: test-requirements.txt
## - name: Run tests
## run: ./ci.sh
macOS:
name: 'macOS (${{ matrix.python }})'
timeout-minutes: 15
runs-on: 'macos-latest'
strategy:
fail-fast: false
matrix:
python: ['3.10', '3.11', '3.12', '3.13']
continue-on-error: >-
${{
(
endsWith(matrix.python, '-dev')
|| endsWith(matrix.python, '-nightly')
)
&& true
|| false
}}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python), matrix.python))[startsWith(matrix.python, 'pypy')] }}
cache: pip
cache-dependency-path: test-requirements.txt
- name: Run tests
run: ./ci.sh

# https://github.com/marketplace/actions/alls-green#why
check: # This job does nothing and is only used for the branch protection

if: always()

needs:
- Windows
- Ubuntu
- macOS

## # https://github.com/marketplace/actions/alls-green#why
## check: # This job does nothing and is only used for the branch protection
##
## if: always()
##
## needs:
## - Windows
## - Ubuntu
## - macOS
##
## runs-on: ubuntu-latest
##
## steps:
## - name: Decide whether the needed jobs succeeded or failed
## uses: re-actors/alls-green@release/v1
## with:
## jobs: ${{ toJSON(needs) }}
runs-on: ubuntu-latest

steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
28 changes: 25 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ instance/
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
Expand All @@ -96,6 +97,8 @@ profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
.python-version

# pipenv
Expand All @@ -105,6 +108,21 @@ ipython_config.py
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

Expand Down Expand Up @@ -139,11 +157,15 @@ venv.bak/
.dmypy.json
dmypy.json

# Pyre type checker
# Pyre static type analyzer
.pyre/

# Sphinx documentation
doc/_build/
# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/
20 changes: 12 additions & 8 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ci:
autofix_prs: true
autoupdate_schedule: quarterly
submodules: false
skip: [badgie, project-requirements]
skip: [badgie]

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
Expand All @@ -16,6 +16,7 @@ repos:
- id: check-merge-conflict
- id: mixed-line-ending
- id: check-case-conflict
- id: check-added-large-files
- id: sort-simple-yaml
files: .pre-commit-config.yaml
- repo: https://github.com/psf/black-pre-commit-mirror
Expand All @@ -28,6 +29,7 @@ repos:
- id: ruff
types: [file]
types_or: [python, pyi, toml]
args: ["--show-fixes"]
- repo: https://github.com/CoolCat467/badgie
rev: v0.9.6
hooks:
Expand All @@ -36,11 +38,13 @@ repos:
rev: v2.4.1
hooks:
- id: codespell
- repo: local
additional_dependencies:
- tomli
- repo: https://github.com/adhtruong/mirrors-typos
rev: v1.34.0
hooks:
- id: project-requirements
name: regenerate requirements.in
language: system
entry: python tools/project_requirements.py
pass_filenames: false
files: ^(test-requirements.in)|(pyproject.toml)$
- id: typos
- repo: https://github.com/woodruffw/zizmor-pre-commit
rev: v1.11.0
hooks:
- id: zizmor
Loading