-
Notifications
You must be signed in to change notification settings - Fork 14
Add explorer NATS publishing and backfill service #404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Hebilicious
wants to merge
54
commits into
compatible
Choose a base branch
from
branch/explorer-indexing-impl
base: compatible
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 43 commits
Commits
Show all changes
54 commits
Select commit
Hold shift + click to select a range
6f7170e
Add explorer NATS publishing and backfill service
Hebilicious d0244dd
Use opam pins for nats-ml integration
Hebilicious 835657c
Mark nats-ml pins as temporary workaround
Hebilicious 5b9c70a
Refactor explorer modules and dedicated tests
Hebilicious b3d1844
Clarify temporary opam pin comments
Hebilicious 4a7d5fc
Refine explorer backfill structure and gherkin tests
Hebilicious 26e1987
Trim explorer gherkin tests to PR scope
Hebilicious e626460
Finish PR 404 explorer validation wiring
Hebilicious 344502c
Merge remote-tracking branch 'origin/compatible' into branch/explorer…
Hebilicious 698b584
Use published nats opam dependencies
Hebilicious c50fc7d
Update graphql opam packages for yojson 2
Hebilicious 65f0814
Use published opam repository overlay for nats
Hebilicious b919794
Resolve yojson 2 opam import constraints
Hebilicious 5a504c0
Revert broad opam dependency refresh
Hebilicious 02ad8af
Update GraphQL stack for published NATS client
Hebilicious 5888811
Fix GraphQL 0.14 default argument handling
Hebilicious 5e12d45
Use Yojson 2 sequence parser
Hebilicious 61a69d6
Update Zeko GraphQL object fields for 0.14
Hebilicious 53612de
Add GraphQL const conversion for zkApp args
Hebilicious 7e83197
Render Rosetta GraphQL input defaults for 0.14
Hebilicious 3c628ea
Keep Rosetta query variables JSON under GraphQL 0.14
Hebilicious 77255f7
Declare init websocket dependency
Hebilicious c5c19d1
Use GraphQL websocket module in init server
Hebilicious ab56e82
Keep Zeko output fields recursive
Hebilicious 2390443
Use CI opam switch in Zeko test scripts
Hebilicious 7b5ca30
Split explorer Gherkin CI and tighten tests
Hebilicious 3201cb4
Restore explorer plan and prototools
Hebilicious 8af520f
Tighten explorer Gherkin CI wiring
Hebilicious 62b193e
Document explorer Gherkin harnesses
Hebilicious 4b460ab
Rename explorer tests README
Hebilicious 32dcd72
Address explorer review feedback
Hebilicious 64fc302
Add explorer E2E Gherkin harness
Hebilicious 5c9ceb4
Restore GraphQL object default handling
Hebilicious c34582c
Fix explorer E2E NATS message typing
Hebilicious 6c2ee87
Fix explorer E2E backfill job typing
Hebilicious a95b8c8
Fix explorer E2E cleanup refs
Hebilicious 9a1c39b
Wait for matching explorer E2E events
Hebilicious f8c6bf2
Add explorer debug logs
Hebilicious e357c7d
feat: implement Zeko JetStream publish contract (#407)
Hebilicious 152291a
Merge compatible into explorer indexing
Hebilicious efe115b
Narrow sequencer test harness builds
Hebilicious 4359d38
Merge compatible into explorer indexing
Hebilicious f4ea56c
Fix explorer diff compatibility after merge
Hebilicious 6ce703e
Address automated explorer review findings
Hebilicious 37961bb
Address Copilot review findings
Hebilicious a02cafe
Trim existing-file explorer changes
Hebilicious 8fd3ac7
Fix CI fallout after review cleanup
Hebilicious badc21c
Reduce explorer PR diff noise
Hebilicious ed69c18
Fix Rosetta GraphQL client variable type
Hebilicious 497e157
Finalize sequencer create application
Hebilicious 29b8a2e
Remove unnecessary GraphQL dependency churn
Hebilicious a9b7d2f
Restore Yojson 1 compatibility
Hebilicious 9ca5694
Use GraphQL 13 object field thunks
Hebilicious f1f22ab
Trim explorer PR noise
Hebilicious File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| name: Setup Zeko CI | ||
| description: Install the shared Zeko CI toolchain and restore dependency/build caches. | ||
| inputs: | ||
| opam-cache-key: | ||
| description: Cache key for the opam switch cache. | ||
| required: true | ||
| build-cache-key: | ||
| description: Cache key for the dune build cache. | ||
| required: true | ||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: 🐹 Setup go | ||
| uses: actions/setup-go@v6 | ||
| with: | ||
| go-version: "1.19.11" | ||
| - name: 🐹 Build and install capnpc-go | ||
| shell: bash | ||
| run: | | ||
| tmpdir=$(mktemp -d) | ||
| cd "$tmpdir" | ||
| go mod init local/build | ||
| go get capnproto.org/go/capnp/v3@v3.0.0-alpha.5 | ||
| go build -o capnpc-go capnproto.org/go/capnp/v3/capnpc-go | ||
| sudo cp capnpc-go /usr/local/bin/ | ||
| cd - | ||
| - uses: dtolnay/rust-toolchain@stable | ||
| - name: 📥 Install OPAM | ||
| shell: bash | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y opam ocaml \ | ||
| libboost-dev \ | ||
| libboost-program-options-dev \ | ||
| libbz2-dev \ | ||
| libcap-dev \ | ||
| libffi-dev \ | ||
| libgflags-dev \ | ||
| libgmp-dev \ | ||
| libgmp3-dev \ | ||
| libjemalloc-dev \ | ||
| liblmdb-dev \ | ||
| liblmdb0 \ | ||
| libpq-dev \ | ||
| libsodium-dev \ | ||
| libssl-dev \ | ||
| pkg-config zlib1g-dev \ | ||
| capnproto \ | ||
| netcat-traditional | ||
| for i in 1 2 3 4 5; do | ||
| rm -rf ./opam-repository | ||
| git clone https://github.com/ocaml/opam-repository.git --depth 1 ./opam-repository && break | ||
| echo "clone failed, retry $i" | ||
| getent hosts github.com || true | ||
| sleep 5 | ||
| done | ||
| git -C ./opam-repository fetch origin 08d8c16c16dc6b23a5278b06dff0ac6c7a217356 | ||
| git -C ./opam-repository checkout 08d8c16c16dc6b23a5278b06dff0ac6c7a217356 | ||
| opam init --disable-sandboxing -k git -a ./opam-repository --bare | ||
| for i in 1 2 3 4 5; do | ||
| opam repository add --yes --all --set-default o1-labs https://github.com/o1-labs/opam-repository.git && break | ||
| echo "opam repo add failed, retry $i" | ||
| sleep 5 | ||
| done | ||
| for i in 1 2 3 4 5; do | ||
| opam repository add --yes --all --set-default --rank=-1 opam-latest https://github.com/ocaml/opam-repository.git && break | ||
| echo "opam repo add failed, retry $i" | ||
| sleep 5 | ||
| done | ||
| opam switch create "4.14.0" | ||
| opam switch "4.14.0" | ||
| opam repository set-repos --yes --this-switch o1-labs default opam-latest | ||
| export OPAMERRLOGLEN=20 | ||
| export OPAMYES=1 | ||
| - name: 🧩 Get opam dependency cache | ||
| uses: WarpBuilds/cache@v1 | ||
| id: opam_dependencies | ||
| with: | ||
| path: ~/.opam | ||
| key: ${{ inputs.opam-cache-key }} | ||
| - name: 🏗️ Install opam dependencies | ||
| shell: bash | ||
| run: | | ||
| opam switch import opam.export --yes | ||
| eval "$(opam env)" | ||
| ./scripts/pin-external-packages.sh | ||
| opam clean --logs -cs --quiet | ||
| - name: 🧩 Get zeko build cache | ||
| uses: WarpBuilds/cache@v1 | ||
| id: zeko_build | ||
| with: | ||
| path: ./_build | ||
| key: ${{ inputs.build-cache-key }} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| # Runs the slow explorer end-to-end Gherkin scenarios independently from the | ||
| # faster explorer integration suite and the existing sequencer integration run. | ||
| --- | ||
| name: Explorer E2E | ||
|
|
||
| on: | ||
| push: | ||
|
|
||
| concurrency: | ||
| group: "${{ github.workflow }} @ ${{ github.head_ref || github.ref }}" | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| explorer-e2e: | ||
| name: "Explorer E2E" | ||
| runs-on: warp-ubuntu-latest-x64-16x | ||
| services: | ||
| nats: | ||
| image: nats:2-alpine | ||
| command: -js | ||
| ports: | ||
| - 4222:4222 | ||
| steps: | ||
| - name: 📥 Checkout | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| submodules: recursive | ||
| - name: 🧰 Setup Zeko CI | ||
| uses: ./.github/actions/setup-zeko-ci | ||
| timeout-minutes: 20 | ||
| with: | ||
| opam-cache-key: zeko_opam_dependencies-${{ hashFiles('./opam.export') }} | ||
| build-cache-key: zeko_build-${{ hashFiles('./opam.export') }} | ||
| - name: 🧪 Run explorer E2E Gherkin tests | ||
| run: | | ||
| for i in $(seq 1 30); do | ||
| nc -z 127.0.0.1 4222 && break | ||
| if [ "$i" -eq 30 ]; then | ||
| echo "Timed out waiting for NATS" >&2 | ||
| exit 1 | ||
| fi | ||
| sleep 1 | ||
| done | ||
| NATS_URL="nats://127.0.0.1:4222" \ | ||
| ./src/app/zeko/sequencer/tests/run-sequencer-test.sh real 1 explorer-e2e |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # Runs the explorer Gherkin acceptance tests independently from the sequencer | ||
| # integration suite so PR feedback is not blocked on the longer sequencer flow. | ||
| --- | ||
| name: Explorer Gherkin | ||
|
|
||
| on: | ||
| push: | ||
|
|
||
| concurrency: | ||
| group: "${{ github.workflow }} @ ${{ github.head_ref || github.ref }}" | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| explorer-gherkin: | ||
| name: "Explorer Gherkin" | ||
| runs-on: warp-ubuntu-latest-x64-16x | ||
| services: | ||
| nats: | ||
| image: nats:2-alpine | ||
| command: -js | ||
| ports: | ||
| - 4222:4222 | ||
| steps: | ||
| - name: 📥 Checkout | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| submodules: recursive | ||
| - name: 🧰 Setup Zeko CI | ||
| uses: ./.github/actions/setup-zeko-ci | ||
| timeout-minutes: 20 | ||
| with: | ||
| opam-cache-key: zeko_opam_dependencies-${{ hashFiles('./opam.export') }} | ||
| build-cache-key: zeko_build-${{ hashFiles('./opam.export') }} | ||
| - name: 🧪 Run explorer Gherkin tests | ||
| run: | | ||
| for i in $(seq 1 30); do | ||
| nc -z 127.0.0.1 4222 && break | ||
| if [ "$i" -eq 30 ]; then | ||
| echo "Timed out waiting for NATS" >&2 | ||
| exit 1 | ||
| fi | ||
| sleep 1 | ||
| done | ||
| NATS_URL="nats://127.0.0.1:4222" \ | ||
| opam exec -- env -u DUNE_RPC dune runtest --profile=devnet \ | ||
| src/app/zeko/sequencer/explorer/tests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| ocaml = "4.14.0" | ||
|
|
||
| [plugins.tools] | ||
| ocaml = "github://Hebilicious/proto-ocaml@v0.1.2" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.