Skip to content

docs: import guidelines for future re-imports + PR #44 leftovers #45

Description

@0yi0

Part of the C++ plugin migration (upstream: WasmEdge/WasmEdge#3840). Follow-up to the source import (#23, landed via PR #44).

Write an import guidelines doc (e.g. docs/IMPORTING.md) so future refreshes/re-imports from WasmEdge core are mechanical, and close out the leftovers from PR #44.

Status (2026-06-24): the lint leftover is handled by #49 (adopts upstream WasmEdge's clang-format method); landing #49 is the lint gate for the upcoming #22 sub-issue PRs. The only remaining scope of this issue is the guidelines doc below — it does not block the migration.

Guidelines doc

  • Document the import recipe: fresh upstream clone → git filter-repo over the path list (record the exact list used in PR feat: import plugin sources, tests, and CI utils from WasmEdge core #44: plugins, test/plugins, thirdparty/wasi_crypto, utils/docker, utils/ffmpeg, utils/opencvmini, utils/wasi-crypto, utils/wasi-nn, utils/wasi-test, utils/build_libpiper.sh) → git rebase --onto main --root --empty=drop --committer-date-is-author-date → push branch + open PR
  • Document verification steps: HEAD tree = main's files + imported paths only; git rev-list --count and 0 merge commits (linear); git blame spot checks for author continuity
  • Document known check behavior on import PRs: DCO flags upstream squash-merge artifacts (author rewritten to GitHub noreply while the sign-off keeps the real email) — resolve via the "Set DCO to pass" button on the PR Checks tab (the check's "Details" link goes to the probot app page, which has no button). clang-format no longer flags generated/fixture/test paths now that ci: adopt WasmEdge clang-format lint method (#45) #49 scopes the lint to plugins/ (excludes thirdparty/, skips test/) — so import PRs only need the DCO step documented.
  • Do not document merge mechanics that involve lifting main's protection (maintainer decision, 2026-06-12) — that is acceptable only while this repo is WIP and lives in the section below, not in the doc. The doc may point at this issue for the migration-window procedure.

Migration-window sync procedure (kept here on purpose, not in the doc)

For syncing from WasmEdge core before this repo is ready. Expires when the migration completes (#28): after that, main's protection is never removed again.

  1. Re-run the import recipe above against current upstream master → push branch, open PR for review
  2. Merge by fast-forward to preserve the reviewed SHAs: admin temporarily lifts ruleset 2835007 → git push origin <branch>:main → re-add the ruleset. GitHub auto-marks the PR merged and closes linked issues
  3. Alternative that leaves protection untouched: the "Rebase and merge" button (allowed by the ruleset) — but it rewrites all SHAs and committer info, breaking review references

Sync-run log:

Leftovers from PR #44

  • Lint config follow-up — resolved in ci: adopt WasmEdge clang-format lint method (#45) #49 by adopting upstream WasmEdge's clang-format method (pinned clang-format-22 + .github/scripts/clang-format.sh; scope plugins/, thirdparty/ excluded, test/ not format-checked) and dropping VALIDATE_CLANG_FORMAT from super-linter. This supersedes the originally-planned FILTER_REGEX_EXCLUDE approach; ci: exclude imported thirdparty and wasm_bpf fixtures from super-linter #46 (that PR) was closed as superseded.
  • (optional, for the record) retroactively click "Set DCO to pass" on the merged PR's check run — done 2026-06-12, DCO check on 18ce2cd is green

Already tracked elsewhere, listed for completeness: keep test/plugins/wasi_logging disabled until its target exists → #24; reformat test/plugins/wasi_crypto/asymmetric.cpp under the pinned clang-format → #24no longer needed for lint: #49 follows upstream policy and does not format-check test/; fix [[ ! -v "${VAR}" ]] checks in utils/wasi-nn scripts → #31.


🤖 Generated by Claude Fable 5 with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions