--- id: spin version: "0.18" license: BSD 3-Clause License Copyright (c) 2021--2024, Scientific Python project All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided… (full text in the JSON record) license_treatment: permissive maintenance: active --- # spin — Developer tool for scientific Python libraries License: permissive · Maintenance: active · Downloads: 363.5K/mo ## What it is and what it does spin is a developer tool designed to centralize and simplify the command-line incantations needed to work on scientific Python libraries. Instead of memorizing or maintaining scattered Makefiles, developers configure spin once in pyproject.toml to expose a curated set of build, test, documentation, and shell commands—both built-in (Meson, pip, pytest, Sphinx) and custom. The tool emerged from the mass migration of libraries to Meson after distutils deprecation, when many teams needed a unified way to abstract away changing build workflows. spun runs as a CLI that presents a menu of available commands, supports shell auto-completion, and allows per-project customization through configuration sections and argument overrides. It integrates with click for command definition, tomli for TOML parsing, and colorama for terminal output, making it lightweight and portable across Python 3.10+. Use it for: - Provide a consistent developer interface for a library migrating to Meson without requiring developers to learn new build commands. - Organize and document multiple build, test, and documentation tasks in a single entry point with grouped command sections. - Extend built-in Meson or pip commands with project-specific pre- or post-processing logic via custom command decorators. - Enable shell auto-completion for development workflows to reduce typos and cognitive load in repetitive build cycles. - Abstract away vendored or custom Meson installations by configuring a project-specific Meson CLI path. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. spin is a command-line tool that abstracts common development tasks for scientific Python libraries, replacing ad-hoc Makefiles with a configurable, Python-based interface for build, test, and documentation workflows. Yes. spin is worth installing if you maintain or contribute to a scientific Python library using Meson or modern build tools. It is actively maintained, has no known vulnerabilities, installs with low friction, and solves a real problem—centralizing scattered build commands into a single, discoverable interface. The BSD license is permissive. If your project uses traditional Makefiles or simpler build systems, the benefit is smaller but still real if you want to unify developer experience. ## Install pip install spin uv add spin poetry add spin ## Installing spin Before you install: Low friction install with four lightweight runtime dependencies (click, tomli, colorama, importlib_metadata). Package is actively maintained with recent commits and has been stable since its 2022 release. License in practice: BSD 3-Clause License permits free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects. Quickstart: pip install spin # Create or edit pyproject.toml with [tool.spin] section: # [tool.spin] # package = "your_package_name" # commands = ["spin.cmds.meson.build", "spin.cmds.meson.test"] # Run spin to see available commands: spin Requires Python 3.10 or later. Projects must have a pyproject.toml or .spin.toml configuration file defining the package name and desired commands. Verify before relying: - Whether spin works with non-Meson build systems beyond the built-in PEP 517 and pip support - Performance overhead compared to direct Meson or Make invocation for large projects ## Package facts - License: BSD 3-Clause License Copyright (c) 2021--2024, Scientific Python project All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided… (full text in the JSON record) (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 363.5K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags python development task runner, scientific python build tool, meson build command wrapper, developer workflow automation, project command abstraction layer, python library build helper, development task orchestration, build-automation, scientific-python, meson [View on SkillFed](https://skillfed.io/packages/spin) · [View on PyPI](https://pypi.org/project/spin/)