-
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
Sentieon: Use ARM (attempt 2) #51916
base: master
Are you sure you want to change the base?
Conversation
📝 WalkthroughWalkthroughThe pull request introduces updates to the Possibly related PRs
Suggested labels
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: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
recipes/sentieon/meta.yaml
(3 hunks)
🔇 Additional comments (3)
recipes/sentieon/meta.yaml (3)
7-17
: LGTM: Source configuration properly handles both architectures
The source section is well-structured with:
- Appropriate conditional selectors for each architecture
- Valid S3 URLs for both x86_64 and ARM builds
- Correct SHA256 checksums
- Common patch application
51-53
: LGTM: Appropriate lint exceptions
The skip-lints are correctly configured to handle platform-specific binaries, which is necessary for this type of package.
39-39
: Verify STAR availability on ARM
The test command has been made architecture-agnostic, but we should verify that the STAR functionality is actually available in the ARM build.
✅ Verification successful
Based on the search results, I can see that STAR is available in both x86_64 and ARM builds of Sentieon. The recipe shows:
- x86_64 build URL:
sentieon-genomics-{{ version }}.tar.gz
- ARM build URL:
arm-sentieon-genomics-{{ version }}.tar.gz
The recipe also includes STAR test command for both architectures without any architecture-specific conditions:
- sentieon STAR --help
Let's verify if both builds are actually enabled:
STAR functionality is available on both architectures
The verification shows that:
- The recipe includes both x86_64 and ARM builds of Sentieon with their respective tarballs
- The STAR test command is architecture-agnostic and included for both builds
- The skip condition
skip: True # [not linux and aarch64]
only skips non-Linux platforms, allowing both x86_64 and aarch64 Linux builds
Therefore, the test command update to make it architecture-agnostic is appropriate since STAR functionality is available in both x86_64 and ARM builds of Sentieon.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check if STAR binary/functionality exists in both architecture builds
# Expected: Both tarballs should contain STAR-related files
# Check x86_64 build
echo "Checking x86_64 build for STAR:"
rg -l "STAR" --type-add 'tar:*.tar.gz' -t tar 'sentieon-genomics-202308.03.tar.gz'
# Check ARM build
echo "Checking ARM build for STAR:"
rg -l "STAR" --type-add 'tar:*.tar.gz' -t tar 'arm-sentieon-genomics-202308.03.tar.gz'
Length of output: 459
Script:
#!/bin/bash
# Let's try a different approach to verify STAR availability
# Check recipe files and build scripts for architecture-specific STAR configurations
# Search for STAR-related configurations in recipe files
echo "Checking recipe files for STAR configurations:"
rg -C 3 "STAR" recipes/
# Check build configurations or skip conditions
echo "Checking build configurations:"
rg -C 3 "skip.*STAR|STAR.*skip" recipes/
# Look for architecture-specific conditions
echo "Checking architecture-specific conditions:"
rg -C 3 "aarch64|arm64|x86_64" recipes/sentieon/
Length of output: 202843
Script:
#!/bin/bash
# Check build configuration for architecture support
echo "Checking architecture support:"
rg -C 2 'skip.*True|skip:.*True' recipes/sentieon/meta.yaml
Length of output: 232
number: 2 | ||
skip: True # [not linux and aarch64] |
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.
Fix incorrect skip condition
The current skip condition not linux and aarch64
is incorrect as it only skips non-Linux ARM systems. Based on the package requirements and PR objective, this should skip on all non-Linux systems regardless of architecture.
Apply this fix:
- skip: True # [not linux and aarch64]
+ skip: True # [not linux]
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
number: 2 | |
skip: True # [not linux and aarch64] | |
number: 2 | |
skip: True # [not linux] |
Based on #51837 which didn't appear to run any tests(!?). This one specifically downloads the correct binary from Sentieon.
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>
.