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

Adds multiple PERL packages to support biber (stage 1 / subset 1) #29370

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

anjos
Copy link
Contributor

@anjos anjos commented Mar 7, 2025

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

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

Copy link
Contributor

github-actions bot commented Mar 7, 2025

Hi! This is the staged-recipes linter and I found some lint.

File-specific lints and/or hints:

  • recipes/perl-class-accessor/recipe.yaml:

    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/perl-packagers. Please ask them to comment on this PR if they are.
    • hints:
      • Recipe with the same name exists in bioconda: please discuss with @conda-forge/bioconda-recipes.
  • recipes/perl-class-singleton/recipe.yaml:

    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/perl-packagers. Please ask them to comment on this PR if they are.
    • hints:
      • Recipe with the same name exists in bioconda: please discuss with @conda-forge/bioconda-recipes.
  • recipes/perl-class-inspector/recipe.yaml:

    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/perl-packagers. Please ask them to comment on this PR if they are.
    • hints:
      • Recipe with the same name exists in bioconda: please discuss with @conda-forge/bioconda-recipes.
  • recipes/perl-data-dump/recipe.yaml:

    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/perl-packagers. Please ask them to comment on this PR if they are.
    • hints:
      • Recipe with the same name exists in bioconda: please discuss with @conda-forge/bioconda-recipes.
  • recipes/perl-data-uniqid/recipe.yaml:

    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/perl-packagers. Please ask them to comment on this PR if they are.

@conda-forge-admin
Copy link
Contributor

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 (recipes/perl-class-accessor/recipe.yaml, recipes/perl-data-dump/recipe.yaml, recipes/perl-class-inspector/recipe.yaml, recipes/perl-data-uniqid/recipe.yaml, recipes/perl-class-singleton/recipe.yaml) and found some lint.

Here's what I've got...

For recipes/perl-class-accessor/recipe.yaml:

  • ❌ license_file entry is missing, but is required.
  • requirements: host: perl=5.32 must contain a space between the name and the pin, i.e. perl =5.32
  • requirements: run: perl>=5.32 must contain a space between the name and the pin, i.e. perl >=5.32

For recipes/perl-class-accessor/recipe.yaml:

  • ℹ️ License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

For recipes/perl-data-dump/recipe.yaml:

  • ❌ The recipe must have some tests.
  • ❌ license_file entry is missing, but is required.
  • requirements: host: perl=5.32 must contain a space between the name and the pin, i.e. perl =5.32
  • requirements: run: perl>=5.32 must contain a space between the name and the pin, i.e. perl >=5.32

For recipes/perl-data-dump/recipe.yaml:

  • ℹ️ License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

For recipes/perl-class-inspector/recipe.yaml:

  • ❌ license_file entry is missing, but is required.
  • requirements: host: perl=5.32 must contain a space between the name and the pin, i.e. perl =5.32
  • requirements: run: perl>=5.32 must contain a space between the name and the pin, i.e. perl >=5.32

For recipes/perl-class-inspector/recipe.yaml:

  • ℹ️ License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

For recipes/perl-data-uniqid/recipe.yaml:

  • requirements: host: perl=5.32 must contain a space between the name and the pin, i.e. perl =5.32
  • requirements: run: perl>=5.32 must contain a space between the name and the pin, i.e. perl >=5.32

For recipes/perl-class-singleton/recipe.yaml:

  • ❌ license_file entry is missing, but is required.

For recipes/perl-class-singleton/recipe.yaml:

  • ℹ️ License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

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.

@Varun786223
Copy link

@anjos

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.
Spacing Fix: Adjust perl=5.32 to perl =5.32 and perl>=5.32 to perl >=5.32 in the requirements—bot’s strict about spaces.
Tests: perl-data-dump needs a test section—something like perl -MData::Dump -e 'print "ok"' should work to verify it loads.
SPDX Licenses: The licenses (like “Perl Artistic”) aren’t SPDX identifiers yet—maybe map them to Artistic-1.0 or GPL-1.0-or-later? Check the SPDX list for matches.
Also, the bot flagged these overlap with bioconda—might be worth a quick chat with @conda-forge/bioconda-recipes to avoid stepping on toes. And @danielnachun, could you confirm you’re good being listed as a maintainer here? Just a quick nod if you’re in!

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! 😊

Copy link
Contributor

@danielnachun danielnachun left a 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.

@Varun786223
Copy link

@anjos @danielnachun

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.
License Fix: Swap perl_5 to license: Artistic-1.0 OR GPL-1.0-or-later and add license_file: [perlartistic.1, perlgpl.1]—Daniel’s right about SPDX. Quick CPAN check per module for custom LICENSE files is smart; if they’ve got one, use that instead and skip the generic copies.
Script Polish: Use the script: | format for readability—e.g., perl Makefile.PL ..., make, etc. Add those cp ${PREFIX}/man/man1/perlartistic.1 . lines only if we’re sticking with the perl_5 license fallback.
Maintainers: Toss in conda-forge/perl-packagers alongside you and Daniel—future-proofs it nicely.
These should clear up the lint noise (spacing’s still a thing—perl =5.32, perl >=5.32) and getmuches up most of the tests too—perl-data-dump still needs a test, but the rest should pass CI once cisagov/molecule-iam-user-tf-module#62 lands. Ping @conda-forge/bioconda-recipes about the overlap too, just to keep things smooth. Daniel, any thoughts on next steps once these are in?

@Varun786223
Copy link

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.
Add the test block to perl-data-dump as you outlined, and maybe extend it to the others (e.g., Class::Inspector for perl-class-inspector).
Here’s a quick example for perl-class-inspector:

yaml

host:

  • perl # Requires Perl feedstock update for all versions
    run:
  • perl
    test:
  • perl:
    uses:
    - Class::Inspector
    And for perl-data-dump:

yaml

test:

  • perl:
    uses:
    - Data::Dump
    - Data::Dump::FilterContext
    - Data::Dump::Filtered
    - Data::Dump::Trace
    I’d be happy to open a PR with these updates and file a feedstock issue to kickstart that Perl version work. Anjos, if you’re good with this, I can roll it out—maybe test with both rattler-build and conda-build to catch any quirks. Daniel, any other tweaks before we go? @conda-forge/staged-recipes, thoughts on this plan to get CI green?

Copy link
Contributor

github-actions bot commented Mar 7, 2025

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!

@anjos
Copy link
Contributor Author

anjos commented Mar 7, 2025

@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.

@danielnachun
Copy link
Contributor

I'm also happy to resubmit these as they were originally my recipes and I know all the quirks!

@anjos
Copy link
Contributor Author

anjos commented Mar 7, 2025

No problem, @danielnachun - please go ahead! Let me know how to help.

@anjos
Copy link
Contributor Author

anjos commented Mar 8, 2025

Meanwhile, I implemented all required changes (I think) on the latest push.

@conda-forge-admin
Copy link
Contributor

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 (recipes/perl-class-singleton/recipe.yaml, recipes/perl-data-uniqid/recipe.yaml, recipes/perl-data-dump/recipe.yaml, recipes/perl-class-inspector/recipe.yaml, recipes/perl-class-accessor/recipe.yaml) and found it was in an excellent condition.

@conda-forge-admin
Copy link
Contributor

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 meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint --conda-forge . from the recipe directory. You can also examine the workflow logs for more detail.

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.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Mar 10, 2025

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 (recipes/perl-data-dump/recipe.yaml, recipes/perl-class-accessor/recipe.yaml, recipes/perl-data-uniqid/recipe.yaml, recipes/perl-class-singleton/recipe.yaml, recipes/perl-class-inspector/recipe.yaml) and found it was in an excellent condition.

@jvolkening
Copy link
Contributor

I'll agree on behalf of @conda-forge/perl-packagers to be added as maintainers. Not sure if this will satisfy the linter or not.

@jvolkening
Copy link
Contributor

Thanks, guys, for getting these packages into conda-forge.

Regarding the bioconda comment in linting, bioconda would like move all perl packages to conda-forge, so this should not be an issue. Once a PR is merged here and the feedstocks are created, a PR should be submitted to https://github.com/bioconda/bioconda-recipes to remove the recipe(s) there.

@jvolkening
Copy link
Contributor

@conda-forge/bioconda-recipes, could someone add a comment here to let the linter know these recipes are okay to be migrated from bioconda?

@jvolkening
Copy link
Contributor

lints:

* The following maintainers have not yet confirmed that they are willing to be listed here: conda-forge/perl-packagers. Please ask them to comment on this PR if they are.

Asked about this on conda-forge chat and was told it could be ignored. I believe the same is also true of the bioconda overlap messages. Since these are the only remaining errors, once you're happy with everything you can go ahead and request a review/merge of the PR.

@anjos anjos requested a review from danielnachun March 10, 2025 16:38
@anjos
Copy link
Contributor Author

anjos commented Mar 10, 2025

I think this PR is in order, if somebody with powers accept it, I can start the second wave.

@anjos anjos changed the title Adds multiple PERL packages to support biber Adds multiple PERL packages to support biber (stage 1 / subset 1) Mar 10, 2025
@jvolkening
Copy link
Contributor

@conda-forge/staged-recipes, ready for review

Copy link
Contributor

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!

@jvolkening
Copy link
Contributor

@conda-forge/help-perl, ready for review

@github-actions github-actions bot added the perl label Mar 10, 2025
@danielnachun
Copy link
Contributor

I think this PR is in order, if somebody with powers accept it, I can start the second wave.

@anjos Once everything here is in order, would you mind making next batch 4 PRs of 5 recipes at once? This will enable much faster reviewing because someone can go through a large number of these in one sitting. We'll only have a such a large volume of these recipes in the first pass here - afterward we'll only be able to submit a few at a time as a we "walk" up the dependency tree to biber. Thank you once again for submitting these - I've been pressed for time as of late and have only been able to work on simpler Conda things!

@anjos
Copy link
Contributor Author

anjos commented Mar 12, 2025

@danielnachun: I will do all the PRs for stage 1 at once as requested. It may take me sometime tho. Regarding the order of processing, is there any preference for the noarch updates listed in the bottom of plk/biber#485 (comment)? Should I go through the stage 1 updates before going through the new submissions for stage 2?

@danielnachun
Copy link
Contributor

I would go through all the stage 1 recipes before trying stage 2 - it's much simpler this way because it means (assuming I made no mistakes) that all the stage 2 recipes will work without needing to worry about missing dependencies.

@danielnachun
Copy link
Contributor

@conda-forge/staged-recipes @conda-forge/help-perl I think we are ready to merge here.

Copy link
Contributor

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

5 participants