Skip to main content

Spin is a task runner that aims to solve the problems of provisioning development environments and standardizing workflows.

Project description

Latest Package Version Supported Python Versions License

csspin is maintained and published by CONTACT Software GmbH.

csspin is the Python package that ships the task runner and CLI spin that aims so solve the problems of provisioning development environments and standardizing workflows. spin also automates the provisioning of tools and other development requirements (including language stacks like Python, Javascript/Node). As an example, for a project that uses Python and Javascript, spin would:

  • provision the requested version of Python

  • provision the requested version of Node

  • create a virtual development environment, in which the required versions of Python and Node can be used

  • install tools and dependencies for development, testing, etc.

All with a single command: spin provision!

Second, spin allows standardizing workflows, best practices and how development tools are used, especially in a development group with many similar projects that share practices and tools. It’s plugin-based architecture allows to define workflows executing multiple task in sequence using a single command.

By default, spin will automatically generate the right options and arguments for the tools it runs, and show the user the precise commands. As a result, anyone will be able to check out any project, run spin provision and will be all set - Running a project’s test suite becomes as simple as doing spin test etc.

A comprehensive documentation will be published soon.

Getting Started

csspin is available on PyPI and can be installed using pip, pipx or any other Python package manager, e.g.:

python -m pip install csspin

Using spin

As every other command line tool, spin can be run from the command line. The command is simply called spin. To see the available commands, run:

spin --help

Leveraging spin’s capabilities requires a project to be set up with a spinfile.yaml. This file is a YAML file that defines the project, its tools, and the workflows that spin can leverage. The spinfile.yaml is the configuration file for spin and is typically located in the root directory of the project.

A basic spinfile.yaml might look like this:

# spinfile.yaml
spin:
  project_name: my_project

# To develop plugins comfortably, install the packages editable as
# follows and add the relevant plugins to the list 'plugins' below
plugin_packages:
  - csspin_python

# The list of plugins to be used for this project.
plugins:
  - csspin_python.pytest

python:
  version: 3.9.8
  requirements:
    - sphinx-click
    - sphinx-rtd-theme
    - pytest-mock

pytest:
  opts: [-m, "not slow"]
  tests: [tests]

CPython Support Policies

Our CPython support policy for spin aligns with the official CPython release schedule, encompassing versions 3.9 through 3.13 (so far).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

csspin-2.0.1-py3-none-any.whl (43.5 kB view details)

Uploaded Python 3

File details

Details for the file csspin-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: csspin-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 43.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for csspin-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b3b6f7b2ccd4221d87757850aba8364bda06814d69d726f447e862bcec5f5672
MD5 620d7864a6afd857838e313afcc4f7d7
BLAKE2b-256 4a2a8311660584b601e834a3fd9fae96dabb7b4267d80a7b43e5ff1e7ea768e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page