Interpreto questa situazione come se avesse due problemi di base, forse tre.
- Un aggiornamento SDK indesiderato è arrivato alla fonte, dove potrebbe influire negativamente sul prodotto.
- Dalla domanda: il contributore che ha eseguito l'aggiornamento indesiderato non era a conoscenza di una precedente decisione specifica di non aggiornare.
Il primo di questi, secondo me, è il più serio. Se un aggiornamento SDK indesiderato può farcela nel codice, lo stesso vale per altri problemi.
Qualcuno ha suggerito di aggiungere un caso di test unitario che fallirà se rileverà l'aggiornamento. Mentre impedirebbe il verificarsi dell'aggiornamento, credo che questo sia un percorso pericoloso, che porta al flusso di lava nel tempo. Sembra inevitabile che ad un certo punto in futuro l'SDK verrà aggiornato, per introdurre nuove funzionalità o correzioni di bug o perché la vecchia versione non è più supportata. Immagina i graffi alla testa, forse anche gli argomenti, che si verificheranno quando un tale test unitario fallisce.
Penso che la soluzione più generale sia quella di adeguare il processo di sviluppo. Per git, usa il processo di richiesta pull . Per Subversion e strumenti precedenti, usa branch e diff. Esistono però alcuni processi che consentono agli sviluppatori senior di rilevare questo tipo di problemi prima che entrino nella base di codice e influenzino altri sviluppatori.
Se il processo di richiesta pull fosse stato utilizzato nella tua situazione e se ogni richiesta pull fosse stretta e specifica, non sarebbe stato perso molto tempo. Una richiesta pull per l'aggiornamento dell'SDK sarebbe stata inviata e rifiutata con il commento che l'aggiornamento non è voluto. Nessun altro sarebbe stato influenzato e non sarebbe più necessario ripristinare l'aggiornamento dell'SDK.
Ma per rispondere direttamente alla domanda originale, concordo con gli altri sul fatto che aspettarsi che tutti gli sviluppatori leggano completamente l'intera cronologia delle revisioni del codice, note di rilascio, ecc. Per avvisi come questo è una perdita di tempo prezioso. Cosa c'è che non va nell'e-mail breve di una squadra?
Possibile terzo problema: perché l'aggiornamento non è voluto in primo luogo? Chiaramente almeno uno sviluppatore ha pensato che l'aggiornamento sarebbe stato positivo. Ci sono molte buone ragioni per ritardare un aggiornamento, ma anche molte cattive. Fai attenzione a evitare il flusso di lava (codice di retrocompatibilità non necessario) e il culto del carico ("non possiamo aggiornarlo, ma non so perché") anti-pattern!