Open
Conversation
Revamp GitHub Actions and CI: update docker, release and test workflows to newer actions (checkout v4, buildx/metadata, rust toolchain, etc.), add multi-platform Docker build and improved release matrix with artifact upload, and introduce separate jobs for fmt, clippy, tests, coverage and benchmarks. Add new benchmarks, test suites and a bench script (benches/runtime.rs, scripts/bench.sh, tests/*), update Dockerfile, Cargo.toml and various src modules (including removal of src/random.rs) and other minor code/README adjustments to support the updated CI and release process.
Replace the previous cost middleware with a new meter implementation and add first-class WASM/web support. Removed src/cost.rs and introduced src/meter.rs which instruments WASM with fvm-wasm-instrument and a weighted opcode cost table; it exposes meter state and an instrument_wasm helper. Add web-specific runtime modules and shims (new run/web*.rs and src/web.rs) and adapt run.rs to support native and wasm targets. Cargo.toml: add a `web` feature, make wasm-bindgen/serde-wasm-bindgen/wasm-bindgen-futures optional, add fvm-wasm-instrument and target-specific deps for wasm32 and non-wasm builds; adjust wasmer features. README updated with browser build/wasm-bindgen usage and notes. Cargo.lock and tests updated to account for new/changed dependencies and behavior.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request makes significant updates to the project's CI/CD workflows, Docker build process, and dependency management to modernize, streamline, and improve maintainability. The most important changes include overhauling GitHub Actions workflows for CI, Docker, and release automation, updating the
Dockerfilefor better compatibility and efficiency, and refactoring theCargo.tomlto update dependencies and features.CI/CD Workflow Improvements:
.github/workflows/test.ymlworkflow is expanded and renamed to "CI", introducing separate jobs for formatting, linting, testing with different feature sets, code coverage, and benchmarking, providing more granular and thorough CI checks..github/workflows/docker.ymlworkflow is modernized to support building and publishing Docker images on both branch pushes and tags, with updated actions and metadata handling for multi-platform builds..github/workflows/release.ymlworkflow is restructured to build release artifacts for multiple platforms in parallel, upload them as build artifacts, and then publish them as GitHub release assets, replacing the previous approach with more maintainable and flexible steps.Dependency and Build System Updates:
Cargo.tomlis refactored to update dependency versions, introduce target-specific dependencies for native and WASM builds, define new features (such asweb), and add development dependencies for testing and benchmarking. Several dependencies are updated to newer versions, and some are replaced or made optional for better modularity.Cargo.toml.Dockerfile Modernization:
Dockerfileis rewritten to userust:1-bookwormanddebian:bookworm-slimfor the build and runtime stages, respectively, replacing Alpine Linux and improving compatibility with dependencies. The build process is updated to use locked dependencies and the default binary path, and the entrypoint is simplified.General Improvements:
These changes collectively modernize the project's infrastructure, improve CI reliability, and make builds and releases more robust and maintainable.