feat: modernize PSO and add convergence research

Migrate the package and examples to the tensor-native PyTorch implementation, add benchmark evidence, and add the guarded post-training convergence protocol with TensorBoard progress monitoring and hash-verified recovery.

Constraint: Preserve one-shot official-test sealing and auditable research artifacts

Rejected: Commit local .omc runs and downloaded datasets | multi-gigabyte runtime state is machine-local

Confidence: high

Scope-risk: broad

Not-tested: Production CUDA run on pieroot-server
This commit is contained in:
2026-09-07 22:03:25 +09:00
parent 9745bb7ad4
commit 813433000a
120 changed files with 198148 additions and 4745 deletions
+40 -23
View File
@@ -1,38 +1,55 @@
name: PyPI package
name: Publish to PyPI
on:
push:
paths:
- "setup.py"
- "pso/__init__.py"
tags:
- "v*"
permissions:
contents: read
packages: write
jobs:
build-linux:
test:
runs-on: ubuntu-22.04
strategy:
max-parallel: 5
matrix:
python-version: ["3.9"]
python-version: ["3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
- uses: actions/checkout@v4
- name: Install uv and Python ${{ matrix.python-version }}
uses: astral-sh/setup-uv@v9
with:
version: "0.12.7"
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: |
python setup.py bdist_wheel sdist
twine upload dist/*.whl dist/*.tar.gz
enable-cache: true
- name: Sync dependencies
run: uv sync --locked --group dev
- name: Run tests
run: uv run --no-sync pytest -q
- name: Build package
run: uv build
- name: Check package distribution
run: uv run --no-sync twine check dist/*
publish:
needs: test
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install uv and Python 3.11
uses: astral-sh/setup-uv@v9
with:
version: "0.12.7"
python-version: "3.11"
enable-cache: true
- name: Sync dependencies
run: uv sync --locked --group dev
- name: Build package
run: uv build
- name: Check package distribution
run: uv run --no-sync twine check dist/*
- name: Publish package to PyPI
uses: pypa/gh-action-pypa-publish@release/v1
with:
password: ${{ secrets.PYPI_TOKEN }}