-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HalfDeep work in progress #51957
HalfDeep work in progress #51957
Conversation
📝 Walkthrough📝 WalkthroughWalkthroughThis pull request introduces two new files related to the "HalfDeep" package. The first file, Possibly related PRs
Suggested reviewers
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? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Outside diff range and nitpick comments (2)
recipes/halfdeep/build.sh (1)
1-5
: Addpipefail
option for comprehensive error handling.While the current error handling is good, adding
set -o pipefail
would ensure that pipeline failures are also caught, making the script more robust.#!/usr/bin/env bash set -o errexit set -o nounset +set -o pipefail set -o xtrace
recipes/halfdeep/meta.yaml (1)
36-41
: Add more package metadataConsider adding more metadata fields to improve package discoverability.
about: home: https://github.com/richard-burhans/{{ name }} summary: {{ name }} license: BSD-3-Clause license_file: LICENSE license_url: https://github.com/richard-burhans/{{ name }}/blob/master/LICENSE + doc_url: https://github.com/richard-burhans/{{ name }}/blob/master/README.md + dev_url: https://github.com/richard-burhans/{{ name }} + description: | + [Add a detailed description of the package here]
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
recipes/halfdeep/build.sh
(1 hunks)recipes/halfdeep/meta.yaml
(1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/halfdeep/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (5)
recipes/halfdeep/build.sh (1)
7-7
: LGTM!
The directory creation follows Bioconda guidelines, using the correct PREFIX variable and appropriate mkdir flags.
recipes/halfdeep/meta.yaml (4)
12-22
:
Add build requirements and verify dependency availability
- The recipe is missing build requirements section which might be needed for proper packaging.
- Need to verify if
genodsp
is available in conda channels.
#!/bin/bash
# Check if genodsp is available in conda channels
conda search genodsp --info
Add build requirements section:
requirements:
+ build:
+ - {{ compiler('c') }} # if C compilation is needed
+ - make # if using make for building
run:
- bash
# ... rest of run dependencies
24-28
: 🛠️ Refactor suggestion
Review run_exports pinning strategy
For a 0.x.x version, the current pinning strategy might be too strict. According to Bioconda guidelines, you should adjust the pinning based on known API/ABI compatibility guarantees.
#!/bin/bash
# Check if there are any shared libraries that would require strict pinning
find . -name "*.so*" -o -name "*.dylib" -o -name "*.dll"
Consider adjusting the pinning:
run_exports:
- - {{ pin_subpackage('halfdeep', max_pin="x.x") }}
+ - {{ pin_subpackage('halfdeep', max_pin="x") }} # For 0.x.x versions
9-10
: Verify source checksum
The source configuration looks good, but let's verify the checksum matches the release archive.
43-45
: Verify aarch64 build environment
The addition of linux-aarch64 platform looks good, but ensure that all dependencies are available for this architecture.
✅ Verification successful
Linux-aarch64 platform support looks consistent
The addition of linux-aarch64 platform is well-supported:
- The key dependency
genodsp
also supports linux-aarch64 platform - Other dependencies are either standard Linux utilities or platform-independent packages
- Both packages use the same build configuration with
skip: True # [not linux]
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if key dependencies are available for aarch64
conda search --platform linux-aarch64 genodsp
Length of output: 120
Script:
#!/bin/bash
# Let's check the recipe dependencies and build requirements
cat recipes/halfdeep/meta.yaml
Length of output: 933
Script:
#!/bin/bash
# Let's check if the key dependencies are available in the repository for aarch64
# We'll check the main dependencies that might be architecture-specific
rg -l "linux-aarch64" recipes/genodsp/
rg -l "linux-aarch64" recipes/gawk/
rg -l "linux-aarch64" recipes/r-base/
Length of output: 248
Script:
#!/bin/bash
# Let's check the genodsp recipe since it's a key dependency and is available in the repo
cat recipes/genodsp/meta.yaml
Length of output: 947
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this 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
🧹 Outside diff range and nitpick comments (2)
recipes/halfdeep/meta.yaml (2)
8-10
: Consider using .tar.gz instead of .zip archive.While both formats work, .tar.gz is the preferred format for Unix systems and is more commonly used in Bioconda recipes.
- url: https://github.com/richard-burhans/{{ name }}/archive/refs/tags/{{ version }}.zip + url: https://github.com/richard-burhans/{{ name }}/archive/refs/tags/{{ version }}.tar.gz
34-39
: Add recommended metadata fields.Consider adding these fields to improve package discoverability:
about: home: https://github.com/richard-burhans/{{ name }} summary: Automated detection of intervals covered at half depth by sequenced reads. license: BSD-3-Clause license_file: LICENSE license_url: https://github.com/richard-burhans/{{ name }}/blob/master/LICENSE + description: | + [Add a longer description of the tool here] + dev_url: https://github.com/richard-burhans/{{ name }} + doc_url: https://github.com/richard-burhans/{{ name }}#readme + tags: + - genomics
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
recipes/halfdeep/build.sh
(1 hunks)recipes/halfdeep/meta.yaml
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- recipes/halfdeep/build.sh
🧰 Additional context used
🪛 yamllint
recipes/halfdeep/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (2)
recipes/halfdeep/meta.yaml (2)
1-6
: LGTM! Package metadata is well-structured.
The package name and version are properly defined using Jinja2 templating, with correct lowercasing of the package name.
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
30-32
: Previous test coverage comment is still applicable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (2)
recipes/halfdeep/build.sh
(1 hunks)recipes/halfdeep/meta.yaml
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- recipes/halfdeep/build.sh
🧰 Additional context used
🪛 yamllint
recipes/halfdeep/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (4)
recipes/halfdeep/meta.yaml (4)
1-6
: LGTM! Package metadata follows best practices.
The package name and version are properly templated, with correct lowercasing of the package name.
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
36-41
: LGTM! About section is complete and well-documented.
All required metadata fields are present with proper licensing information and a descriptive summary.
8-10
: Consider using .tar.gz instead of .zip for the source.
While both formats work, .tar.gz is the preferred format for source distributions in the Linux/Unix ecosystem and is typically smaller in size.
Let's verify the checksum and availability of both archive formats:
#!/bin/bash
# Check if .tar.gz is available and compare with .zip
curl -sI "https://github.com/richard-burhans/HalfDeep/archive/refs/tags/0.1.0.tar.gz"
echo "Verifying provided checksum..."
curl -sL "https://github.com/richard-burhans/HalfDeep/archive/refs/tags/0.1.0.zip" | sha256sum
12-24
: 🛠️ Refactor suggestion
Add version constraints for bioinformatics tools.
While the previous review covered Python and R constraints, it's also important to specify minimum versions for bioinformatics tools to ensure compatibility:
- gawk
- - genodsp
+ - genodsp >=1.0
- grep
- gzip
- - minimap2
+ - minimap2 >=2.24
- python
- r
- - samtools
+ - samtools >=1.15
- sed
Let's verify the genodsp dependency:
There was a problem hiding this 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
🧹 Outside diff range and nitpick comments (1)
recipes/halfdeep/meta.yaml (1)
1-7
: Consider package naming consistencyThe package name is defined in uppercase (
HalfDeep
) but used in lowercase. While the|lower
filter handles this, it's better to define it in lowercase initially for consistency.-{% set name = "HalfDeep" %} +{% set name = "halfdeep" %}🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
recipes/halfdeep/meta.yaml
(1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/halfdeep/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
recipes/halfdeep/meta.yaml
Outdated
requirements: | ||
run: | ||
- bash | ||
- coreutils | ||
- gawk | ||
- genodsp | ||
- grep | ||
- gzip | ||
- minimap2 | ||
- python >={{ minimum_python_version }} | ||
- r-base >={{ r_base }} | ||
- samtools | ||
- sed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add version constraints for bioinformatics tools
Critical tools like minimap2
and samtools
should have version constraints to ensure reproducibility. Also, verify that the r_base
variable is defined.
- minimap2
+ - minimap2 >=2.24
- python >={{ minimum_python_version }}
- r-base >={{ r_base }}
- samtools
+ - samtools >=1.15
Committable suggestion skipped: line range outside the PR's diff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (2)
recipes/halfdeep/meta.yaml (2)
9-10
: Consider using .tar.gz instead of .zip for the source archiveUsing .tar.gz is preferred for Unix systems and is the standard format for most Conda packages. It typically provides better compression and preserves Unix file permissions.
- url: https://github.com/richard-burhans/{{ name }}/archive/refs/tags/{{ version }}.zip + url: https://github.com/richard-burhans/{{ name }}/archive/refs/tags/{{ version }}.tar.gz
32-34
: Consider adding test filesWhile command verification is good, consider adding:
- Test data files to verify actual functionality
- Test that input/output formats are handled correctly
Add test files section:
test: files: - test-data/sample.bam # Example BAM file for testing - test-data/expected_output.txt # Expected output for validation
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
recipes/halfdeep/meta.yaml
(1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/halfdeep/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (2)
recipes/halfdeep/meta.yaml (2)
13-24
: Verify completeness of runtime dependencies
The dependencies look reasonable, but please verify:
- Are there any R packages required beyond r-base?
- Are there any Python packages required beyond the interpreter?
- Do any of the scripts use other Unix tools not listed here?
1-41
: Verify Bioconda-specific requirements
Please ensure the recipe follows Bioconda guidelines:
- Add
host:
section if any compilation is needed - Consider adding
extra:
section with:- Recipe maintainer information
- Links to upstream issues/PRs
- DOI for citation
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
Describe your pull request here
Please read the guidelines for Bioconda recipes before opening a pull request (PR).
General instructions
@BiocondaBot please add label
command.@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:with
...
being one of:{{ pin_subpackage("myrecipe", max_pin="x") }}
{{ pin_subpackage("myrecipe", max_pin="x.x") }}
{{ pin_subpackage("myrecipe", max_pin="x.x") }}
(in such a case, please add a note that shortly mentions your evidence for that){{ pin_subpackage("myrecipe", max_pin="x.x.x") }}
(in such a case, please add a note that shortly mentions your evidence for that){{ pin_subpackage("myrecipe", max_pin=None) }}
while replacing
"myrecipe"
with eithername
if aname|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
@BiocondaBot please add label
please review & merge
label.@BiocondaBot please fetch artifacts
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>
.