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

rdflib 6.3.1, split extras into multiple outputs #27

Merged
merged 2 commits into from
Mar 18, 2023

Conversation

bollwyvl
Copy link
Contributor

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

References:

Changes:

  • restore use of tests from sdist
  • remove deprecated html5lib from rdflib dependency
  • split out html5lib and other extras into multiple outputs, named after the upstreams
    • can't do berkeleydb yet

  • add rdflib-with-all with all deps
  • add _rdflib-tests with the tests assets
    • the tests (and data) are ~80x the size of the actual code on disk

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

@bollwyvl
Copy link
Contributor Author

@conda-forge-admin please rerender

@bollwyvl bollwyvl changed the title reflib 6.3.1, split extras into multiple outputs rdflib 6.3.1, split extras into multiple outputs Mar 18, 2023
@github-actions
Copy link
Contributor

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/rdflib-feedstock/actions/runs/4456189793.

@bollwyvl
Copy link
Contributor Author

@conda-forge-admin please rerender

@github-actions
Copy link
Contributor

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/rdflib-feedstock/actions/runs/4456296573.

@bollwyvl bollwyvl marked this pull request as ready for review March 18, 2023 17:16
@bollwyvl
Copy link
Contributor Author

@conda-forge/rdflib ready for review

Copy link
Contributor

@satra satra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the general sentiment looks good to me. i'm not familiar with this split style syntax. would people still install with conda install rdflib but with potential options in brackets for specific variants?

@bollwyvl
Copy link
Contributor Author

Great, let's go with it, and see how it plays.

split style syntax

The multiple outputs approach was first widely seen for matplotlib (which depends on qt) and matplotlib-base, which is a much more reasonable install stack (aside from numpy).

The original intent allows, for example, shipping libfoo and python-foo from the same source tarball, and carefully controlling their compatibility. In many cases, pip just can't even handle that kind of stuff, and you need out-of-band techniques (like system package managers) to ensure compatibility... and basically good luck on Windows.

Reusing it for [extras] is perhaps abuse, but can help the conda-forge envs are too big and slow complaint by not installing complex dependencies.

options in brackets for specific variants?

While brackets do actually mean "variants", strictly speaking, they have a whole other meaning in conda than pip, usually reserved for heavy-duty things like ABI compatibility, and multiple can't be installed at once.

(channel(/subdir):(namespace):)name(version(build))[key1=value1,key2=value2]

Of course, pip extras are almost entirely broken when used interactively:

pip install foo[bar-with-a-tight-version-pin]
pip install -U bar

The above will happily, and silently, upgrade bar without taking foo's needs into account. Further, pip check can't detect that there's any problem, which makes doing a good job of extras downstream even more exciting.

@bollwyvl bollwyvl merged commit 1f3e0d1 into conda-forge:main Mar 18, 2023
@bollwyvl bollwyvl deleted the gh-25-multiple-outputs branch March 18, 2023 18:04
@satra
Copy link
Contributor

satra commented Mar 18, 2023

thank you for the detailed explanation.

@bollwyvl bollwyvl mentioned this pull request Mar 18, 2023
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants