graphql-python/gql

Pre-releases on conda

startsUp opened this issue · 5 comments

Hey folks! I was wondering if it would be reasonable to publish the pre-releases 3.5.0b* to conda. The recent pre-releases have included important updates (bump to requests-toolbelt) which would nice to take to avoid transitive dependencies with other packages that don't have overlapping versions.

I don't think conda has the principle of pre-releases, only channels I think but I don't know enough about conda to be sure.

If someone has an idea on how to do it, a PR is welcome on https://github.com/conda-forge/gql-feedstock

This is covered in the docs.

Basically, a dedicated, long-running branch can publish to a pre-release label, usable with e.g.

-c conda-forge/label/gql_beta -c conda-forge

These are not supported by the conda-forge bot infrastructure, and I generally only use my time for these kinds of shenanigans when I am heavily invested in a downstream project that would actually use it for testing, otherwise it's just kind of busywork.

Ok, shenanigans complete.

Once the above fully propagate to CDN, the recommended approach to test this would be an environment.yml like:

channels:
  - conda-forge
  - conda-forge/label/gql_beta
  - conda-forge/label/graphql_core_alpha
  - nodefaults
dependencies:
  - graphql-core ==3.3.0a3
  - gql ==3.5.0b6
  # - gql-with-{whatever the extra is called}

Some notes:

  • these pre-release packages are not intended for "accidental" installation, and will not be moved to main
    • due to a sleepy packager, the graphql-core one briefly ended up on main
    • it has been marked broken and will be removed
  • making these two available is not an ongoing promise to maintain future alphas/betas of the stack
  • really any other issues found that aren't strictly related to conda-forge packaging should continue to be discussed on this repo
  • a number of websocket-related tests are skipped
    • ideally, these would work, reliably, when the final rolls around

@bollwyvl Thanks for your help with this!

For the failing tests, I'm looking into it.
I believe the test are failing only with Python 3.12 for minor issues related to cleanup of some tests and it is not related to conda.

To recap, you can now install gql pre-releases with conda using the following command in your conda env:

conda install -c conda-forge -c conda-forge/label/graphql_core_alpha -c conda-forge/label/gql_beta gql-with-all