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 biobambam to v2.0.185 #52156

Merged
merged 3 commits into from
Nov 18, 2024
Merged

Update biobambam to v2.0.185 #52156

merged 3 commits into from
Nov 18, 2024

Conversation

mencian
Copy link
Contributor

@mencian mencian commented Nov 18, 2024

Describe your pull request here


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 Nov 18, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

The pull request introduces significant changes to the biobambam package, specifically in the build.sh and meta.yaml files. In build.sh, the configuration process has been enhanced by replacing the previous configuration command with a multi-step process that includes calling autoreconf -if and expanding the ./configure command to include additional options and updated compiler and linker flags. This aims to better prepare the build system for compiling the package. In meta.yaml, the package version has been incremented from 2.0.183 to 2.0.185, with corresponding updates to the datestamp and SHA256 hash. Additionally, several new dependencies have been added, including autoconf, automake, libtool, and pkg-config, while existing dependencies have been updated. The license has also been modified from GPLv3 to GPL-3.0-or-later, and new metadata fields have been added to enhance the package description and identification.

Possibly related PRs

  • bambamc: add aarch64/arm64 builds #51067: The changes in build.sh for bambamc include a multi-step configuration process similar to the modifications made in the build.sh of the main PR, which also enhances the configuration process.
  • Rebuild breseq #51221: The build.sh for breseq introduces autoreconf -if and updates the ./configure command, paralleling the changes made in the main PR's build.sh where autoreconf -if is added to improve the configuration process.
  • Add hmftools-redux 1.0_beta #51151: The meta.yaml for hmftools-redux introduces new build dependencies, including autoconf, which aligns with the changes in the main PR's meta.yaml that also updates build dependencies.
  • Update staden_io_lib recipe #51704: The build.sh for staden_io_lib includes autoreconf -if and updates the build process, similar to the enhancements made in the main PR's build.sh.
  • [biobb_chemistry] update 5.0.2 #51990: The meta.yaml for biobb_chemistry updates the version and dependencies, reflecting similar practices in the main PR's meta.yaml where versioning and dependencies are also updated.
  • [biobb_chemistry] update 5.0.2 #52009: The changes in the meta.yaml for biobb_chemistry specify a version constraint for ambertools, which is a similar approach to managing dependencies as seen in the main PR's updates.

Suggested labels

autobump, new version


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

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

1-3: Consider enhancing error handling with pipefail

While set -eu provides good error handling, adding set -o pipefail would catch errors in pipeline commands as well.

#!/bin/bash
-set -eu
+set -euo pipefail

10-10: Consider enhancing the build process

The build command could be improved by:

  1. Enabling parallel builds using make -j${CPU_COUNT}
  2. Adding a test step with make check before installation
-make install
+make -j${CPU_COUNT}
+make check
+make install
recipes/biobambam/meta.yaml (1)

Line range hint 1-52: Overall recipe update looks good

The recipe updates are well-structured and include:

  • Proper version bump with reset build number
  • Additional build requirements for autotools
  • Enhanced metadata with SPDX license identifier
  • Improved package identification with biotools reference

The changes align with Bioconda guidelines and best practices.

Consider adding a run_exports section to libmaus2 package if it's not already present, as it appears to be a direct dependency with potential ABI compatibility requirements.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 885c747 and f208844.

📒 Files selected for processing (2)
  • recipes/biobambam/build.sh (1 hunks)
  • recipes/biobambam/meta.yaml (2 hunks)
🔇 Additional comments (6)
recipes/biobambam/build.sh (2)

4-4: LGTM: Proper autotools initialization

The autoreconf -if command correctly prepares the build system by regenerating configuration files and installing missing auxiliary files.


5-9: Verify dependency versions and compiler flags

The configure command looks good but requires verification:

  1. Ensure that all dependencies (libmaus2, xerces-c, gmp) have appropriate version constraints in meta.yaml to prevent ABI incompatibilities.
  2. Consider explicitly setting CFLAGS and CXXFLAGS for better build control.
✅ Verification successful

Dependencies are properly versioned, compiler flags setup is standard

The verification shows that:

  • All required dependencies are properly specified with version constraints:
    • libmaus2 >=2.0.813 is pinned in both host and run requirements
    • gmp and xerces-c are correctly listed as host dependencies
  • The compiler flags setup follows conda-forge's standard practice:
    • Uses {{ compiler('cxx') }} which handles compiler flags automatically
    • CPPFLAGS and LDFLAGS are properly set for include and library paths
    • Explicit CFLAGS/CXXFLAGS are not required as they are handled by conda's compiler wrappers
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check dependency specifications in meta.yaml
echo "Checking meta.yaml for dependency versions..."
rg -A 5 "requirements:" recipes/biobambam/meta.yaml

# Check if CFLAGS/CXXFLAGS are used in the build system
echo "Checking for compiler flags usage..."
rg -l "CFLAGS|CXXFLAGS" recipes/biobambam/

Length of output: 372


Script:

#!/bin/bash
# Let's check the complete meta.yaml content to see all dependencies
cat recipes/biobambam/meta.yaml

# Also check build.sh for any other compiler flag usage
cat recipes/biobambam/build.sh

Length of output: 1485

recipes/biobambam/meta.yaml (4)

15-18: LGTM! Build configuration follows best practices

  • Build number correctly reset to 0 for version bump
  • run_exports properly configured for ABI compatibility

24-33: Verify availability of new dependencies

Several new dependencies have been added. Let's verify their availability in conda-forge/bioconda channels.

#!/bin/bash
# Description: Check availability of new dependencies in conda channels
# Check each new dependency
for pkg in autoconf automake libtool pkg-config gmp xerces-c "libmaus2>=2.0.813"; do
    echo "Checking $pkg..."
    conda search -c conda-forge -c bioconda $pkg
done

2-4: Verify source archive checksum

The version bump and checksum update appear correct. Let's verify the SHA256 checksum matches the upstream source.

Also applies to: 12-12


42-52: Verify biotools identifier

The metadata updates look good, but let's verify the biotools identifier is correct.

✅ Verification successful

biotools identifier is correct

The biotools identifier biotools:biobambam is correctly registered in bio.tools and matches this package. The registered tool name (Biobambam2) and description align with the package's purpose of providing tools for early stage alignment file processing.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify biotools identifier exists and matches the package
curl -s "https://bio.tools/api/t/biobambam" | jq -r '.name, .version'

Length of output: 127


Script:

#!/bin/bash
# Let's try to get the raw JSON response to understand the issue
curl -s "https://bio.tools/api/t/biobambam"

Length of output: 17775


Script:

#!/bin/bash
# Let's try with explicit JSON format in the URL
curl -s "https://bio.tools/api/t/biobambam?format=json" | jq -r '.name, .biotoolsCURIE, .description'

Length of output: 231

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 (1)
recipes/biobambam/meta.yaml (1)

36-40: Consider adding tests for new dependency features

While the existing tests cover basic functionality, consider adding tests that verify the integration with new dependencies (gmp, xerces-c).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between f208844 and ded5fa5.

📒 Files selected for processing (1)
  • recipes/biobambam/meta.yaml (2 hunks)
🔇 Additional comments (4)
recipes/biobambam/meta.yaml (4)

15-18: LGTM! Build configuration is correct

The build configuration is properly set up:

  • Build number reset to 0 is appropriate for a version update
  • run_exports section ensures proper version pinning for downstream dependencies

43-53: LGTM! Metadata updates follow best practices

The metadata changes improve package documentation and compliance:

  • License updated to SPDX identifier format
  • Added dev_url improves package discoverability
  • biotools identifier aids in scientific software tracking

24-34: Verify dependency compatibility and constraints

The dependency updates look appropriate for the new version. The addition of autotools dependencies and new host requirements aligns with the build system changes mentioned in the summary.

A few points to verify:

  1. The libmaus2 version constraint (>=2.0.813) is properly synchronized between host and run requirements
  2. The new dependencies (gmp, xerces-c, zlib) are appropriate for the package
✅ Verification successful

Dependencies are compatible and available

The verification confirms:

  • libmaus2 2.0.813 is available in Bioconda
  • libmaus2 itself depends on gmp (>=6.3.0) and zlib (>=1.2.13)
  • No known compatibility issues found between the dependencies

The dependency updates in the recipe are well-aligned with both the build requirements and the underlying package dependencies.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify dependency compatibility

# Check if libmaus2 2.0.813 exists in Bioconda
curl -s "https://conda.anaconda.org/bioconda/linux-64/repodata.json" | \
  jq '.packages | to_entries[] | select(.value.name=="libmaus2" and .value.version>="2.0.813")'

# Check for any known compatibility issues between dependencies
rg -A 5 "libmaus2.*xerces-c|xerces-c.*libmaus2|libmaus2.*gmp|gmp.*libmaus2" 

Length of output: 1111


2-4: Verify source URL accessibility and hash authenticity

The version update and source configuration look correct. Let's verify the source URL accessibility and hash authenticity.

Also applies to: 12-12

✅ Verification successful

Source URL and hash configuration verified

The source URL is accessible (HTTP 200 response) and follows the correct GitLab release pattern for biobambam2. While the package isn't yet available in Bioconda (as expected for a new version update), the source configuration is valid and properly structured.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify source URL accessibility and hash
URL="https://gitlab.com/german.tischler/biobambam2/-/archive/2.0.185-release-20221211202123/biobambam2-2.0.185-release-20221211202123.tar.gz"

# Check if URL is accessible
curl -sI "$URL" | head -n 1

# Verify if the package exists in Bioconda
curl -s "https://conda.anaconda.org/bioconda/linux-64/repodata.json" | \
  jq '.packages | to_entries[] | select(.value.name=="biobambam" and .value.version=="2.0.185")'

Length of output: 479

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/biobambam/build.sh (2)

1-3: Consider enhancing error handling

While the script correctly uses -eu, consider adding -o pipefail for more robust pipeline error handling in Bash scripts.

-set -eu
+set -euo pipefail

9-9: Consider optimizing build process

The build command could be enhanced for better performance and validation:

-make install
+make -j${CPU_COUNT}
+make test
+make install

This change would:

  1. Enable parallel builds using available CPU cores
  2. Run the test suite before installation
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between ded5fa5 and e627e11.

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

5-8: Verify dependency availability and consider formatting improvement

The configure flags look correct, but let's verify the dependencies and consider improving readability.

Consider aligning the backslash continuations for better readability:

-./configure --prefix="${PREFIX}" CXX="${CXX}" \
-	--with-libmaus2 --with-xerces-c --with-gmp \
-	CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" \
-	LDFLAGS="${LDFLAGS} -L${PREFIX}/lib"
+./configure \
+    --prefix="${PREFIX}" \
+    CXX="${CXX}" \
+    --with-libmaus2 \
+    --with-xerces-c \
+    --with-gmp \
+    CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include" \
+    LDFLAGS="${LDFLAGS} -L${PREFIX}/lib"
✅ Verification successful

Dependencies are properly specified in meta.yaml

All required dependencies (libmaus2, xerces-c, and gmp) that are referenced in the configure flags are correctly specified in the meta.yaml file. The configure command is well-formed and consistent with the package requirements.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if all required dependencies are specified in meta.yaml
rg -A 10 "host:" recipes/biobambam/meta.yaml | rg -e "libmaus2" -e "xerces-c" -e "gmp"

Length of output: 155


4-4: Verify autotools build dependencies

The autoreconf command requires autotools. Let's verify the build dependencies are properly specified in meta.yaml.

✅ Verification successful

Let me check the complete meta.yaml file to ensure I have all the build requirements information.


Build dependencies for autotools are properly specified

The meta.yaml file already includes all necessary autotools build dependencies:

  • autoconf
  • automake
  • libtool
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if autotools dependencies are specified in meta.yaml
rg -A 5 "build:" recipes/biobambam/meta.yaml | rg -e "autoconf" -e "automake" -e "libtool"

Length of output: 155


Script:

#!/bin/bash
# Get full content of meta.yaml to check all build requirements
cat recipes/biobambam/meta.yaml

Length of output: 1202

@mencian mencian merged commit 4defaf7 into master Nov 18, 2024
5 of 6 checks passed
@mencian mencian deleted the biobambam branch November 18, 2024 10:25
This was referenced Nov 19, 2024
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.

1 participant