Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": ["@tevm/playground", "@tevm/zig"]
"ignore": ["@tevm/playground", "@tevm/zig", "voltaire-effect"]
}
5 changes: 5 additions & 0 deletions .changeset/ready-voltaire-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tevm/voltaire": patch
---

Prepare the package for reproducible, provenance-backed npm releases with consumer documentation and verified metadata.
18 changes: 11 additions & 7 deletions .github/workflows/build-native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ jobs:
fail-fast: false
matrix:
include:
# macOS ARM (M1/M2) - macos-latest is now ARM
- os: macos-latest
# macOS ARM (M1/M2)
- os: macos-15
platform: darwin-arm64
zig-target: aarch64-macos
# macOS x64 - use macos-13 which is the last x64 runner
- os: macos-13
# macOS x64
- os: macos-15-intel
platform: darwin-x64
zig-target: x86_64-macos
# Linux x64 - ubuntu-latest is x64
Expand Down Expand Up @@ -54,13 +54,17 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22.22.0'
cache: 'pnpm'

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
toolchain: 1.89.0

- name: Install Windows GNU Rust target
if: runner.os == 'Windows'
run: rustup target add x86_64-pc-windows-gnu

- name: Cache Cargo dependencies
uses: actions/cache@v4
Expand Down Expand Up @@ -96,7 +100,7 @@ jobs:
zig build install

- name: Build native library
run: zig build build-native-${{ matrix.platform }}
run: zig build -Dwith-c-api=true build-native-${{ matrix.platform }}

- name: Verify build output
shell: bash
Expand Down
46 changes: 39 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,29 @@ name: CI

on:
push:
branches: [main]
pull_request:
schedule:
- cron: '0 0 * * 0'

jobs:
rust:
name: rust
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
- name: Run Rust wrapper tests
run: cargo test --locked

test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-15, windows-latest]
optimize: [Debug, ReleaseSmall, ReleaseSafe, ReleaseFast]
runs-on: ${{ matrix.os }}
defaults:
Expand All @@ -24,6 +38,13 @@ jobs:
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.15.1
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
- name: Install Windows GNU Rust target
if: runner.os == 'Windows'
run: rustup target add x86_64-pc-windows-gnu
- name: Build
run: zig build -Doptimize=${{ matrix.optimize }}
- name: Debug - List target directory (Windows)
Expand Down Expand Up @@ -54,6 +75,10 @@ jobs:
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.15.1
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
- name: Build keccak256 example
run: zig build example-keccak256
- name: Build ABI example
Expand Down Expand Up @@ -88,6 +113,10 @@ jobs:
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.15.1
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
- name: Build for WASM
run: zig build -Dtarget=wasm32-wasi -Doptimize=ReleaseSmall

Expand All @@ -112,10 +141,13 @@ jobs:
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.15.1
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
targets: wasm32-unknown-unknown
- name: Build Zig library (required for FFI tests)
run: zig build -Doptimize=ReleaseFast -Dwith-c-api=false
- name: Install Rust wasm32 target
run: rustup target add wasm32-unknown-unknown
- name: Build WASM for TypeScript tests
run: |
zig build build-ts-wasm
Expand All @@ -127,7 +159,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22.22.0'
cache: 'pnpm'
- name: Install TypeScript dependencies
run: pnpm install --frozen-lockfile
Expand All @@ -144,15 +176,15 @@ jobs:
run: pnpm --filter @tevm/voltaire run build:dist
- name: Build types
run: pnpm --filter @tevm/voltaire run build:types
- name: Build documentation
run: pnpm --filter @voltaire/docs run build
- name: Run package validation
run: pnpm --filter @tevm/voltaire run lint:package
- name: Run TypeScript tests with coverage
- name: Run TypeScript and WASM tests with coverage
run: pnpm --filter @tevm/voltaire run test:coverage
# Native FFI tests disabled until libwally-core C API is fixed
# - name: Run native FFI tests
# run: pnpm run test:native
- name: Run WASM tests
run: pnpm --filter @tevm/voltaire run test:wasm

# Benchmarks disabled - keccak_wrapper.h include path issue needs fix in build.zig
# benchmarks:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/claude-code-auto-fix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22.22.0'

- name: Install Claude CLI
run: |
Expand Down Expand Up @@ -121,4 +121,4 @@ jobs:
const message = status === 'success'
? '✅ Claude Code auto-fix completed successfully'
: '❌ Claude Code auto-fix encountered an error';
console.log(message);
console.log(message);
2 changes: 1 addition & 1 deletion .github/workflows/deploy-playground.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22.22.0'
cache: 'pnpm'

- name: Install dependencies
Expand Down
45 changes: 34 additions & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,22 @@ jobs:
with:
version: 0.15.1

- name: Install Rust wasm32 target
run: rustup target add wasm32-unknown-unknown
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
targets: wasm32-unknown-unknown

- name: Build Zig + WASM
- name: Build and test Zig
run: |
zig build -Doptimize=ReleaseFast
zig build test -Doptimize=ReleaseFast

- name: Test Rust wrappers
run: cargo test --locked

- name: Build WASM
run: |
zig build build-ts-wasm
zig build crypto-wasm

Expand All @@ -41,34 +51,47 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
node-version: '22.22.0'
cache: 'pnpm'
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build
run: pnpm --filter @tevm/voltaire build && pnpm --filter voltaire-effect build
- name: Lint and typecheck
run: |
pnpm --filter @tevm/voltaire lint:check
pnpm --filter @tevm/voltaire typecheck

- name: Create Release Pull Request or Publish
- name: Test
run: pnpm --filter @tevm/voltaire test:run

- name: Build package
run: pnpm --filter @tevm/voltaire build

- name: Create release pull request
id: changesets
uses: changesets/action@v1
with:
publish: pnpm release
version: pnpm version-packages
title: "chore: version packages"
commit: "chore: version packages"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish @tevm/voltaire
id: publish
if: steps.changesets.outputs.hasChangesets == 'false'
run: pnpm release
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Create GitHub Release
if: steps.changesets.outputs.published == 'true'
uses: softprops/action-gh-release@v1
if: steps.publish.outputs.published == 'true'
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ fromJSON(steps.changesets.outputs.publishedPackages)[0].version }}
tag_name: ${{ steps.publish.outputs.name }}@${{ steps.publish.outputs.version }}
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8 changes: 4 additions & 4 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ name: Swift

on:
push:
branches: [main]
pull_request:

jobs:
swift-tests:
name: Swift Tests (macOS)
runs-on: macos-latest
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -22,7 +23,7 @@ jobs:
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
toolchain: 1.89.0

- name: Cache Cargo
uses: actions/cache@v4
Expand All @@ -46,10 +47,9 @@ jobs:
zig build install

- name: Build Zig native artifacts
run: zig build build-ts-native
run: zig build -Dwith-c-api=true build-ts-native

- name: Run Swift tests
run: |
cd packages/voltaire-swift
swift test -q

3 changes: 2 additions & 1 deletion .github/workflows/voltaire-effect-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: voltaire-effect CI

on:
push:
branches: [main]
paths:
- 'packages/voltaire-effect/**'
- '.github/workflows/voltaire-effect-ci.yml'
Expand All @@ -18,7 +19,7 @@ jobs:
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
node-version: '22.22.0'
cache: 'pnpm'

- name: Install dependencies
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/wasm-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: WASM Size

on:
push:
branches: [main]
pull_request:

jobs:
Expand All @@ -15,16 +16,19 @@ jobs:
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.15.1
- name: Install Rust wasm32 target
run: rustup target add wasm32-unknown-unknown
- name: Install Rust 1.89.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.89.0
targets: wasm32-unknown-unknown
- name: Build WASM TypeScript bindings
run: zig build build-ts-wasm
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '22.22.0'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ node_modules
# misc
/.sass-cache
/connect.lock
/coverage
**/coverage/
/libpeerconnection.log
npm-debug.log
testem.log
Expand Down
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22.22.0
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(The MIT License)

Copyright 2023
Copyright 2023-present Voltaire contributors

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand Down
Loading
Loading