Skip to content

Commit 3a52658

Browse files
authored
Merge pull request #1616 from o1-labs/release/v0.18.0
Release v0.18.0
2 parents 736642f + d6198ea commit 3a52658

File tree

1,003 files changed

+47968
-46452
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,003 files changed

+47968
-46452
lines changed

.dockerignore

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,72 @@
1-
target/
1+
# MISC
2+
.gitignore
3+
ARCHITECTURE.md
4+
CHANGELOG.md
5+
CLAUDE.md
6+
README.md
7+
status.md
8+
9+
# Docker related
210
Dockerfile
3-
Dockerfile_FE
411
docker-compose.yml
12+
docker-compose.block-producer.yml
13+
docker-compose.archive.devnet.compare.yml
14+
docker-compose.archive.devnet.yml
15+
docker-compose.archive.local.producers.yml
16+
docker/
17+
run-debugger-ocaml-node.yaml
18+
run.yaml
19+
520
.dockerignore
21+
622
cli/bin
723
cli/tests
824
!cli/bin/snark-worker
925

10-
# Heartbeats processor
11-
tools/heartbeats-processor/.env
12-
tools/heartbeats-processor/data/
13-
tools/heartbeats-processor/credentials/
14-
tools/heartbeats-processor/*.db
15-
# Ensure .sqlx files are included
16-
!tools/heartbeats-processor/.sqlx/
17-
18-
# Will be copied on demand in the Docker image, if necessary
19-
circuit-blobs
20-
2126
# GH workflows
27+
.claude
2228
.github
2329
.idea
2430

25-
# Infrastructure
26-
helm
27-
2831
# Output of build-wasm
2932
pkg
3033

31-
# Outputs of build-tests-webrtc
34+
35+
# We do not use Nix to build the Docker images, therefore we can ignore the Nix
36+
# related files
37+
flake.lock
38+
flake.nix
39+
40+
# Environment files
41+
.env
42+
.env.example
43+
44+
# Rust related files
45+
target/
46+
.rustfmt.toml
47+
clippy.toml
48+
taplo.toml
49+
50+
## Outputs of build-tests-webrtc
3251
cargo-build-test.json
33-
tests.tsv
52+
tests.tsv
53+
54+
55+
# The website must not be included
56+
website
57+
## Ignore some scripts that can be used in the Docker images.
58+
## These scripts are used to be consistent with what is on the website and what
59+
## is actually used.
60+
!./website/docs/developers/scripts/frontend/install-nodejs-linux.sh
61+
!./website/docs/developers/scripts/frontend/install-angular-cli.sh
62+
63+
# NPM related
64+
node_modules
65+
66+
# Frontend
67+
frontend/.editorconfig
68+
frontend/.gitignore
69+
frontend/.vscode
70+
frontend/dist/frontend
71+
frontend/Dockerfile
72+
frontend/node_modules
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
name: 'Frontend Build'
2+
description: 'Build and test frontend application'
3+
inputs:
4+
run-prettier-check:
5+
description: 'Whether to run prettier check'
6+
required: false
7+
default: 'false'
8+
run-tests:
9+
description: 'Whether to run Cypress tests'
10+
required: false
11+
default: 'false'
12+
test-build-commands:
13+
description: 'Whether to test all build commands'
14+
required: false
15+
default: 'false'
16+
node-version:
17+
description: 'Node.js version to use'
18+
required: false
19+
default: '23'
20+
21+
runs:
22+
using: 'composite'
23+
steps:
24+
- name: Setup Node.js
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: ${{ inputs.node-version }}
28+
29+
- name: Install dependencies
30+
run: npm ci
31+
working-directory: frontend
32+
shell: bash
33+
34+
- name: Verify prettier installation
35+
if: inputs.run-prettier-check == 'true'
36+
run: npx prettier --version
37+
working-directory: frontend
38+
shell: bash
39+
40+
- name: Check code formatting with Prettier
41+
if: inputs.run-prettier-check == 'true'
42+
run: make check-prettify
43+
working-directory: frontend
44+
shell: bash
45+
46+
- name: Build frontend
47+
run: make build
48+
working-directory: frontend
49+
shell: bash
50+
51+
# Test Makefile targets (alphabetical order)
52+
- name: Test make build
53+
if: inputs.test-build-commands == 'true'
54+
run: |
55+
rm -rf dist
56+
make build
57+
[ -d "dist/frontend" ] || { echo "Error: make build failed"; exit 1; }
58+
working-directory: frontend
59+
shell: bash
60+
61+
- name: Test make build-fuzzing
62+
if: inputs.test-build-commands == 'true'
63+
run: |
64+
rm -rf dist
65+
make build-fuzzing
66+
[ -d "dist/frontend" ] || { echo "Error: make build-fuzzing failed"; exit 1; }
67+
working-directory: frontend
68+
shell: bash
69+
70+
- name: Test make build-leaderboard
71+
if: inputs.test-build-commands == 'true'
72+
run: |
73+
rm -rf dist
74+
make build-leaderboard
75+
[ -d "dist/frontend" ] || { echo "Error: make build-leaderboard failed"; exit 1; }
76+
working-directory: frontend
77+
shell: bash
78+
79+
- name: Test make build-local
80+
if: inputs.test-build-commands == 'true'
81+
run: |
82+
rm -rf dist
83+
make build-local
84+
[ -d "dist/frontend" ] || { echo "Error: make build-local failed"; exit 1; }
85+
working-directory: frontend
86+
shell: bash
87+
88+
- name: Test make build-production
89+
if: inputs.test-build-commands == 'true'
90+
run: |
91+
rm -rf dist
92+
make build-production
93+
[ -d "dist/frontend" ] || { echo "Error: make build-production failed"; exit 1; }
94+
working-directory: frontend
95+
shell: bash
96+
97+
- name: Test make build-staging
98+
if: inputs.test-build-commands == 'true'
99+
run: |
100+
rm -rf dist
101+
make build-staging
102+
[ -d "dist/frontend" ] || { echo "Error: make build-staging failed"; exit 1; }
103+
working-directory: frontend
104+
shell: bash
105+
106+
- name: Test make build-webnode
107+
if: inputs.test-build-commands == 'true'
108+
run: |
109+
rm -rf dist
110+
make build-webnode
111+
[ -d "dist/frontend" ] || { echo "Error: make build-webnode failed"; exit 1; }
112+
working-directory: frontend
113+
shell: bash
114+
115+
116+
- name: Run tests
117+
if: inputs.run-tests == 'true'
118+
uses: cypress-io/github-action@v6
119+
with:
120+
working-directory: frontend
121+
start: npm start
122+
wait-on: http://localhost:4200
123+
wait-on-timeout: 180s
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Load Versions
2+
description: Load version numbers from centralized config file
3+
4+
outputs:
5+
rust-stable:
6+
description: "Rust stable version"
7+
value: ${{ steps.load.outputs.rust-stable }}
8+
rust-nightly:
9+
description: "Rust nightly version"
10+
value: ${{ steps.load.outputs.rust-nightly }}
11+
ocaml-version:
12+
description: "OCaml version"
13+
value: ${{ steps.load.outputs.ocaml-version }}
14+
15+
runs:
16+
using: composite
17+
steps:
18+
- name: Load version configuration
19+
id: load
20+
shell: bash
21+
run: |
22+
VERSIONS_FILE="${{ github.action_path }}/../../config/versions.yaml"
23+
24+
# Read versions from YAML file using yq
25+
RUST_STABLE=$(yq eval '.rust.stable' "$VERSIONS_FILE")
26+
RUST_NIGHTLY=$(yq eval '.rust.nightly' "$VERSIONS_FILE")
27+
OCAML_VERSION=$(yq eval '.ocaml.version' "$VERSIONS_FILE")
28+
29+
# Set outputs
30+
echo "rust-stable=$RUST_STABLE" >> $GITHUB_OUTPUT
31+
echo "rust-nightly=$RUST_NIGHTLY" >> $GITHUB_OUTPUT
32+
echo "ocaml-version=$OCAML_VERSION" >> $GITHUB_OUTPUT
33+
34+
# Also set as environment variables for convenience
35+
echo "RUST_STABLE_VERSION=$RUST_STABLE" >> $GITHUB_ENV
36+
echo "RUST_NIGHTLY_VERSION=$RUST_NIGHTLY" >> $GITHUB_ENV
37+
echo "OCAML_VERSION=$OCAML_VERSION" >> $GITHUB_ENV
38+
39+
echo "Loaded versions:"
40+
echo " Rust stable: $RUST_STABLE"
41+
echo " Rust nightly: $RUST_NIGHTLY"
42+
echo " OCaml: $OCAML_VERSION"
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
name: 'Setup Build Dependencies'
22
description: 'Install system dependencies required for building Mina'
33
inputs:
4-
include-sqlite:
5-
description: 'Include SQLite3 in the installation'
6-
required: false
7-
default: 'false'
84
install-nextest:
95
description: 'Install cargo-nextest for faster test execution'
106
required: false
@@ -17,20 +13,16 @@ runs:
1713
shell: bash
1814
run: |
1915
sudo apt update || true
20-
if [ "${{ inputs.include-sqlite }}" = "true" ]; then
21-
sudo apt install -y protobuf-compiler sqlite3 || true
22-
else
23-
sudo apt install -y protobuf-compiler || true
24-
fi
16+
sudo apt install -y protobuf-compiler libpcap-dev || true
2517
2618
- name: Setup build dependencies (macOS)
2719
if: runner.os == 'macOS'
2820
shell: bash
2921
run: |
30-
brew install protobuf ocaml opam
22+
brew install protobuf ocaml opam libpcap
3123
3224
- name: Install cargo-nextest
3325
if: inputs.install-nextest == 'true'
3426
uses: taiki-e/install-action@v2
3527
with:
36-
tool: nextest
28+
tool: nextest

.github/actions/setup-wasm/action.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ inputs:
44
toolchain:
55
description: 'Rust toolchain version'
66
required: false
7-
# FIXME: set to nightly when https://github.com/rust-lang/rust/issues/145652
8-
default: 'nightly-2025-08-18'
9-
wasm-bindgen-version:
10-
description: 'wasm-bindgen-cli version'
11-
required: false
12-
default: '0.2.99'
7+
default: 'nightly'
138
cache-prefix:
149
description: 'Cache prefix key'
1510
required: false
@@ -21,13 +16,11 @@ runs:
2116
uses: dtolnay/rust-toolchain@stable
2217
with:
2318
toolchain: ${{ inputs.toolchain }}
24-
components: rustfmt, rust-src
2519

26-
- name: Install wasm32 target and wasm-bindgen-cli
20+
- name: Setup WASM toolchain using Makefile
2721
shell: bash
2822
run: |
29-
rustup target add wasm32-unknown-unknown
30-
cargo install -f wasm-bindgen-cli --version ${{ inputs.wasm-bindgen-version }}
23+
make setup-wasm
3124
3225
- name: Setup Rust Cache
3326
uses: Swatinem/rust-cache@v2

.github/config/versions.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Centralized version definitions for CI workflows
2+
#
3+
# This file serves as the single source of truth for all version numbers
4+
# used across GitHub Actions workflows.
5+
#
6+
# When updating versions here, also update:
7+
# - rust-toolchain.toml (for rust.stable)
8+
# - Makefile (for rust.nightly as NIGHTLY_RUST_VERSION)
9+
# - website/scripts/setup/install-rust.sh
10+
# - website/docs/developers/getting-started.mdx
11+
12+
rust:
13+
stable: "1.84"
14+
nightly: "nightly"
15+
16+
ocaml:
17+
version: "4.14.2"

0 commit comments

Comments
 (0)