Skip to content

Commit ec2b923

Browse files
committed
Added CONTRIBUTING.md document
1 parent e442a4f commit ec2b923

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

CONTRIBUTING.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Contributing to io-sim
2+
3+
We designed `io-classes` to be as close as possible to what `base` package
4+
provides. Almost all `IO` instances instantiate with api provided by one of
5+
the core packages, see
6+
[example](https://github.com/input-output-hk/io-sim/blob/main/io-classes/src/Control/Monad/Class/MonadSTM.hs?plain=1#L410-L446).
7+
Please keep this in mind when adding new functionality.
8+
9+
## Style Guide
10+
11+
Please follow the [style guide][style-guide].
12+
13+
## Pull Request
14+
15+
Ideally the series of commits you want to include should be written with the
16+
reviewer in mind. This will make it easier for the maintainers to review your
17+
changes. Each commit should heave a clear explanation what it changes and most
18+
importantly why the changes are necessary. We prefer if commits are small and
19+
just introduce a single change. For example if you are adding a new typeclass
20+
in `io-classes` and you want `io-sim` and `io-sim-por` to support it, we'd
21+
expect at least three commits: first which introduces the new type class, and
22+
separate commits which add implement it for `IOSim` and `IOSimPOR`, since both
23+
are using the same free monad, just interpret it differently, it's ok to first
24+
implement it for `IOSim` and leave placeholders in the `IOSimPOR` interpreter.
25+
26+
If you are adding a new functionality to `MonadSTM`, don't forget to support it
27+
in `strict-stm` package.
28+
29+
Please also include your changes in `CHANGELOG.md` file.
30+
31+
32+
[style-guide]: https://github.com/input-output-hk/ouroboros-network/blob/master/docs/StyleGuide.md
33+

0 commit comments

Comments
 (0)