Skip to content

fix: resolve CI failures for spell check and doc tests#1063

Merged
Mossaka merged 12 commits intocontainerd:mainfrom
Mossaka:fix-ci-failures
Feb 24, 2026
Merged

fix: resolve CI failures for spell check and doc tests#1063
Mossaka merged 12 commits intocontainerd:mainfrom
Mossaka:fix-ci-failures

Conversation

@Mossaka
Copy link
Copy Markdown
Member

@Mossaka Mossaka commented Jan 13, 2026

Summary

This PR fixes the CI failures that have been affecting recent pull requests:

  • Fixed typo "Eeach" -> "Each" in crates/containerd-shim-wasmtime/README.md
  • Fixed typo "Bencharking" -> "Benchmarking" in docs/src/benchmarks.md
  • Fixed lifetime elision warning in RuntimeContext trait by explicitly specifying the lifetime parameter in entrypoint() method signature

Test plan

  • Verified spell check passes with typos
  • Verified doc tests pass with make test-doc
  • Verified wasmtime builds with make check-wasmtime

These changes resolve the spell check and rustdoc build failures observed in recent PRs such as #1062, #1060, and others.

🤖 Generated with Claude Code

Mossaka and others added 12 commits February 24, 2026 20:38
This commit fixes the following CI failures:

1. Typo "Eeach" -> "Each" in crates/containerd-shim-wasmtime/README.md
2. Typo "Bencharking" -> "Benchmarking" in docs/src/benchmarks.md
3. Lifetime elision warning in RuntimeContext trait by explicitly
   specifying the lifetime parameter in entrypoint() method signature

These changes resolve the spell check and rustdoc build failures
observed in recent PRs.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Installing cross from git causes cargo to resolve dependencies to their
latest compatible versions. Some of these (like home v0.5.12+) require
rustc 1.88+, which is incompatible with the project's rustc 1.85.0.

Cross v0.2.5 from crates.io uses locked dependencies that support the
published MSRV of rustc 1.58.1+, making it compatible with rustc 1.85.0.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
mdbook 0.5.x requires rustc 1.88+, but the project uses rustc 1.85.0.
Pin mdbook to 0.4.52 (MSRV 1.82) and mdbook-mermaid to 0.16.0,
which are compatible with rustc 1.85.0.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
cargo install resolves dependencies to their latest compatible versions,
which can require newer Rust versions than the project's MSRV. For example,
the home crate v0.5.12+ requires rustc 1.88+, but the project uses 1.85.0.

Using cargo-binstall downloads pre-built binaries for cross, avoiding
dependency compilation entirely. This ensures compatibility with rustc 1.85.0.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The Cross.toml was using the old string format for dockerfile paths:
  [target.TARGET]
  dockerfile = "path"

This prevented cross from passing required build args like CROSS_BASE_IMAGE,
CROSS_CMAKE_SYSTEM_PROCESSOR, and CROSS_SYSROOT to the Dockerfile.

Updated to the proper table format:
  [target.TARGET.dockerfile]
  file = "path"

This allows cross to automatically provide CROSS_BASE_IMAGE and other
environment variables that the Dockerfile expects.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…s build args

The Dockerfile.musl expects CROSS_CMAKE_SYSTEM_PROCESSOR and CROSS_SYSROOT
to be set, but cross 0.2.5 doesn't automatically provide these variables
when using custom Dockerfiles.

Updated Cross.toml to explicitly pass these as build-args for musl targets:
- aarch64: CROSS_CMAKE_SYSTEM_PROCESSOR=aarch64, CROSS_SYSROOT=/usr/local/aarch64-linux-musl
- x86_64: CROSS_CMAKE_SYSTEM_PROCESSOR=x86_64, CROSS_SYSROOT=/usr/local/x86_64-linux-musl

Updated Dockerfile.musl to declare these as ARG so they can be passed in.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Ring 0.17.13 introduced AVX2-based VAES-CLMUL assembly for AES-GCM
performance improvements, but this broke builds on systems with older
GNU binutils that don't support VAES/VPCLMULQDQ instructions.

Ring 0.17.14 restores compatibility with older assembler versions,
fixing the "operand type mismatch for `vaesenc`" errors seen in CI
for wasmedge/aarch64-linux-gnu and oci-tar-builder/x86_64-linux-gnu.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The cross-rs base images contain an old protoc that only supports
proto2 syntax. The containerd-client crate requires proto3 support
for its gRPC bindings generation.

Replace the apt protobuf-compiler with protoc 25.1 downloaded from
the official protobuf releases, ensuring proto3 compatibility in
both GNU and musl cross-compilation Docker images.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Rust cache action may clean up ~/.cargo/bin/ binaries while
keeping cargo-binstall metadata. This causes cargo-binstall to
report "cross is already installed" while the actual binary is
missing, resulting in "cross: command not found" during builds.

Add --force flag to ensure the cross binary is always present.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The cross-rs 0.2.5 base images use Ubuntu 16.04 (Xenial) which ships
libclang 3.8. The wamr crate uses bindgen/clang-sys which requires
libclang >= 6.0 for the clang_getTranslationUnitTargetInfo function.

Install libclang-9 from the LLVM apt repository in both GNU and musl
cross-compilation Docker images.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The cross-rs 0.2.5 release Docker images are based on Ubuntu 16.04
(Xenial) which has outdated toolchains:
- protobuf-compiler 2.6.1 (proto2 only, no proto3 support)
- libclang 3.8 (too old for bindgen/clang-sys)
- missing stdbool.h headers

Override the base images in Cross.toml to use the :main tagged images
which are based on Ubuntu 20.04+ with modern toolchains. This keeps
the cross 0.2.5 binary (compatible with rustc 1.85.0) while using
newer Docker images that have all required dependencies.

Also simplified the Dockerfiles to use apt protobuf-compiler and
libclang-dev since the :main images have modern versions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Cross 0.2.5 always overrides CROSS_BASE_IMAGE with its own :0.2.5
tagged image. Use a custom BASE_IMAGE build arg instead, which cross
doesn't override, to use the :main tagged images (Ubuntu 20.04+).

This provides modern toolchains (protoc 3.x, libclang 10+) while
keeping the cross 0.2.5 binary compatible with rustc 1.85.0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Mossaka Mossaka enabled auto-merge (squash) February 24, 2026 21:42
@Mossaka Mossaka merged commit aa6a5fa into containerd:main Feb 24, 2026
67 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant