Smos Logo Smos

A comprehensive self-management system


An contribution guide for developers that are new to the smos project

  1. Clone the repository:

    git clone --recursive

    If you've already cloned the repository but forgot about the --recursive flag, you can run this:

    git submodule update --init --recursive
  2. We use nix for CI and deployment. Make sure you can run nix-shell as described in the nix installation guide. This also ensures that the pre-commit hoosk are installed.

  3. We use stack for development. Make sure you can run stack test smos after following the steps in the stack installation guide.

  4. Checkout the development branch:

    git checkout development
  5. Set up your feedback loop.

    When developing in a single smos package, you can use

    stack test <thepackage> --pedantic --file-watch

    When developing accross multiple smos packages, you can use

    stack test --pedantic --file-watch --no-rerun-tests
  6. Make your changes.

  7. Make sure stack build --test --bench --no-run-benchmarks --pedantic succeeds locally.

  8. Make sure nix-build ci.nix succeeds locally.

  9. Create a pull request with NorfairKing/development as the base.