eclipse-platform / eclipse-platform/eclipse.platform

Add per-builder build events to IResourceChangeEvent

Aperta
#2,801 9 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Java
Stelle
165
Fork
174
Merge medio
2g 8h
PR unite (30g)
22

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia individuando IResourceChangeEvent e il dispatch PRE_BUILD/POST_BUILD esistente del workspace nel resources framework. Traccia come le esecuzioni dei builder espongono il project, l’identità del builder, il build kind e il timing, quindi verifica che i nuovi eventi per builder siano annidati negli eventi del workspace e preservino la compatibilità dichiarata e il comportamento in assenza di listener.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
tooling
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.