eclipse-platform / eclipse-platform/eclipse.platform

Add per-builder build events to IResourceChangeEvent

オープン
#2,801 コメント 9 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Java
スター
165
フォーク
174
平均マージ
2日 8時間
マージ済み PR(30日)
22

説明

# Summary

Today the resources framework only fires workspace-level PRE_BUILD and POST_BUILD events.
Listeners learn that a build ran and get the aggregated delta, but they cannot see which builder ran, on which project, for which build kind, or how long each individual builder took.

This proposes two new event types, PRE_PROJECT_BUILD and POST_PROJECT_BUILD, fired once per builder execution and nested inside the surrounding workspace PRE_BUILD/POST_BUILD pair.

# Benefits:

- Per-builder profiling. Tools can attribute build time to a specific builder and project instead of a single opaque workspace total, making it easy to spot the slow builder in a large reactor.
- Monitoring and diagnostics tooling. The granularity enables build-monitor views and telemetry that show the real build sequence, which the aggregate events cannot support.

# Performance impact

Negligible by default.

When no listener is registered, dispatch is a single hasListenerFor bitmask check per event with no allocation, so normal builds are unaffected.
The per-builder path also skips resource-delta computation entirely, so even with a listener attached the added work is cheap metadata dispatch (project, builder id, build kind) rather than tree/delta building.

# Compatibility

The change is a binary-compatible API addition (new int constants plus a default method), so existing listeners are unaffected.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず IResourceChangeEvent と resources framework における既存の workspace の PRE_BUILD/POST_BUILD dispatch を特定します。builder の実行によって project、builder の identity、build kind、timing がどのように公開されるかを追跡し、そのうえで新しい builder ごとのイベントが workspace イベントの内側にネストされ、記載された互換性と listener が存在しない場合の動作を維持することを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
tooling
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。