Metadata-Version: 2.4
Name: stepup
Version: 4.0.0rc13
Summary: StepUp Core provides the basic framework for the StepUp build tool
Author-email: Toon Verstraelen <toon.verstraelen@ugent.be>
License-Expression: LGPL-3.0-or-later
Project-URL: Documentation, https://reproducible-reporting.github.io/stepup-core/
Project-URL: Issues, https://github.com/reproducible-reporting/stepup-core/issues
Project-URL: Source, https://github.com/reproducible-reporting/stepup-core/
Project-URL: Changelog, https://reproducible-reporting.github.io/stepup-core/changelog/
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
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 :: Build Tools
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: asyncinotify>=4.0.9
Requires-Dist: attrs>=23.1.0
Requires-Dist: cattrs>=23.2.3
Requires-Dist: jinja2>=3.1.6
Requires-Dist: parse>=1.19.1
Requires-Dist: path>=16.14.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0
Provides-Extra: dev
Requires-Dist: cffconvert; extra == "dev"
Requires-Dist: matplotlib; extra == "dev"
Requires-Dist: mike; extra == "dev"
Requires-Dist: mkdocs; extra == "dev"
Requires-Dist: mkdocstrings[python]; extra == "dev"
Requires-Dist: mkdocs-macros-plugin; extra == "dev"
Requires-Dist: mkdocs-material; extra == "dev"
Requires-Dist: numpy; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Requires-Dist: psutil; extra == "dev"
Requires-Dist: reuse; extra == "dev"
Requires-Dist: yappi; extra == "dev"
Dynamic: license-file

<!--
SPDX-FileCopyrightText: 2024 Toon Verstraelen <Toon.Verstraelen@UGent.be>
SPDX-License-Identifier: LGPL-3.0-or-later
-->
<!-- markdownlint-disable line-length -->

# StepUp Core

[![release](https://github.com/reproducible-reporting/stepup-core/actions/workflows/release.yaml/badge.svg?branch=main)](https://github.com/reproducible-reporting/stepup-core/actions/workflows/release.yaml)
[![pytest](https://github.com/reproducible-reporting/stepup-core/actions/workflows/pytest.yaml/badge.svg?branch=main)](https://github.com/reproducible-reporting/stepup-core/actions/workflows/pytest.yaml)
[![mkdocs](https://github.com/reproducible-reporting/stepup-core/actions/workflows/mkdocs.yaml/badge.svg?branch=main)](https://github.com/reproducible-reporting/stepup-core/actions/workflows/mkdocs.yaml)
[![PyPI Version](https://img.shields.io/pypi/v/stepup)](https://pypi.org/project/stepup/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22018869.svg)](https://doi.org/10.5281/zenodo.22018869)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/stepup)
![LGPL-3 License](https://img.shields.io/badge/License-LGPL_v3-blue.svg)
[![CodeFactor](https://www.codefactor.io/repository/github/reproducible-reporting/stepup-core/badge)](https://www.codefactor.io/repository/github/reproducible-reporting/stepup-core)

StepUp is a dynamic build tool and a modern alternative to
[Make](https://en.wikipedia.org/wiki/Make_(software)).
Its defining feature is that workflow generation and execution are unified:
a `plan.py` script defines the initial build steps.
While the workflow is being executed, any step can add more steps and dependencies,
based on the outputs built so far.
This makes StepUp ideal for builds
where the full set of dependencies cannot be determined in advance.

StepUp Core provides the basic framework for StepUp, without any domain-specific features.
Those live in extension packages:

- [StepUp RepRep](https://reproducible-reporting.github.io/stepup-reprep/)
  for creating **rep**roducible **rep**orts: papers, presentations, theses, etc.
- [StepUp Queue](https://reproducible-reporting.github.io/stepup-queue/)
  submits jobs to a SLURM scheduler.

## Installation

```bash
pip install stepup
```

See the [installation guide](https://reproducible-reporting.github.io/stepup-core/installation/)
for details.

## Quick Visual Impression

[![asciicast](https://asciinema.org/a/718833.svg)](https://asciinema.org/a/718833)

## Documentation

Full documentation, including a tutorial and a feature overview,
is available at <https://reproducible-reporting.github.io/stepup-core>.

## License

StepUp Core is distributed under the terms of the
[LGPL-3.0-or-later](LICENSE) license.
Contributions are welcome;
see the [development guide](https://reproducible-reporting.github.io/stepup-core/development/)
to get started.
