eclipse-platform / eclipse-platform/eclipse.platform

Add per-builder build events to IResourceChangeEvent

Offen
#2,801 9 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
165
Forks
174
Ø Merge
2 T. 8 Std.
Gemergte PRs (30 T.)
22

Beschreibung

# 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, IResourceChangeEvent und die bestehende PRE_BUILD/POST_BUILD-Dispatch des workspace im resources framework zu lokalisieren. Verfolge, wie Builder-Ausführungen das project, die Identität des builders, den build kind und das Timing bereitstellen, und überprüfe anschließend, dass sich die neuen Ereignisse pro builder innerhalb der workspace-Ereignisse verschachteln und das angegebene Kompatibilitätsverhalten sowie das Verhalten ohne Listener beibehalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.