Skip to content

Comments

硬编码路径优化完成#117

Merged
WhiteElephant-abc merged 1 commit intomainfrom
opencode/issue115-20260124170600
Jan 24, 2026
Merged

硬编码路径优化完成#117
WhiteElephant-abc merged 1 commit intomainfrom
opencode/issue115-20260124170600

Conversation

@opencode-agent
Copy link
Contributor

已成功完成对硬编码路径的参数化优化。

修改内容

文件: rule/datapack.bzl

变更: 将第383行的硬编码路径 data/minecraft/tags/functions 参数化

  • 添加了两个局部常量 _MINECRAFT_TAGS_FUNCTIONS_PREFIX_MINECRAFT_TAGS_FUNCTION_STRIP_PREFIX
  • 更新了 pkg_files 调用,使用变量替代硬编码字符串
  • 保持了与原有 strip_prefix 路径的一致性

具体变更:

# 定义 Minecraft 标签路径常量
_MINECRAFT_TAGS_FUNCTIONS_PREFIX = "data/minecraft/tags/functions"
_MINECRAFT_TAGS_FUNCTION_STRIP_PREFIX = "data/minecraft/tags/function"

pkg_files(
    name = name + "_function_tag_legacy",
    visibility = visibility,
    srcs = [":%s_function_tag_legacy_compress" % name],
    prefix = _MINECRAFT_TAGS_FUNCTIONS_PREFIX,
    strip_prefix = _MINECRAFT_TAGS_FUNCTION_STRIP_PREFIX,
)

验证结果

  • ✅ 语法检查通过:bazel query 验证目标存在
  • ✅ 构建测试通过:bazel build //subprojects/stone-disappearance:stone-disappearance 成功构建
  • ✅ 无破坏性变更:现有构建流程保持不变

优化效果

  1. 提高可维护性:路径集中管理,未来修改只需更新常量
  2. 提升代码清晰度:使用有意义的变量名替代魔术字符串
  3. 保持向后兼容:不改变现有构建行为,所有数据包构建不受影响

本次优化完成了 Issue 中提出的低优先级改进要求,使构建系统代码更加健壮和可维护。

Closes #115

New%20session%20-%202026-01-24T17%3A05%3A59.768Z
opencode session  |  github run

@WhiteElephant-abc
Copy link
Member

/oc 审查此pr并提供完整报告

@opencode-agent
Copy link
Contributor Author

PR 审查总结

已对 PR《硬编码路径优化完成》进行全面审查,包括代码变更分析、构建验证和潜在改进建议。

审查内容

变更文件: rule/datapack.bzl (第379-389行)

优化内容:

  • 将硬编码路径 data/minecraft/tags/functions 参数化为局部常量 _MINECRAFT_TAGS_FUNCTIONS_PREFIX
  • 将硬编码路径 data/minecraft/tags/function 参数化为局部常量 _MINECRAFT_TAGS_FUNCTION_STRIP_PREFIX
  • 更新 pkg_files 调用使用变量替代魔术字符串

验证结果

  1. 语法检查通过bazel query //subprojects/stone-disappearance:stone-disappearance 确认目标存在
  2. 构建测试通过bazel build //subprojects/stone-disappearance:stone-disappearance 成功构建数据包
  3. 路径逻辑正确strip_prefix 与源目录 data/minecraft/tags/function 一致,目标前缀 data/minecraft/tags/functions 符合 Minecraft 标签规范
  4. 无破坏性变更:现有构建流程保持不变,所有数据包构建不受影响

优化效果评估

提高可维护性:路径集中管理,未来修改只需更新常量
提升代码清晰度:使用有意义的变量名替代魔术字符串
保持向后兼容:不改变现有构建行为
符合编码规范:常量命名遵循项目下划线前缀约定

潜在改进建议

虽然当前 PR 已完成核心优化,但项目中仍存在其他类似硬编码路径可考虑参数化:

  1. complete_datapack_config 宏中的模式字符串(第592-594行):

    • "data/%s/**/*.json" % pack_id
    • "data/minecraft/**/*.json"
    • "data/minecraft/tags/function/*.json"
  2. datapack_functions 函数中的模式字符串(第306-307行):

    • "data/%s/function/**/*.mcfunction" % pack_id
    • "data/%s/functions/**/*.mcfunction" % pack_id

这些路径属于 Minecraft 数据包标准结构,当前硬编码可以接受。如需进一步优化,可考虑提取为模块级常量,但非必需。

结论

本次优化完成了 Issue #115 的要求,使构建系统代码更加健壮和可维护。PR 质量良好,构建验证通过,可以合并。

推荐操作: 批准并合并此 PR


*审查环境:GitHub Actions 沙箱环境(非交互式)
*构建工具:Bazel 8.4.1
测试数据包:stone-disappearance (subprojects/stone-disappearance)

New%20session%20-%202026-01-24T17%3A52%3A18.474Z
opencode session  |  github run

@WhiteElephant-abc WhiteElephant-abc merged commit 0f5322d into main Jan 24, 2026
8 checks passed
@WhiteElephant-abc WhiteElephant-abc deleted the opencode/issue115-20260124170600 branch January 24, 2026 17:58
@github-actions github-actions bot mentioned this pull request Jan 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bazel:硬编码路径优化

1 participant