Repository navigation
Fix CI and update BUSCO lineage retrieval for v1.2.0 - #95
Conversation
The lineage listing was fetched from busco-data.ezlab.org/v5/data/lineages/, which now 301-redirects to an empty S3 index (HTTP 200, 0 bytes). As a result no lineage was ever found: --busco-print-lineages printed nothing and any --busco-lineage value was rejected as invalid, while BeautifulSoup emitted "Some characters could not be decoded". - fetch from the v6 listing, which hosts both odb10 and odb12 datasets - match lineage names with a regex on the exact ODB version and release date instead of splitting on "_odbXX": odb12.2 is a distinct release from odb12 and the two were silently mixed. Keep the most recent date per lineage - add odb12.2 to --busco-db-version choices - use response.text and catch RequestException instead of ConnectionError - make --busco-print-lineages an eager option so it prints and exits without requiring --assembler, --genome-size and the other mandatory options. --busco-db-version is eager too, with a sys.argv fallback so the order of the two options does not matter Also included: fastp container updated to 1.0.1, pulp>=2.8 added to environment.yml, Python badge in README. Version stays at 1.1.0.
The BUSCO lineage fixes get their own release entry instead of being folded into the already-released 1.1.0. The fastp 1.0.1 container and the pulp>=2.8 dependency move to 1.2.0 as well.
Not up to standards ⛔🔴 Issues
|
| Category | Results |
|---|---|
| Documentation | 1 minor |
🟢 Metrics 0 duplication
Metric Results Duplication 0
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
🟡 Changes recommended
The CI workflow removes pytest-mock and pytest-asyncio, but the test suite depends on them, so the pipeline will fail until those dependencies are restored.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates the LORA pipeline for the 1.2.0 release, focusing on restoring BUSCO lineage discovery (now scraping the v6 listing and supporting odb12.2) and adjusting CI/environment packaging to match the new release constraints.
Changes:
- Update BUSCO lineage retrieval logic and make
--busco-print-lineagesan eager/early-exit CLI option (including odb12.2 support). - Refresh release metadata and packaging (version bump to 1.2.0, environment dependency update).
- Modernize CI workflow (Python matrix update, action version bumps, caching tweaks).
File summaries
| File | Description |
|---|---|
sequana_pipelines/lora/main.py |
Adds an eager callback to print BUSCO lineages and exit without requiring other mandatory options; extends BUSCO DB version choices. |
sequana_pipelines/lora/info.py |
Switches BUSCO lineage scraping to the v6 listing and tightens matching to exact ODB version + latest date. |
sequana_pipelines/lora/config.yaml |
Updates the fastp apptainer image reference. |
README.rst |
Adds a Python version badge and documents 1.2.0 changes in the changelog. |
pyproject.toml |
Bumps package version to 1.2.0. |
environment.yml |
Adds pulp>=2.8 and reformats the environment definition. |
.github/workflows/main.yml |
Updates CI Python matrix/actions and adjusts dependency installation/testing/coveralls behavior. |
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
blast was listed twice in environment.yml. The BUSCO lineage listing request had no timeout, so the CLI could hang indefinitely if the server stalls.
The test suite uses the mocker fixture and async tests, but the CI only installed pytest, pytest-cov and pytest-xdist, so collection failed with ModuleNotFoundError: No module named 'pytest_mock'. pytest-asyncio was missing too and would have failed right after (asyncio_mode is strict).
No description provided.