orion-error 0.6.0

Struct Error for Large Project
Documentation
# 更新日志 (CHANGELOG)

## [v0.6.0] - 2026-02-22

### 🚨 Breaking Changes
- **`DomainReason` 去掉 `Serialize` 约束**:从 `PartialEq + Display + Serialize` 调整为 `PartialEq + Display`- **`serde` 改为可选特性**:默认不启用;需要序列化时请启用 `serde` feature。
- **移除 `UvsXxxFrom` 旧 trait 族**:统一使用 `UvsFrom`- **`UvsReason` 结构简化**:除 `ConfigError(ConfErrReason)` 外,其余分类不再携带消息字符串。
  - 例如:`UvsReason::system_error(\"msg\")` -> `UvsReason::system_error()`- **`ErrorOwe` 拆分**`.owe(reason)` 归属 `ErrorOweBase``.owe_sys()` 等快捷方法归属 `ErrorOwe`
### ✨ 新增与优化
- **统一转换接口 `UvsFrom`**:所有 `from_*` 构造收敛到单一 trait。
- **`owe_xxx` 消息去重**:错误消息仅落在 `detail`,不再在 `reason` 中重复存储。
- **新增 `op_context!`**:在调用处展开 `module_path!()`,避免日志模块路径固定在库内部。
- **tracing 实际生效**`OperationContext` 的 Drop 与日志方法支持 tracing;tracing target 统一为 `domain`- **移除 `derive-getters` 依赖**:改为手写 getter,减少依赖体积。
- **`derive_more` 精简**:仅保留 `from` 功能。

### 🧪 验证
- 通过:
  - `cargo test --no-default-features`
  - `cargo test --features tracing --no-default-features`
  - `cargo test --features serde --no-default-features`
  - `cargo test --all-features`

### 迁移提示
- `.owe(...)` 记得引入 `ErrorOweBase`-`UvsReason::*_error(\"...\")` / `UvsReason::core_conf(\"...\")` 改为无参版本。
- 需要序列化时启用:`orion-error = { version = \"0.6\", features = [\"serde\"] }`
## 版本 0.5.5 (2024-9-20)

### ✨ 新增与优化
- **结构化错误构建器**`StructError::builder` 支持链式设置 detail、position、context,并与 `context_ref` 共享上下文栈,避免重复分配。
- **上下文作用域 Guard**:新增 `OperationContext::scope()` / `scoped_success()``OperationScope`,在成功路径自动标记 `mark_suc()`,降低遗漏风险。
- **错误转换性能**`ErrorOwe::owe_*` 系列仅序列化一次底层错误消息,减少 `to_string()` 开销;上下文内部改用 `Arc<Vec<_>>` 共用堆栈。
- **示例更新**`examples/order_case.rs``logging_example.rs` 演示 builder 与作用域 guard 的推荐写法。

### 📚 文档更新
- `docs/tutorial.md` 增补 builder/OperationScope 的实践示例。
- `docs/error-handling/05-logging-standards.md``06-best-practices.md` 补充 guard 与构建器的使用建议。
- `docs/README.md` 在亮点更新中突出上述能力。

### 🧪 兼容性
- 接口向后兼容;若手动调用 `mark_suc()`,仍可与作用域 guard 共存。

## [v0.5.0] - 2025-08-25

### 新增功能
- **日志支持**: 为错误上下文添加了完整的日志记录功能,包括 `info``debug``warn``error``trace` 方法
- **自动日志记录**: 新增 `with_exit_log``mark_suc` 方法,支持在对象销毁时自动记录日志
- **PathContext包装器**: 添加了 `PathContext<V: AsRef<Path>` 包装类型,用于区分路径和字符串类型

### 重大变更
- **结构体重命名**: 将内部结构体从 `WithContext` 重命名为 `OperationContext`,提高代码清晰度
- **ContextTake trait重构**: 解决了 trait 实现冲突问题,移除了 `&PathBuf` 的特定实现,改为使用 `PathContext` 包装器

### 依赖更新
- 升级 `thiserror` 从 2.0.12 到 2.0.16
- 升级 `serde_json` 从 1.0.140 到 1.0.143
- 添加 `log``env_logger` 依赖以支持日志功能

### 文档和示例
- 新增 `LOGGING.md` 文档,详细说明日志功能的使用方法
- 添加 `examples/logging_example.rs` 示例文件
- 更新现有示例以适配新的 API
- 完善了错误处理的最佳实践文档

### 测试改进
- 新增了完整的 `ContextRecord` trait 测试用例,覆盖字符串类型、数字类型、路径类型等各种场景
- 改进了测试覆盖率,确保所有新功能的稳定性

### CI/CD 优化
- 升级 GitHub Actions 从 `actions/checkout@v4``v5`
- 升级 `rustsec/audit-check` 从 1.4.1 到 2.0.0
- 改进了 CI 流程中的覆盖率处理

### 错误修复
- 修复了 ContextTake trait 的实现冲突问题 (E0119)
- 修复了路径类型处理的编译错误
- 改进了错误消息的格式化和显示

## [v0.4.0] - 2025-08-24

### 初始发布
- 基础错误处理框架
- 支持结构化错误类型
- 提供错误上下文管理
- 基本的序列化和反序列化支持