# How to contribute

## Community

You can ask questions -- or answer them! -- following the links on the [Community](community.md) page.

## Documentation improvements

Pre-release Miller documentation is at [https://github.com/johnkerl/miller/tree/main/docs](https://github.com/johnkerl/miller/tree/main/docs).

Instructions for modifying, viewing, and submitting PRs for these are in [README-docs.md](https://github.com/johnkerl/miller/blob/main/README-docs.md).

Once PRs are merged, readthedocs creates [https://miller.readthedocs.io](https://miller.readthedocs.io) using the following configs:

* [https://readthedocs.org/projects/miller](https://readthedocs.org/projects/miller)
* [https://readthedocs.org/projects/miller/builds](https://readthedocs.org/projects/miller/builds)
* [https://github.com/johnkerl/miller/settings/hooks](https://github.com/johnkerl/miller/settings/hooks)

## Testing

As of Miller-6's current pre-release status, the best way to test is to either build from source via [Building from source](build.md), or by getting a recent binary at [https://github.com/johnkerl/miller/actions](https://github.com/johnkerl/miller/actions), then click latest build, then *Artifacts*. Then simply use Miller for whatever you do, and create an issue at [https://github.com/johnkerl/miller/issues](https://github.com/johnkerl/miller/issues).

## Feature development

Issues: [https://github.com/johnkerl/miller/issues](https://github.com/johnkerl/miller/issues)

Developer notes: [https://github.com/johnkerl/miller/blob/main/README-dev.md](https://github.com/johnkerl/miller/blob/main/README-dev.md)

PRs which pass regression test ([https://github.com/johnkerl/miller/blob/main/test/README.md](https://github.com/johnkerl/miller/blob/main/test/README.md)) are always welcome!

## Build script

Much of Miller's documentation is autogenerated from code. With the `miller` directory in your
`$PATH` (so it will find the modified `mlr` executable if you've modified any source code), please
do `make dev` in the Miller base directory.  This runs source build, unit test, regression test,
manual-page autogen, document autogen, and document static-build all in the correct order.

## Misc. development notes

Miller code avoids linewraps while using terminal width 120 and tabwidth 4. Miller documents use the Oxford comma: not _red, yellow and green_, but rather _red, yellow, and green_.
