Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Keep quoted string contents intact in CI condition expressions

已关闭 适合新手
#998 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@erenbati 已经在做这个了。

开始于 2026年10月25日。

  • #1050 来自 @erenbati —— 已合并

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
python

调研方向

从 tools/ci/common.py:39 开始,针对 a!b 运行提供的 evaluate() 复现用例。跟踪带引号的字面量和实际运算符的处理方式,然后为列出的运算符、函数和上下文拼写添加有针对性的正向和负向回归测试。完成的标准是:相同的带引号字符串比较结果相等,同时布尔运算符、上下文查找和短路求值仍能正常工作。

由索引模型根据 Issue 内容生成。

描述

bug ci good first issue

Problem

The plan evaluator rewrites operators and function spellings before parsing quoted strings. Equality against the identical values a!b, a&&b, a||b, and always() returns false. Context-looking text inside a string needs the same protection.

Starting point: tools/ci/common.py:39.

Validation

Audited canonical Wave 540728c2eb6cc12f5c69c3fb3fdb96e07ba059a4 (0.0.1-alpha-dev), whose tree matches the local checkout. Validation: Executed Python evaluate() reproductions. Executed compiler probes use the matching checkout-built compiler and std on Linux amd64 (Rust 1.89.0 / LLVM 21.1.8). Source/header or mocked checks are not native execution on another OS.

from tools.ci.common import evaluate
print(evaluate("inputs.value == 'a!b'", {"inputs.value": "a!b"}))
# False; the comparison should be True.

Scope

Make expression token handling respect quoted literals while preserving the existing small checked expression language; do not broaden it into unrestricted evaluation.

Completion criteria

  • Identical quoted strings containing operators/function/context spellings compare equal.
  • Actual boolean operators, context lookup and short-circuiting retain their behavior.
  • Add focused positive/negative evaluator regressions.

This is a bounded, unassigned task with the starting point and focused checks above. Keep unrelated refactoring out of the change.

主要语言
Rust
星标
56
派生
21
平均合并
7 小时 55 分钟
30 天内合并 PR
56

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

wavefnd/Wave 的其他 Issue

查看 wavefnd/Wave 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。