Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: release v1.21.0 #7006

Merged
merged 47 commits into from
Aug 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
514b605
docs: fix search, redirects and broken links (#6940)
nflaig Jul 9, 2024
a0f2dcc
chore: optimize getSlotFromOffset (#6941)
wemeetagain Jul 11, 2024
6ab2697
chore: merge v1.20.0 stable back to unstable (#6944)
philknows Jul 11, 2024
1a35ee8
feat: add option to disable thread pool for keystore decryption (#6949)
nflaig Jul 15, 2024
9103f56
fix: default to json if client accepts all media types (#6950)
nflaig Jul 15, 2024
c3d7f2f
docs: updated Light Client url in Readme (#6948)
guha-rahul Jul 15, 2024
7489135
fix: add workaround to fix compatibility with go-eth2-client (#6953)
nflaig Jul 15, 2024
f66aae4
fix: expose metadata headers to scripts running in the browser (#6952)
nflaig Jul 15, 2024
d6175da
fix: update user-agent check for go-eth2-client (#6958)
nflaig Jul 15, 2024
79380f0
chore: decompose AttesterStatus (#6945)
wemeetagain Jul 16, 2024
bd20876
chore: merge v1.20.1 stable back to unstable (#6960)
philknows Jul 16, 2024
e57e4b7
chore: remove unused metricsRegistries (#6957)
wemeetagain Jul 16, 2024
565bb3a
fix: sepolia genesis delay (#6961)
domiwei Jul 16, 2024
c6369ee
chore: bump @chainsafe/bls-keystore (#6956)
wemeetagain Jul 16, 2024
c78b6ce
feat: add cli flag to disable light client server (#6913)
nazarhussain Jul 18, 2024
5f37580
chore: pin nodejs version to 22.4 (#6964)
nflaig Jul 18, 2024
fed08fe
chore: refactor block and state api utils (#6963)
wemeetagain Jul 18, 2024
3fb0f5c
fix: fix the publish blinded block api parsing for optional header ve…
g11tech Jul 19, 2024
02cc65b
Merge branch 'stable' into unstable
nflaig Jul 19, 2024
81f9d97
fix: ignore noisy eventstream errors due to DNS resolution errors (#6…
nflaig Jul 23, 2024
27012f9
fix: return finalized as false if finalized epoch is genesis epoch (#…
nflaig Jul 23, 2024
a187851
fix: start clock last when initializing validator client (#6973)
nflaig Jul 24, 2024
acbedaf
feat: add yamux stream muxer (#5886)
wemeetagain Jul 24, 2024
2b62754
feat: use napi-rs blst bindings (#6894)
wemeetagain Jul 25, 2024
3ecee07
chore: bump blst-ts version (#6980)
matthewkeil Jul 26, 2024
30b8a23
chore: add additional instructions for hotfixes in release.md (#6971)
philknows Jul 29, 2024
59f72d0
docs: fix formatting of RELEASE.md file (#6985)
nflaig Jul 29, 2024
c23d70c
feat: add historical state regen (#6033)
wemeetagain Jul 30, 2024
4c3199a
fix: sanitize url in http client debug logs and metrics (#6974)
nflaig Jul 30, 2024
48a5a94
docs: add note to local testnet setup (#6984)
nflaig Jul 30, 2024
8826e1a
docs: update prover and light client documentation (#6983)
nflaig Jul 30, 2024
0cd43cc
docs: update dependency graph (#6981)
philknows Jul 30, 2024
2f9275e
feat: include EL client info in graffiti (#6753)
ensi321 Jul 30, 2024
42af692
chore: fix reference to Heap memory limt in FAQs (#6992)
nflaig Jul 31, 2024
3fb7f60
fix: revert yamux (#6990)
twoeths Aug 1, 2024
c5c91f4
fix: resolve state id as checkpoint (#6994)
twoeths Aug 1, 2024
12e1871
feat: improve before process epoch (#6979)
twoeths Aug 1, 2024
5b0608a
deps: update vitest to latest version (#6967)
nazarhussain Aug 1, 2024
be03ef1
chore: add more discovery logs (#6996)
wemeetagain Aug 1, 2024
e1dec02
chore: refactor chain event emits (#6993)
wemeetagain Aug 2, 2024
156e434
chore: more log on updateHeadState() (#6997)
twoeths Aug 2, 2024
cf00c3f
fix: refactor the blockcontent types as fork aware types for api (#6999)
g11tech Aug 2, 2024
3d2c2b3
feat: track syncing status and fetch duties on resynced (#6995)
nflaig Aug 2, 2024
2f86f4a
chore: update lodestar_validator_monitor.json (#7000)
SeaMonkey82 Aug 4, 2024
703249c
chore: update default instance selected as filter on dashboards (#7001)
nflaig Aug 5, 2024
30a13f9
fix: use default node image to build docker (#7004)
twoeths Aug 6, 2024
360fe77
chore: bump package versions to 1.21.0
wemeetagain Aug 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ Grafana
Grandine
HTTPS
HackMD
Hashicorp
Homebrew
IPFS
IPv
Expand All @@ -54,6 +55,7 @@ JSObjects
JWT
KDE
Kubernetes
Kurtosis
LGPL
LGPLv
LMD
Expand Down Expand Up @@ -102,6 +104,7 @@ backfill
beaconcha
blockRoot
blockchain
blst
bootnode
bootnodes
bundlers
Expand Down Expand Up @@ -139,6 +142,7 @@ ephemery
ethers
flamegraph
flamegraphs
floodsub
getNetworkIdentity
gnosis
heapdump
Expand All @@ -160,6 +164,7 @@ malloc
mdns
merkle
merkleization
mmeshsub
monorepo
multiaddr
multifork
Expand All @@ -171,13 +176,15 @@ orchestrator
osx
overriden
params
performant
pid
plaintext
pre
premined
produceBlockV
protolambda
prover
pubsub
repo
repos
req
Expand All @@ -204,6 +211,7 @@ util
utils
validator
validators
verifier
vite
vitest
webpack
Expand Down
12 changes: 6 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

# --platform=$BUILDPLATFORM is used build javascript source with host arch
# Otherwise TS builds on emulated archs and can be extremely slow (+1h)
FROM --platform=${BUILDPLATFORM:-amd64} node:22.4-alpine as build_src
FROM --platform=${BUILDPLATFORM:-amd64} node:22.4-slim as build_src
ARG COMMIT
WORKDIR /usr/app
RUN apk update && apk add --no-cache g++ make python3 py3-setuptools && rm -rf /var/cache/apk/*
RUN apt-get update && apt-get install -y g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY . .

Expand All @@ -21,21 +21,21 @@ RUN cd packages/cli && GIT_COMMIT=${COMMIT} yarn write-git-data

# Copy built src + node_modules to build native packages for archs different than host.
# Note: This step is redundant for the host arch
FROM node:22.4-alpine as build_deps
FROM node:22.4-slim as build_deps
WORKDIR /usr/app
RUN apk update && apk add --no-cache g++ make python3 py3-setuptools && rm -rf /var/cache/apk/*
RUN apt-get update && apt-get install -y g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY --from=build_src /usr/app .

# Do yarn --force to trigger a rebuild of the native packages
# Emmulates `yarn rebuild` which is not available in v1 https://yarnpkg.com/cli/rebuild
# Emmulates `yarn rebuild` which is not available in v1 https://yarnpkg.com/cli/rebuild
RUN yarn install --non-interactive --frozen-lockfile --production --force
# Rebuild leveldb bindings (required for arm64 build)
RUN cd node_modules/classic-level && yarn rebuild

# Copy built src + node_modules to a new layer to prune unnecessary fs
# Previous layer weights 7.25GB, while this final 488MB (as of Oct 2020)
FROM node:22.4-alpine
FROM node:22.4-slim
WORKDIR /usr/app
COPY --from=build_deps /usr/app .

Expand Down
34 changes: 19 additions & 15 deletions README.md

Large diffs are not rendered by default.

67 changes: 61 additions & 6 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ If there is a bug discovered during the testing period which significantly impac
For example: After 3-5 days of testing, is performance equal to or better than latest stable?

- **Yes**: Continue to the next release step
- **No**: If it a small issue fixable quickly (hot-fix)?
- **No**: If it a small issue fixable quickly (hotfix)?
- **Yes**: Merge fix(es) to `unstable`, push the fix(es) to `rc/v1.1.0` branch, go to step 2, incrementing the rc version
- **No**: abort the release. Close the `chore: v1.1.0 release` PR, delete the branch, and start the whole release process over.

Expand Down Expand Up @@ -106,11 +106,11 @@ Tagging a stable release will trigger CI to publish to NPM, dockerhub, and Githu
### 6. Announce

- Double check that Github release is correct
- Publish to Social Media
- Follow [Publish to Social Media](#publish-to-social-media) steps

## Hot-fix release
## Hotfix release

If a stable version requires an immediate hot-fix before the next release, a hot-fix release is started.
If a stable version requires an immediate fix before the next release, a hotfix release is started.

A similar process for a stable release is used, with the three differences.

Expand Down Expand Up @@ -162,7 +162,62 @@ Tagging a release candidate will trigger CI to publish to NPM, dockerhub, and Gi
- `git tag -am "v1.1.1-rc.0" v1.1.1-rc.0`
- `git push origin v1.1.1-rc.0`

Continue following the "test release candidate" and "merge release candidate" sections. Testing window may be modified depending on the severity of the bug fixed.
### 3. Test hotfix release candidate

Once a hotfix release candidate is created, the Lodestar team may begin a modified hotfix testing period consisting of a quick sanity check or longer if required.

If the hotfix does not address the purpose of the hotfix release, or there is another bug discovered during this modified hotfix testing period which significantly impacts performance, security, or stability, and it is determined that it is no longer prudent to promote the `rc.x` candidate to `stable`, then it will await an additional fix by the team. The fix will be committed to `unstable` first, then cherrypicked into the `rc/v1.1.1` hotfix branch. Then we publish and promote the new commit to `rc.x+1`. The modified hotfix testing period will reset.

For example: After modified hotfix testing period, is the original bug resolved? Is performance equal to or better than latest stable?

- **Yes**: Continue to the next release step
- **No**: If it a small issue fixable quickly with another hotfix?
- **Yes**: Merge fix(es) to `unstable`, push the fix(es) to `rc/v1.1.1` hotfix branch, go to step 2, incrementing the rc version
- **No**: Abort the release. Close the `chore: v1.1.v release` PR, delete the branch, and start the whole release process over.

### 4. Merge hotfix release candidate

- Ensure step 3 testing is successful and there is sufficient consensus to release `v1.1.1`.
- Approving the `chore: v1.1.1 release` PR means a team member marks the release as safe, after personally reviewing and / or testing it.
- Merge `chore: v1.1.1 release` PR to stable **with "merge commit"** strategy to preserve all history.
- Merge `stable` into `unstable` **with merge commit** strategy. Due to branch protections in `unstable` must open a PR. If there are conflicts, those must be resolved manually. Gitflow may cause changes that conflict between stable and unstable, for example due to a hotfix that is backported. If that happens, disable branch protections in unstable, merge locally fixing conflicts, run lint + tests, push, and re-enable branch protections. See "Backporting merge conflicts from stable to unstable".

Pull the latest commits on both `stable` and `unstable` branches:

- `git checkout stable && git pull origin stable`
- `git checkout unstable && git pull origin unstable`

Merge `stable` into `unstable`, resolving conflicts:

- `git checkout unstable && git merge stable`
- Resolve conflicts
- Sanity check locally before pushing by using: `git diff unstable origin/unstable`
- Disable `unstable` branch protection
- `git push`
- Enable `unstable` branch protection

### 5. Tag stable hotfix release

Tagging a stable release will trigger CI to publish to NPM, dockerhub, and Github releases.

#### All-in-one script (for example version `v1.1.1`):

- `git checkout stable`
- `yarn release:tag-stable 1.1.1`
- Must be run locally from a write-access account capable of triggering CI.

#### Manual steps (for example version `v1.1.1`):

- Check out the new stable
- `git checkout stable`
- Tag it as `v1.1.1` with an annotated tag, push commit and tag.
- `git tag -am "v1.1.1" v1.1.1`
- `git push origin v1.1.1`

### 6. Announce

- Double check that Github release is correct
- Follow [Publish to Social Media](#publish-to-social-media) steps

## Dev release

Expand Down Expand Up @@ -280,7 +335,7 @@ Lodestar used `master` as the single target for feature branches.
- QA is done on `v1.1.x` branch
- Fixes on rc are done on `v1.1.x`, then re-tag
- Once released final `v1.1.0` tag is on a branch that is never merged
- Hot-fixes are either cherry-picked from `master` or done on the `v1.1.x` branch, never merged
- Hotfixes are either cherry-picked from `master` or done on the `v1.1.x` branch, never merged

However, this had some issues:

Expand Down
6 changes: 3 additions & 3 deletions dashboards/lodestar_block_processor.json
Original file line number Diff line number Diff line change
Expand Up @@ -5101,7 +5101,7 @@
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "rate(lodestar_bls_thread_pool_signature_deserialization_main_thread_time_seconds_bucket[$rate_interval])",
"expr": "rate(lodestar_gossip_block_gossip_validate_time_bucket[$rate_interval])",
"format": "heatmap",
"instant": false,
"legendFormat": "time",
Expand Down Expand Up @@ -5273,7 +5273,7 @@
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "rate(lodestar_bls_thread_pool_signature_deserialization_main_thread_time_seconds_sum[$rate_interval]) / rate(lodestar_bls_thread_pool_signature_deserialization_main_thread_time_seconds_count[$rate_interval])",
"expr": "rate(lodestar_gossip_block_gossip_validate_time_sum[$rate_interval]) / rate(lodestar_gossip_block_gossip_validate_time_count[$rate_interval])",
"format": "heatmap",
"instant": false,
"legendFormat": "time",
Expand Down Expand Up @@ -7132,7 +7132,7 @@
"condition": "",
"key": "instance",
"operator": "=",
"value": "unstable-lg1k-hzax41"
"value": "unstable-lg1k-hzax41-dkr"
}
],
"hide": 0,
Expand Down
2 changes: 1 addition & 1 deletion dashboards/lodestar_block_production.json
Original file line number Diff line number Diff line change
Expand Up @@ -2211,7 +2211,7 @@
"condition": "",
"key": "instance",
"operator": "=",
"value": "unstable-lg1k-hzax41"
"value": "unstable-lg1k-hzax41-dkr"
}
],
"hide": 0,
Expand Down
10 changes: 5 additions & 5 deletions dashboards/lodestar_bls_thread_pool.json
Original file line number Diff line number Diff line change
Expand Up @@ -1174,9 +1174,9 @@
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "rate(lodestar_bls_thread_pool_signature_deserialization_main_thread_time_seconds_sum[$rate_interval]) * 384",
"expr": "rate(lodestar_bls_thread_pool_aggregate_with_randomness_main_thread_time_seconds_sum[$rate_interval]) * 384",
"instant": false,
"legendFormat": "signature_deserialization",
"legendFormat": "aggregate_with_randomness",
"range": true,
"refId": "A"
},
Expand Down Expand Up @@ -1270,7 +1270,7 @@
"disableTextWrap": false,
"editorMode": "code",
"exemplar": false,
"expr": "rate(lodestar_bls_thread_pool_signature_deserialization_main_thread_time_seconds_bucket[$rate_interval])",
"expr": "rate(lodestar_bls_thread_pool_aggregate_with_randomness_main_thread_time_seconds_bucket[$rate_interval])",
"format": "heatmap",
"fullMetaSearch": false,
"includeNullMetadata": true,
Expand All @@ -1281,7 +1281,7 @@
"useBackend": false
}
],
"title": "Main Thread Signature Aggregation Time",
"title": "Main Thread AggregateWithRandomness Time",
"type": "heatmap"
},
{
Expand Down Expand Up @@ -1483,7 +1483,7 @@
"condition": "",
"key": "instance",
"operator": "=",
"value": "unstable-lg1k-hzax41"
"value": "unstable-lg1k-hzax41-dkr"
}
],
"hide": 0,
Expand Down
2 changes: 1 addition & 1 deletion dashboards/lodestar_debug_gossipsub.json
Original file line number Diff line number Diff line change
Expand Up @@ -8876,7 +8876,7 @@
"condition": "",
"key": "instance",
"operator": "=",
"value": "unstable-lg1k-hzax41"
"value": "unstable-lg1k-hzax41-dkr"
}
],
"hide": 0,
Expand Down
2 changes: 1 addition & 1 deletion dashboards/lodestar_discv5.json
Original file line number Diff line number Diff line change
Expand Up @@ -2168,7 +2168,7 @@
"condition": "",
"key": "instance",
"operator": "=",
"value": "unstable-lg1k-hzax41"
"value": "unstable-lg1k-hzax41-dkr"
}
],
"hide": 0,
Expand Down
2 changes: 1 addition & 1 deletion dashboards/lodestar_execution_engine.json
Original file line number Diff line number Diff line change
Expand Up @@ -3439,7 +3439,7 @@
"condition": "",
"key": "instance",
"operator": "=",
"value": "unstable-lg1k-hzax41"
"value": "unstable-lg1k-hzax41-dkr"
}
],
"hide": 0,
Expand Down
Loading
Loading