Repository navigation
Restructure CI/release workflows to match the standard chuk-* layout - #40
Merged
Merged
Conversation
Replaced the bespoke ci.yml + release.yml pair with the standard test.yml / publish.yml / release.yml split used across the other chuk-* repos: - test.yml: lint, type check, test matrix (now including 3.13 to match the sibling repos' matrix; verified compatible), coverage threshold check, workflow_call so publish.yml can reuse it. Kept the check-version PR warning job. - publish.yml: gates on test.yml, builds, runs twine check (kept from the original release.yml as a useful pre-publish safety check), then publishes via PyPI trusted publishing. Triggers on tag push directly (this repo already had that right) as well as release-published and workflow_dispatch. - release.yml: standard changelog-from-git-log GitHub Release creation, matching the other repos exactly. Dropped the original release.yml's post-publish 'test-installation' job (pip install from PyPI + smoke test) since no sibling repo has an equivalent step; can be reintroduced if wanted. Signed-off-by: chris hay <chris.hay@uk.ibm.com>
…adTimeout _wait_for_health's exception handling only caught (httpx.ConnectError, httpx.ReadTimeout), but httpx.ConnectTimeout is a separate branch of the exception hierarchy (subclass of TimeoutException, not ConnectError). A refused connection surfaces as ConnectTimeout rather than ConnectError/ReadTimeout on some platforms (observed reliably on windows-latest), so the health-check polling loop crashed with an unhandled exception instead of retrying -- a real bug for anyone running llama.cpp servers on Windows, not just a CI artifact. Same pattern existed in is_healthy() and the model-load wait loop; widened all three to catch httpx.TimeoutException, which covers ConnectTimeout/ReadTimeout/WriteTimeout/PoolTimeout. Also fixed test_wait_for_health_timeout, which wasn't mocking httpx.AsyncClient (unlike its test_wait_for_health_process_died sibling) and so was making a real network connection attempt -- the source of the actual httpx.ConnectTimeout surfacing in CI. Also fixed the local mypy pre-commit hook: it ran in pre-commit's isolated venv via mirrors-mypy, separate from the project's uv-managed environment, so it couldn't see real dependencies (pydantic, etc.) and failed outright. Replaced with a local hook using 'uv run mypy', matching the fix already applied to chuk-tool-processor. Signed-off-by: chris hay <chris.hay@uk.ibm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaced the bespoke `ci.yml` + `release.yml` pair with the standard `test.yml` / `publish.yml` / `release.yml` split used across the other chuk-* repos:
Dropped the original `release.yml`'s post-publish `test-installation` job (pip install from PyPI + smoke test) since no sibling repo has an equivalent step — can be reintroduced if wanted.
Test plan