Metadata-Version: 2.4
Name: ripple-effect
Version: 0.0.1
Summary: Know your blast radius before you push
Author-email: Zoran Simic <zoran@simicweb.com>
License-Expression: MIT
Project-URL: Source, https://github.com/zsimic/ripple-effect
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: click
Requires-Dist: PyYAML
Requires-Dist: runez
Dynamic: license-file

ripple-effect
=============

Know your blast radius before you push.

Test a Python library against the downstream projects that depend on it —
before you tag a release and find out the hard way.

Installation
------------

.. code-block:: bash

    uvx ripple-effect config.yml

Usage
-----

Create a YAML config describing your library and the downstream projects to test against:

.. code-block:: yaml

    proving-grounds: /tmp/ripple-effect-workspace
    downstream-projects:
      - git+https://github.com/example/project-b.git@main
      - git+https://github.com/example/project-c.git@main

Then run:

.. code-block:: bash

    ripple-effect config.yml

ripple-effect will:

1. Clone (or update) each downstream project into ``proving-grounds``
2. Create a venv for each, with the downstream project + your library installed in editable mode
3. Run each project's test suite
4. Report which passed, which failed

For local iteration (e.g. testing against a local checkout of a downstream project):

.. code-block:: yaml

    proving-grounds: ~/dev/my-ripple-workspace
    downstream-projects:
      - git+https://github.com/example/project-b.git@main
      - ~/dev/project-c
