Skip to content

Commit c79ab58

Browse files
committed
Merge branch 'pathfinder/v0.16.1'
2 parents a868513 + 8b7e524 commit c79ab58

File tree

332 files changed

+34102
-20783
lines changed

Some content is hidden

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

332 files changed

+34102
-20783
lines changed

.github/workflows/ci.yml

+42-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ concurrency:
1515
cancel-in-progress: true
1616

1717
jobs:
18-
test:
18+
test-all-features:
1919
runs-on: ubuntu-latest
2020
env:
2121
CARGO_TERM_COLOR: always
@@ -41,17 +41,54 @@ jobs:
4141
cargo clean
4242
rm -rf ~/.cargo/registry
4343
rm -rf ~/.cargo/git
44-
- name: Compile unit tests
44+
- name: Compile unit tests with all features enabled
4545
run: cargo nextest run --all-targets --all-features --workspace --locked --no-run --timings
46-
- name: Run unit tests
46+
- name: Run unit tests with all features enabled
4747
run: timeout 10m cargo nextest run --no-fail-fast --all-targets --all-features --workspace --locked
48-
- name: Store timings
48+
- name: Store timings with all features enabled
4949
uses: actions/upload-artifact@v4
5050
with:
51-
name: timings
51+
name: timings-all-features
5252
path: target/cargo-timings/
5353
if-no-files-found: warn
5454

55+
test-default-features:
56+
runs-on: ubuntu-latest
57+
env:
58+
CARGO_TERM_COLOR: always
59+
steps:
60+
- name: Maximize build space
61+
uses: easimon/maximize-build-space@master
62+
with:
63+
root-reserve-mb: "3072"
64+
temp-reserve-mb: "3072"
65+
- uses: actions/checkout@v4
66+
- uses: dtolnay/rust-toolchain@stable
67+
- uses: rui314/setup-mold@v1
68+
- uses: Swatinem/rust-cache@v2
69+
with:
70+
save-if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'schedule' }}
71+
- uses: arduino/setup-protoc@v3
72+
with:
73+
repo-token: ${{ secrets.GITHUB_TOKEN }}
74+
- uses: taiki-e/install-action@nextest
75+
- name: Clear cache
76+
if: github.event_name =='schedule'
77+
run: |
78+
cargo clean
79+
rm -rf ~/.cargo/registry
80+
rm -rf ~/.cargo/git
81+
- name: Compile unit tests with default features
82+
run: cargo nextest run --all-targets --workspace --locked --no-run --timings
83+
- name: Run unit tests with default features
84+
run: timeout 10m cargo nextest run --no-fail-fast --all-targets --workspace --locked
85+
- name: Store timings with default features
86+
uses: actions/upload-artifact@v4
87+
with:
88+
name: timings-default-features
89+
path: target/cargo-timings/
90+
if-no-files-found: warn
91+
5592
clippy:
5693
runs-on: ubuntu-latest
5794
steps:

.github/workflows/deploy_website.yml

+13-22
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
# Template taken from : https://github.com/actions/starter-workflows/blob/main/pages/mdbook.yml
2-
3-
# Sample workflow for building and deploying a mdBook site to GitHub Pages
4-
#
5-
# To get started with mdBook see: https://rust-lang.github.io/mdBook/index.html
6-
#
7-
name: Deploy mdBook site to Pages
1+
name: Deploy website site to Pages
82

93
on:
104
# Allows you to run this workflow manually from the Actions tab
@@ -28,24 +22,21 @@ jobs:
2822
runs-on: ubuntu-latest
2923
steps:
3024
- uses: actions/checkout@v4
31-
- name: Install Rust
32-
uses: dtolnay/rust-toolchain@stable
33-
- name: Install mdBook
34-
run: |
35-
tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name')
36-
url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz"
37-
mkdir bin
38-
curl -sSL $url | tar -xz --directory=bin
39-
echo "$(pwd)/bin" >> $GITHUB_PATH
4025
- name: Setup Pages
4126
id: pages
42-
uses: actions/configure-pages@v3
43-
- name: Build with mdBook
44-
run: mdbook build ./website
27+
uses: actions/configure-pages@v5
28+
- name: Install Docusaurus
29+
run: |
30+
cd docs
31+
yarn
32+
- name: Build with Docusaurus
33+
run: |
34+
cd docs
35+
yarn build
4536
- name: Upload artifact
46-
uses: actions/upload-pages-artifact@v1
37+
uses: actions/upload-pages-artifact@v3
4738
with:
48-
path: ./website/book
39+
path: ./docs/build
4940

5041
# Deployment job
5142
deploy:
@@ -57,4 +48,4 @@ jobs:
5748
steps:
5849
- name: Deploy to GitHub Pages
5950
id: deployment
60-
uses: actions/deploy-pages@v2
51+
uses: actions/deploy-pages@v4

.github/workflows/publish-crates.yml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Publish Crates
2+
3+
on:
4+
workflow_dispatch:
5+
release:
6+
types: [published]
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
publish-crates:
13+
name: Publish crates to crates.io
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: dtolnay/rust-toolchain@stable
18+
19+
- name: Login to crates.io
20+
run: cargo login ${{ secrets.CRATES_IO_TOKEN }}
21+
22+
# Publish crates in dependency order with retries
23+
- name: Publish crates
24+
run: |
25+
publish_with_retry() {
26+
local package=$1
27+
local max_attempts=3
28+
local attempt=1
29+
30+
while [ $attempt -le $max_attempts ]; do
31+
echo "Attempting to publish $package (attempt $attempt/$max_attempts)"
32+
if cargo publish -p $package; then
33+
return 0
34+
fi
35+
attempt=$((attempt + 1))
36+
[ $attempt -le $max_attempts ] && sleep 30
37+
done
38+
return 1
39+
}
40+
41+
# First publish crypto as it has no internal dependencies
42+
publish_with_retry pathfinder-crypto
43+
sleep 30
44+
45+
# Publish common which depends on crypto
46+
publish_with_retry pathfinder-common
47+
sleep 30
48+
49+
# Publish serde which depends on common and crypto
50+
publish_with_retry pathfinder-serde
51+
sleep 30
52+
53+
# Finally publish class-hash which depends on common, crypto and serde
54+
publish_with_retry pathfinder-class-hash

.github/workflows/publish.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
tags: ${{ steps.meta.outputs.tags }}
5656
labels: ${{ steps.meta.outputs.labels }}
5757
build-args: |
58-
PATHFINDER_FORCE_VERSION=v0.15.2-cartridge.1
58+
PATHFINDER_FORCE_VERSION=${{ github.ref_name }}
5959
cache-from: type=gha
6060
cache-to: type=gha,mode=max
6161

CHANGELOG.md

+34
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,40 @@ More expansive patch notes and explanations may be found in the specific [pathfi
77
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
88
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

10+
## [0.16.1] - 2025-02-24
11+
12+
### Fixed
13+
14+
- Pathfinder does not return `transaction_hash` in `starknet_getBlockWithTxns` response.
15+
- Custom networks cannot be configured for pre-0.13.4 Starknet versions,
16+
17+
## [0.16.0] - 2025-02-19
18+
19+
### Added
20+
21+
- Support for Starknet 0.13.4.
22+
- Support for the JSON-RPC 0.8.0-rc3 API, including Websocket subscriptions.
23+
- Graceful shutdown upon SIGINT and SIGTERM with a default grace period of 10 seconds, configurable via `--shutdown.grace-period`.
24+
25+
### Removed
26+
27+
- `storage_commitment` and `class_commitment` fields from the `pathfinder_subscribe_newHeads` method response.
28+
29+
### Fixed
30+
31+
- `pathfinder_getProof`, `pathfinder_getClassProof` return `ProofMissing` (10001) when Pathfinder is in `archive` mode and queried block's tries are empty.
32+
- `starknet_syncing` returns `u64::MAX` as the starting block number when starting from scratch.
33+
34+
### Changed
35+
36+
- Use aggregate Bloom filters for `starknet_getEvents` to improve performance.
37+
38+
## [0.15.3] - 2025-01-10
39+
40+
### Changed
41+
42+
- Cairo 0 class definition size is now capped at 4 MiB.
43+
1044
## [0.15.2] - 2024-12-04
1145

1246
### Fixed

0 commit comments

Comments
 (0)