L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

repo-development

repo-development

Maintain the einops repository safely: focused tests, backend/env selection, docs and notebook checks, formatting/type checking, CI matrix interpretation, release boundaries, and staleness refresh cues.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: repo-development description: "Maintain the einops repository safely: focused tests, backend/env selection, docs and notebook checks, formatting/type checking, CI matrix interpretation, release boundaries, and staleness refresh cues." disable-model-invocation: true metadata: disco-role: operating license: MIT

repo-development

Use this sub-skill when the task is about maintaining the einops repository rather than writing package-usage recipes. It covers development commands, backend-aware test selection, docs/notebook checks, README-to-docs conversion, CI interpretation, packaging boundaries, and refresh/staleness checks.

For tensor operation patterns, API examples, framework-specific user code, or named einsum/packing recipes, route to sibling sub-skills such as tensor-operations, named-einsum-and-packing, or framework-integrations.

Evidence scope

This guidance was distilled from these source-evidence names: README.md Development section, pyproject.toml, einops/tests/run_tests.py, einops/tests/__init__.py, scripts/convert_readme.py, scripts/test_notebooks.py, scripts/pytorch_examples_source/converter.py, .github/workflows/run_tests.yml, .github/workflows/test_notebooks.yml, .github/workflows/deploy_docs.yml, .github/workflows/deploy_to_pypi.yml, and mkdocs.yml.

Do not depend on machine-local checkout paths or environment-specific details. Prefer the bundled references and scripts below; if repository development files or workflows have changed since this skill was produced, perform a repo-skill refresh before relying on stale commands.

Quick routing

Maintainer intentUse this guidance
Run minimal package tests without installing all frameworksreferences/docs-and-tests.md and scripts/run_selected_einops_tests.py
Interpret EINOPS_TEST_BACKENDS or framework namesreferences/docs-and-tests.md
Format, lint, or type-check changesreferences/docs-and-tests.md
Build or serve documentationreferences/docs-and-tests.md
Convert README content into docs index safelyscripts/convert_readme_for_docs.py
Check notebook dependencies or execute selected tutorialsreferences/docs-and-tests.md and scripts/notebook_execution_check.py
Understand CI matrix coveragereferences/docs-and-tests.md
Avoid unsafe deploy/publish stepsreferences/docs-and-tests.md
Diagnose common maintainer failuresreferences/maintainer-troubleshooting.md

Safe command patterns

  • Tests are distributed with the package. Use the native runner for broad checks: python -m einops.tests.run_tests numpy.
  • Include numpy with backend tests unless intentionally investigating a symbolic-only case; the README says every framework is tested against numpy.
  • Omit --pip-install when dependencies are already installed. That flag uses pip install in the current environment.
  • For a dry-run plan or a focused pytest node, use the bundled wrapper: python scripts/run_selected_einops_tests.py numpy --pytest-target test_ops.py::test_repeat_numpy. Add --execute only when ready to run.
  • For check-only style validation, prefer CI-like non-mutating commands: ruff check ., ruff format . --check, and mypy . in an environment with the default development dependencies.
  • The Hatch check script in pyproject.toml is intentionally mutating: it runs ruff format, ruff check --fix, then mypy.

Backend selection rules

  • Native runner synonyms: pytorch -> torch, tf -> tensorflow, and paddlepaddle -> paddle.
  • Exact backend names are comma-joined in EINOPS_TEST_BACKENDS, for example EINOPS_TEST_BACKENDS=numpy,torch.
  • Missing EINOPS_TEST_BACKENDS is an error for tests that call the package test utilities directly. The native runner and bundled wrapper set it for you.
  • Optional frameworks can conflict in one environment, especially TensorFlow, OneFlow, and Paddle protobuf stacks. Use a smaller backend set or a fresh environment instead of repairing a shared environment blindly.

Docs and notebook safety

  • hatch run docs:build and hatch run docs:serve first convert README content into the docs index, so they can mutate generated docs content.
  • Use scripts/convert_readme_for_docs.py --readme README.md --output docs_src/index.md for a dry-run preview; add --execute only when the mutation is intended.
  • Notebook execution needs notebook tooling plus runtime frameworks. CI installs nbformat, nbconvert, jupyter, pillow, pytest, numpy, tensorflow, and CPU torch before running notebook tests.
  • Use scripts/notebook_execution_check.py to list missing dependencies and, if approved, execute named notebooks with --execute and a bounded timeout.

CI and release boundaries

  • Test CI runs Python 3.10, 3.11, and 3.13 for the main backend bundle numpy pytorch tensorflow jax mlx.core, plus pytensor on Python 3.10 and 3.13.
  • CI ruff compliance uses a check-only form: ruff check . and ruff format . --check.
  • Docs deploy is a GitHub workflow with repository write permission and a force deploy command. Treat it as credentialed infrastructure, not a local maintainer default.
  • PyPI deploy is triggered by a GitHub release and uses UV_PUBLISH_TOKEN from a secret. Local uv publish commands are outside this sub-skill except as a boundary warning.
  • Safe packaging inspection may run build-only commands in an isolated release rehearsal, but never run credentialed publish/deploy steps unless the human maintainer explicitly owns the credentials and authorizes that action.

Refresh and staleness cues

Refresh this sub-skill if any of these maintainer surfaces change: supported Python version, Hatch envs or scripts, native test runner semantics, backend synonyms, EINOPS_TEST_BACKENDS parsing, notebook execution script, README docs conversion, mkdocs configuration, CI matrices, or docs/PyPI deploy workflows.

Bundled files

Skills enregistrées