Skip to content

Developers

joshsh edited this page Jul 19, 2026 · 10 revisions

This page is for developers of Hydra itself. See Contributors.

Getting oriented

  • Code organization -- the packages/, heads/, overlay/, dist/ layout, directory structure per implementation
  • Coding style -- guiding principles, definition ordering, import conventions, common mistakes
  • Concepts -- core concepts, type system, design principles
  • Implementation guide -- architecture deep-dive: kernel modules, DSL system, primitives, coders, bootstrap process

Common tasks

  • Developer recipes -- step-by-step guides for adding primitives, extending core types, promoting code, refactoring, code generation, and more
  • DSL guide -- comprehensive Haskell DSL reference (also available for Java, Python, and Scala)
  • Hydra lexicon -- complete listing of all kernel types and primitive function signatures
  • Troubleshooting -- debugging strategies and common errors

Testing and benchmarking

  • Testing -- hydra-kernel test suite, test runners, test categories
  • Benchmarking -- cross-implementation performance measurement

Releases

See docs/release-workflow.md for the full release procedure, including version synchronization, sync scripts, and publishing to Hackage, Maven Central, and PyPI. For release policy and the versioning scheme, see Release-policy; for the published-artifact index, see Releases.

Clone this wiki locally