Skip to content

Conversation

uniqueg
Copy link
Member

@uniqueg uniqueg commented Apr 6, 2025

Description

Fixes #180
Fixes #182
Fixes #183
Fixes #184
Fixes #185
Fixes #186
Fixes #187

Conventional Commits guidelines

Checklist:

(most are not applicable)

  • My code changes follow the style of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing tests pass locally with my changes
  • I have updated the project's documentation

Summary by Sourcery

Migrate project from Singularity to Apptainer, update dependencies, and streamline environment configurations

New Features:

  • Standardize workflow profiles to use Apptainer instead of Singularity

Enhancements:

  • Update Snakemake configuration to use container instead of Singularity
  • Simplify environment configuration and dependency management

Build:

  • Consolidate environment files into a single development environment configuration
  • Update Conda environment to use latest Snakemake and Python versions
  • Remove separate root and development environment files

CI:

  • Migrate CI workflows from Ubuntu 20.04 to latest Ubuntu
  • Update GitHub Actions to use Miniforge and latest Conda setup
  • Replace Singularity with Apptainer in test and deployment workflows

Chores:

  • Remove unused environment and configuration files
  • Update project documentation and configuration references

@uniqueg uniqueg changed the title ci: update Ubuntu, pin Conda & Mamba ci: pin Conda build version Apr 6, 2025
@uniqueg
Copy link
Member Author

uniqueg commented Apr 21, 2025

@sourcery-ai summary

@uniqueg uniqueg changed the title ci: pin Conda build version build: major dependencies update Apr 21, 2025
@uniqueg
Copy link
Member Author

uniqueg commented Apr 21, 2025

@sourcery-ai review

Copy link

sourcery-ai bot commented Apr 21, 2025

Reviewer's Guide by Sourcery

This pull request migrates the project from Singularity to Apptainer, updates major dependencies including Snakemake and Python, and streamlines environment configurations by consolidating Conda environments and updating CI workflows to use the latest Ubuntu version and Miniforge. It also updates the default samples file path and removes obsolete files.

No diagrams generated as the changes look simple and do not need a visual representation.

File-Level Changes

Change Details Files
Migrated from Singularity to Apptainer by replacing Singularity directives with Apptainer and updating related configurations.
  • Replaced use-singularity with use-apptainer in profile configurations.
  • Replaced singularity-args with apptainer-args in profile configurations.
  • Replaced singularity directives with container in Snakemake rules.
  • Updated test scripts to use Apptainer instead of Singularity.
  • Updated CI workflows to install and use Apptainer.
.github/workflows/ci.yml
profiles/local-apptainer/config.yaml
profiles/slurm-apptainer/config.yaml
workflow/rules/htsinfer.smk
workflow/rules/sra_download.smk
workflow/rules/sra_paired_end.smk
workflow/rules/sra_single_end.smk
tests/test_format/test_snakemake_lint.sh
tests/test_integration_workflow/test.local.sh
tests/test_htsinfer_with_apptainer/test.local.sh
tests/test_integration_workflow/test.slurm.sh
tests/test_integration_workflow/test.temp.flag.sh
tests/test_integration_workflow_multiple_lanes/test.local.sh
tests/test_integration_workflow_multiple_lanes/test.slurm.sh
tests/test_sra_download_with_apptainer/test.local.sh
tests/test_sra_download_with_apptainer/test.slurm.sh
Consolidated and updated Conda environment configurations.
  • Consolidated environment.yml, environment.root.yml, and environment.dev.yml into a single environment.dev.yml.
  • Updated Conda environment to use the latest Snakemake and Python versions.
  • Removed separate root and development environment files.
  • Updated CI workflows to use Miniforge and the latest Conda setup.
.github/workflows/ci.yml
.github/workflows/docs.yml
install/environment.dev.yml
install/environment.yml
workflow/envs/htsinfer.yaml
workflow/envs/samtools.yaml
Updated CI workflows to use the latest Ubuntu version and Miniforge.
  • Migrated CI workflows from Ubuntu 20.04 to the latest Ubuntu version.
  • Updated GitHub Actions to use Miniforge for Conda environment setup.
  • Removed redundant environment updates in CI workflows.
.github/workflows/ci.yml
.github/workflows/docs.yml
Updated default samples file path.
  • Changed the default samples file path in config.yaml to tests/input_files/samples.tsv.
config/config.yaml
Removed obsolete files.
  • Removed images/rule_graph.svg.
  • Removed install/environment.root.yml.
images/rule_graph.svg
install/environment.root.yml

Assessment against linked issues

Issue Objective Addressed Explanation
#180 Fix the conda environment and dependency issues that are causing the build and CI workflows to fail.
#180 Update CI workflows to use the latest Ubuntu and Conda setup.
#180 Migrate from Singularity to Apptainer in the workflows.
#182 Upgrade Ubuntu images used in CI workflows to a supported version.
#183 Replace Singularity with Apptainer in the ZARP pipeline.
#183 Update ZARP to use a recent version of containerization software.
#184 Upgrade ZARP to support and require Snakemake >=8.
#185 Remove the pinned Python version from the CI workflows.
#185 Upgrade the Snakemake dependency in install/environment.yml to use at least Python 3.11.
#186 Remove Conda installation of Singularity/Apptainer.
#186 Use dedicated GitHub Action to set up Apptainer.
#186 Resolve the permission errors when using Singularity/Apptainer in CI.
#187 Avoid upgrading or downgrading base dependencies when installing development dependencies.
#187 Instead of listing only the additional development dependencies in install/environment.dev.yml, also specify the base dependencies from install/environment.dev.yml in that file.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @uniqueg - I've reviewed your changes - here's some feedback:

Overall Comments:

  • Consider using ubuntu-latest instead of ubuntu-20.04 for the runner image to get the latest features and security updates.
  • The CI workflows now have duplicated blocks for setting up conda - consider creating a reusable workflow.
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@uniqueg
Copy link
Member Author

uniqueg commented Apr 21, 2025

@sourcery-ai review

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @uniqueg - I've reviewed your changes - here's some feedback:

Overall Comments:

  • Consider using conda env export to generate environment files to ensure reproducibility.
  • The CI workflows now use ubuntu-latest, ensure that this change does not introduce unexpected behavior due to differences in the environment.
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@uniqueg
Copy link
Member Author

uniqueg commented Apr 21, 2025

@sourcery-ai guide

@uniqueg uniqueg merged commit 89969ff into dev Apr 21, 2025
11 checks passed
@uniqueg uniqueg deleted the upgrade_ci branch April 21, 2025 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant