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, 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")
  • EpiAwareADTools.jl hosts the org's AD-safety machinery, which the AD-gradient harness scaffolded from here exercises across ForwardDiff, ReverseDiff, Enzyme, and Mooncake.

  • Every package in the EpiAware org adopts this kit for its CI, documentation build, and quality checks, so a change made here reaches all of them through the scheduled template sync.

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 is formatted with Runic.

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.