Skip to content

Commit 6ac9745

Browse files
authored
chore(docs): add release notes (#1784)
1 parent 7dcc766 commit 6ac9745

File tree

1 file changed

+171
-0
lines changed

1 file changed

+171
-0
lines changed

RELEASE.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
# Release notes
2+
3+
Steps to cut a release:
4+
5+
1) Update the CHANGELOG.md file
6+
2) Copy Cargo.lock file to releases directory with appropriate version name
7+
3) Run `cargo release <level> [--execute]` (replace `<level>` with `major`, `minor`, or `patch`; by default, this is a dry run, add `--execute` to perform the release. If you omit options, cargo release will prompt you interactively.)
8+
9+
Specifics on how @cryptonemo used to do releases (modify as needed):
10+
11+
- PR all functionality intended for the release
12+
- Do pre-release testing
13+
- In particular when running the 'big-tests' outlined below, keep an eye on the runtime and RAM usage for any unexpected behaviour
14+
- Miners tend to be optimized for the RAM usage required today, so even a 10% increase may cause crashes
15+
- The minimum RAM requirement for running the 32GiB and 64GiB sector tests is ~256GiB. Using a machine with 512GiB or more guarantees that swap is never required.
16+
- When the feature set is complete and tested and a release is going to be made
17+
- Copy the Cargo.lock file to the releases directy with appropriate version name
18+
- Update CHANGELOG.md and commit and push both directly to `master` (no PR here)
19+
- An example of this is in commit 56c956c7417de475ae06e0a762c3ccf7d04b8a58
20+
- Run `cargo release` with the appropriate options
21+
- API changes or other breaking changes are major releases
22+
- Added or enhanced functionality can be a minor release
23+
- Patch releases are reserved for minor fixes or updates
24+
- When in doubt, cut a major release
25+
26+
27+
## Pre-release testing
28+
29+
Ensure that the following tests work as expected:
30+
31+
Note that these tests were run manually on a dual AMD EPYC 7402 with 1TB of RAM. I believe 256GB RAM is the minimum requirement (to avoid requiring VRAM/swap) for 32GiB sectors.
32+
33+
Basic tests:
34+
35+
```
36+
# Regular tests
37+
FIL_PROOFS_VERIFY_CACHE=1 \
38+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=0 \
39+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
40+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
41+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
42+
RUST_BACKTRACE=full \
43+
RUST_LOG=trace RUSTFLAGS="-C target-cpu=native" \
44+
cargo test --release --all
45+
46+
# Ignored tests
47+
FIL_PROOFS_VERIFY_CACHE=1 \
48+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=0 \
49+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
50+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
51+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
52+
RUST_BACKTRACE=full \
53+
RUST_LOG=trace RUSTFLAGS="-C target-cpu=native" \
54+
cargo test --release --all -- --ignored
55+
```
56+
57+
Extended tests:
58+
59+
Note: These tests require machines with large storage and RAM and are long running.
60+
61+
```
62+
# 32GiB seal lifecycle test
63+
FIL_PROOFS_VERIFY_CACHE=1 \
64+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
65+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
66+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
67+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
68+
RUST_BACKTRACE=full \
69+
RUST_LOG=info \
70+
RUSTFLAGS="-C target-cpu=native" \
71+
cargo test --features big-tests --release test_seal_lifecycle_32gib_porep_id_v1_1_top_8_8_0_api_v1_1 -- --nocapture
72+
73+
# 32GiB seal lifecycle test (synth-porep)
74+
FIL_PROOFS_VERIFY_CACHE=1 \
75+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
76+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
77+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
78+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
79+
RUST_BACKTRACE=full \
80+
RUST_LOG=info \
81+
RUSTFLAGS="-C target-cpu=native" \
82+
cargo test --features big-tests --release test_seal_lifecycle_32gib_porep_id_v1_2_top_8_8_0_api_v1_2 -- --nocapture
83+
84+
# 32GiB seal lifecycle test (ni-porep)
85+
FIL_PROOFS_VERIFY_CACHE=1 \
86+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
87+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
88+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
89+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
90+
RUST_BACKTRACE=full \
91+
RUST_LOG=info \
92+
RUSTFLAGS="-C target-cpu=native" \
93+
cargo test --features big-tests --release test_seal_lifecycle_32gib_porep_id_v1_2_ni_top_8_8_0_api_v1_2 -- --nocapture
94+
95+
# 32GiB max seal proof aggregation
96+
FIL_PROOFS_VERIFY_CACHE=1 \
97+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
98+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
99+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
100+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
101+
RUST_BACKTRACE=full \
102+
RUST_LOG=info \
103+
RUSTFLAGS="-C target-cpu=native" \
104+
cargo test --features big-tests --release test_max_ni_seal_proof_aggregation_32gib -- --nocapture
105+
106+
# 32GiB seal lifecycle sector upgrade test
107+
FIL_PROOFS_VERIFY_CACHE=1 \
108+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
109+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
110+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
111+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
112+
RUST_BACKTRACE=full \
113+
RUST_LOG=info \
114+
RUSTFLAGS="-C target-cpu=native" \
115+
cargo test --features big-tests --release test_seal_lifecycle_upgrade_32gib_top_8_8_0_v1_2 -- --nocapture
116+
117+
# 64GiB seal lifecycle test
118+
FIL_PROOFS_VERIFY_CACHE=1 \
119+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
120+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
121+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
122+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
123+
RUST_BACKTRACE=full \
124+
RUST_LOG=info \
125+
RUSTFLAGS="-C target-cpu=native" \
126+
cargo test --features big-tests --release test_seal_lifecycle_64gib_porep_id_v1_1_top_8_8_2_api_v1_1 -- --nocapture
127+
128+
# 64GiB seal lifecycle test (synth-porep)
129+
FIL_PROOFS_VERIFY_CACHE=1 \
130+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
131+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
132+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
133+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
134+
RUST_BACKTRACE=full \
135+
RUST_LOG=info \
136+
RUSTFLAGS="-C target-cpu=native" \
137+
cargo test --features big-tests --release test_seal_lifecycle_64gib_porep_id_v1_2_top_8_8_2_api_v1_2 -- --nocapture
138+
139+
# 64GiB seal lifecycle test (ni-porep)
140+
FIL_PROOFS_VERIFY_CACHE=1 \
141+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
142+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
143+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
144+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
145+
RUST_BACKTRACE=full \
146+
RUST_LOG=info \
147+
RUSTFLAGS="-C target-cpu=native" \
148+
cargo test --features big-tests --release test_seal_lifecycle_64gib_porep_id_v1_2_ni_top_8_8_2_api_v1_2 -- --nocapture
149+
150+
# 64GiB seal proof aggregation
151+
FIL_PROOFS_VERIFY_CACHE=1 \
152+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
153+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
154+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
155+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
156+
RUST_BACKTRACE=full \
157+
RUST_LOG=info \
158+
RUSTFLAGS="-C target-cpu=native" \
159+
cargo test --features big-tests --release test_sector_update_proof_aggregation_3_64gib -- --nocapture
160+
161+
# 64GiB seal lifecycle sector upgrade test
162+
FIL_PROOFS_VERIFY_CACHE=1 \
163+
FIL_PROOFS_VERIFY_PRODUCTION_PARAMS=1 \
164+
FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 \
165+
FIL_PROOFS_USE_GPU_TREE_BUILDER=1 \
166+
FIL_PROOFS_USE_MULTICORE_SDR=1 \
167+
RUST_BACKTRACE=full \
168+
RUST_LOG=info \
169+
RUSTFLAGS="-C target-cpu=native" \
170+
cargo test --features big-tests --release test_seal_lifecycle_upgrade_64gib_top_8_8_2_v1_2 -- --nocapture
171+
```

0 commit comments

Comments
 (0)