Skip to content

Commit

Permalink
Merge 360fe77 into 115118c
Browse files Browse the repository at this point in the history
  • Loading branch information
wemeetagain authored Aug 6, 2024
2 parents 115118c + 360fe77 commit 39b2c21
Show file tree
Hide file tree
Showing 266 changed files with 7,565 additions and 2,566 deletions.
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

0 comments on commit 39b2c21

Please sign in to comment.