Skip to content

Instantly share code, notes, and snippets.

@ricardoV94
Created March 8, 2026 12:45
Show Gist options
  • Select an option

  • Save ricardoV94/aaac5caff37598e85e682587a88575cd to your computer and use it in GitHub Desktop.

Select an option

Save ricardoV94/aaac5caff37598e85e682587a88575cd to your computer and use it in GitHub Desktop.

pytensor-suite-feedstock

This is a conda-forge feedstock for PyTensor. The recipe produces two packages: pytensor-base (core, lightweight) and pytensor (adds compiler + BLAS deps).

Reviewing bot version-bump PRs

When the autotick bot opens a version-bump PR, verify that PyPI dependency changes are reflected in the recipe before merging.

Steps

  1. Read the version from recipe/recipe.yaml (context.version field).

  2. Run grayskull to fetch the latest PyPI metadata:

    uvx grayskull pypi pytensor=={version}
    
  3. Compare the "Run requirements:" section from grayskull's console output against the pytensor-base run dependencies in recipe/recipe.yaml.

  4. Ignore these known-safe differences:

    • Python version syntax (${{ python }} in recipe vs python in grayskull)
    • -base vs non-base package names (e.g. the recipe uses pytensor-base which intentionally differs from grayskull's pytensor)
    • Build/host-only dependencies (grayskull may list them under run)
  5. Flag any real differences — new dependencies, removed dependencies, or changed version constraints — that need to be added to the recipe.

  6. Never bump the build number. Bot PRs set it to 0, which is correct for a new version. Bumping it is wrong.

  7. Report findings to the user: either "no changes needed" or a list of specific dependency updates to make.

@maresb
Copy link

maresb commented Mar 8, 2026

This is great @ricardoV94!

In general you should add --strict-conda-forge to the grayskull arguments. It doesn't make any significant difference here and at this point in time, but you should probably add it for future correctness and robustness.

You should also have it ensure that the minimum Python version is respected, for instance when Grayskull reports - python >=3.11,<3.15 then we should ensure that both of the two instances of skip: match(python, "<3.11") in recipe.yaml have the correct value in the bound. The upper bound should be ignored because that will be taken care of automatically by the build migrations.

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