-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Update zol to 1.5.0 #51673
Update zol to 1.5.0 #51673
Conversation
📝 Walkthrough📝 WalkthroughWalkthroughThe pull request introduces an update to the The Possibly related PRs
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: 0
🧹 Outside diff range and nitpick comments (1)
recipes/zol/meta.yaml (1)
Line range hint
13-14
: Consider pinning critical dependenciesThe package has extensive bioinformatics dependencies. While the current configuration is functional, consider:
- Pinning version ranges for critical dependencies to ensure reproducibility
- Adding upper bounds for dependencies known to have breaking changes
For example:
run: - diamond >=2.1.7,<3.0 - pyhmmer <2.0 - pandas >=2.0,<3.0Also applies to: 19-54
🧰 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/zol/meta.yaml (1 hunks)
🔇 Additional comments (2)
recipes/zol/meta.yaml (2)
2-2
: LGTM: Version update is consistentThe version bump to 1.5.0 matches the PR objectives and follows semantic versioning.
9-10
: Verify release availability and checksumLet's verify that the GitHub release exists and the checksum matches the source tarball.
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.
cp zol/njTree.R ${PREFIX}/bin/ | ||
cp zol/phyloHeatmap.R ${PREFIX}/bin/ | ||
cp zol/salt_gc_vs_ribo_aai.R ${PREFIX}/bin/ | ||
export LDFLAGS= |
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.
Avoid clearing LDFLAGS in conda build scripts.
Setting LDFLAGS
to empty could override important system-specific linker flags that conda-build provides. This might cause linking issues on some platforms.
Either remove this line or preserve existing flags:
-export LDFLAGS=
+export LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names"
📝 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.
export LDFLAGS= | |
export LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names" |
${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/runRBH src/zol/orthologs/runRBH.cpp | ||
${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/splitDiamondResults src/zol/orthologs/splitDiamondResults.cpp | ||
${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/splitDiamondResultsForFai src/zol/splitDiamondResultsForFai.cpp |
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.
💡 Codebase verification
Platform-specific linker flags should be handled by conda-forge's compiler configuration
From the meta.yaml, we can see that the package properly uses conda-forge's C++ compiler configuration ({{ compiler('cxx') }}
). This means we don't need to manually handle platform-specific flags as conda-forge's compiler infrastructure will handle this automatically.
The source files referenced in build.sh don't exist in the expected locations, suggesting they might be part of the downloaded source archive. Since we can't verify the C++11 requirements in the source code, we should rely on conda-forge's default compiler settings.
- Remove the macOS-specific
-Wl,-headerpad_max_install_names
flag and let conda-forge handle platform-specific linking - Keep using C++11 as we can't verify if newer features are used in the source code
- Simplify the build script to use conda-forge's compiler configuration
-${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/runRBH src/zol/orthologs/runRBH.cpp
-${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/splitDiamondResults src/zol/orthologs/splitDiamondResults.cpp
-${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/splitDiamondResultsForFai src/zol/splitDiamondResultsForFai.cpp
+${CXX} -std=c++11 -o ${PREFIX}/bin/runRBH src/zol/orthologs/runRBH.cpp
+${CXX} -std=c++11 -o ${PREFIX}/bin/splitDiamondResults src/zol/orthologs/splitDiamondResults.cpp
+${CXX} -std=c++11 -o ${PREFIX}/bin/splitDiamondResultsForFai src/zol/splitDiamondResultsForFai.cpp
🔗 Analysis chain
Consider cross-platform compatibility for linker flags.
The -Wl,-headerpad_max_install_names
flag is specific to macOS and may cause issues on other platforms. Additionally, the hardcoded C++11 standard might be outdated for newer compilers.
Let's verify the compiler requirements in the package metadata:
Consider these improvements:
- Make the linker flags conditional based on the platform
- Use the conda-forge compiler standards
- Consider upgrading to a newer C++ standard
Here's a suggested implementation:
-${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/runRBH src/zol/orthologs/runRBH.cpp
-${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/splitDiamondResults src/zol/orthologs/splitDiamondResults.cpp
-${CXX} -std=c++11 -Wl,-headerpad_max_install_names -o ${PREFIX}/bin/splitDiamondResultsForFai src/zol/splitDiamondResultsForFai.cpp
+# Set platform-specific flags
+LINKER_FLAGS=""
+if [[ "$OSTYPE" == "darwin"* ]]; then
+ LINKER_FLAGS="-Wl,-headerpad_max_install_names"
+fi
+
+# Compile C++ programs
+for prog in runRBH splitDiamondResults splitDiamondResultsForFai; do
+ ${CXX} -std=c++14 ${LINKER_FLAGS} \
+ -o ${PREFIX}/bin/${prog} \
+ src/zol/orthologs/${prog}.cpp
+done
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if there are any compiler requirements specified
rg "compiler:" recipes/zol/meta.yaml
Length of output: 36
Script:
#!/bin/bash
# Let's check the entire meta.yaml file to understand build requirements
cat recipes/zol/meta.yaml
# Also check if there are any other build scripts that might set compiler flags
fd "build.*" recipes/zol/
# Let's also check for any C++ source files to understand minimum required features
fd ".+\.cpp$" -x head -n 20 {}
Length of output: 1558
Script:
#!/bin/bash
# Let's check the actual C++ source files content to understand C++11 requirements
rg -l "std::" src/zol/orthologs/runRBH.cpp src/zol/orthologs/splitDiamondResults.cpp src/zol/splitDiamondResultsForFai.cpp || true
# Let's also check if these files exist at the specified paths
fd -t f "runRBH.cpp|splitDiamondResults.cpp|splitDiamondResultsForFai.cpp"
# Check if there are any platform-specific build configurations
rg "OSTYPE|darwin|linux" recipes/zol/
Length of output: 475
Update
zol
: 1.4.12 → 1.5.0recipes/zol
(click to view/edit other files)@Kalan-Lab
This pull request was automatically generated (see docs).