fix(integration-tests): sync .shared/ before make check#44
Merged
Conversation
Services checked out during integration tests have pyproject.toml entries like `extend = ".shared/ruff.toml"` but pre-commit hooks don't run in CI, so the .shared/ cache is empty and ruff fails with ENOENT on the extended config. Add an explicit sync step after the library force-install and before `make check` so the shared lint/type configs resolve. Hit this on pyapi-service-kit v0.9.0 gate against whengas-api: https://github.com/whengas/whengas-iac/actions/runs/24757769672
Drop explicit `python` arg — sync.sh already has detect_language() that keys off pyproject.toml / go.mod / package.json. Future-proofs this step if the integration matrix ever includes non-Python services.
detect_language() was an elif chain — first marker wins — so a polyglot repo (Go backend + Node frontend at root) silently missed the secondary language's configs. Rename to detect_languages() and iterate every marker file, emitting space-separated languages. The loop already reads `for section in common $LANGS` so unquoted expansion splits space-separated input correctly. Explicit arg still works both as single (`./sync.sh python`) and multi (`./sync.sh "python node"`). Smoke-tested locally against all four marker combinations.
Useful for tooling/meta repos that don't have a pyproject.toml / go.mod / package.json at the root (so auto-detect emits nothing) but still want every shared config cached locally. Language list is derived from the manifest keys at runtime rather than hardcoded, so adding a new language section to MANIFEST.json is automatically picked up by `all` without touching this script. Reordered manifest fetch above arg handling so `all` can expand against the live manifest.
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
make check/make testagainst them with the library-under-test force-installedpyproject.tomlentries likeextend = ".shared/ruff.toml".shared/is empty → ruff dies with ENOENT on the extended config → integration gate failsmake checkHit on pyapi-service-kit v0.9.0 gate against whengas-api: https://github.com/whengas/whengas-iac/actions/runs/24757769672
Test plan