Introduction to nitrile.yml

nitrile.yml defines your package. It is used by Nitrile to decide what to do to build and package your application or library. It can be compared to package.json for npm or project.cabal for Cabal, for example.

At the bare minimum it should contain the fields described in the getting started guide.

For more fields, see the reference.

Multiple packages

To specify multiple packages in one nitrile.yml, you can use multiple YAML documents separated by ---:

name: my-project
# ...

---

name: my-other-project
# ...

This is for example useful to have a separate package for an application and a library (as is done for the iTasks compiler).

By default, Nitrile will use the first package, but you can control this with the global option --name.

More complex projects

For more complex projects, the project configuration can be specified using the programming language Nickel. This has several benefits:

  • Duplication can be avoided.
  • The configuration may be parameterized by command line options.