diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index f135b3c..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: CI - -on: - push: - branches: [master] - pull_request: - branches: [master] - -permissions: - contents: read - -jobs: - lint: - name: Lint & Type Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: "3.11" - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev]" - - - name: Ruff check - run: ruff check src/ tests/ scripts/ - - - name: Ruff format check - run: ruff format --check src/ tests/ scripts/ - - - name: Mypy - run: mypy src/autoresearch_quantum/ - - test: - name: Tests (Python ${{ matrix.python-version }}) - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.11", "3.12"] - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev,notebooks]" - - - name: Run unit tests - run: pytest tests/ -k "not test_notebook_executes and not test_browser" -v --tb=short - - - name: Run notebook structure tests - run: pytest tests/test_notebooks.py tests/test_pedagogy.py -k "not test_notebook_executes" -v --tb=short - - notebook-execution: - name: Notebook Execution - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: "3.11" - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev,notebooks]" - python -m ipykernel install --user --name python3 - - - name: Run notebook execution tests - run: pytest tests/test_notebooks.py -k "test_notebook_executes" -v --tb=short -x diff --git a/.gitignore b/.gitignore index f0c720e..af343af 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ paper/*.synctex.gz # Build artifacts dist/ build/ +uv.lock diff --git a/README.md b/README.md index 31fc94a..0a63e58 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,6 @@ autoresearch-quantum/ │ ├── test_persistence.py JSON store round-trips │ ├── test_scoring.py Score function correctness │ └── test_teaching.py Assessment widget & tracker tests -├── .github/workflows/ci.yml CI: lint, type check, test matrix, notebook execution ├── .pre-commit-config.yaml Ruff, mypy, nbstripout, hygiene hooks ├── THE_STORY.md Narrative documentation (system design) ├── pyproject.toml Build config, dependencies, tool settings @@ -411,14 +410,6 @@ All three run automatically as **pre-commit hooks** (`.pre-commit-config.yaml`). .venv/bin/pre-commit install ``` -### CI/CD - -The GitHub Actions pipeline (`.github/workflows/ci.yml`) runs on every push and PR: - -1. **Lint job** --- ruff check, ruff format --check, mypy strict (Python 3.11) -2. **Test job** --- full test suite on Python 3.11 and 3.12 matrix -3. **Notebook execution job** --- runs all 12 notebooks end-to-end via nbclient - ## Extending The Ladder The intended progression is: diff --git a/THE_STORY.md b/THE_STORY.md index 1b8a323..a3c4503 100644 --- a/THE_STORY.md +++ b/THE_STORY.md @@ -478,8 +478,8 @@ quality invariants across all content notebooks: - All four plans collectively cover core concepts (stabiliser, magic, witness, ratchet) These tests catch pedagogical regressions the same way unit tests catch code -regressions. Adding a new notebook or modifying an existing one will fail CI -if it violates these invariants. +regressions. Adding a new notebook or modifying an existing one will fail +validation (`app.sh validate`) if it violates these invariants. --- @@ -629,7 +629,6 @@ autoresearch-quantum/ test_scoring.py Score functions test_teaching.py Assessment widgets & tracker - .github/workflows/ci.yml CI: lint, type check, test matrix, notebook execution .pre-commit-config.yaml Ruff, mypy, nbstripout, hygiene hooks data/ Output directory (created at runtime)