|
2 | 2 |
|
3 | 3 | # Filecoin FFI
|
4 | 4 |
|
5 |
| -> C and CGO bindings for Filecoin's Rust libraries |
| 5 | +> C and CGO bindings for Filecoin's Rust libraries, i.e: [proofs](https://github.com/filecoin-project/rust-fil-proofs) and [ref-fvm](https://github.com/filecoin-project/ref-fvm). This repository is built to enable the reference implementation of Filecoin, [Lotus](https://github.com/filecoin-project/lotus), to consume the Rust libraries that are needed. |
6 | 6 |
|
7 | 7 | ## Building
|
8 | 8 |
|
@@ -96,6 +96,38 @@ Run it like so:
|
96 | 96 | ./mkreleaselog v0.25.0 v0.26.0 > /tmp/v0.26.0.notes.txt
|
97 | 97 | ```
|
98 | 98 |
|
| 99 | +## Contribution |
| 100 | + |
| 101 | +### Maintainers |
| 102 | + |
| 103 | +The core maintainers of this repository are: |
| 104 | +- @nemo, @vmx & @shawnrader, from the fil-crypto team |
| 105 | +- @lotus-maintainers |
| 106 | +- @stebalien, from the FVM team |
| 107 | + |
| 108 | +Maintainers are not only the contributors of this repository, but also exercise a range of editorial responsibilities to keep the repository organized for the OSS contributors, that includes triage the issues, review and merge/close PRs, publish releases and so on. |
| 109 | + |
| 110 | +### Development Guidelines (WIP) |
| 111 | + |
| 112 | +#### Branches |
| 113 | + |
| 114 | +`master` is considered as the development branch of this repository. Changes being introduced to master must be tested (programmable and/or manual). The head of the master will be tagged and released upon the merge of each PR automatically. |
| 115 | + |
| 116 | +We will cooperates with the [lotus' releases and it's testing flows](https://github.com/filecoin-project/lotus/blob/0c91b0dc1012c3e54b305a76bb25fb68390adf9d/LOTUS_RELEASE_FLOW.md?plain=1#L50) to confirm whether a tagged release is production ready: |
| 117 | + |
| 118 | +*Non-consensus breaking changes* |
| 119 | +- All PRs introduce non-consensus breaking changes can be merged to master as long they have maintainers' approvals. |
| 120 | +- Roughly on a monthly basis, lotus will integrate ffi's head in `master` branch, for it's new feature release, and carry it through the testing flows. |
| 121 | + - `release/lotus-vX` will be created to determine the commit that lotus integrates in the corresponding release. |
| 122 | +- If any bug is found during the testing, the fix should land in master then get backported to `release/lotus-vX`. The updated commit should be integrated into lotus and getting tested. Repeat the steps until it can be considered as stable. |
| 123 | + |
| 124 | +#Consensus breaking changes* |
| 125 | +- Consensus breaking changes should be developed in it's own branch, (branch name is suggested to be: feature branches `feat/` or bug fix branches `bug/`). |
| 126 | +- Consensus breaking changes that are scoped into the next immediate network upgrade shall land in `next` branch first. The maintainers are responsible to coordinate on when to land `next` to `master` according to lotus mandatory(network upgrade) release schedules. |
| 127 | +- A new dev branch should be created and contributors are responsible to rebase the branch onto `master`/`next` as needed. |
| 128 | + |
| 129 | + |
| 130 | + |
99 | 131 | ## License
|
100 | 132 |
|
101 | 133 | MIT or Apache 2.0
|
|
0 commit comments