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

add meta #51349

Merged
merged 29 commits into from
Oct 28, 2024
Merged

add meta #51349

merged 29 commits into from
Oct 28, 2024

Conversation

bagari
Copy link
Contributor

@bagari bagari commented Oct 12, 2024

MeTA, which stands for Medial Tractography Analysis, is a workflow designed to minimize brain microstructural heterogeneity in diffusion MRI (dMRI) metrics by extracting and parcellating the core volume along the length of white matter bundles in voxel-space, directly preserving bundle shape while efficiently capturing regional variation within and along the bundles. MeTA is applied to the study of human brain diseases and the genetic architecture of white matter, providing valuable insights into both neurodegenerative conditions and the structural components of brain connectivity.


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 Oct 12, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

The pull request introduces two primary components: a new shell script named build.sh and a new metadata file meta.yaml for a software package called "meta" with version "1.0.0". The build.sh script automates the process of building and installing the software package. It begins by unsetting specific environment variables and configuring paths for the CMake installation. The script then creates necessary directories, navigates to a build directory, and runs CMake with specified options, followed by compiling the project and installing it. The script concludes by cleaning up the build directory and installing the MeTA package using pip with the --no-deps flag.

The meta.yaml file contains essential metadata for the package, including its name, version, source URL, and a SHA256 checksum for integrity verification. It outlines the build requirements, dependencies, and test commands for package verification, along with additional information about the package's functionality and maintainers.

Possibly related PRs

Suggested labels

please review & merge

Suggested reviewers

  • rpetit3
  • mencian

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

🧹 Outside diff range and nitpick comments (8)
recipes/meta/conda_build_config.yaml (1)

9-9: Add a newline at the end of the file.

To adhere to best practices and resolve the static analysis warning, please add a newline character at the end of the file.

Apply this change:

 python:
   - 3.8
   - 3.9
   - 3.10
-  - 3.11
+  - 3.11
+
🧰 Tools
🪛 yamllint

[error] 9-9: no new line character at the end of file

(new-line-at-end-of-file)

recipes/meta/build.sh (3)

7-11: Directory setup looks good, with a minor suggestion.

The directory structure creation is well-organized. However, there's a small improvement we can make:

Consider adding error handling to the cd command on line 11:

-cd $SRC_DIR/build
+cd $SRC_DIR/build || exit 1

This change ensures the script exits if the directory change fails, preventing potential issues in subsequent steps.

🧰 Tools
🪛 Shellcheck

[warning] 11-11: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)


22-24: Build and install steps look good, with a suggestion for improvement.

The build, install, and cleanup process is concise and effective. However, we can enhance it with error checking:

Consider adding error checking to the build and install steps:

-cmake --build . --config Release
-cmake --install .
+cmake --build . --config Release || exit 1
+cmake --install . || exit 1

This change ensures the script exits if either the build or install step fails, preventing potential issues with incomplete or failed installations.


26-28: MeTA package installation looks good, with a minor suggestion.

The package installation step is well-structured, using the correct Python interpreter and appropriate pip options. However, there's a small improvement we can make:

Consider adding error handling to the cd command on line 27:

-cd ${SRC_DIR}
+cd ${SRC_DIR} || exit 1

This change ensures the script exits if the directory change fails, preventing potential issues with the pip installation step.

Additionally, it might be beneficial to add error checking to the pip install command:

-${PYTHON} -m pip install . --no-deps -vv
+${PYTHON} -m pip install . --no-deps -vv || exit 1

This ensures the script exits if the pip installation fails.

🧰 Tools
🪛 Shellcheck

[warning] 27-27: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)

recipes/meta/meta.yaml (4)

13-15: Document reason for skipping Windows builds

The build configuration looks good. However, it would be helpful to document the reason for skipping Windows builds. Consider adding a comment explaining why the package is not compatible with Windows, if that's the case.

 build:
   number: 0
-  skip: true  # [win]
+  skip: true  # [win] # Package is not compatible with Windows due to [reason]

81-92: LGTM with a minor suggestion

The about section is well-structured and informative. It provides clear information about the package's purpose and licensing.

As a minor suggestion, consider adding a doc_url field pointing to any available documentation, if it exists. This can help users find more detailed information about using the package.

 about:
   home: https://github.com/bagari/meta
   license: BSD-3-Clause
   license_file: LICENSE.txt
   summary: 'Medial Tractography Analysis (MeTA)'
   description: |
     MeTA is a workflow implemented to minimize microstructural heterogeneity 
     in diffusion MRI (dMRI) metrics by extracting and parcellating the core 
     volume along the bundle length in the voxel-space directly while effectively 
     preserving bundle shape and efficiently capturing the regional variation 
     within and along white matter (WM) bundles.
   dev_url: https://github.com/bagari/meta
+  doc_url: https://github.com/bagari/meta/wiki  # If documentation exists
🧰 Tools
🪛 yamllint

[error] 88-88: trailing spaces

(trailing-spaces)


[error] 89-89: trailing spaces

(trailing-spaces)


[error] 90-90: trailing spaces

(trailing-spaces)


94-96: Consider adding additional maintainers

The extra section correctly lists a recipe maintainer, which is crucial for package management. However, to improve the bus factor and ensure long-term maintenance:

  1. Consider adding additional maintainers if there are other contributors to the project who could help maintain the package.
  2. If this is part of a larger project or organization, you might want to add the organization as a maintainer as well.
 extra:
   recipe-maintainers:
     - bagari
+    # Consider adding additional maintainers here
+    # - organization-name

87-91: Remove trailing spaces

There are trailing spaces at the end of lines in the description. While these don't affect functionality, removing them improves code cleanliness.

-    MeTA is a workflow implemented to minimize microstructural heterogeneity 
-    in diffusion MRI (dMRI) metrics by extracting and parcellating the core 
-    volume along the bundle length in the voxel-space directly while effectively 
-    preserving bundle shape and efficiently capturing the regional variation 
-    within and along white matter (WM) bundles.
+    MeTA is a workflow implemented to minimize microstructural heterogeneity
+    in diffusion MRI (dMRI) metrics by extracting and parcellating the core
+    volume along the bundle length in the voxel-space directly while effectively
+    preserving bundle shape and efficiently capturing the regional variation
+    within and along white matter (WM) bundles.
🧰 Tools
🪛 yamllint

[error] 88-88: trailing spaces

(trailing-spaces)


[error] 89-89: trailing spaces

(trailing-spaces)


[error] 90-90: trailing spaces

(trailing-spaces)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 7462881 and 6b7031a.

📒 Files selected for processing (3)
  • recipes/meta/build.sh (1 hunks)
  • recipes/meta/conda_build_config.yaml (1 hunks)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
🪛 Shellcheck
recipes/meta/build.sh

[warning] 11-11: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)


[warning] 27-27: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)

🪛 yamllint
recipes/meta/conda_build_config.yaml

[error] 9-9: no new line character at the end of file

(new-line-at-end-of-file)

recipes/meta/meta.yaml

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

(syntax)


[error] 88-88: trailing spaces

(trailing-spaces)


[error] 89-89: trailing spaces

(trailing-spaces)


[error] 90-90: trailing spaces

(trailing-spaces)

🔇 Additional comments (5)
recipes/meta/conda_build_config.yaml (1)

1-9: LGTM! The conda build configuration looks good.

The build_variant section correctly specifies different build options for Linux (osmesa) and macOS (qt). The python section includes all the required versions (3.8 to 3.11) as mentioned in the PR objectives. This configuration will allow for flexible building across different operating systems and Python versions.

🧰 Tools
🪛 yamllint

[error] 9-9: no new line character at the end of file

(new-line-at-end-of-file)

recipes/meta/build.sh (3)

1-6: LGTM: Environment setup looks good.

The initial environment setup is well-structured. Unsetting potentially conflicting variables and setting up CMAKE_INSTALL_RPATH and CMAKE_BUILD_WITH_INSTALL_RPATH are good practices for ensuring a clean and portable build.


13-20: CMake configuration is well-structured and comprehensive.

The CMake configuration covers all necessary aspects:

  • Correct build type (Release) for a package
  • Proper installation prefix
  • C++ standard specification
  • Appropriate module and prefix paths
  • Consistent use of RPATH settings

This configuration should result in a well-organized and portable build.


1-28: Overall, the build script is well-structured and follows good practices.

The script effectively sets up the environment, configures CMake, builds the project, and installs the package. It's designed to work within a conda build system and includes necessary steps for a clean and portable build.

A few minor suggestions have been made to improve error handling, which would make the script more robust. These include adding checks after directory changes and critical operations like building and installing.

Great job on creating a comprehensive build script for the MeTA package!

🧰 Tools
🪛 Shellcheck

[warning] 11-11: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)


[warning] 27-27: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)

recipes/meta/meta.yaml (1)

17-70: 🛠️ Refactor suggestion

Consider optimizing dependency specifications and clarify build variants

The requirements section is comprehensive, which is good for reproducibility. However, consider the following suggestions:

  1. Some dependencies are repeated across build, host, and run sections. Consider using the {{ pin_compatible() }} function to reduce repetition and ensure consistency. For example:
host:
  - boost {{ boost }}
run:
  - {{ pin_compatible('boost', max_pin='x.x') }}
  1. The use of {{ build_variant }} suggests multiple build configurations. Please clarify what these variants are and consider documenting them in a comment.

  2. The libexpat dependency is specified twice with different version constraints. This might lead to conflicts. Consider consolidating these into a single, more specific constraint.

✅ Verification successful

Build variant is correctly defined

The build_variant is properly defined in conda_build_config.yaml, ensuring that the placeholders in meta.yaml are correctly resolved.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if build_variant is defined elsewhere in the recipe
rg "build_variant:" conda_build_config.yaml || echo "build_variant not found in conda_build_config.yaml"

Length of output: 218


Script:

#!/bin/bash
# Search for all occurrences of 'build_variant' in the codebase
rg "build_variant"

Length of output: 571


Script:

#!/bin/bash
# Display the contents of 'conda_build_config.yaml' to verify 'build_variant' definition
cat recipes/meta/conda_build_config.yaml

Length of output: 146

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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: 3

🧹 Outside diff range and nitpick comments (1)
recipes/meta/meta.yaml (1)

90-92: Consider adding more maintainers

Currently, there's only one recipe maintainer listed. While this is acceptable, it's generally a good practice to have multiple maintainers to ensure continued support and maintenance of the package.

Consider reaching out to other contributors or team members who are familiar with this package and adding them as co-maintainers.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 6b7031a and a3efe60.

📒 Files selected for processing (3)
  • recipes/meta/build.sh (1 hunks)
  • recipes/meta/conda_build_config.yaml (1 hunks)
  • recipes/meta/meta.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • recipes/meta/build.sh
  • recipes/meta/conda_build_config.yaml
🧰 Additional context used
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (3)
recipes/meta/meta.yaml (3)

13-15: Build configuration looks good

The build number is correctly set to 0 for a new package, and the Windows build is skipped with a clear explanation in the comment.


80-88: About section is well-documented

The about section provides comprehensive information about the package, including its purpose, license, and relevant URLs. This is excellent for user understanding and package discoverability.


1-1: Ignore yamllint error for Jinja2 syntax

The yamllint tool reports a syntax error for the '%' character at the beginning of the file. This is a false positive as the '%' is part of the Jinja2 templating syntax commonly used in conda recipes.

No action is needed. The syntax is correct for a conda recipe.

🧰 Tools
🪛 yamllint

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

(syntax)

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
recipes/meta/meta.yaml Outdated Show resolved Hide resolved
Updated test section with real test example.
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/meta/meta.yaml (3)

13-16: Enhance the Windows skip comment

Consider adding a tracking issue number or milestone for Windows support.

-  skip: true  # [win] # Windows support will be added in next release.
+  skip: true  # [win] # Windows support planned for v1.1.0 (see: <issue_url>)

81-90: Consider adding additional metadata

The about section is well-structured, but consider adding:

  • license_family: BSD
  • keywords field for better package discoverability
  • references field with relevant publications

91-93: Consider adding co-maintainers

Having multiple maintainers helps ensure long-term package maintenance. Consider adding co-maintainers who are familiar with the codebase.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between a3efe60 and 84340db.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (2)
recipes/meta/meta.yaml (2)

1-12: LGTM: Package metadata is well-structured

The package metadata section follows Conda packaging best practices with proper use of Jinja2 templating.

🧰 Tools
🪛 yamllint

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

(syntax)


72-79: Reference existing test improvement suggestions

The test section could benefit from the improvements suggested in the previous review.

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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: 2

🧹 Outside diff range and nitpick comments (1)
recipes/meta/meta.yaml (1)

13-15: Enhance skip comment documentation

Consider expanding the skip comment to include technical reasons or specific Windows limitations:

-  skip: true  # [win] # Windows support will be added in next release.
+  skip: true  # [win] # Windows support pending: requires MSVC toolchain compatibility and DLL export fixes (planned for next release)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 84340db and 246ebac.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (2)
recipes/meta/meta.yaml (2)

1-11: LGTM: Package metadata is well-structured

The package metadata section follows conda-forge best practices with proper use of Jinja2 templating.

🧰 Tools
🪛 yamllint

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

(syntax)


81-93: LGTM: Package metadata is comprehensive

The about section provides complete information including license, description, and documentation links.

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 246ebac and 4bdc846.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (3)
recipes/meta/meta.yaml (3)

1-16: LGTM! Well-structured package metadata.

The package metadata is properly defined with version pinning and SHA256 verification. The Windows skip note is helpful for tracking future platform support.

🧰 Tools
🪛 yamllint

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

(syntax)


47-67: LGTM! Comprehensive runtime dependencies.

The run requirements section includes all necessary dependencies with appropriate version constraints.


79-91: LGTM! Well-documented package metadata.

The about section provides comprehensive information about the package, including license, documentation, and description.

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
recipes/meta/meta.yaml Show resolved Hide resolved
recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 4bdc846 and e910c8d.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
📓 Learnings (1)
recipes/meta/meta.yaml (1)
Learnt from: bagari
PR: bioconda/bioconda-recipes#51349
File: recipes/meta/meta.yaml:68-77
Timestamp: 2024-10-26T03:32:06.828Z
Learning: The `meta` package does not contain `meta.core` or `meta.utils` modules.
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (6)
recipes/meta/meta.yaml (6)

1-8: LGTM! Package metadata is well-structured.

The package metadata section follows conda-forge best practices using Jinja2 variables.

🧰 Tools
🪛 yamllint

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

(syntax)


9-12: LGTM! Source configuration is properly defined.

The source URL and checksum are correctly specified.


68-77: LGTM! Test section is comprehensive.

The test section includes both import tests and command tests with proper output verification.


89-91: LGTM! Maintainer information is correctly specified.

The recipe maintainer matches the GitHub repository owner.


13-16: LGTM! Build settings are appropriate.

The build settings are correctly configured, and the comment about future Windows support is helpful.

Let's verify if there are any open issues about Windows support:

#!/bin/bash
# Check for Windows-related issues in the repository
gh issue list -R bagari/meta --search "windows in:title,body" --json number,title,state

79-88: LGTM! Package metadata is complete.

The about section provides comprehensive information about the package.

Let's verify the license file:

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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/meta/meta.yaml (2)

19-35: Fix inconsistent version constraint formatting.

The version constraints have inconsistent spacing. Some use spaces around operators (>= 1.14.2, < 1.14.3.0a0) while others don't (=1.82).

Apply this diff to maintain consistent formatting:

-    - boost = 1.82
-    - hdf5 >= 1.14.2, < 1.14.3.0a0
-    - vtk-base >=9.2.6,<9.3.0{{ build_variant }}
+    - boost == 1.82
+    - hdf5 >=1.14.2,<1.14.3.0a0
+    - vtk-base >=9.2.6,<9.3.0{{ build_variant }}

58-66: Consider adding minimum version constraints for Python packages.

Python packages like numpy, pandas, etc., should have minimum version constraints to ensure compatibility while maintaining flexibility.

Consider adding minimum version constraints:

     - numpy
     - nibabel
     - pandas
     - pyvista
     - scipy
     - tqdm
     - tslearn
     - dipy
+    # Add minimum version constraints, for example:
+    # - numpy >=1.20
+    # - pandas >=1.3
+    # - scipy >=1.7
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between e910c8d and 5c19312.

📒 Files selected for processing (2)
  • recipes/meta/conda_build_config.yaml (1 hunks)
  • recipes/meta/meta.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • recipes/meta/conda_build_config.yaml
🧰 Additional context used
📓 Learnings (1)
recipes/meta/meta.yaml (1)
Learnt from: bagari
PR: bioconda/bioconda-recipes#51349
File: recipes/meta/meta.yaml:68-77
Timestamp: 2024-10-26T03:32:06.828Z
Learning: The `meta` package does not contain `meta.core` or `meta.utils` modules.
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (3)
recipes/meta/meta.yaml (3)

1-18: LGTM! Well-structured package metadata.

The package metadata is properly configured with version pinning and security measures in place. The informative comment about Windows support is helpful for future reference.

🧰 Tools
🪛 yamllint

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

(syntax)


70-79: LGTM! Comprehensive test configuration.

The test section includes:

  • Source files for testing
  • Package import verification
  • Command tests with output validation

81-93: LGTM! Complete package metadata.

The about section provides comprehensive information including license, documentation URLs, and a clear description of the package's purpose.

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

20-20: Consider adding a tracking issue for Windows support

The comment indicates Windows support will be added in the next release. Consider adding a GitHub issue number for tracking this feature.

-  skip: true  # [win] # Windows support will be added in next release.
+  skip: true  # [win] # Windows support tracked in issue #<number>

64-70: Consider adding version constraints for Python packages

While the core dependencies have specific version constraints, some Python packages in the run section lack version constraints. This could lead to compatibility issues.

Consider adding minimum version constraints for critical dependencies:

-    - nibabel
-    - pandas
-    - pyvista
-    - scipy
-    - tqdm
-    - tslearn
-    - dipy
+    - nibabel >=3.0.0
+    - pandas >=1.0.0
+    - pyvista >=0.34.0
+    - scipy >=1.7.0
+    - tqdm >=4.0.0
+    - tslearn >=0.5.0
+    - dipy >=1.5.0
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 5c19312 and ace382c.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (1)
recipes/meta/meta.yaml (1)

85-97: Package metadata is well-documented

The about section provides comprehensive information including license, documentation links, and a clear description of the package's purpose.

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 437ee16 and ac33b87.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
📓 Learnings (1)
recipes/meta/meta.yaml (1)
Learnt from: bagari
PR: bioconda/bioconda-recipes#51349
File: recipes/meta/meta.yaml:68-77
Timestamp: 2024-10-26T03:32:06.828Z
Learning: The `meta` package does not contain `meta.core` or `meta.utils` modules.
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (4)
recipes/meta/meta.yaml (4)

1-15: LGTM! Well-structured package metadata and source configuration.

The package metadata and source configuration follow conda-forge conventions with proper versioning and integrity checks.

🧰 Tools
🪛 yamllint

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

(syntax)


16-21: LGTM! Clear build configuration with future Windows support planned.

The build configuration is well-structured with appropriate version pinning through run_exports.


72-81: LGTM! Comprehensive test configuration.

The test section includes:

  • Source files for testing
  • Package import verification
  • Command-line tool testing with output validation

83-95: LGTM! Well-documented package metadata.

The about section provides comprehensive information including license, documentation links, and a clear description of the package's purpose.

recipes/meta/meta.yaml Outdated Show resolved Hide resolved
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

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 9959533 and 98f714f.

📒 Files selected for processing (1)
  • recipes/meta/meta.yaml (1 hunks)
🧰 Additional context used
📓 Learnings (1)
recipes/meta/meta.yaml (1)
Learnt from: bagari
PR: bioconda/bioconda-recipes#51349
File: recipes/meta/meta.yaml:68-77
Timestamp: 2024-10-26T03:32:06.828Z
Learning: The `meta` package does not contain `meta.core` or `meta.utils` modules.
🪛 yamllint
recipes/meta/meta.yaml

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

(syntax)

🔇 Additional comments (4)
recipes/meta/meta.yaml (4)

1-14: LGTM! Package metadata and source configuration look good.

The package metadata and source configuration follow best practices with proper version pinning, SHA256 verification, and platform-specific build variants.

🧰 Tools
🪛 yamllint

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

(syntax)


16-21: Please clarify Windows support timeline.

The comment indicates Windows support will be added in the next release. Consider adding a GitHub issue to track this enhancement for better visibility.

Would you like me to help create a GitHub issue to track Windows support implementation?


72-81: LGTM! Test configuration is comprehensive.

The test section includes:

  • Source files for functional testing
  • Basic import verification
  • Command-line functionality tests with output verification

83-97: LGTM! Package metadata is well-documented.

The about section provides comprehensive information including license, documentation links, and a clear description of the package's purpose.

recipes/meta/meta.yaml Show resolved Hide resolved
@BiocondaBot BiocondaBot added the please review & merge set to ask for merge label Oct 27, 2024
@mencian mencian merged commit 9606978 into bioconda:master Oct 28, 2024
7 checks passed
@bagari
Copy link
Contributor Author

bagari commented Oct 29, 2024

Thank you so much, @martin-g and @mencian. Do you know when the package will appear on https://anaconda.org/bioconda/repo? I tried conda install bioconda::meta, but it's still not available.

@martin-g
Copy link
Contributor

It seems there was a PR check failure: https://github.com/bioconda/bioconda-recipes/actions/runs/11566537250/job/32195443196#step:7:44
I am not sure whether this caused the problem with the release...

@bagari
Copy link
Contributor Author

bagari commented Oct 29, 2024

@martin-g @mencian I'm not sure if this https://github.com/bioconda/bioconda-recipes/actions/runs/11566537250/job/32195443196#step:7:44
refer to my package. I just check and I found my package at https://bioconda.github.io/recipes/meta/README.html, but not available at conda install bioconda::meta. I could update the package name if it creates confusion with meta.yaml. I don't think that I have "datasets >=2"

Error: bad character '>=' in package version dependency 'datasets'
Perhaps you meant 'datasets >=2'

It might be for #51670

@martin-g
Copy link
Contributor

See #33333 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
please review & merge set to ask for merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants