Metadata-Version: 2.4
Name: ctao-simpipe
Version: 0.5.0rc1
Summary: CTAO DPPS Simulation Production Pipeline
Author-email: simpipe developers <simtools-developer@desy.de>
License-Expression: BSD-3-Clause
Project-URL: documentation, https://gitlab.cta-observatory.org/cta-computing/dpps/simpipe/simpipe
Project-URL: repository, https://gitlab.cta-observatory.org/cta-computing/dpps/simpipe/simpipe
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
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 :: Scientific/Engineering :: Astronomy
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: gammasimtools
Provides-Extra: all
Requires-Dist: ctao-simpipe[dev,doc,test]; extra == "all"
Provides-Extra: dev
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: towncrier; extra == "dev"
Provides-Extra: doc
Requires-Dist: ctao-sphinx-theme~=0.1.2; extra == "doc"
Requires-Dist: myst-parser; extra == "doc"
Requires-Dist: numpydoc; extra == "doc"
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx-changelog; extra == "doc"
Requires-Dist: towncrier; extra == "doc"
Provides-Extra: test
Requires-Dist: cwltool; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: pytest-requirements; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Dynamic: license-file

# DPPS SimPipe: Integration and Release

The **CTAO DPPS Simulation Production Pipeline (SimPipe)** provides the software, workflows, and data models for generating accurate Monte Carlo simulations of the CTAO observatory.

## Installation

The following installation procedures are implemented in the gitlab CI/CD pipeline:

- simtools is installed using pip
- CORSIKA is installed using a tar-file (currently downloaded from a cloud storage)
- sim_telarray is installed using a tar-file (currently downloaded from a cloud storage); planned to be installed from gitlab
- simulation model databases - no installed required; configuration of secrets for access

Download of corsika / sim_telarray is facilitated by a private upload to the DESY Sync&Share.
Ask the maintainers to provide the token to you and define it in a `.env` file in this repository:

```console
SOFTWARE_DOWNLOAD_SECRET=<the token received from the maintainers>
```

Then run `make build-dev-docker` to build the simpipe container locally.

## Preparing a new release

Open a new branch from `main` for a release candidate.
Use `update_simpipe.py` to update the simtools image and submodule, the simulation-models Git revision, and the test resources used in CI. Supply the versions you want to change:

- simtools version (see [simtools releases](https://github.com/gammasim/simtools/releases))
- simulation-models version (see [simulation-models releases](https://gitlab.cta-observatory.org/cta-science/simulations/simulation-model/simulation-models/-/releases))
- simtools-tests Git revision (`--tests-revision`)
- test resource version (`--tests-version`); when omitted with `--simtools vX.Y.Z`, this defaults to `vX.Y.0`
- dpps-aiv-toolkit version (see [dpps-aiv-toolkit releases](https://gitlab.cta-observatory.org/cta-computing/dpps/aiv/dpps-aiv-toolkit/-/releases))

 Example:

```console
python ./update_simpipe.py --simtools v0.38.1 --simulation-models v0.18.0 --tests-revision v4.0.0 --aiv-submodule v3.0.0
```

After this open a merge request, get it reviewed and merge it into `main`.
Create a new release through the Gitlab interface.

## Developer Notes

- a local simulation models database is used for testing. Uploading details are defined in [chart/templates/bootstrapSimulationModel.yaml](chart/templates/bootstrapSimulationModel.yaml)
