Skip to content

Commit e2201d9

Browse files
rjan90BigLep
andauthored
chore: Updates and fixes in README.md (#461)
* Updates and fixes in README.md Updates and fixes in README.md * Add link to Elliptic Research Add link to Elliptic Research Co-authored-by: Steve Loeppky <[email protected]> * Add note that versioning will be refactored Co-authored-by: Steve Loeppky <[email protected]> * Typo fixes Co-authored-by: Steve Loeppky <[email protected]> * Update README.md Co-authored-by: Steve Loeppky <[email protected]> * Add heading for cutting releases Add heading for cutting the different release types, so it´s easier to hyperlink to a specific section --------- Co-authored-by: Steve Loeppky <[email protected]>
1 parent e467d29 commit e2201d9

File tree

1 file changed

+49
-17
lines changed

1 file changed

+49
-17
lines changed

README.md

Lines changed: 49 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,15 @@ To build and install libfilcrypto, its header file and pkg-config manifest, run:
1212
make
1313
```
1414

15-
To optionally authenticate with GitHub for assets download (to increase API limits)
16-
set `GITHUB_TOKEN` to personal access token.
15+
To optionally authenticate with GitHub for assets download (to increase API limits) set `GITHUB_TOKEN` to personal access token.
1716

18-
If no precompiled static library is available for your operating system, the
19-
build tooling will attempt to compile a static library from local Rust sources.
17+
If no precompiled static library is available for your operating system, the build tooling will attempt to compile a static library from local Rust sources.
2018

2119
### Installation notes
2220

23-
By default, building this will download a pre-built binary of the ffi. The advantages for downloading it are faster build times, and not requiring a rust toolchain and build environment.
21+
By default, building this will download a pre-built binary of the ffi. The advantages for downloading it are faster build times, and not requiring a rust toolchain and build environment.
2422

25-
The disadvantage to downloading the pre-built binary is that it will not be optimized for your specific hardware. This means that if raw performance is of utmost importance to you, it's highly recommended that you build from source.
23+
The disadvantage to downloading the pre-built binary is that it will not be optimized for your specific hardware. This means that if raw performance is of utmost importance to you, it's highly recommended that you build from source.
2624

2725
### Building from Source
2826

@@ -36,7 +34,7 @@ rm .install-filcrypto \
3634
; FFI_BUILD_FROM_SOURCE=1 FFI_USE_BLST_PORTABLE=1 make
3735
```
3836

39-
By default, a 'gpu' option is used in the proofs library. This feature is also used in FFI unless explicitly disabled. To disable building with the 'gpu' dependency, set `FFI_USE_GPU=0`:
37+
By default, a 'gpu' option is used in the proofs library. This feature is also used in FFI unless explicitly disabled. To disable building with the 'gpu' dependency, set `FFI_USE_GPU=0`:
4038

4139
```shell
4240
rm .install-filcrypto \
@@ -46,7 +44,7 @@ rm .install-filcrypto \
4644

4745
#### GPU support
4846

49-
CUDA for GPU support is now enabled by default in the proofs library. This feature can optionally be replaced by OpenCL by using `FFI_USE_OPENCL=1` set in the environment when building from source. Alternatively, if the CUDA toolkit (such as `nvcc`) cannot be located in the environment, OpenCL support is used instead. To disable GPU support entirely, set `FFI_USE_GPU=0` in the environment when building from source.
47+
CUDA for GPU support is now enabled by default in the proofs library. This feature can optionally be replaced by OpenCL by using `FFI_USE_OPENCL=1` set in the environment when building from source. Alternatively, if the CUDA toolkit (such as `nvcc`) cannot be located in the environment, OpenCL support is used instead. To disable GPU support entirely, set `FFI_USE_GPU=0` in the environment when building from source.
5048

5149
There is experimental support for faster C2 named "SupraSeal". To enable it, set `FFI_USE_CUDA_SUPRASEAL=1`. It's specific to CUDA and won't work with OpenCL.
5250

@@ -56,7 +54,7 @@ rm .install-filcrypto \
5654
; FFI_BUILD_FROM_SOURCE=1 make
5755
```
5856

59-
By default, a 'multicore-sdr' option is used in the proofs library. This feature is also used in FFI unless explicitly disabled. To disable building with the 'multicore-sdr' dependency, set `FFI_USE_MULTICORE_SDR=0`:
57+
By default, a 'multicore-sdr' option is used in the proofs library. This feature is also used in FFI unless explicitly disabled. To disable building with the 'multicore-sdr' dependency, set `FFI_USE_MULTICORE_SDR=0`:
6058

6159
```shell
6260
rm .install-filcrypto \
@@ -66,8 +64,7 @@ rm .install-filcrypto \
6664

6765
## Updating rust-fil-proofs (via rust-filecoin-proofs-api)
6866

69-
If rust-fil-proofs has changed from commit X to Y and you wish to get Y into
70-
the filecoin-ffi project, you need to do a few things:
67+
If rust-fil-proofs has changed from commit X to Y and you wish to get Y into the filecoin-ffi project, you need to do a few things:
7168

7269
1. Update the rust-filecoin-proofs-api [Cargo.toml][1] file to point to Y
7370
2. Run `cd rust && cargo update -p "filecoin-proofs-api"` from the root of the filecoin-ffi project
@@ -103,9 +100,8 @@ Run it like so:
103100
### Maintainers
104101

105102
The core maintainers of this repository are:
106-
- @nemo & @vmx, from the fil-crypto team
107-
- @lotus-maintainers
108-
- @stebalien, from the FVM team
103+
- @Filoz
104+
- [Elliptic Research](https://www.ellipticresearch.com/)
109105

110106
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.
111107

@@ -122,21 +118,57 @@ To start a CI job to build binaries off of a commit push a tag starting with the
122118
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:
123119

124120
*Non-consensus breaking changes*
125-
- All PRs introduce non-consensus breaking changes can be merged to master as long they have maintainers' approvals.
121+
- All PRs introducing non-consensus breaking changes can be merged to master as long they have maintainers' approvals.
126122
- 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.
127123
- `release/lotus-vX` will be created to determine the commit that lotus integrates in the corresponding release.
128124
- 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.
129125

130-
#Consensus breaking changes*
126+
*Consensus breaking changes*
131127
- 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/`).
132128
- 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.
133129
- A new dev branch should be created and contributors are responsible to rebase the branch onto `master`/`next` as needed.
134130

131+
#### Versioning
135132

133+
The versioning in Filecoin-FFI currently follows the Lotus versioning. For example, if you are cutting a release for Lotus v1.28.0-rc1, the Filecoin-FFI release will be named v1.28.0-rc1 as well. (Note: Lotus versioning will be refactored in the near future as part of [lotus #12072](https://github.com/filecoin-project/lotus/issues/12072).)
134+
135+
#### Release Process
136+
137+
##### Cutting a development or release candidate release
138+
139+
<details>
140+
<summary>Steps to cut a development or release candidate release:</summary>
141+
142+
1. Go to [Filecoin-FFI Releases](https://github.com/filecoin-project/filecoin-ffi/releases).
143+
2. Click the "Draft a new release" button in the right corner.
144+
3. In the "Choose a tag" dropdown, enter the desired version and click "Create new tag: vX.XX.X-rcX/dev on publish".
145+
4. Target the master branch.
146+
5. Set the previous tag to compare against, which should be the last stable release.
147+
6. Click the "Generate release notes" button.
148+
6. Check the "Set as a pre-release" checkbox.
149+
7. Click "Publish release" to create the release.
150+
151+
</details>
152+
153+
##### Cutting a definitive release
154+
155+
<details>
156+
<summary>Steps to cut a definitive release:</summary>
157+
158+
1. Go to [Filecoin-FFI Releases](https://github.com/filecoin-project/filecoin-ffi/releases).
159+
2. Click the "Draft a new release" button in the right corner.
160+
3. In the "Choose a tag" dropdown, enter the desired version and click "Create new tag: vX.XX.X on publish".
161+
4. Target the release candidate you want to create a stable.
162+
5. Set the previous tag to compare against, which should be the last stable release (e.g., non-RC)
163+
6. click the "Generate release notes" button.
164+
6. Ensure the "Set as a latest release" checkbox **is checked**.
165+
7. Click "Publish release" to create the release.
166+
167+
</details>
136168

137169
## License
138170

139-
MIT or Apache 2.0
171+
This repository is dual-licensed under Apache 2.0 and MIT terms.
140172

141173
[1]: https://github.com/filecoin-project/rust-filecoin-proofs-api/commit/61fde0e581cc38abc4e13dbe96145c9ad2f1f0f5
142174

0 commit comments

Comments
 (0)