Skip to content

pysimlin: setuptools_scm fails on mcp-v0.1.4 git tag #442

@bpowers

Description

@bpowers

Problem

Building pysimlin fails because setuptools_scm picks up the mcp-v0.1.4 git tag and cannot parse it into a valid version for the pysimlin package. The error is:

tag 'mcp-v0.1.4' no version found
AssertionError in _parse_tag

setuptools_scm derives the package version from git tags, but mcp-v0.1.4 uses a component-prefixed tag format (mcp-v*) that does not match the version pattern expected by pysimlin's setuptools_scm configuration. Since mcp-v0.1.4 is the most recent tag reachable from HEAD, setuptools_scm selects it and fails.

Why it matters

This blocks the pre-commit hook for ALL commits. The hook runs pysimlin tests, which require building the package, and the build fails before any tests execute.

Component(s) affected

  • src/pysimlin (setuptools_scm / pyproject.toml configuration)
  • Pre-commit hook (scripts/pre-commit)

Possible approaches

  1. Configure setuptools_scm with a tag_regex that only matches pysimlin-relevant tags (e.g., tags matching v* or pysimlin-v*, excluding mcp-v*).
  2. Use setuptools_scm's git_describe_command option to pass --match patterns to git describe, so it only considers tags relevant to pysimlin.
  3. Switch to a different versioning strategy for pysimlin (e.g., hardcoded version in pyproject.toml) if SCM-based versioning is not needed.

Option 1 or 2 is preferred since it preserves SCM-based versioning while filtering out unrelated component tags from the monorepo.

Context

Identified as a pre-existing infrastructure issue blocking the pre-commit hook for all commits. The mcp-v0.1.4 tag was created for the @simlin/mcp npm package and is unrelated to pysimlin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions