row 1.0.0

Row is a command line tool that helps you manage workflows on HPC resources.
Documentation
# Contributing

Contributions are welcomed via [pull requests on GitHub][github]. Contact the **row**
developers before starting work to ensure it meshes well with the planned development
direction and follows standards set for the project.

[github]: https://github.com/glotzerlab/row

## Features

### Implement functionality in a general and flexible fashion

New features should be applicable to a variety of use-cases. The **row** developers can
assist you in designing flexible interfaces.

### Maintain performance of existing code paths

Expensive code paths should only execute when requested.

### Maintain compatibility

New features should be opt-in and *preserve the behavior* of all existing user scripts.

## Version control

### Base your work off the correct branch

Base all bug fixes and new features on `trunk`.

### Propose a minimal set of related changes

All changes in a pull request should be *closely related*. Multiple change sets that are
loosely coupled should be proposed in *separate pull requests*.

### Agree to the Contributor Agreement

All contributors must agree to the **Contributor Agreement** before their pull request
can be merged.

### Set your git identity

Git identifies every commit you make with your name and e-mail. [Set your identity][id]
to correctly identify your work and set it *identically on all systems* and accounts
where you make commits.

[id]: https://www.git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup

## Source code

### Use a consistent style

Follow all guidelines outlined in the [Code style](style.md) section of the
documentation.

### Document code with comments

Write Rust documentation comments for traits, functions, etc. Also comment complex
sections of code so that other developers can understand them.

### Compile without warnings

Your changes should compile without warnings.

## Tests

### Write unit tests

Add unit tests for all new functionality and bug fixes.

### Test validity

Run research-scale simulations using new functionality and ensure that it behaves as
intended.

## User documentation

### Write user documentation

Document all new configuration keys, command line options, command line tools,
and any important user-facing change in the mdBook documentation.

### Tutorial

When applicable, update or write a new tutorial or how-to guide.

### Add developer to the credits

Update the contributors documentation to name each developer that has contributed to the
code.

### Add a change log entry

Add a short concise entry describing the change in `doc/src/release-notes.md`.