Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
e155cb0
fix: coglet Python 3.8 compatibility and pydantic dependencies
markphelps Jan 8, 2026
d6c2ddc
feat: add coglet pydantic 1.x and 2.x compatibility for Path and Base…
markphelps Jan 8, 2026
58a8083
feat: implement cog.use() API for model dependency tracking
markphelps Jan 8, 2026
3daa969
fix: ensure consistent version metadata between Go and Python builds
markphelps Jan 8, 2026
7162a21
docs: document version consistency requirements in AGENTS.md
markphelps Jan 8, 2026
439054f
ci: remove continue-on-error for coglet integration tests
markphelps Jan 8, 2026
0f94745
fix: downgrade mypy to 1.11.2 for Python 3.8 compatibility
markphelps Jan 8, 2026
ec9134f
fix: include module name in call_graph error message
markphelps Jan 8, 2026
5de5563
feat: add use() function to main cog package
markphelps Jan 8, 2026
2cb677c
chore: make coglet tests rerun like cog
markphelps Jan 8, 2026
c57e2c9
chore: longer timeout + max fails for everyone
markphelps Jan 8, 2026
193e11a
fix: address CI test failures
markphelps Jan 9, 2026
a858a03
chore: no reruns for now. failfast so we can fix these tests
markphelps Jan 9, 2026
5a412b8
perf: optimize integration test parallelization
markphelps Jan 9, 2026
9f64647
fix: remove ineffective --maxfail with pytest-xdist
markphelps Jan 9, 2026
a48cd51
chore: reduce integration test timeout from 60m to 30m
markphelps Jan 9, 2026
0860f12
chore: enable fail-fast for integration test matrix
markphelps Jan 9, 2026
a6f118d
chore: temporarily disable cog integration tests
markphelps Jan 9, 2026
f5ebfb4
chore: optimize test output for debugging
markphelps Jan 9, 2026
532e5e3
chore: run tests sequentially with -x to see first error
markphelps Jan 9, 2026
620e804
fix(test): update python version 3.8 to 3.9 for coglet-alpha compatib…
markphelps Jan 9, 2026
154906c
docs: add Python version requirement note for coglet-alpha
markphelps Jan 9, 2026
7baaca0
Fix F007: Update string-project fixture to Python 3.9
markphelps Jan 9, 2026
f16bfc4
Fix F001 & F002: Update error message assertions for coglet-alpha com…
markphelps Jan 9, 2026
27620f0
Fix F005: Correct typing_extensions version expectation for coglet-alpha
markphelps Jan 9, 2026
1dce6c6
Fix F008: Update test_config to use Python 3.9 for coglet-alpha compa…
markphelps Jan 9, 2026
861868d
Update AGENTS.md with coglet-alpha testing requirements
markphelps Jan 9, 2026
40be158
Add session summary to progress.txt
markphelps Jan 9, 2026
9be609a
Fix F009, F010, F012: Remove fast loader assertions for Python 3.9
markphelps Jan 9, 2026
d64332e
Update AGENTS.md with fast loader behavior for Python 3.9+
markphelps Jan 9, 2026
19434b7
Add session complete summary to progress.txt
markphelps Jan 9, 2026
290953f
Partial fix for coglet-alpha subdirectory support and test analysis
markphelps Jan 12, 2026
b7eec55
Document coglet-alpha architectural limitations in AGENTS.md
markphelps Jan 12, 2026
6944f80
Fix coglet wheel builds to install Pydantic dependency
markphelps Jan 12, 2026
4ed3517
Fix test_pip_freeze for coglet and disable CI fail-fast
markphelps Jan 12, 2026
a67d666
Fix test_pip_freeze for coglet-alpha pinned version
markphelps Jan 12, 2026
7397d60
Update test_run.py to use Python 3.9 for coglet-alpha compatibility
markphelps Jan 12, 2026
51e0596
Skip test_cog_install_base_image for coglet-alpha
markphelps Jan 12, 2026
6974265
Skip test_model_dependencies for coglet-alpha
markphelps Jan 12, 2026
1bfcb45
Skip predict tests for coglet/coglet-alpha
markphelps Jan 12, 2026
5f59f5c
Fix coglet file sync issues on Docker Desktop for macOS
markphelps Jan 12, 2026
a4bcf9e
Parallelize integration tests for faster CI execution
markphelps Jan 12, 2026
ffefee9
Fix test_run_fast_build to handle build logs in stdout
markphelps Jan 12, 2026
746d1f5
Revert "Fix test_run_fast_build to handle build logs in stdout"
markphelps Jan 12, 2026
c5a6295
Fix build output polluting stdout during cog run
markphelps Jan 12, 2026
074b631
Skip train tests for coglet/coglet-alpha
markphelps Jan 12, 2026
de05cc3
Increase timeout for interactive TTY test
markphelps Jan 12, 2026
72eb060
docs: add ARCHITECTURE.md explaining cog/coglet internals
markphelps Jan 12, 2026
e9d97f8
ci: increase integration test timeout to 45 minutes
markphelps Jan 12, 2026
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
60 changes: 41 additions & 19 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -190,20 +190,39 @@ jobs:
- name: Check test status
run: echo "All tests passed successfully!"

# Integration tests are split by test file for maximum parallelization:
# - Each test file runs in its own job (6 files x 2 runtimes = 12 parallel jobs)
# - Within each job, pytest-xdist runs tests in parallel across CPU cores
# - Reduced to 8-core runners since work is distributed across more jobs
# - --maxfail=3 provides quick failure feedback without running all tests
# - --tb=short gives concise, readable error messages
# - fail-fast: false ensures all test groups run even if some fail
# cannot run this on mac due to licensing issues: https://github.com/actions/virtual-environments/issues/2150
test-integration-matrix:
name: "Test integration (${{ matrix.runtime }})"
name: "Test integration (${{ matrix.runtime }}) - ${{ matrix.test-group }}"
needs: build-python
runs-on: ubuntu-latest-16-cores
timeout-minutes: 30
runs-on: ubuntu-latest-8-cores
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
runtime: [cog, coglet, coglet-alpha]
# TODO: Temporarily focusing on coglet/coglet-alpha, re-enable cog later
runtime: [coglet, coglet-alpha]
# runtime: [cog, coglet, coglet-alpha]
# Split tests by file for parallel execution
test-group:
- test_build.py
- test_config.py
- test_migrate.py
- test_predict.py
- test_run.py
- test_train.py
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0 # needed for goreleaser version determination
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
Expand All @@ -224,25 +243,28 @@ jobs:
- uses: hynek/setup-cached-uv@v2
- name: Prepare tox
run: uv pip install --system tox tox-uv
- name: Build cog binary
run: make cog
- name: Test
env:
COG_WHEEL: ${{ matrix.runtime }}
# coglet/coglet-alpha tests may fail due to error message differences - don't block PR
continue-on-error: ${{ matrix.runtime != 'cog' }}
# Enable Docker BuildKit for faster builds with better caching
DOCKER_BUILDKIT: 1
# Use pytest-xdist for parallel execution within each test file
# -n auto uses all available CPU cores
PYTEST_XDIST_WORKER_COUNT: auto
run: |
# Build cog binary
make cog
# Run full test suite with reruns for flaky tests (matches main branch)
# - cog: full suite
# - coglet-alpha: stop after 5 failures (passes currently)
# - coglet: exit on first failure (needs work, just want to see what fails)
if [ "$COG_WHEEL" = "cog" ]; then
PATH="$(pwd):$PATH" uv run tox -e integration -- -n auto -vv --reruns 3
elif [ "$COG_WHEEL" = "coglet" ]; then
PATH="$(pwd):$PATH" uv run tox -e integration -- -n auto -vv -x
else
PATH="$(pwd):$PATH" uv run tox -e integration -- -n auto -vv --reruns 3 --maxfail=5
fi
# Run tests in parallel with immediate error reporting
# --tb=short: Concise tracebacks for quick error identification
# --maxfail=3: Stop after 3 failures to get quick feedback
# -v: Verbose output shows which tests are running/failing
# -n auto: Parallel execution using all available cores
PATH="$(pwd):$PATH" uv run tox -e integration -- \
test_integration/${{ matrix.test-group }} \
-v \
--tb=short \
--maxfail=3 \
-n auto

release:
name: "Release"
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,6 @@ coglet/python/coglet/_version.py

# Built coglet-server binaries
coglet/python/cog/bin/
test-integration/test_integration/fixtures/*/openapi.json
test-integration/test_integration/fixtures/*/ready
test-integration/test_integration/fixtures/*/setup_result.json
Loading
Loading