# Sustainability action plan: podio

From the EIC Software Sustainability Review, pass `2026-10-12-2`, assessed at commit `a80a6a17e789`. Full assessment: https://eic.github.io/SoftwareSustainabilityReview/projects/podio.html

Levels: 0 Absent · 1 Initial · 2 Established · 3 Sustained. Each item names the step to the next level.

## High priority

- [ ] Fix or mark `continue-on-error` the `dev3` matrix entries in `test.yml`, `ubuntu.yml` and `edm4hep.yaml` so `master` stays green (issue *(`eng.ci`, now level 1, effort S)*
- [ ] Add `.github/CODEOWNERS` naming at least two owners for `src/`, `include/`, `python/` and `tools/`. *(`com.bus-factor`, now level 1, effort S)*
- [ ] Add a "Maintainers" section to the README or a `GOVERNANCE.md` naming the maintainers and their institutions. *(`com.governance`, now level 0, effort S)*
- [ ] Replace `LICENSE` with the full Apache-2.0 text so GitHub detects `Apache-2.0`, keeping the copyright line in a `NOTICE` file. *(`via.license`, now level 1, effort S)*
- [ ] Add `CITATION.cff` listing the authors and the reference paper arXiv:2312.08206, and enable the Zenodo-GitHub integration. *(`via.citation`, now level 0, effort S)*

## Medium priority

- [ ] Require one approving review in the `master` branch protection rule and add `.github/CODEOWNERS`. *(`eng.change-control`, now level 2, effort S)*
- [ ] Add `fmt >= 9`, optional backends with versions, and minimum `pyyaml`/`jinja2` versions to the README prerequisites. *(`doc.user`, now level 1, effort S)*
- [ ] Replace the stale `tests/datamodel/` and `python/tools/podio-vis` references with a minimal runnable data-model example. *(`doc.user`, now level 1, effort S)*
- [ ] Add sections to `.github/CONTRIBUTING.md` on RFC issues for larger changes, review expectations, and building in a Key4hep nightly or eic-shell environment. *(`doc.contributing`, now level 2, effort S)*
- [ ] Review the 23 issues older than one year and close, label, or schedule each. *(`com.responsiveness`, now level 1, effort S)*
- [ ] Label every new issue on arrival using the existing label set. *(`com.responsiveness`, now level 1, effort S)*
- [ ] Add `CODE_OF_CONDUCT.md` (Contributor Covenant) with a reporting contact, or link the Key4hep or AIDA code. *(`com.conduct`, now level 1, effort S)*
- [ ] State in the README that `vMM-mm-pp` maps to SemVer `MAJOR.MINOR.PATCH` and what each component signals for API and file compatibility. *(`dist.releases`, now level 1, effort S)*
- [ ] Add `VERSION` arguments to the SIO, Arrow and Parquet `find_package` calls and minimum versions to `requirements.txt`. *(`dist.dependencies`, now level 1, effort S)*
- [ ] Document per release the Key4hep release or LCG view (and eic-shell tag) it was tested in, and add a `spack.yaml` environment for development. *(`dist.reproducibility`, now level 1, effort S)*
- [ ] Add a job to `.github/workflows/edm4eic.yml` that builds podio and EDM4eic in `eic_xl:nightly` via `eic/run-cvmfs-osg-eic-shell`. *(`eic.environment`, now level 2, effort S)*
- [ ] State in the README the owning project (AIDASoft/Key4hep), the maintaining institutions and funding sources. *(`via.support`, now level 1, effort S)*
- [ ] Add a gcov/lcov build job to `.github/workflows/test.yml` and publish results to Codecov. *(`eng.testing`, now level 2, effort M)*
- [ ] Add a `macos-latest` or `ubuntu-24.04-arm` job that builds and runs `ctest` to the CI matrix. *(`dist.portability`, now level 2, effort M)*

## Low priority

- [ ] Add a review checklist (tests, docs, release notes) to `.github/PULL_REQUEST_TEMPLATE`. *(`eng.change-control`, now level 2, effort S)*
- [ ] Remove `-Wno-error=deprecated-declarations` from the `ci-build` preset once no deprecation warnings remain. *(`eng.static-quality`, now level 2, effort S)*
- [ ] Keep `good first issue` labels current and link them from CONTRIBUTING to attract outside contributors. *(`com.contributors`, now level 2, effort S)*
- [ ] Replace the `*:*tests*` and global `*:` entries in `.cppcheck-suppressions.txt` with per-file suppressions. *(`eng.static-quality`, now level 2, effort M)*
