* fix(workflows): Update branch filter in Docker workflow
- Change branch filter from wildcard to 'main'
- Ensures that the workflow only triggers on the main branch
* fix(workflows): Update Docker workflow tag pattern
- Change tag pattern from "v*" to "*.*.*" for better version matching
- Add new semver pattern type for major version
* squash! fix(workflows): Update Docker workflow tag pattern - Change tag pattern from "v*" to "*.*.*" for better version matching - Add new semver pattern type for major version
* Update docker.yml
* Update docker.yml
* Update docker.yml
* fix(docker): Correct copy command to use recursive flag for EnemizerCLI
- Changed 'cp' to 'cp -r' to properly copy EnemizerCLI directory
* fixup! Update docker.yml
* fix(docker): Correct copy command to use recursive flag for EnemizerCLI
- Changed 'cp' to 'cp -r' to properly copy EnemizerCLI directory
* chore(workflow): Update Docker workflow to support multiple platforms
- Removed matrix strategy for platform selection
- Set platforms directly in the Docker Buildx step
* docs(deployment): Update container deployment documentation
- Specify minimum versions for Docker and Podman
- Add requirement for Docker Buildx plugin
* fix(workflows): Exclude specific paths from Docker build triggers
- Prevent unnecessary builds for documentation and deployment files
* feat(ci): Update Docker workflow for multi-architecture builds
- Added new build job for ARM64 architecture support
- Created a multi-arch manifest to manage image variants
- Improved Docker Buildx setup and push steps for both architectures
* fixup! feat(ci): Update Docker workflow for multi-architecture builds - Added new build job for ARM64 architecture support - Created a multi-arch manifest to manage image variants - Improved Docker Buildx setup and push steps for both architectures
* fixup! feat(ci): Update Docker workflow for multi-architecture builds - Added new build job for ARM64 architecture support - Created a multi-arch manifest to manage image variants - Improved Docker Buildx setup and push steps for both architectures
* fixup! feat(ci): Update Docker workflow for multi-architecture builds - Added new build job for ARM64 architecture support - Created a multi-arch manifest to manage image variants - Improved Docker Buildx setup and push steps for both architectures
* fix(workflow): Cleanup temporary image tags
* fixup! fix(workflow): Cleanup temporary image tags
* fixup! fix(workflow): Cleanup temporary image tags
* fixup! fix(workflow): Cleanup temporary image tags
* fix(workflow): Apply scoped build cache to eliminate race condition
between jobs.
* fixup! fix(workflow): Apply scoped build cache to eliminate race condition between jobs.
* Remove branch wildcard
* Test comment
* Revert wildcard removal
* Remove `pr` event
* Revert `pr` event removal
* fixup! Revert `pr` event removal
* Update docker.yml
* Update docker.yml
* Update docker.yml
* feat(workflows): Add docker workflow to compute final tags
- Introduce a step to compute final tags based on GitHub ref type
- Ensure 'latest' tag is set for version tags
* chore(workflow): Enable manual dispatch for Docker workflow
- Add workflow_dispatch event trigger to allow manual runs
* fix(workflows): Update Docker workflow to handle tag outputs correctly
- Use readarray to handle tags as an array
- Prevent duplicate latest tags in the tags list
- Set multiline output for tags in GitHub Actions
* Update docker.yml
Use new `is_not_default_branch` condition
* Update docker.yml
Allow "v" prefix for semver git tags qualifying for `latest` image tag
* Update docker.yml
Tighten up `tags` push pattern mirroring that of `release` workflow.
* Merge branch 'ArchipelagoMW:main' into main
* Update docker.yml
* Merge branch 'ArchipelagoMW:main' into docker_wf
* Update docker.yml
Use new `is_not_default_branch` condition
* Update docker.yml
Allow "v" prefix for semver git tags qualifying for `latest` image tag
* Update docker.yml
Tighten up `tags` push pattern mirroring that of `release` workflow.
* ci(docker): refactor multi-arch build to use matrix strategy
- Consolidate separate amd64 and arm64 jobs into a single build job
- Introduce matrix for platform, runner, suffix, and cache-scope
- Generalize tag computation and build steps with matrix variables
* fixup! ci(docker): refactor multi-arch build to use matrix strategy - Consolidate separate amd64 and arm64 jobs into a single build job - Introduce matrix for platform, runner, suffix, and cache-scope - Generalize tag computation and build steps with matrix variables
* Core: fix freeze support for py3.13+
Loading Utils now patches multiprocessing.freeze_support()
Utils.freeze_support() is now deprecated
* WebHost: use pony fork on py3.13
* CI: test with py3.13
Since this does not have versions anymore, we check the sha256
and require manual intervention if it changed.
TODO: look for a way to do reproducible appimages again.
* chore(ci): exclude deployment and Docker files from unit test workflow triggers
- Modify unittests workflow to ignore changes in deploy directory and Docker-related files
* replace Clique with V6 in unit tests
* no hard mode in V6
* modify regex in copy_world to allow : str
* oops
* I see now
* work around all typing
* there actually needs to be something
* CI: github attestation for manually started builds
* CI: include appimage zsync in build attestation
* CI: github attestation for Linux release builds
* CI: reorder steps in build.yml
* CI: add windows builds to release.yml
* CI: order jobs in release.yml
* CI: add missing permission to release.yml
* CI: enable windows build in release.yml
* CI: false is skip
* Tests: unroll test_multiworlds.TestTwoPlayerMulti
Also adds a helper function that other tests can use to unroll tests.
* Docs: add more details to docs/tests.md
* Explain parametrization, subtests and link to the new helper
* Mention some performance details and work-arounds
* Mention multithreading / pytest-xdist
* Tests: make param.classvar_matrix accept sets
* CI: add test/param.py to type checking
* Tests: add missing typing to test/param.py
* Tests: fix typo in test/param.py doc comment
Co-authored-by: qwint <qwint.42@gmail.com>
* update docs
* Docs: reword note on performance
---------
Co-authored-by: qwint <qwint.42@gmail.com>
* CI: ctest: fix trigger on CMakeLists change
* CI: ctest: update cmake version
this removes a warning
and matches gtest
* CI: ctest: remove explicit build mode for MSVC
gtest switched to dynamic libc (/MD), which is default, so this just works now
* Core: some low-hanging fruit on the strict type check
* bump pyright version
* bump pyright version
* bump pyright and remove file that's no longer easy
* Docs: update min required version
and add comment about security.
* Core: rework python version check
* CI: set min micro update for build and release
* Core: downgrade websockets to 13.x
14.x currently doesn't work for MultiServer.
14.x is not supported with py3.8, so updating to 14.x should be scheduled for AP 0.6.0.
* CI: 5min timeout for hosting test
* MultiServer: properly shutdown even if ctx is invalid
* CI: increase hosting test timeout to 10min
this is 4x expected time, just to be safe.
* CI: build: fail fast if setup.py fails on windows
* CI: build: fail for missing uploads, rework compression
Upload-artifact allows setting compression level now.
The change speeds up both upload and extraction.
* CI: match build gz in release
* CI: build: verify worlds all load
* CI: build: generate a game
* Generate: move worlds loaded exception to allow settings to init from worlds
* CI: build: build setup before running tests
* Speedups: remove dependency on c++
* Speedups: intset: handle malloc failing
* Speedups: intset: fix corner case for int64 on 32bit systems
original idea was to only use bucket->val if int<pointer,
but we always have a union now anyway
* Speedups: add size comment to player_set bucket configuration
* test: more tests for LocationStore.find_item
* test: require _speedups in CI
This kind of tests that the build succeeds.
* test: even more tests for LocationStore.find_item
* Speedups: intset uniform comment style
* Speedups: intset: avoid memory leak when realloc fails
* Speedups: intset: make `gcc -pedantic -std=c99 -fanalyzer` without warnings
Unnamed unions are not in C99, this got fixed.
The overhead of setting count=0 is minimal or optimized-out and silences -fanalizer (see comment).
* Speedups: don't leak memory in case of exception
* Speedups: intset: validate alloc and free
This won't happen in our cython, but it's still a good addition.
* CI: add test framework for C/C++ code
* CI: ctest: fix cwd
* Speedups: intset: ignore msvc warning
* Tests: intset: revert attempt at no-asan
We solve this with env vars in ctest now, and this fails for msvc.
* Test: cpp: docs: fix typo
* Test: cpp: docs: fix another typo
* Test: intset: proper bucket count for Negative test
INTxx_MIN % 1 would not produce a negative number, so the test was flawed.
* Test: add hosting simulation test
* WebHost: add weak typing to get_app()
* MultiServer: add typing to auto_saver_thread
* MultiServer: don't cancel task, properly end it
* customserver: stop auto-save thread from saving after shutdown
and make sure it stops, another potential memory leak
* MultiServer, customserver: make datapackage small again
* customserver: collect/finish room tasks
Hopefully fixes the memory leak we are seeing
* CI: test hosting
* Test: hosting: verify autohoster saves on Ctrl+C
* customserver: save when stopping via Ctrl+C
* CI: strict mypy check in github actions
mypy_files.txt is a list of files that will fail the CI if mypy finds errors in them
* don't need these
* `Any` should be a way to silence the type checker
* restrict return Any
* CI: pyright in github actions
* fix mistake in translating from mypy
* missed another change from mypy to pyright
* pin pyright version
* add more paths that should trigger check
* use Python instead of bash
* type error for testing CI
* Revert "type error for testing CI"
This reverts commit 99f65f3dad.
* oops
* don't need to redirect output
* Initial content-based labeling
* Improve labeling rules around docs and /worlds/generic
* Improve labeling rules around docs and webhost
* Formatting
* Update matching for webhost
* back to square 1 on is:docu
* Try a better glob for docs
* Formatting
* Manage PR state labels
* Correct syntax for conditions
* Correct syntax for conditions
* add trigger on reopening
* add trigger on closing
* keep labels in sync as pr updates
* Change edit event to sync
* Restrict only to PRs to main
* address review comments
* apply only to PRs into main