Define merge semantics for `results.errors`
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- tooling
調査の方向性
Start with the spec text that #88 adds for results.errors, then read src/merge.ts in ctrf-cli and in ctrf-js to see how the first shard's fields are kept. The issue first asks for a spec rule (concatenate every input's errors, in input order, with no de-duplication), which needs maintainer agreement before any code. Done means the spec wording is agreed and both merge functions keep every shard's errors, with tests for multi-shard input.
索引モデルが issue の本文から書いたものです。
説明
Follow-up to #65, from this comment. Builds on #88, which adds results.errors: [{message, trace, extra}].
Problem
Sharded runs are routinely merged into one CTRF document. Merging is where run-level errors get lost. #88 says nothing about merging. Current CTRF tooling would silently drop errors from every shard but the first:
ctrf mergein ctrf-cli keepsextraandenvironmentfrom the first shard only.- ctrf-js
merge()keeps the first value for each key and rebuilds the result without anyresults.errorshandling.
So aAshard that failed in global teardown would produce a merged report with no error and, if all its tests passed, a green verdict.
Precedent
Tools that merge run-level errors concatenate them:
- Playwright's
merge-reportsreplays every shard'sonErrorwith no de-duplication. It merges run status worst-first: failed, then timedout, then interrupted, then passed. - Allure 3 appends errors without de-duplication.
De-duplication is also risky: the same message from two shards (for example, "Database cleanup failed") might mean two separate failures.
Proposal
Add to the spec:
When merging CTRF documents (for example, shards of one run),
results.errorsSHOULD be the concatenation of every input document'sresults.errors, in input order, without de-duplication. A merging tool MAY record the source document or shard in each entry'sextra.
Then update ctrf merge and ctrf-js merge() to follow it.
Related
If an optional run outcome is added (separate issue), its merge rule should follow Playwright's worst-first ordering.
- 主要言語
- 言語のデータがありません
- スター
- 103
- フォーク
- 4
- 平均マージ
- 1時間 3分
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ctrf-io/ctrf のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 18/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
メンテナーはふだん 1 日以内に返信
-
Proposal: Add optional `threadId` to `retryAttempts` entries対応中かも @alexshamrai が 12 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
eliasstravik/herdr-projects#787 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
code-yeongyu/oh-my-openagent#12784 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
`jiti/register`: `import.meta.resolve()` throws `ReferenceError: jitiESMResolve is not defined`オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 71/100
btclib-org/btclib#2964 ·
メンテナーはふだん 1 日以内に返信