conda-forge / weasyprint-feedstock

A conda-smithy repository for weasyprint.
BSD 3-Clause "New" or "Revised" License
2 stars 4 forks source link

weasyprint v53.1 #27

Closed regro-cf-autotick-bot closed 2 years ago

regro-cf-autotick-bot commented 2 years ago

It is very likely that the current package version for this feedstock is out of date. Notes for merging this PR:

  1. Feel free to push to the bot's branch to update this PR if needed.
  2. The bot will almost always only open one PR per version. Checklist before merging this PR:
    • [ ] Dependencies have been updated if changed: see upstream
    • [ ] Tests have passed
    • [ ] Updated license if changed and license_file is packaged

Note that the bot will stop issuing PRs if more than 3 Version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR.

NEW: If you want these PRs to be merged automatically, make an issue with code>@conda-forge-admin,</codeplease add bot automerge in the title and merge the resulting PR. This command will add our new bot automerge feature to your feedstock!

If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (conda install -c conda-forge rever) and pip (pip install re-ver) installable. Finally, feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/1156020558, please use this URL for debugging

Dependency Analysis

Please note that this analysis is highly experimental. The aim here is to make maintenance easier by inspecting the package's dependencies. Importantly this analysis does not support optional dependencies, please double check those before making changes. If you do not want hinting of this kind ever please add bot: inspection: false to your conda-forge.yml. If you encounter issues with this feature please ping the bot team conda-forge/bot.

Analysis of the source code shows a discrepancy between the library's imports and the package's stated requirements in the meta.yaml.

Packages found by inspection but not in the meta.yaml:

Packages found in the meta.yaml but not found by inspection:

conda-forge-linter commented 2 years ago

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 (recipe) and found it was in an excellent condition.

conda-forge-linter commented 2 years ago

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 (recipe) and found some lint.

Here's what I've got...

For recipe:

conda-forge-linter commented 2 years ago

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 (recipe) and found it was in an excellent condition.

liZe commented 2 years ago

@mrandrewandrade I’d be happy to have your review before merging.

BastianZim commented 2 years ago

Is there a reason you're using wheels and not the tarball? Tarballs are generally recommended and easier to build from.

liZe commented 2 years ago

Is there a reason you're using wheels and not the tarball? Tarballs are generally recommended and easier to build from.

That’s a long story, but here’s a short summary: WeasyPrint now uses flit instead of setuptools for packaging. Using the source would need flit and all the dependencies to be installed in order to build a wheel … that’s the same wheel as the one already packaged and distributed on PyPI. There’s no need to change the recipe each time the packaging method changes, that’s why wheels have been created :wink:. Let’s use the wheel instead, its format is specified and documented.

BastianZim commented 2 years ago

Ahh ok. Was just wondering because conda-forge generally doesn't allow it and recommends against it in its context but that makes sense.

Edit: As far as I know, conda doesn't build a pip compatible wheel. Are you sure it's the same?

liZe commented 2 years ago

Edit: As far as I know, conda doesn't build a pip compatible wheel. Are you sure it's the same?

When you try to install WeasyPrint with pip from the repository source, pip builds the wheel and then installs the wheel. That’s what pip does now (not always, but in more and more circumstances).

liZe commented 2 years ago

conda-forge generally doesn't allow it and recommends against it in its context

I’m actually interested in this topic (you can read Kozea/WeasyPrint#1410 :smile:). Could you please tell me where you read this recommendation? I’d like to understand the reasons of Conda’s best practices.

BastianZim commented 2 years ago

When you try to install WeasyPrint with pip from the repository source, pip builds the wheel and then installs the wheel. That’s what pip does now (not always, but in more and more circumstances).

Yes of course that's fully correct. What I meant was the rest added by conda-build. Additionally, the dependencies installed by flit are from PyPI and not conda-forge which can introduce discrepancies. That's why conda-forge generally recommends to build from source and use the conda-provided tools. Then again I'm not familiar with the way flit installs dependencies on host so your approach is probably right. 😄

BastianZim commented 2 years ago

Could you please tell me where you read this recommendation? I’d like to understand the reasons of Conda’s best practices.

I‘m not at my computer right now but will see what I can find.

liZe commented 2 years ago

Then again I'm not familiar with the way flit installs dependencies on host so your approach is probably right.

The problem is that flit needs to import the module to build the wheel, so it needs the dependencies to be already installed during the installation step (not only at runtime).

I‘m not at my computer right now but will see what I can find.

Thanks a lot.

BastianZim commented 2 years ago

From what I can find, there are no docs on this but previously, the reason was that when compiling you get a mismatch between conda-forge packages and pip packages, as they get linked.

This shouldn't affect noarch packages as there is no compiling, I'm just not sure here since flit apparently needs them during building. If you're sure that it's only used for testing and not actually linking something or setting versions (That might not be available on conda-forge) then you should be fine.

I guess try it and see if it works. :)

BastianZim commented 2 years ago

Also, you can still make the dependencies available during build by either having them in host or build.

liZe commented 2 years ago

From what I can find, there are no docs on this but previously, the reason was that when compiling you get a mismatch between conda-forge packages and pip packages, as they get linked.

That’s true.

This shouldn't affect noarch packages as there is no compiling,

Exactly.

I'm just not sure here since flit apparently needs them during building.

Flit actually needs to import the module before packaging it. That’s why the dependencies have to be installed.

If you're sure that it's only used for testing and not actually linking something or setting versions (That might not be available on conda-forge) then you should be fine.

Yes, wheels will work with Conda only when there’s no compilation or linking at packaging time. That’s the case of WeasyPrint, and that’s actually the case of all the packages built with Flit.

Also, you can still make the dependencies available during build by either having them in host or build.

Of course.

BastianZim commented 2 years ago

Ahh ok. Yeah, then it definitely makes sense to continue with the approach. :)

liZe commented 2 years ago

Thanks a lot for the review. I’ll try to use the wheel with this version and see if it’s reliable in the future. Otherwise, I’ll go back to the source :wink:.