Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ggcat 1.1.0 recipe #51632

Merged
merged 6 commits into from
Oct 24, 2024
Merged

Add ggcat 1.1.0 recipe #51632

merged 6 commits into from
Oct 24, 2024

Conversation

Guilucand
Copy link
Contributor

Add the recipe for ggcat, a program to build and query compacted and optionally colored de Bruijn graphs.


Please read the guidelines for Bioconda recipes before opening a pull request (PR).

General instructions

  • If this PR adds or updates a recipe, use "Add" or "Update" appropriately as the first word in its title.
  • New recipes not directly relevant to the biological sciences need to be submitted to the conda-forge channel instead of Bioconda.
  • PRs require reviews prior to being merged. Once your PR is passing tests and ready to be merged, please issue the @BiocondaBot please add label command.
  • Please post questions on Gitter or ping @bioconda/core in a comment.

Instructions for avoiding API, ABI, and CLI breakage issues

Conda is able to record and lock (a.k.a. pin) dependency versions used at build time of other recipes.
This way, one can avoid that expectations of a downstream recipe with regards to API, ABI, or CLI are violated by later changes in the recipe.
If not already present in the meta.yaml, make sure to specify run_exports (see here for the rationale and comprehensive explanation).
Add a run_exports section like this:

build:
  run_exports:
    - ...

with ... being one of:

Case run_exports statement
semantic versioning {{ pin_subpackage("myrecipe", max_pin="x") }}
semantic versioning (0.x.x) {{ pin_subpackage("myrecipe", max_pin="x.x") }}
known breakage in minor versions {{ pin_subpackage("myrecipe", max_pin="x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
known breakage in patch versions {{ pin_subpackage("myrecipe", max_pin="x.x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
calendar versioning {{ pin_subpackage("myrecipe", max_pin=None) }}

while replacing "myrecipe" with either name if a name|lower variable is defined in your recipe or with the lowercase name of the package in quotes.

Bot commands for PR management

Please use the following BiocondaBot commands:

Everyone has access to the following BiocondaBot commands, which can be given in a comment:

@BiocondaBot please update Merge the master branch into a PR.
@BiocondaBot please add label Add the please review & merge label.
@BiocondaBot please fetch artifacts Post links to CI-built packages/containers.
You can use this to test packages locally.

Note that the @BiocondaBot please merge command is now depreciated. Please just squash and merge instead.

Also, the bot watches for comments from non-members that include @bioconda/<team> and will automatically re-post them to notify the addressed <team>.

Copy link
Contributor

coderabbitai bot commented Oct 24, 2024

Warning

Rate limit exceeded

@Guilucand has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 0 minutes and 8 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Files that changed from the base of the PR and between dee584c and 6783815.

📝 Walkthrough
📝 Walkthrough
📝 Walkthrough
📝 Walkthrough

Walkthrough

The changes introduced in this pull request consist of two main components: a new shell script and a metadata file for the ggcat package. The build.sh script, located in the recipes/ggcat/ directory, is designed to install a Rust package using Cargo with specific options, including preventing dependency tracking and specifying the installation root via the ${PREFIX} environment variable. The meta.yaml file defines the metadata and build specifications for the ggcat package, setting its name to "ggcat" and version to "1.1.0". It includes build requirements for Rust and C compilers, a test command to verify installation, and additional metadata such as the project's homepage, license, and supported platforms. The source for the package is specified as a Git repository, and the file outlines the necessary dependencies and maintainer information.

Possibly related PRs

Suggested labels

please review & merge


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between e0997be and b82c40b.

📒 Files selected for processing (2)
  • recipes/ggcat/build.sh (1 hunks)
  • recipes/ggcat/meta.yaml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • recipes/ggcat/build.sh
🧰 Additional context used
🪛 yamllint
recipes/ggcat/meta.yaml

[error] 1-1: syntax error: found character '%' that cannot start any token

(syntax)

🔇 Additional comments (4)
recipes/ggcat/meta.yaml (4)

1-6: LGTM! Package definition follows best practices.

The package name and version are properly defined using Jinja2 variables.

🧰 Tools
🪛 yamllint

[error] 1-1: syntax error: found character '%' that cannot start any token

(syntax)


8-11: LGTM! Build configuration properly handles dependency pinning.

The run_exports section with max_pin="x" ensures ABI compatibility by only allowing patch-level updates, which aligns with the PR objectives for preventing API/ABI breakage.


36-43: LGTM! Extra section is complete.

The section properly specifies additional platforms, maintainer, and includes a DOI identifier.


19-22: 🛠️ Refactor suggestion

Requirements section needs enhancement.

Consider adding:

  1. A host section for system dependencies
  2. A run section for runtime dependencies
  3. Minimum Rust version specification

Let's verify if the package has any system dependencies:

Consider adding:

 requirements:
   build:
     - {{ compiler('rust') }}
     - {{ compiler('c') }}
+  host:
+    # Add system dependencies if needed based on verification
+  run:
+    # Add runtime dependencies

recipes/ggcat/meta.yaml Outdated Show resolved Hide resolved
Comment on lines +24 to +26
test:
commands:
- ggcat --help
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Enhance test coverage.

The current test only verifies that the command runs. Consider adding more comprehensive tests.

Add additional test commands:

 test:
   commands:
     - ggcat --help
+    - ggcat --version | grep {{ version }}
+    # Add basic functionality test if possible

Committable suggestion was skipped due to low confidence.

Comment on lines 13 to 16
source:
git_url: https://github.com/algbio/ggcat.git
git_rev: v1.1
git_depth: 1
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider using tarball URL instead of git_url.

While the current configuration works, using a tarball URL is preferred for Conda recipes as it's more reliable and efficient.

Replace the git source with:

-  git_url: https://github.com/algbio/ggcat.git
-  git_rev: v1.1
-  git_depth: 1
+  url: https://github.com/algbio/ggcat/archive/refs/tags/v1.1.tar.gz
+  sha256: <checksum>  # Replace with actual SHA256 checksum

Committable suggestion was skipped due to low confidence.

Guilucand and others added 3 commits October 24, 2024 16:55
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between b82c40b and dee584c.

📒 Files selected for processing (1)
  • recipes/ggcat/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/ggcat/meta.yaml

[error] 1-1: syntax error: found character '%' that cannot start any token

(syntax)

🔇 Additional comments (5)
recipes/ggcat/meta.yaml (5)

1-6: LGTM!

The package metadata section is well-structured using Jinja2 variables.

🧰 Tools
🪛 yamllint

[error] 1-1: syntax error: found character '%' that cannot start any token

(syntax)


13-15: LGTM with a note.

The source configuration is functional, though switching to .tar.gz format would align better with Conda packaging practices (as noted in previous reviews).


22-24: LGTM with a note.

The basic test is present, though expanding test coverage would be beneficial (as noted in previous reviews).


26-33: LGTM!

The about section is complete and well-formatted, incorporating all previous review suggestions.


35-42: Verify package's biological science relevance.

Given that the PR objectives mention that "new recipes not directly related to biological sciences should be submitted to conda-forge", please verify that ggcat is primarily used in biological research. The presence of a bioRxiv DOI suggests it is, but explicit confirmation would be helpful.

✅ Verification successful

Let me gather more information about the package's biological relevance by checking the recipe and any associated documentation.


Let me try one more search to get the package description and summary:


Let me try one final check to look at the source repository's description and README:


Based on the gathered information, I can now provide a final response:

Package is appropriately placed in Bioconda

The package GGCAT (Compacted and colored de Bruijn graph construction and querying) is clearly relevant to biological sciences for several reasons:

  • It's designed for processing raw sequencing data and building de Bruijn graphs, which are fundamental data structures in bioinformatics and genomics
  • The associated paper is published in Genome Research (gr.277615.122)
  • The tool is specifically designed for handling genomic sequencing data and performing biological sequence analysis
  • It includes features like processing raw sequencing data and handling colored de Bruijn graphs, which are commonly used in comparative genomics and metagenomics
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for biological science relevance in the repository
rg -i "bio|genom|dna|rna|sequenc" README.md
# Check the paper abstract using the DOI
echo "Please verify the biological relevance in the paper: https://doi.org/10.1101/gr.277615.122"

Length of output: 2120


Script:

#!/bin/bash
# Check package description in meta.yaml
cat recipes/ggcat/meta.yaml | grep -A 5 "about:"

# Search for biological terms in source code repository
rg -i "genom|dna|rna|sequenc" recipes/ggcat/

Length of output: 218


Script:

#!/bin/bash
# Get the complete meta.yaml content to see the package description
cat recipes/ggcat/meta.yaml

# Also check if there's a README in the recipe directory
ls -la recipes/ggcat/

Length of output: 1142


Script:

#!/bin/bash
# Get information from the source repository
gh repo view algbio/ggcat

# Try to get the README content from the source repository
gh repo view algbio/ggcat --json readme --jq .readme

Length of output: 11326

recipes/ggcat/meta.yaml Show resolved Hide resolved
recipes/ggcat/meta.yaml Outdated Show resolved Hide resolved
@Guilucand Guilucand changed the title Add ggcat 1.1 recipe Add ggcat 1.1.0 recipe Oct 24, 2024
Guilucand and others added 2 commits October 24, 2024 17:28
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
Contributor

@mencian mencian left a comment

Choose a reason for hiding this comment

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

Thanks @Guilucand! LGTM.

@mencian mencian merged commit 65fcd6c into bioconda:master Oct 24, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants