Skip to content

Latest commit

 

History

History
62 lines (37 loc) · 2.24 KB

README.md

File metadata and controls

62 lines (37 loc) · 2.24 KB

IOGX — Flake Templates for Your Project

1. Introduction

IOGX is a Nix library of functions and templates for structuring your Nix code and comes with a number of common DevX facilities to help develop your project.

Make sure that you have installed and configured nix on your system.

To get started run:

# For Haskell Projects
nix flake init --template github:input-output-hk/iogx#haskell

# For Other Projects
nix flake init --template github:input-output-hk/iogx#vanilla

These will generates a flake.nix and a nix folder in your repository root.

You may now move on to the API Reference.

2. Features

GHC Build Matrices

Define a set of GHC configurations for your Haskell project using haskell.nix's flake variants, and for each variant you will get devShells, packages, apps, checks and hydraJobs.

Extensible Development Shells

devShells come with an optional and complete Haskell toolchain, and they can be easily extended with new packages, custom scripts, environment variables and hooks.

Automatic Hydra Jobset

By default your hydraJobs will include every component in your Haskell project, and your test suites will run in CI.

Easy Code Formatting

IOGX uses pre-commit-hooks to format your source tree: hooks can be easily configured and are automatically run in CI.

Read The Docs Support

If your project needs a Read The Docs site then IOGX will include the necessary tools and scripts, and will add the relevant derivations to CI.

3. API Reference

The flake.nix file and all library functions are documented in the API Reference.

4. Future Work

In the future we plan to develop the following features:

  • Hoogle Support
  • Automatic Test Coverage Reports
  • Automatic Benchmarking in CI
  • Broken Link Detection
  • Option to exclude specific jobs from the required aggregated job.