Skip to content

Gate static type checking in CI #3427

Description

@tschm

Summary

The Python package has no static type checking configured or enforced anywhere.

Evidence

Searching the repo for type-checker configuration returns only vestigial cache-directory excludes:

pyproject.toml:46:  | \.mypy_cache
setup.cfg:101:    .mypy_cache

There is no [tool.mypy] table, no mypy.ini, no ty configuration, and no CI job invoking a type checker. Meanwhile roughly 46% of functions in python/arcticdb already carry some annotation (508 of 1093, measured with ast), so the annotations exist but nothing verifies them — they can drift out of step with the code silently.

Suggested change

Add a type-checker configuration and wire it into .github/workflows/build.yml next to the existing run_linting_checks job, which already runs build_tooling/format.py.

Given the size of the surface, adopting this incrementally is likely more practical than a repo-wide strict pass — for example starting with the public API modules (arctic.py, version_store/library.py, options.py) and widening over time.

done when

A type checker runs over python/arcticdb in CI on every PR and fails the build on new errors.


Subcategory: type safety. Assessed 3/10, target 8/10.

Activity

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

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