EpiAwarePackageTools.jl
Why EpiAwarePackageTools?
Scaffold: Adopt the standard CI, documentation build, quality checks, and AD-gradient harness into a package in one call, instead of hand-copying and maintaining them separately.
Update / template-sync: Re-apply the managed standard later and report drift; a scheduled workflow does this automatically, so an improvement made once in the kit reaches every adopting package.
Managed QA and AD helpers: Aqua, ExplicitImports, JET, docstring format, doctest, and formatting checks, plus an AD-gradient harness that checks backends against a ForwardDiff reference.
Managed docs build: A thin
docs/make.jlwired to the kit's Documenter + DocumenterVitepress build, so every adopting package's site looks and behaves the same.Benchmarks (opt-in): AirspeedVelocity/BenchmarkTools results rendered into a legible Markdown PR comment, gated behind an opt-in flag for packages that ship a performance suite.
Package-specific content — the actual distributions, models, or fixtures — stays in each adopting package; the kit only supplies the reusable machinery.
Quick start
Add EpiAwarePackageTools to a package's test environment, then adopt the standard tooling:
using EpiAwarePackageTools
scaffold(pkgdir(MyPackage)) # adopt the standard tooling once
# re-apply managed files later, report drift; `update` is `public`,
# not exported (#294), so call it qualified.
EpiAwarePackageTools.update(pkgdir(MyPackage))Installation
Once the package is registered in the General registry:
pkg> add EpiAwarePackageToolsor, equivalently:
using Pkg
Pkg.add("EpiAwarePackageTools")Where to learn more
Want to get started? See the Getting started guide.
Want to know what
scaffold/updatemanage versus what stays package-owned? See Infrastructure and template sync.Want the full interface? Browse the Public API reference.
Want to see the code or report a problem? Check out the GitHub repository.
Part of the EpiAware ecosystem
EpiAwarePackageTools is part of EpiAware, a set of composable tools for infectious disease modelling. See the other packages in the ecosystem.
Contributing
We welcome contributions and new contributors! Please open an issue or pull request on GitHub. This package follows ColPrac and the SciML style.
How to cite
If you use EpiAwarePackageTools in your work, please cite it. Citation metadata lives in CITATION.cff, which GitHub renders as a "Cite this repository" button on the repository page.
Code of conduct
Please note that the EpiAwarePackageTools project is released with a Contributor Code of Conduct. By contributing, you agree to abide by its terms.
License
Released under the MIT License.