Skip to content

Conversation

@tomusdrw
Copy link
Member

  • add picofuzz-conformance as sub-module
  • Rename picofuzz-data to picofuzz-stf-data
  • run conformance tests

Copilot AI review requested due to automatic review settings January 31, 2026 11:00
@coderabbitai
Copy link

coderabbitai bot commented Jan 31, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
📝 Walkthrough

Walkthrough

The PR reorganizes project submodules by consolidating jam-conformance into a new picofuzz-conformance-data submodule and renaming picofuzz-data to picofuzz-stf-data. Updates workflow configurations, test files, Dockerfiles, and documentation to reference the new submodule structure and adds conformance testing to the test matrix.

Changes

Cohort / File(s) Summary
Submodule Management
.gitmodules, jam-conformance, picofuzz-conformance-data
Deleted jam-conformance submodule, replaced picofuzz-data with picofuzz-stf-data, and added new picofuzz-conformance-data submodule containing jam-conformance.
Workflow & CI Configuration
.github/workflows/picofuzz.yml, .github/workflows/update-submodules.yml
Added "conformance" to picofuzz test matrix; updated submodule commit references and conditional logic for detecting changes in update-submodules workflow.
Code & Linting Configuration
biome.jsonc, minifuzz/minifuzz.Dockerfile
Updated file exclusion patterns in Biome config; updated Dockerfile COPY instruction to reference minifuzz.py from new picofuzz-conformance-data path.
Documentation
README.md, picofuzz/README.md
Updated submodule references and paths in documentation; changed example commands to use picofuzz-stf-data instead of picofuzz-data.
Build Scripts
picofuzz/package.json
Updated prepare-data script path from picofuzz-data to picofuzz-stf-data.
Test Infrastructure
tests/common.ts, tests/docker-conformance.test.ts, tests/docker-test-vectors.test.ts
Updated Docker volume mount paths to reference new submodule locations (picofuzz-conformance-data and picofuzz-stf-data).
Picofuzz Tests
tests/picofuzz/conformance.test.ts, tests/picofuzz/fallback.test.ts, tests/picofuzz/safrole.test.ts, tests/picofuzz/storage.test.ts, tests/picofuzz/storage_light.test.ts
Added new conformance test file; updated EXAMPLES_DIR paths in existing tests to reference picofuzz-stf-data and picofuzz-conformance-data submodules.
Minifuzz Tests
tests/minifuzz/burn.test.ts, tests/minifuzz/forks.test.ts, tests/minifuzz/no_forks.test.ts
Updated EXAMPLES_DIR paths to reference picofuzz-conformance-data/jam-conformance instead of jam-conformance.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Run picofuzz conformance tests' accurately captures the main objective of the PR, which adds conformance testing to the picofuzz workflow. It directly relates to the primary change in the changeset.
Description check ✅ Passed The description is directly related to the changeset, listing the three main objectives: adding picofuzz-conformance as a sub-module, renaming picofuzz-data to picofuzz-stf-data, and running conformance tests, all of which are reflected in the file changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch td-piconew

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reorganizes the submodule structure to separate conformance data from STF (State Transition Function) data, and adds picofuzz conformance tests. The jam-conformance submodule has been replaced with picofuzz-conformance-data, and picofuzz-data has been renamed to picofuzz-stf-data for clarity.

Changes:

  • Added new picofuzz-conformance-data submodule and removed jam-conformance submodule
  • Renamed picofuzz-data to picofuzz-stf-data throughout the codebase
  • Added conformance test execution to the picofuzz test suite

Reviewed changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.gitmodules Updated submodule definitions to replace jam-conformance with picofuzz-conformance-data and rename picofuzz-data to picofuzz-stf-data
picofuzz-conformance-data Added new submodule for conformance test data
jam-conformance Removed old conformance submodule
tests/picofuzz/conformance.test.ts Added new conformance test file pointing to the new submodule
tests/picofuzz/*.test.ts Updated directory paths to use picofuzz-stf-data instead of picofuzz-data
tests/minifuzz/*.test.ts Updated directory paths to use picofuzz-conformance-data/jam-conformance instead of jam-conformance
tests/docker-*.test.ts Updated Docker mount paths to reflect new submodule names
tests/common.ts Updated Docker volume mount paths for both picofuzz and minifuzz
minifuzz/minifuzz.Dockerfile Updated COPY path to use new conformance data location
picofuzz/package.json Updated prepare-data script path to use picofuzz-stf-data
picofuzz/README.md Updated example command paths to use picofuzz-stf-data
README.md Updated submodule documentation and example commands
biome.jsonc Updated excluded paths to reflect new submodule names
.github/workflows/update-submodules.yml Updated workflow to reference new submodule paths and names
.github/workflows/picofuzz.yml Added conformance to test matrix

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Fix all issues with AI agents
In `@picofuzz-conformance-data`:
- Line 1: Multiple tests and Dockerfile still reference the old subdirectory
path "picofuzz-conformance-data/jam-conformance"; update each occurrence in the
listed files (tests/minifuzz/burn.test.ts, tests/minifuzz/no_forks.test.ts,
tests/minifuzz/forks.test.ts, tests/docker-conformance.test.ts, tests/common.ts,
minifuzz/minifuzz.Dockerfile) to the actual subpaths now present in the
picofuzz-conformance-data submodule (inspect the submodule root to determine the
new directory names and replace "picofuzz-conformance-data/jam-conformance/..."
with the correct relative paths), ensure imports/require/file reads point to the
updated locations and run tests/Docker build to verify no remaining references.
- Line 1: Update the broken submodule path string in
tests/picofuzz/conformance.test.ts: replace the reference
"picofuzz-conformance-data/picofuzz-data" with
"picofuzz-conformance-data/jam-conformance" so the test imports the correct
submodule layout (matches docker-conformance.test.ts and .gitmodules); search
for that exact string literal in conformance.test.ts and update it accordingly.

In `@README.md`:
- Around line 124-126: Update the examples that show commands using paths like
picofuzz-stf-data/picofuzz-data/... to explicitly instruct users to initialize
the submodule and generate the data first: add a short note before or alongside
the three example commands stating to run git submodule update --init
--recursive from the repo root and then run the populate.sh script inside the
picofuzz-stf-data directory to create the fallback, safrole, and storage
subdirectories; reference the example command strings (e.g., "npm start -w
`@fluffylabs/picofuzz` picofuzz-stf-data/picofuzz-data/fallback
/tmp/jam_target.sock") so readers know these directories are produced by
populate.sh.

In `@tests/minifuzz/burn.test.ts`:
- Line 8: Update the EXAMPLES_DIR constant to remove the leading
"picofuzz-conformance-data/" prefix so the path matches the container mount
point; specifically change the value of EXAMPLES_DIR in
tests/minifuzz/burn.test.ts (the EXAMPLES_DIR symbol) to start with
"jam-conformance/..." instead of
"picofuzz-conformance-data/jam-conformance/...". Make the same adjustment for
the EXAMPLES_DIR constant in tests/minifuzz/forks.test.ts and
tests/minifuzz/no_forks.test.ts so minifuzz() builds paths like
/app/jam-conformance/... that exist inside the container.
🧹 Nitpick comments (1)
.gitmodules (1)

1-6: Consider using consistent URL protocols for submodules.

The submodules use different URL protocols:

  • picofuzz-stf-data: SSH (git@github.com:...)
  • picofuzz-conformance-data: HTTPS (https://github.com/...)

This inconsistency may cause authentication issues in different environments (CI pipelines may be configured for one protocol but not the other, or developers may have SSH keys but not HTTPS tokens, or vice versa).

♻️ Suggested fix: Use consistent HTTPS URLs
 [submodule "picofuzz-stf-data"]
 	path = picofuzz-stf-data
-	url = git@github.com:FluffyLabs/picofuzz-data.git
+	url = https://github.com/FluffyLabs/picofuzz-data.git
 [submodule "picofuzz-conformance-data"]
 	path = picofuzz-conformance-data
 	url = https://github.com/FluffyLabs/picofuzz-conformance-data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants