Repository navigation
ci: drop Docker, run tests directly on the runner - #127
Merged
Merged
Conversation
- restore the original physical schema when DuckDB rewrites a patched alignment shard (DuckDB writes string; pandas 3 writes large_string) - assert missing string values with isna() so the query test holds for pandas 2 (None) and pandas 3 (NaN)
Coverage reportClick to see where and how coverage changed
This report was generated by python-coverage-comment-action |
||||||||||||||||||||||||
…nts_data.txt - dev dependency group is the complete CI/dev environment (adds plots extra and semver); networkit must come from a wheel via no-build-package - commit uv.lock and install with uv sync --locked into the Conda env that provides the conda-only tools (openstructure, mmseqs2, foldseek) - build release distributions with uv build - pin the project Python to 3.12 with .python-version
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.
Removes the Docker build/test machinery and runs CI directly on the GitHub runner.
Why
PRs into
major_refactordidn't rebuild the base image (theirdockerfiles/base/*matches the target), so CI tested them on the stale publishedplinder-base:v0.2.27. That image carries a 2024 lockfile: numpy 1.26, biotite 1.0, cloudpathlib 0.19, an old DuckDB, gemmi/mmcif/networkx, and no peppr/voronotalt. Example: #126 failed 50 tests + 16 errors that pass on #118. The lockfile also contradicted the refactor's ownpyproject.toml.Changes
dockerfiles/(base/main/test Dockerfiles,env.yml, the pinnedrequirements.txt),docker-compose.yml,flows/docker.py,flows/proc.py(only used bydocker.py).testjob:environment.ymlprovides the conda-only tools (openstructure,mmseqs2,foldseek).pip install -r requirements_data.txtandpip install -e ".[data,test,eval,plots]".PLINDER_OFFLINE=true python -m pytest -n auto -v(same command the Docker test service ran), and the coverage comment.mainPackage workflow: same environment setup, then version bump → tests →git tag→python -m build→ PyPI publish → push tag → coverage comment. The tag is still created before the build, sosetuptools_scmstamps the released version as before. The image build/promote/push steps are gone.version.py(repo root): thebumpversion major|minor|skiplogic moved out offlows/docker.pyunchanged. It returnsv0.2.28on the current history, identical to the old implementation.pyproject.toml:duckdb>=1.5. The refactor callsDuckDBPyConnection.to_arrow_table(), which doesn't exist before 1.5 (verified 1.1.3 → 1.4.0 lack it; 1.5.2 and 1.5.6 have it). Without the floor, pip keeps an older DuckDB if one is present, which is what broke the stale image.environment.yml: dropreduce(unused).tox -e py312-test: runs pytest directly with the same extras as CI.contribution/development.mdandcontribution/release.md.Notes
pip install, rather than a separate lockfile.ghcr.io/plinder-org/plinder. Existing tags stay.flows/data_ingest_report.pystill namesplinder:v0.1.1for its Metaflow step; untouched.mainworkflow can only be fully exercised on merge tomain. The version-bump script was checked locally against the old implementation.Follow-up: uv instead of pip, no
requirements_data.txtpyproject.toml. Thedevdependency group is the complete CI environment:plinder[dev,eval,loader,plots], the git-onlypdb-validationandmmpdb,networkit(a wheel is required via[tool.uv] no-build-package),tabulateandsemver.loaderextra, mapped to the CPU-only index on Linux.openstructure,mmseqs2,foldseek), thenuv sync --inexactinstalls everything else into that env. The release workflow usesuv build.uv.lock(gitignored): CI resolves the latest versions allowed bypyproject.toml, which is what pip users get.large_stringschema, and the query test checks missing values withisna().