-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
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
Adds multiple PERL packages to support biber #29370
base: main
Are you sure you want to change the base?
Conversation
Hi! This is the staged-recipes linter and I found some lint. File-specific lints and/or hints:
|
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipes/perl-class-accessor/recipe.yaml:
For recipes/perl-class-accessor/recipe.yaml:
Documentation on acceptable licenses can be found here. For recipes/perl-data-dump/recipe.yaml:
For recipes/perl-data-dump/recipe.yaml:
Documentation on acceptable licenses can be found here. For recipes/perl-class-inspector/recipe.yaml:
For recipes/perl-class-inspector/recipe.yaml:
Documentation on acceptable licenses can be found here. For recipes/perl-data-uniqid/recipe.yaml:
For recipes/perl-class-singleton/recipe.yaml:
For recipes/perl-class-singleton/recipe.yaml:
Documentation on acceptable licenses can be found here. This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13724829481. Examine the logs at this URL for more detail. |
Hi Anjos, great work kicking off this PR—adding these Perl packages to get Biber running on conda-forge is a fantastic step! Linking it to plk/biber#485 really helps tie it together. The linter’s flagged a few things, so here’s a quick rundown to smooth it out. To get this rolling: License File: Could you add a license_file entry to each recipe.yaml? It’s usually LICENSE or COPYING from the package tarball—conda-forge needs that packaged. Once these are sorted, CI should light up green—super excited to see Biber land! Let me know if you’d like help tweaking the recipes. Happy to pitch in—great stuff so far! 😊 |
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.
Thank you for initiating this process. These recipes in my repo were kind of a mess so I've made suggestions to "standardize" them correctly. Let's see how things look after these changes have been made to these 5 recipes.
schema_version: 1 | ||
|
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.
schema_version: 1 |
We don't want these lines in the recipe, they are leftovers from my automatic conversion
- Class::Accessor::Faster | ||
|
||
about: | ||
license: perl_5 |
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.
license: perl_5 | |
license: Artistic-1.0 OR GPL-1.0-or-later | |
license_file: | |
- perlartistic.1 | |
- perlgpl.1 |
This is the proper license metadata for the perl_5
licenses. Before using this, we need to check for each module in the "Browse" section in CPAN if it includes its own LICENSE
file, which should take priority over the generic perl_5
license. For reasons I don't fully understand, a significant fraction of CPAN modules incorrectly leave the License field in the metadata as perl_5
despite providing their own LICENSE
file.
script: | ||
- perl Makefile.PL INSTALLDIRS=site NO_PERLLOCAL=1 NO_PACKLIST=1 | ||
- make | ||
- make test | ||
- make install |
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.
script: | |
- perl Makefile.PL INSTALLDIRS=site NO_PERLLOCAL=1 NO_PACKLIST=1 | |
- make | |
- make test | |
- make install | |
script: | | |
perl Makefile.PL INSTALLDIRS=site NO_PERLLOCAL=1 NO_PACKLIST=1 | |
make | |
make test | |
make install | |
cp ${PREFIX}/man/man1/perlartistic.1 . | |
cp ${PREFIX}/man/man1/perlgpl.1 . |
Let's this format for the script to improve readability. The last two lines are only needed if we need the perl_5
license - if the package has its own LICENSE
file, we don't copy anything.
schema_version: 1 | ||
|
||
context: | ||
name: perl-class-accessor |
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.
name: perl-class-accessor |
We don't need to set name
in the context because it's not used elsewhere.
sha256: bf12a3e5de5a2c6e8a447b364f4f5a050bf74624c56e315022ae7992ff2f411c | ||
|
||
package: | ||
name: ${{ name }} |
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.
name: ${{ name }} | |
name: perl-class-accessor |
context: | ||
name: perl-class-accessor | ||
version: 0.51 | ||
sha256: bf12a3e5de5a2c6e8a447b364f4f5a050bf74624c56e315022ae7992ff2f411c |
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.
sha256: bf12a3e5de5a2c6e8a447b364f4f5a050bf74624c56e315022ae7992ff2f411c |
Similarly, we don't need to use this in context
, since its only used once further down.
|
||
source: | ||
url: https://cpan.metacpan.org/authors/id/K/KA/KASEI/Class-Accessor-${{ version }}.tar.gz | ||
sha256: ${{ sha256 }} |
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.
sha256: ${{ sha256 }} | |
sha256: bf12a3e5de5a2c6e8a447b364f4f5a050bf74624c56e315022ae7992ff2f411c |
extra: | ||
recipe-maintainers: | ||
- danielnachun | ||
- anjos |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Hi Anjos, thanks for kicking this off and being open to sprucing up these recipes—starting messy and refining is totally the way to go! These Perl packages for Biber are a great addition, and I’m glad we’re getting them dialed in. Daniel, your suggestions are spot-on for standardizing—really appreciate the detailed cleanup! Anjos, here’s what I’d suggest folding in from Daniel’s notes to get this humming: Trim the Fat: Drop schema_version and the context stuff (name, sha256)—just hardcode name: perl-class-accessor and sha256: bf12a3e5... in the package and source sections. Keeps it lean since they’re only used once. |
host: | ||
- perl=5.32 | ||
run: | ||
- perl>=5.32 |
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.
host: | |
- perl=5.32 | |
run: | |
- perl>=5.32 | |
host: | |
- perl | |
run: | |
- perl |
We don't have a noarch: perl
equivalent to noarch: python
, so I think even for noarch: generic
packages, we can't just set minimum version. We need to update the perl
feedstock to fill in all the newer versions we are missing, and then we can update the feedstock pinnings to cover all supported Perl versions. And eventually it would be great to properly implement a noarch: perl
so that we don't have to build separate noarch
packages for each version of Perl.
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.
This should apply to all recipes as well - I meant to apply to the first one like the other comments!
- perl=5.32 | ||
run: | ||
- perl>=5.32 | ||
|
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Hi Daniel, thanks for the thorough reviews—your suggestions to standardize these Perl recipes are spot-on and will really help clean things up! I’ve looked into your changes, and they make a lot of sense. Dropping the perl=5.32 pinning to just perl for perl-class-inspector (and all recipes) is a smart move, especially with the goal of a noarch: perl down the line. The test block for perl-data-dump is a great simplification too—swapping run_test.pl for that test section should streamline things. I agree we need to update the Perl feedstock to cover all supported versions before this fully works—otherwise, we might hit build issues. I’d suggest applying these changes across all five recipes: Update host and run to perl (no version) with a comment like # Requires Perl feedstock update for all versions. yaml host:
yaml test:
|
To help direct your pull request to the best reviewers, please mention a topic-specifc team if your recipe matches any of the following: conda-forge/help-c-cpp, conda-forge/help-cdts, conda-forge/help-go, conda-forge/help-java, conda-forge/help-julia, conda-forge/help-nodejs, conda-forge/help-perl, conda-forge/help-python, conda-forge/help-python-c, conda-forge/help-r, conda-forge/help-ruby,or conda-forge/help-rust. Thanks! |
@Varun786223 - you want to close this PR and open a new one with these package fixed? If so, please go ahead! Do not hesitate in picking up further packages from plk/biber#485 (comment). It is going to be a large set of PRs. |
I'm also happy to resubmit these as they were originally my recipes and I know all the quirks! |
No problem, @danielnachun - please go ahead! Let me know how to help. |
Meanwhile, I implemented all required changes (I think) on the latest push. |
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
Hi! This is the friendly automated conda-forge-linting service. I failed to even lint the recipe, probably because of a conda-smithy bug 😢. This likely indicates a problem in your This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13735535409. Examine the logs at this URL for more detail. |
- ${{ environ["PREFIX"] }}/man/man1/perlartistic.1 | ||
- ${{ environ["PREFIX"] }}/man/man1/perlgpl.1 |
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.
- ${{ environ["PREFIX"] }}/man/man1/perlartistic.1 | |
- ${{ environ["PREFIX"] }}/man/man1/perlgpl.1 |
Unfortunately this doesn't seem to work with ratter recipes. For these noarch
recipes, I think we don't need to worry about avoiding Unix commands because we only build them on Windows anyway. And for the native recipes, I want to skip Windows for now because there are some issues with path handling of Perl packages on Windows anyway.
Checklist
url
) rather than a repo (e.g.git_url
) is used in your recipe (see here for more details).Here is the first set of 5 packages no arch to build support for biber at conda-forge, as per discussion in
plk/biber#485 (comment)
ping @danielnachun