-
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
Bump pyfastani to v0.6.0 #51550
Bump pyfastani to v0.6.0 #51550
Conversation
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
📝 Walkthrough📝 WalkthroughWalkthroughThe pull request introduces several updates to the Assessment against linked issues
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 (
|
@BiocondaBot please add label |
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/pyfastani/meta.yaml (2 hunks)
🧰 Additional context used
🔇 Additional comments (4)
recipes/pyfastani/meta.yaml (4)
2-2
: LGTM: Version bump and checksum update look correct.The version update to 0.6.0 matches the PR objectives, and the SHA256 checksum has been properly updated for the new version.
Also applies to: 10-10
13-16
: LGTM: Build configuration follows best practices.The build number reset and run_exports configuration are correctly implemented:
- Build number reset to 0 is appropriate for a new version
- run_exports with x.x pin ensures proper API/ABI compatibility
42-42
: LGTM: Metadata improvements enhance package documentation.The metadata updates improve completeness and consistency:
- Added MIT license family specification
- Improved summary formatting
- Added development URL
- Standardized documentation URL format
Also applies to: 44-46
49-51
: Verify support for additional platforms.The addition of linux-aarch64 and osx-arm64 platforms expands package availability. Please ensure that:
- The underlying FastANI library supports these architectures
- All dependencies are available for these platforms
Let's check platform support:
✅ Verification successful
Let me gather more information about the platform support by checking the build configurations and dependencies.
Let me check the content of the platform-specific patch to understand the architecture support better.
Based on the gathered information, I can now provide a final response:
Platform support verification completed
The addition of linux-aarch64 and osx-arm64 platforms appears to be well-supported:
- The package has proper platform-specific configurations:
- A dedicated patch
wrap-memcpy-only-for-linux-x86_64.patch
ensures x86_64-specific memory handling doesn't interfere with ARM builds- Appropriate platform-specific dependencies are defined (libgomp for Linux, llvm-openmp for macOS)
- All core dependencies (zlib, gsl, compilers) are available on these platforms
- No architecture-specific build failures were found
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check if FastANI has any architecture-specific code or limitations rg -i 'arch|aarch64|arm64' recipes/fastani/ # Verify if there are any platform-specific build configurations ast-grep --pattern 'if.*platform.*:' recipes/pyfastani/Length of output: 481
Script:
#!/bin/bash # Check build dependencies and requirements in both recipes cat recipes/pyfastani/meta.yaml recipes/fastani/meta.yaml # Check for any platform-specific patches fd patch recipes/fastani/Length of output: 2522
Script:
#!/bin/bash # Check the content of the platform-specific patch cat recipes/fastani/wrap-memcpy-only-for-linux-x86_64.patch # Check if there are any architecture-specific build issues in the repository rg -i "failed.*build.*arm|failed.*build.*aarch" .Length of output: 598
- cmake >=3.20 | ||
- make |
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
Based on the meta.yaml contents, I can now generate the final response:
Build system transition requirements need adjustment
The recipe shows a mismatch between the declared build requirements and the actual build command:
- While cmake >=3.20, make, and scikit-build-core are added as requirements, the build script still uses pip's direct installation:
{{ PYTHON }} -m pip install . --no-deps --no-build-isolation --no-cache-dir -vvv
- This should be updated to use scikit-build-core's build mechanism instead
Required changes:
- Update build script section to use scikit-build-core's recommended installation method
- Keep the current requirements as they are correct for scikit-build-core
🔗 Analysis chain
Verify build system transition requirements.
The transition from setuptools to scikit-build-core looks correct with appropriate dependencies:
- Added cmake >=3.20 and make for build
- Added scikit-build-core to host requirements
Let's verify the build system requirements:
Also applies to: 29-29
Let me generate additional scripts to verify the build system transition properly.
The previous script had issues and mixed up with fastani instead of pyfastani. Let's examine the actual recipe and build configuration to verify the transition properly.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if any setuptools references remain in the recipe
rg -i 'setuptools' recipes/pyfastani/
# Verify scikit-build-core is the standard build system for this version
curl -s https://pypi.org/pypi/pyfastani/0.6.0/json | jq -r '.info.requires_dist[]' | grep -i 'scikit-build-core'
Length of output: 481
Script:
#!/bin/bash
# Check build system related files and configurations
cat recipes/pyfastani/meta.yaml
# Check if there are any pyproject.toml references that might indicate build system
fd pyproject.toml recipes/pyfastani/ --exec cat {}
# Look for any setup related files
fd -e py -e cfg setup recipes/pyfastani/ --exec cat {}
Length of output: 1354
This PR updates the build for
pyfastani
which has replacedsetuptools
withscikit-build-core
.Closes #51547.
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>
.