1 个不稳定版本
0.1.0-alpha.1 | 2021 年 4 月 22 日 |
---|
#1510 in 开发工具
380KB
8K SLoC
作为所有其他 Temporal SDK 基础的核心 SDK。
入门
查看 架构 文档以获取一些高级信息。
此仓库使用子模块来存储上游 protobuf 文件。路径 protos/api_upstream
是一个子模块 -- 当第一次检出仓库时,请确保您已运行 git submodule update --init --recursive
。 TODO: Makefile。
依赖项
- Protobuf 编译器
开发
以下所有命令在每个拉取请求中都强制执行。
构建和测试
您可以使用 cargo 构建 和 测试 项目:cargo build
cargo test
格式化
要格式化所有代码,请运行:cargo fmt --all
代码检查
我们使用 clippy 进行代码检查。您可以使用以下命令运行它:cargo clippy --all -- -D warnings
调试
该包使用 tracing 来帮助调试。为了在测试中启用它,请将以下片段插入测试的开始处。默认情况下,跟踪数据以(相当)美观的方式输出到 stdout,如果存在 Jaeger 实例,则输出到 Jaeger 实例。
core_tracing::tracing_init();
let s = info_span!("Test start");
let _enter = s.enter();
运行Jaeger实例:docker run --rm -p6831:6831/udp -p6832:6832/udp -p16686:16686 jaegertracing/all-in-one:latest
Jaeger收集默认关闭,您必须在环境中设置 TEMPORAL_ENABLE_OPENTELEMENTRY=true
以启用它。
要在控制台显示日志,请设置环境变量 RUST_LOG
为 temporal_sdk_core=DEBUG
或您需要的任何级别。环境变量根据跟踪的 EnvFilter 规则进行解析。
如果您正在开发语言SDK,则期望您在 main
等价的代码中尽早初始化跟踪。
样式指南
错误处理
从公共接口返回的任何错误都应该是良好类型化的,我们为此使用 thiserror。
仅用于测试的项返回的错误可以自由使用 anyhow 以减少冗余。
依赖项
~12–21MB
~283K SLoC