Skip to content
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
15fd313
ensure extended_k <= S
zhiqiangxu Aug 21, 2023
ba69850
pow_vartime([n, 0, 0, 0] => pow_vartime([n]
zhiqiangxu Aug 22, 2023
4520afe
avoid realloc
zhiqiangxu Aug 28, 2023
af1713f
arithmetic::best_multiexp add benchmark
ashWhiteHat Sep 6, 2023
e00f0d1
arithmetic::best_multiexp parallelize bucket arithmetic
ashWhiteHat Sep 6, 2023
24e3ec3
arithmetic::best_multiexp refactor buckets
ashWhiteHat Sep 6, 2023
643e6ba
Make docs consistent with code example.
DamianStraszak Feb 19, 2024
41ed99b
fix links from book
oxarbitrage Apr 14, 2024
d958773
Add method to retrieve circuit size parameter k
Dedme Oct 28, 2025
afd29b1
Merge pull request #817 from oxarbitrage/patch-1
str4d Dec 2, 2025
7d5ddec
Merge pull request #855 from Dedme/expose-commitment-k
str4d Dec 2, 2025
043b2ef
halo2_proofs: Update changelog
str4d Dec 2, 2025
a6dd670
halo2_proofs: Deprecate `halo2_proofs::circuit::layouter::TableLayouter`
str4d Dec 2, 2025
1cca0c9
halo2_gadgets: Clean up and finish changelog
str4d Dec 2, 2025
a73ad8f
halo2_gadgets: Replace exposed `MerkleConfig` field with getter method
str4d Dec 2, 2025
c3a65be
book: Fix some broken links
str4d Dec 2, 2025
d10fc24
Merge pull request #856 from zcash/release-prep
str4d Dec 2, 2025
3db2f68
Merge pull request #812 from DamianStraszak/constant-in-simple-example
str4d Dec 3, 2025
aac9dca
Merge pull request #793 from zhiqiangxu/opt_build_vk
str4d Dec 3, 2025
dc2b61d
Merge pull request #791 from zhiqiangxu/ensure_extended_k_le_s
str4d Dec 3, 2025
509ca41
Merge pull request #792 from zhiqiangxu/opt_usage_pow_vartime
str4d Dec 3, 2025
6cfd880
CI: Migrate to `actions/checkout@v5`
str4d Dec 3, 2025
9e09c27
CI: Add zizmor workflow
str4d Dec 3, 2025
db55522
CI: Modernise workflows
str4d Dec 3, 2025
630c676
CI: Don't persist credentials on checkout
str4d Dec 3, 2025
2d61063
Merge pull request #857 from zcash/ci-fixes
nuttycom Dec 3, 2025
13139a5
CI: Migrate to `actions/upload-artifact@v5`
str4d Dec 4, 2025
bf462fa
Merge pull request #858 from zcash/ci-fixes-2
str4d Dec 4, 2025
bb821a5
CI: Build book with `mdbook 0.4`
str4d Dec 4, 2025
c7da550
Merge pull request #859 from zcash/book-fixes
str4d Dec 4, 2025
0e885b6
Bump zizmorcore/zizmor-action from 0.2.0 to 0.3.0
dependabot[bot] Dec 4, 2025
24506b0
Migrate to `mdbook 0.5`
str4d Dec 4, 2025
252477a
Merge pull request #864 from zcash/book-fixes-2
str4d Dec 4, 2025
2c946ff
Bump peaceiris/actions-mdbook from 1 to 2
dependabot[bot] Dec 4, 2025
27fddaf
Add test for `best_multiexp`
str4d Dec 4, 2025
3e38720
Merge pull request #863 from zcash/dependabot/github_actions/zizmorco…
str4d Dec 4, 2025
7de8af3
halo2_proofs: Add helper to resolve `Iterator::reduce` mismatch
str4d Dec 4, 2025
7e76b1c
CI: Install required library before building rustdocs
str4d Dec 4, 2025
35ad82d
Merge pull request #865 from zcash/ci-fixes-3
str4d Dec 4, 2025
20da0cc
Merge pull request #860 from zcash/dependabot/github_actions/peaceiri…
str4d Dec 4, 2025
63a4f86
Bump lockfile to `pathfinder_simd 0.5.5`
str4d Dec 4, 2025
952d1f9
Merge pull request #866 from zcash/ci-fixes-4
str4d Dec 4, 2025
61cce59
Merge pull request #796 from ashWhiteHat/feature/msm-optimization
str4d Dec 4, 2025
f6200ad
halo2_proofs 0.3.2
str4d Dec 4, 2025
e44c1be
halo2_gadgets 0.4.0
str4d Dec 4, 2025
32a8758
Merge pull request #867 from zcash/halo2_gadgets-0.4.0
str4d Dec 4, 2025
9d5061f
Merge branch 'main' into merge_upstream_20260430
ConstanceBeguier Apr 30, 2026
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
10 changes: 1 addition & 9 deletions .github/actions/prepare/action.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
name: 'Prepare Halo 2'
description: 'Sets up the Rust toolchain and prepares feature flags'
description: 'Prepares feature flags'
inputs:
toolchain:
description: 'Rust toolchain to use (defaults to MSRV)'
required: false
default: 1.60.0
beta-features:
description: 'Include beta features'
required: false
Expand All @@ -24,10 +20,6 @@ outputs:
runs:
using: 'composite'
steps:
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ inputs.toolchain }}
override: true
- id: beta
shell: bash
run: echo "feature=beta" >> $GITHUB_OUTPUT
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
name: Performance regression check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- uses: ./.github/actions/prepare
- name: Run benchmark
run: cargo bench -- --output-format bencher | tee output.txt
Expand Down
132 changes: 61 additions & 71 deletions .github/workflows/book.yml
Original file line number Diff line number Diff line change
@@ -1,71 +1,61 @@
#name: halo2 book
#
#on:
# push:
# branches:
# - main
#
#jobs:
# deploy:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: '1.76.0'
# override: true
#
# # - name: Setup mdBook
# # uses: peaceiris/actions-mdbook@v1
# # with:
# # mdbook-version: 'latest'
#
# # mdBook for mdbook-pdf compatibility by fixing broken links in print.html
# # Waiting for https://github.com/rust-lang/mdBook/pull/1738 to get merged
# - name: Install patched mdbook
# uses: actions-rs/cargo@v1
# with:
# command: install
# args: mdbook --git https://github.com/HollowMan6/mdBook.git --rev 5830c9555a4dc051675d17f1fcb04dd0920543e8
#
# - name: Install mdbook-katex and mdbook-pdf
# uses: actions-rs/cargo@v1
# with:
# command: install
# args: mdbook-katex mdbook-pdf
#
# - name: Install mdbook-pdf-outline
# run: pip3 install mdbook-pdf-outline
#
# - name: Build halo2 book
# run: mdbook build book/
#
# - uses: actions-rs/toolchain@v1
# with:
# toolchain: nightly-2023-10-05
# override: true
#
# - name: Build latest rustdocs
# uses: actions-rs/cargo@v1
# with:
# command: doc
# args: --no-deps --workspace --all-features
# env:
# RUSTDOCFLAGS: -Z unstable-options --enable-index-page --cfg docsrs --html-in-header ${{ github.workspace }}/halo2_proofs/katex-header.html
#
# - name: Move latest rustdocs into book
# run: |
# mkdir -p ./book/book/html/rustdoc
# mv ./target/doc ./book/book/html/rustdoc/latest
#
# - name: Deploy to GitHub Pages
# uses: peaceiris/actions-gh-pages@v3
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: ./book/book/html
#
# - name: Upload PDF File to Artifact
# uses: actions/upload-artifact@v3
# with:
# name: The_halo2_Book
# path: book/book/pdf-outline/*.pdf
name: halo2 book

on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@nightly
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
id: toolchain
- run: rustup override set "${TOOLCHAIN}"
shell: sh
env:
TOOLCHAIN: ${{steps.toolchain.outputs.name}}

- name: Setup mdBook
uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 # v2.0.0
with:
mdbook-version: '0.5.1'

- name: Install mdbook-katex and mdbook-pdf
run: cargo install mdbook-katex@0.10.0-alpha mdbook-pdf

- name: Install mdbook-pdf-outline
run: pip3 install mdbook-pdf-outline

- name: Build halo2 book
run: mdbook build book/

- run: sudo apt-get -y install libfontconfig1-dev
- name: Build latest rustdocs
run: >
cargo doc
--no-deps
--workspace
--all-features
env:
RUSTDOCFLAGS: -Z unstable-options --enable-index-page --cfg docsrs --html-in-header ${{ github.workspace }}/halo2_proofs/katex-header.html

- name: Move latest rustdocs into book
run: |
mkdir -p ./book/book/html/rustdoc
mv ./target/doc ./book/book/html/rustdoc/latest

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./book/book/html

- name: Upload PDF File to Artifact
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: The_halo2_Book
path: book/book/pdf-outline/*.pdf
144 changes: 75 additions & 69 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
name: CI checks

on: [push, pull_request]
on:
pull_request:
push:
branches: main

permissions: {}

jobs:
test:
Expand All @@ -20,19 +25,21 @@
extra_flags: --features nightly

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- id: prepare
uses: ./.github/actions/prepare
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: test
args: >
--verbose
--release
--workspace
${{ steps.prepare.outputs.feature-flags }}
${{ matrix.extra_flags }}
run: >
cargo test
--verbose
--release
--workspace
${{ steps.prepare.outputs.feature-flags }}
${{ matrix.extra_flags }}
- name: Verify working directory is clean
run: git diff --exit-code

test-32-bit:
name: Test on i686-unknown-linux-gnu${{ matrix.name_suffix }}
Expand All @@ -47,7 +54,9 @@
name_suffix: " with nightly features"

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- id: prepare
uses: ./.github/actions/prepare
with:
Expand Down Expand Up @@ -75,7 +84,9 @@
- wasm32-wasi

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- id: prepare
uses: ./.github/actions/prepare
with:
Expand All @@ -84,108 +95,103 @@
- name: Add target
run: rustup target add ${{ matrix.target }}
- name: cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: >
${{ steps.prepare.outputs.feature-flags }}
--target ${{ matrix.target }}
run: >
cargo build
${{ steps.prepare.outputs.feature-flags }}
--target ${{ matrix.target }}

bitrot:
name: Bitrot check
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- run: sudo apt-get -y install libfontconfig1-dev
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- uses: ./.github/actions/prepare
# Check bitrot with stable (as we don't need benchmarks or the test-dev-graph
# feature flag to work with MSRV).
- uses: ./.github/actions/prepare
with:
toolchain: stable
- uses: dtolnay/rust-toolchain@stable
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
id: toolchain
- run: rustup override set "${TOOLCHAIN}"
shell: sh
env:
TOOLCHAIN: ${{steps.toolchain.outputs.name}}
- run: sudo apt-get -y install libfontconfig1-dev
# Build benchmarks and all-features to prevent bitrot
- name: Build benchmarks
uses: actions-rs/cargo@v1
with:
command: build
args: --benches --examples --all-features
run: cargo build --benches --examples --all-features

book:
name: Book tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- uses: ./.github/actions/prepare
# Build with stable so the .rmeta files match what mdBook expects.
- uses: dtolnay/rust-toolchain@stable
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
id: toolchain
- run: rustup override set "${TOOLCHAIN}"
shell: sh
env:
TOOLCHAIN: ${{steps.toolchain.outputs.name}}
- name: cargo build
uses: actions-rs/cargo@v1
with:
command: build
run: cargo build
- name: Setup mdBook
uses: peaceiris/actions-mdbook@v1
uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 # v2.0.0
with:
mdbook-version: '0.4.5'
mdbook-version: '0.5.1'
- name: Test halo2 book
run: mdbook test -L target/debug/deps book/

codecov:
name: Code coverage
runs-on: ubuntu-latest

container:
image: xd009642/tarpaulin:develop-nightly
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v3
# Use stable for this to ensure that cargo-tarpaulin can be built.
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
persist-credentials: false
- id: prepare
uses: ./.github/actions/prepare
with:
toolchain: stable
nightly-features: true
- name: Install cargo-tarpaulin
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-tarpaulin
# Extend the timeout to 3600 to ensure the code coverage test pass
- name: Generate coverage report
uses: actions-rs/cargo@v1
with:
command: tarpaulin
# Extend the timeout to 3600 to ensure the code coverage test pass
args: >
${{ steps.prepare.outputs.feature-flags }}
--timeout 3600
--out Xml
run: >
cargo tarpaulin
--engine llvm
${{ steps.prepare.outputs.feature-flags }}
--timeout 3600
--out xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3.1.4

doc-links:
name: Intra-doc links
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/prepare
- name: cargo fetch
uses: actions-rs/cargo@v1
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
command: fetch

persist-credentials: false
- uses: ./.github/actions/prepare
- run: sudo apt-get -y install libfontconfig1-dev
- run: cargo fetch
# Ensure intra-documentation links all resolve correctly
# Requires #![deny(intra_doc_link_resolution_failure)] in crates.
- name: Check intra-doc links
uses: actions-rs/cargo@v1
with:
command: doc
args: --all --document-private-items
run: cargo doc --all --all-features --document-private-items

fmt:
name: Rustfmt
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/prepare
- run: rustup component add rustfmt
- uses: actions-rs/cargo@v1
- uses: actions/checkout@v5
Comment thread
ConstanceBeguier marked this conversation as resolved.
Dismissed
with:
command: fmt
args: --all -- --check
persist-credentials: false
- uses: ./.github/actions/prepare
- run: cargo fmt --all -- --check
Loading
Loading