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

Update pepsirf to 1.7.0 #51138

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Update pepsirf to 1.7.0 #51138

wants to merge 7 commits into from

Conversation

BiocondaBot
Copy link
Collaborator

@BiocondaBot BiocondaBot commented Oct 3, 2024

Update pepsirf: 1.6.01.7.0

install with bioconda Conda

Info Link or Description
Recipe recipes/pepsirf (click to view/edit other files)
Summary Peptide-based Serological Immune Response Framework.
Home https://github.com/LadnerLab/PepSIRF
Releases https://github.com/LadnerLab/PepSIRF/tags
Author @LadnerLab

This pull request was automatically generated (see docs).

@BiocondaBot BiocondaBot added autobump Automatic Version Update new version labels Oct 3, 2024
Copy link
Contributor

coderabbitai bot commented Oct 3, 2024

📝 Walkthrough
📝 Walkthrough
📝 Walkthrough
📝 Walkthrough

Walkthrough

The pull request includes the deletion of three build failure metadata files associated with the pepsirf recipe and one for the aarch64 architecture. Additionally, the build.sh script has been significantly modified to enhance the build process by adopting a CMake-based approach. This update introduces new environment variables and refines the build command for improved efficiency. Furthermore, the meta.yaml file for the pepsirf package has been updated to version 1.7.0, which includes changes to the SHA256 checksum, source URL, build number, and dependencies.

Changes

File Path Change Summary
recipes/k8/build_failure.linux-aarch64.yaml - Deleted file containing metadata about a build failure, including recipe_sha, skiplist, category, and reason.
recipes/pepsirf/build.sh - Significant modifications to enhance the build process using CMake, including new environment variables and build commands.
recipes/pepsirf/build_failure.linux-64.yaml - Deleted file containing metadata about a build failure, including recipe_sha, skiplist, and detailed build logs.
recipes/pepsirf/build_failure.osx-64.yaml - Deleted file containing metadata about a build failure, including recipe_sha, skiplist, and detailed build logs.
recipes/pepsirf/meta.yaml - Version updated from 1.6.0 to 1.7.0
- SHA256 updated
- Source URL updated
- Build number reset from 3 to 0
- Dependency on boost replaced with boost-cpp
- New entry for run_exports added
- About section expanded with new entries.

Possibly related PRs

  • recipe for pgrc #50973: The changes in the build_failure.linux-64.yaml file for the pepsirf recipe are related to the main PR as both involve handling build failures and metadata related to recipes that failed to build.
  • 2024.4 #50977: Similar to the main PR, this PR involves the deletion of a build_failure.osx-64.yaml file, which also contains metadata about a failed build, indicating a connection in terms of managing build failures.
  • trnascan-se: add aarch64/arm64 build #50996: The changes in the build_failure.linux-64.yaml file for the trnascan-se recipe are related to the main PR as both involve tracking build failures and their associated metadata.
  • infernal: add osx-arm64 build #50997: This PR also involves the addition of a build for a specific architecture, which aligns with the main PR's focus on handling build failures for specific recipes.
  • pgrc: add linux-aarch64 build #51009: The addition of a build for the pgrc recipe for the linux-aarch64 architecture relates to the main PR's focus on managing build failures for specific architectures.
  • bambamc: add aarch64/arm64 builds #51067: The introduction of aarch64/arm64 builds for the bambamc recipe is relevant as it aligns with the main PR's focus on handling build failures for specific architectures.
  • longreadsum: add aarch64/arm64 builds #51121: The addition of aarch64/arm64 builds for the longreadsum recipe is related to the main PR's focus on managing build failures for specific architectures.

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: 1

🧹 Outside diff range and nitpick comments (3)
recipes/pepsirf/build.sh (3)

1-1: Add error handling flags for safer script execution.

Consider adding set -euo pipefail after the shebang to ensure the script exits immediately if a command fails (-e), treat unset variables as an error (-u), and catch errors in pipelines (-o pipefail). This enhances the robustness of the script.

Suggested change:

 #!/bin/bash
+set -euo pipefail

5-6: Remove unused environment variables INCLUDES and LIBPATH.

The variables INCLUDES and LIBPATH are exported but not utilized in the script. Unless they are required by the build system or downstream processes, consider removing them to clean up the environment.

Suggested change:

-export INCLUDES="-I${PREFIX}/include"
-export LIBPATH="-L${PREFIX}/lib"

10-10: Use modern command substitution syntax $(uname) instead of backticks.

For better readability and to avoid potential issues with nested commands, it's recommended to use $(command) instead of backticks `command` for command substitution.

Suggested change:

-if [[ `uname` == "Darwin" ]]; then
+if [[ $(uname) == "Darwin" ]]; then
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between d73e10b and 3b72676.

📒 Files selected for processing (5)
  • recipes/k8/build_failure.linux-aarch64.yaml (0 hunks)
  • recipes/pepsirf/build.sh (1 hunks)
  • recipes/pepsirf/build_failure.linux-64.yaml (0 hunks)
  • recipes/pepsirf/build_failure.osx-64.yaml (0 hunks)
  • recipes/pepsirf/meta.yaml (2 hunks)
💤 Files with no reviewable changes (3)
  • recipes/k8/build_failure.linux-aarch64.yaml
  • recipes/pepsirf/build_failure.linux-64.yaml
  • recipes/pepsirf/build_failure.osx-64.yaml
🧰 Additional context used
🪛 yamllint
recipes/pepsirf/meta.yaml

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

(syntax)

🔇 Additional comments (7)
recipes/pepsirf/meta.yaml (5)

1-2: LGTM: Version and checksum updated correctly.

The package version has been updated to 1.7.0, and the SHA256 checksum has been changed accordingly. This aligns with the PR objective of updating pepsirf to version 1.7.0.

🧰 Tools
🪛 yamllint

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

(syntax)


9-9: LGTM: Source URL updated correctly.

The source URL has been updated to point to the 1.7.0 release tag, which is consistent with the version update.


13-15: LGTM: Build number reset and run_exports added.

The build number has been correctly reset to 0 for the new version. The addition of run_exports with pin_subpackage is a good practice for maintaining ABI compatibility across minor versions.


38-42: LGTM: 'About' section updates improve metadata.

The changes in the 'about' section enhance the package metadata:

  • Minor formatting improvements to the home URL and license.
  • Addition of 'license_family: GPL3' provides clearer licensing information.
  • The summary now ends with a period, improving readability.
  • Addition of 'dev_url' provides a direct link to the development repository.

These changes improve the overall quality and completeness of the package metadata.


1-2: Note: Ignore yamllint syntax error for '%' character.

The static analysis tool (yamllint) reports a syntax error for the '%' character at the beginning of the file. This is a false positive. The '%' is part of the Jinja2 templating syntax commonly used in Conda recipes for setting variables. The syntax here is correct and necessary for the recipe to function properly.

🧰 Tools
🪛 yamllint

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

(syntax)

recipes/pepsirf/build.sh (2)

7-8: ⚠️ Potential issue

Ensure LDFLAGS is properly utilized in the build process.

While CXXFLAGS is passed to CMake with -DCMAKE_CXX_FLAGS, LDFLAGS is set but not explicitly passed to CMake. To ensure linker flags are correctly applied, consider passing LDFLAGS to CMake using -DCMAKE_EXE_LINKER_FLAGS.

Suggested change:

 cmake -S . -B build -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
     -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER="${CXX}" \
     -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
+    -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
     "${CONFIG_ARGS}"

Please verify whether LDFLAGS needs to be passed explicitly or if it's automatically detected by CMake in your environment.


22-23: 🛠️ Refactor suggestion

Leverage cmake --install for standardized installation.

Instead of manually setting permissions and moving the executable, you can use cmake --install to handle the installation according to the CMakeLists.txt configuration. This ensures that all necessary files are installed correctly and respects any install rules defined in the project.

Suggested change:

 cmake --build build --target pepsirf -j "${CPU_COUNT}" -v
-chmod 0755 build/pepsirf
-mv build/pepsirf "${PREFIX}/bin"
+cmake --install build --prefix "${PREFIX}"

Ensure that the project's CMakeLists.txt includes appropriate install targets for pepsirf so that cmake --install works as intended. If the install targets are not defined, you may need to add them to the project's CMake configuration.

- {{ compiler('cxx') }}
host:
- zlib
- boost
- boost-cpp
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Codebase verification

Incomplete Replacement of 'boost' Dependencies

The dependency has been updated from boost to boost-cpp in recipes/pepsirf/meta.yaml. However, multiple references to boost still exist throughout the codebase, indicating that the replacement is not fully implemented. This may lead to inconsistencies or build issues.

Files still referencing 'boost':

  • recipes/build-fail-blacklist
  • recipes/bioconductor-netboost/meta.yaml
  • recipes/bte/meta.yaml
  • recipes/cansam/meta.yaml
  • recipes/galaxy-ml/meta.yaml
  • recipes/metagraph/meta.yaml
  • recipes/reseq/meta.yaml
  • recipes/sankoff/meta.yaml
  • recipes/scelestial/meta.yaml
  • recipes/tagger/meta.yaml
  • recipes/vamos/meta.yaml
  • recipes/scelestial/meta.yaml
  • recipes/reviewer/meta.yaml
  • (and many others as identified in the search results)

Please ensure that all instances of boost are appropriately replaced with boost-cpp where necessary to maintain consistency and avoid potential issues.

🔗 Analysis chain

Verify the impact of changing 'boost' to 'boost-cpp'.

The dependency has been updated from 'boost' to 'boost-cpp' in both build and run requirements. This change is likely intentional to specify a more targeted dependency on Boost's C++ components. However, it's important to ensure that this change doesn't negatively impact the build process or runtime behavior.

To verify the impact of this change, you can run the following script:

Also applies to: 26-26

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if the package builds and tests successfully with the new boost-cpp dependency.

# Test: Attempt to build the package
conda build .

# Test: Run the package tests
conda build . --test

Length of output: 184


Script:

#!/bin/bash
# Description: Verify that 'boost' has been replaced with 'boost-cpp' throughout the codebase.

# Search for any remaining references to 'boost'
echo "Searching for remaining 'boost' references..."
rg 'boost\b' .

# Confirm that 'boost-cpp' is correctly referenced
echo "Searching for 'boost-cpp' references..."
rg 'boost-cpp' .

Length of output: 132494

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: 0

🧹 Outside diff range and nitpick comments (2)
recipes/pepsirf/build.sh (2)

5-8: LGTM: Comprehensive environment setup with a suggestion.

The environment variable setup is thorough, including necessary paths and flags for compilation. The use of -O3 for high optimization is appropriate for a release build.

Consider adding a comment explaining the purpose of the -D_LIBCPP_DISABLE_AVAILABILITY flag for better maintainability.


16-20: LGTM: Well-structured CMake configuration and build process with a suggestion.

The CMake configuration and build commands are well-structured:

  • Out-of-source build is correctly implemented, keeping the source directory clean.
  • The installation prefix, build type, and compiler flags are properly set.
  • Parallel build using CPU_COUNT can significantly speed up the build process.

Consider making the verbose output (-v flag) optional or controlled by an environment variable. This would allow for detailed output when needed without always producing excessive information.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 3b72676 and ee4a0bc.

📒 Files selected for processing (1)
  • recipes/pepsirf/build.sh (1 hunks)
🔇 Additional comments (3)
recipes/pepsirf/build.sh (3)

3-4: LGTM: Proper directory setup.

The script correctly creates the bin directory in the $PREFIX location, which is a standard practice for build scripts. This ensures flexibility in installation locations.


10-14: LGTM: Proper OS-specific configuration.

The script correctly handles OS-specific configuration:

  • It accurately identifies macOS using the uname command.
  • For macOS, it disables framework and application bundle finding, which helps avoid conflicts with system libraries.
  • For other systems, it appropriately leaves CONFIG_ARGS empty.

This approach ensures better cross-platform compatibility.


22-23: LGTM: Correct handling of the built executable.

The final steps are handled correctly:

  • The script sets appropriate executable permissions (0755) on the built file.
  • The executable is correctly moved to the bin directory in $PREFIX, which is the standard location for installed binaries.

These steps ensure that the built executable is properly installed and accessible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autobump Automatic Version Update new version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants