-
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
Update Crabs #51394
Update Crabs #51394
Conversation
📝 Walkthrough📝 WalkthroughWalkthroughThe pull request introduces several modifications to the Possibly related PRs
Suggested labels
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/crabs/meta.yaml (1)
37-38
: LGTM! Consider documenting version constraints.The addition of specific versions for
wget
andmuscle
in the run requirements is good for ensuring reproducibility.It might be helpful to add a comment explaining why these specific versions are required. This can aid future maintenance and upgrades of the package.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
- recipes/crabs/meta.yaml (2 hunks)
🧰 Additional context used
🪛 yamllint
recipes/crabs/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (5)
recipes/crabs/meta.yaml (5)
1-7
: LGTM! Consider documenting the significant version bump.The use of Jinja2 templating for package name and version is a good practice. The addition of the SHA256 checksum enhances security. However, the version bump from 0.1.1 to 1.0.3 seems significant.
Could you please verify if this version bump aligns with the upstream changes? If there are breaking changes, consider documenting them in the package description or README.
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
10-11
: LGTM! Improved source URL and added checksum.The updated source URL using the version variable is more maintainable. The inclusion of the SHA256 checksum enhances security and integrity verification.
15-15
: LGTM! Improved build script configuration.The addition of the
--no-deps
flag is appropriate for Conda recipes, as it prevents pip from installing dependencies (which should be managed by Conda). The increased verbosity (-vvv
) can be helpful for troubleshooting installation issues if they arise.
22-28
: Please clarify the status of commented-out host dependencies.Several dependencies in the host section have been commented out. If these are no longer needed for building the package, it would be cleaner to remove them entirely rather than leaving them commented. If they are still necessary, they should be uncommented.
Could you please clarify the reasoning behind commenting out these dependencies? If they are truly not needed, consider removing them completely for better maintainability.
1-3
: Note on static analysis warning.The static analysis tool (yamllint) reported a syntax error for the '%' character at the beginning of the file. This is a false positive. The '%' character is valid in this context as it's part of the Jinja2 templating syntax used in Conda recipes.
No action is needed to address this warning.
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
recipes/crabs/meta.yaml
Outdated
@@ -33,8 +36,8 @@ requirements: | |||
- numpy | |||
- pandas >=0.23.4 | |||
- matplotlib-base | |||
- wget | |||
- muscle >=3.8.31 | |||
- wget =1.21.3 |
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.
Why exactly 1.21.3 ?
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.
not sure - just copied that from the other PR. I think we can go for the latest version here.
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.
I guess any new semver compatible version should be OK.
Pinning with exact versions is usually not recommended.
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/crabs/meta.yaml (1)
15-18
: Consider adjusting therun_exports
sectionThe build script changes look good:
- Adding
--no-deps
ensures stricter control over dependencies.- Increased verbosity (
-vvv
) can help with debugging.However, for the
run_exports
section, consider the following suggestion from a previous review:noarch: python run_exports: - {{ pin_subpackage(name, max_pin="x.x") }}This change would make the
noarch: python
declaration part of thebuild
section and adjust the indentation ofrun_exports
.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
- recipes/crabs/meta.yaml (2 hunks)
🧰 Additional context used
🪛 yamllint
recipes/crabs/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (5)
recipes/crabs/meta.yaml (5)
1-7
: LGTM: Improved package metadata with Jinja2 templatingThe introduction of Jinja2 variables for name, version, and sha256 enhances maintainability. The package version update to 1.0.3 aligns with the PR objectives, and the dynamic package name ensures consistency.
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
10-11
: LGTM: Improved source specificationThe source URL now dynamically incorporates the version, facilitating easier future updates. The addition of the SHA256 checksum enhances the security and integrity of the package source.
24-30
: Verify the removal of host requirementsSeveral dependencies have been commented out in the host requirements section. Could you please confirm if these dependencies are no longer needed for building the package? If they're truly not required, consider removing the commented lines entirely for cleaner code.
39-40
: LGTM: Improved version pinning for run requirementsThe addition of specific versions for
wget
andmuscle
in the run requirements is a good practice. This helps ensure reproducibility and aligns with best practices for dependency management in Conda recipes.
1-1
: Note on yamllint warningThe yamllint tool reports a syntax error for the '%' character. This is a false positive as the '%' is part of valid Jinja2 syntax, which is supported in Conda meta.yaml files. We can safely ignore this warning.
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
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/crabs/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/crabs/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (4)
recipes/crabs/meta.yaml (4)
10-11
: LGTM! Improved source URL configuration.The switch to tagged releases and addition of SHA256 checksum follows conda packaging best practices.
44-48
: LGTM! Improved package metadata.The additions of license_family, license_file, and dev_url, along with the SPDX-compliant license identifier, improve package documentation.
22-36
: Review dependency version constraints.Good job removing overly strict version constraints. However:
- Consider if vsearch (>=2.13.3) and cutadapt (>=3.4) still need these specific minimum versions
- Consider adding upper bounds for critical dependencies to prevent future compatibility issues
#!/bin/bash # Check the latest versions of dependencies in conda-forge conda search -c conda-forge vsearch --info conda search -c conda-forge cutadapt --info
1-3
: Verify the impact of major version update (0.1.1 → 1.0.3).The significant version bump suggests potential breaking changes. Please ensure:
- The changes are documented in the upstream repository
- Downstream dependencies are compatible with the new version
✅ Verification successful
Version update appears safe to proceed
Based on the analysis:
- No other recipes in the bioconda repository depend on
crabs
, indicating no downstream dependencies will be affected- The package has proper version pinning with
run_exports
section usingmax_pin="x"
, ensuring compatibility- All runtime dependencies have appropriate version constraints
The version bump appears to be an isolated change that won't impact other packages in the ecosystem.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for reverse dependencies that might be affected conda-build . --output conda search -c bioconda --depends crabsLength of output: 236
Script:
#!/bin/bash # Let's check the repository for any dependency information and version history # Check meta.yaml for any dependency information cat recipes/crabs/meta.yaml # Look for any documentation about version changes fd README.md # Search for any other recipes that might depend on crabs rg -l "crabs" recipes/Length of output: 1390
Script:
#!/bin/bash # Let's check the upstream repository for version changes and breaking changes # Get the repository URL and check for changelog or release notes curl -sL https://api.github.com/repos/gjeunen/reference_database_creator/releases/tags/v1.0.3 | jq -r '.body' # Check if there are any issues or PRs mentioning breaking changes curl -sL "https://api.github.com/search/issues?q=repo:gjeunen/reference_database_creator+label:breaking-change+state:closed" | jq -r '.items[].title' # Check if any other recipes in bioconda depend on crabs rg -l "crabs.*[>=<]" recipes/ --type yamlLength of output: 306
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
run_exports: | ||
- {{ pin_subpackage(name, max_pin="x") }} |
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.
🛠️ Refactor suggestion
Consider tighter version pinning in run_exports.
The current configuration allows major version updates. Consider using x.x
for max_pin as suggested in the previous review to prevent potential breaking changes:
run_exports:
- - {{ pin_subpackage(name, max_pin="x") }}
+ - {{ pin_subpackage(name, max_pin="x.x") }}
📝 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.
run_exports: | |
- {{ pin_subpackage(name, max_pin="x") }} | |
run_exports: | |
- {{ pin_subpackage(name, max_pin="x.x") }} |
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/crabs/meta.yaml (1)
22-24
: Consider updating minimum Python version requirement.Python 3.6 reached end-of-life on December 23, 2021. Consider updating to a more recent version (e.g., >=3.8).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (1)
- recipes/crabs/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/crabs/meta.yaml
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
🔇 Additional comments (5)
recipes/crabs/meta.yaml (5)
10-11
: LGTM! Improved source URL configuration.The switch to tag-based releases is a better practice than direct file downloads.
15-15
: LGTM! Build isolation improvements.The additional pip flags (--no-deps, --no-build-isolation, --no-cache-dir) help ensure reproducible builds.
46-50
: LGTM! Complete metadata section.The metadata section is well-structured with all required fields (license, license_family, license_file) and helpful additions like dev_url.
26-38
: Verify compatibility with unconstrained dependencies.Several version constraints were removed (biopython, muscle). Please verify that:
- The package is compatible with the latest versions
- There are no known breaking changes in these dependencies
#!/bin/bash # Search for any version-specific code that might depend on these packages rg -A 3 "from Bio import|import Bio|muscle"
1-3
: Verify implications of major version bump (0.1.1 → 1.0.3).The major version increment suggests potential breaking changes. Please ensure:
- All breaking changes are documented
- Downstream dependencies are compatible with the new version
✅ Verification successful
Let me gather more specific information about the crabs package and its dependencies.
Based on the meta.yaml content and the search results, I can now generate the final response:
Version bump from 0.1.1 to 1.0.3 appears safe to proceed.
The version increment follows semantic versioning principles, and the package:
- Has no reverse dependencies in the conda ecosystem
- Uses
noarch: python
indicating it's a pure Python package- Properly declares its dependencies with appropriate version constraints
- Includes
run_exports
with appropriate pinning strategy🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for reverse dependencies that might be affected rg -l "crabs.*[<>=].*0\.1\."Length of output: 22379
Script:
#!/bin/bash # Check the package's history and dependencies cat recipes/crabs/meta.yaml # Check if there are any reverse dependencies specifically for crabs rg -l "crabs.*[>=<].*" --type yamlLength of output: 1277
🧰 Tools
🪛 yamllint
[error] 1-1: syntax error: found character '%' that cannot start any token
(syntax)
Thanks @mencian |
Related to: gjeunen/reference_database_creator#66
Also includes changes from: #35250 (partly)
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>
.