跳到主要内容
版本:dev

构建与测试

贡献者文档涵盖仓库设置、构建、测试、调试和面向发布的工作流程。 这部分文档与已发布构件的用户指南相互独立。

https://github.com/apache/fory 克隆源代码树。

Java

cd java
mvn -T16 package

环境要求:

  • JDK 17+
  • Maven 3.6.3+

Python

cd python
pip install -v -e .

# Optional: build Cython extension (replace X.Y with your Python version)
bazel build //:cp_fory_so --@rules_python//python/config_settings:python_version=X.Y

环境要求:

  • CPython 3.8+
  • Bazel 8+(构建 Cython 扩展时必需)

C++

cd cpp
bazel build //cpp/...

环境要求:

  • C++17 编译器
  • Bazel 8+

Go

cd go/fory
go test -v ./...

从 Java 测试模块运行 Go xlang 测试:

cd java
mvn -T16 install -DskipTests
cd fory-core
FORY_GO_JAVA_CI=1 ENABLE_FORY_DEBUG_OUTPUT=1 mvn test -Dtest=org.apache.fory.xlang.GoXlangTest

环境要求:Go 1.24+。

Rust

cd rust
cargo build
cargo test --features tests

# Debug a specific test
RUST_BACKTRACE=1 FORY_PANIC_ON_ERROR=1 ENABLE_FORY_DEBUG_OUTPUT=1 \
cargo test --test mod $dir$::$test_file::$test_method -- --nocapture

环境要求:

  • 通过 rustup 安装的 Rust 工具链
  • cargo-expand(可选,用于调试宏展开)

JavaScript

cd javascript
npm install

npm run build
node ./node_modules/.bin/jest --ci --reporters=default --reporters=jest-junit

环境要求:

  • Node.js (LTS)
  • npm

Markdown

cd docs
npx prettier --write "**/*.md"

环境要求:

  • Node.js (LTS)
  • npm

调试

仓库中的 VS Code、Bazel、LLDB 和 GDB 配置请参阅调试 C++

不属于共享仓库构建的运行时特定贡献者说明,仍保留在各运行时的源代码树和贡献者 README 中。

参与贡献

有关贡献的详细信息,请参阅 如何为 Apache Fory™ 做贡献。 对于 AI 辅助的贡献,请遵循 AI 贡献政策,包括大量使用 AI 辅助时 所需的自我审查、双审查者 AI 审查流程、披露和验证证据。