Skip to content

Incorrect normalizes ruamel.yaml dep to ruamel_yaml, missing static mapping lookup #5745

@TomNicholas

Description

@TomNicholas

Problem

Every time we update our package's conda-forge feedstock this requires manual correction.

Cause

When the bot updates a feedstock with ruamel.yaml as a run dependency, it rewrites it as ruamel_yaml in meta.yaml, which does not exist on conda-forge and breaks the build:

Could not solve for environment specs
└─ ruamel_yaml >=0.17,<1.0 * does not exist

The static mapping at conda_forge_tick/pypi_name_mapping_static.yaml already has the correct entry:

- pypi_name: ruamel-yaml
  import_name: ruamel.yaml
  conda_name: ruamel.yaml

The problem is that the mapping is keyed on the dash-normalized PyPI name (ruamel-yaml), but when the bot encounters ruamel.yaml in wheel metadata it normalizes dots to underscores (ruamel_yaml) before the lookup, so the mapping is never hit and the bad name passes through.

Possible fixes:

  1. Quick fix: Add a second entry to the static mapping with the underscore form so the lookup hits regardless:
- pypi_name: ruamel_yaml
  import_name: ruamel.yaml
  conda_name: ruamel.yaml
  1. Proper fix: Normalize to dashes (not underscores) before the mapping lookup — ruamel.yamlruamel-yaml → lookup hit → ruamel.yaml ✓. This would fix the same bug for any other dot-named packages without needing duplicate entries.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions