Skip to content

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.jl wired 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:

julia
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:

julia
pkg> add EpiAwarePackageTools

or, equivalently:

julia
using Pkg
Pkg.add("EpiAwarePackageTools")

Where to learn more

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.