-
-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sincronizzazione PR 14 <-> 16 #4391
Comments
Stiamo ancora decidendo il formato delle lista, ho messo un paio di esempi. Inoltre da valutare se fare una sola issue come questa oppure separare 14 --> 16 e 16 --> 14 in due issue. |
Indicativamente si può verificare quali issue sono aperte solo per una delle due versioni (nella grande maggioranza dei casi si tratta di PR non portate) con questi url: |
A me sembra più chiaro se sono evidenziate direttamente, questi filtri si basano molto sulla fiducia che qualcuno abbia inserito le etichette giuste e rischiamo di perderci qualcosa. Però potremmo fare un filtro per ricercare le PR direttamente, mettendo nelle PR una label del tipo "verificare su 14.0" oppure una "non verificare su 14.0" ed escludere solo queste? Cosa che riportebbe completamente l'informazione della issue a questo punto, riducendo il lavoro. Secondo me è fondamentale ridurre il lavoro, visto che siamo sempre indietro, e creare nmila issue è un lavoro non indifferente. |
Già che ci sono propongo una lista di priorità (sempre indicative, poi caso per caso si valuta):
Spiegazione... se la 16 deve essere la base di partenza per l'integrazione con la 18, ha senso non portarsi dietro bachi. Specialmente fastidioso se esiste già una soluzione testata e mergiata per la 14 e magari la PR per la 16 da fare review. Bugfixing a parte, anche avere features testate e mergiate in 14, mancanti nella 16, non è bello, specie se c'è già la PR da approvare. Va da sè che la lista non è vincolante e le priorità personali possono essere diverse. Ci sono ancora persone/aziente focalizzate su 14, per cui nella loro lista "bugfixing da mergiare su 14" è sicuramente più in alto rispetto alle PR con target 16. In sostanza, se saltasse fuori un bug in 18 in un codice basato sulla 16, con bug, di cui esisteva PR (per 16) derivata da PR già mergiata in 14 (quindi revisionata e approvata), sarebbe un po' imbarazzante, a meno che effettivamente non siano emersi problemi con la PR 16 in fase di review. E vale in generale, considerato che la 16 è quella ufficiale (e lo sarà per un pezzo) avere un bug aperto sostanzialmente risolto non è il massimo (e al contrario anche per la 14, se la soluzione del bug, testata e approvata per la 16, esiste già). In pratica la lista è ordinata in base a lavoro che rimane da fare per chiudere oltre che all'importanza. Chiaro che una feature (non bug) della quale esiste solo una PR non revisionata per 14 è la situazione che richiede il maggior sforzo prima di arrivare ad un merge sulla 16 (porting, bugfixing, review funzionale e tecnica di tutto). Una feature già mergiata in 14 e già portata in 16 richiede solo review del porting (nel senso che le logiche funzionali sono già state approvate, il grosso del codice revisionato, di fatto si guarda se il porting è corretto). |
Aggiungo che per github è un problema avere una tabella coi link e i titoli delle PR (funziona solo con le tasklist). Troppo complicato. Nel frattempo però: mica è un problema... :) |
Per me è meglio la prima versione di lista alternativa compatta. Concordo sulle priorità, l'importante è evitare che bug già risolti o con PR aperta su una versione inferiore siano ignorati nelle versioni superiori in prima istanza, e viceversa in seconda istanza. |
Per un controllo più accurato si potrebbe utilizzare https://github.com/OCA/oca-port Anche se da un test a campione non mi sembra proprio così infallibile. Di certo può essere utilizzato ad integrazione di quanto già conosciamo tramite le attuali issue di tracciamento. |
@TheMule71 @sergiocorato potreste scrivere in una pagina tipo https://github.com/OCA/l10n-italy/wiki/Team-di-sviluppo come dovrebbe essere il flusso quando ci sarà questa issue di sincronizzazione? |
In genere uso oca-port come prima scelta per migrare moduli, quando ci sono refactoring però fa fatica. È comunque uno strumento utile agli sviluppatori, qui si tenta di dare un'idea più chiara della situazione in maniera meno prolissa se possibile. |
L'idea di evidenziare in qualche modo che per alcune cose manca solo un porting ci sta. Non mi convince avere questa issue di tracciamento perché penso sia difficilmente mantenibile: in pratica è una copia di informazioni che già ci sono nelle issues/PRs e in quanto tale va tenuta sincronizzata. Magari si potrebbe anche solo aggiungere un'etichetta needs porting alla issue quando manca solo il porting da una versione all'altra per chiudere la issue? Anche mettere le etichette non è semplice da mantenere, però lo vedo più fattibile; 🤷 sarà che io e @francesco-ooops ormai ci abbiamo fatto il callo. |
Aggiungo che il tag "Hotfix" è stato anche usato per indicare funzionalità presenti in una versione precedente (12, 14) non presenti in una successiva (14, 16) L'approccio più semplice mi sembra quello di puntare a ridurre quanto più possibile tempo tra il merge di una PR e quello del rispettivo porting, con l'obiettivo di chiudere a stretto giro PR / porting PR / issue Chiaramente mi riferisco a moduli che non hanno subito grossi refactoring tra versioni (abbiamo una lista di quali sono? Magari potremmo elencarli nella issue di migrazione) |
L'idea di hotfix è quella di marcare le issue relative a bug ad alto impatto - lo stato del bug in altre versioni (per es. viene segnalato su 16 ma esiste anche su 14) o l'esistenza o meno di PR non dovrebbe condizionarne l'uso: si tratta di un tag usato nel triage, quindi relativo alla classificazione delle nuove issue. Il triage serve principalmente per non "perdersi" delle issue (specie se importanti). Non riguarda le PR. Al contrario, questa issue riguarda la gestione delle PR. A mio modesto parare, una tasklist è lo strumento più adatto per gestire un elenco di cose da fare, piuttosto che aggiungere altre label. Le label servono per classificare. |
Come proposto in chiamata, io e @francesco-ooops abbiamo creato delle etichette (
is porting
Ho riportato il tutto, sotto forma di proposta, in https://github.com/OCA/l10n-italy/wiki/Gestione-issues#proposta-di-gestione-tramite-issues-dedicate. |
Ho visto https://github.com/OCA/l10n-italy/wiki/Team-di-Sviluppo-(proposta), grazie @TheMule71, quindi in pratica mi sembra rimanga tutto uguale ma in più ci sarebbe da mantenere questa issue di sincronizzazione. Riguardo al < si può aprire una issue
---
> aprire una issue credo sia meglio definire in quali casi la issue vada aperta e quali no (e mettere
no issue needed
). |
Issues taggate con "needs porting", sono 87 al momento; nota che indicano semplicemente che una delle due versioni è fixata (a volte fixata per 12 ma non portata a quelle successive), ma non se è già aperta una PR di migrazione o a quale versione va portata. Per ricercare le issues per versione, usare le label "needs porting" + "label versione", es: needs porting + 16 userei quest'ultimo link per debuggare quanto più possibile la versione 16 prima della migrazione alla 18 |
Normalmente il porting andrebbe fatto quando la PR originale è mergiata, quindi in generale assumerei che è mergiata.
Nella descrizione della PR infatti secondo me andrebbe indicato quale issue si sta risolvendo ed eventualmente quale PR si sta portando, proprio per facilitare la navigazione tra issue e PR collegate. |
Non saprei quanto normale sia, io spesso ho aperto issue e fatto le due PR (anzi la considero la prassi, e mi secca quando magari non riesco a farlo), oppure ho preso una issue esistente (senza PR) e ho fatto le due PR in parallelo. In effetti è qualcosa che dovremmo incoraggiare, e farlo ogni volta che è possibile, visto che la persona migliore per fare il porting della PR è comunque l'autore dell'originale. Il caso in cui venga fatta la PR su una versione e ignorata l'altra (lasciando a qualcun altro il compito di fare il porting) sicuramente capita spesso, ma rimane il caso meno ideale, sicuramente non lo vogliamo incoraggiare o dichiararlo come la norma. Può succedere, è inevitabile, non c'è nulla di male, ma non andrebbe bloccato il porting di una PR solo perché l'orginale non è mergiata, soprattutto dall'autore originale. In effetti è capitato spesso che venisse mergiata prima quella portata (specie se l'originale verde era sulla 14 e il porting sulla 16). E se le fai insieme, non è chiaro qual è l'originale e qual è il porting... È anche vero che avere due PR aperte (parlo per esperienza) può essere frustante, a volte ricevi due review diverse che ti dicono di fare due cose diverse, la discussione andrebbe fatta su una sola PR, e poi traslato il risultato sull'altra. In effetti la prassi potrebbe essere quella di fare sì due PR (ripeto due PR dallo stesso autore sono l'ottimo per me) ma una metterla in draft per incoraggiare la discussione solo sull'altra. Ma anche qui, per esperienza, dopo un po' cominciano a fioccare richieste 'merge?' anche se la PR è in draft, per cui lascia il tempo che trova.
Infatti, ma torniamo alla limitazione che ho evidenziato nei primi commenti, github non consente la visualizzazione dello stato di un PR in un normale link. Il link non riporta nemmeno il titolo (che in questo caso serve relativamente). Il link deve essere in una tasklisk per vedere se la PR è verde o viola. Devi comunque cliccarci sopra. Se github consentisse uno short link e un full link (tipo |
@TheMule71 ma la lista nel primo commento è da espandere, giusto? Teoricamente dovrebbe contenere tutte le 141 PR aperte al momento, ad esclusione di migrazioni e PR che non riguardano le altre versioni, o sbaglio? |
Le etichette sono un buon metodo per filtrare le PR/Issue, però sono impostabili solo dal PSC, quindi comportano un appesantimento del lavoro non irrilevante. In ogni caso, il lavoro di marcare la PR come da portare va fatto:
Con n issue quindi il PSC deve andare a taggare/staggare tutte le PR collegate per capire in che stato sono, mentre con una issue riassuntiva lo stato si vede direttamente dalla singola riga in cui sono riportate le PR. La differenza è tra il taggare/staggare 141 PR (+ quelle chiuse/stale/mergiate) e l'aggiornare il testo di tipo 6 issue riassuntive. In ogni caso, le issue di migrazione funzionano da sempre nel modo della issue riassuntiva, non è nulla di nuovo, si tratta solo di prendere quel funzionamento e migliorarlo. |
Si, escluse anche quelle per la 12. Probabilmente sono circa 100 in tutto. Al momento sarebbero divise in due gruppi (avanti e indietro,16 <-- 14 e 14 <-- 16). Ovviamente la lista attuale non è completa, ho preso solo esempi delle varie tipologie... anche per discutere la formattazione. Per dire adesso è #PR1 <-- #PR2 (per mettere in rilievo le cose da fare) potrebbe essere #PR1 --> #PR2 se ci fosse una buona ragione. L'unica cosa che non possiamo evitare è la tasklist perché solo quella mette il link espanso con lo stato della PR. |
Aggiungo che non è fondamentale avere un'unica issue. Si era esplorata la possibilità di avere una issue 16 <-- 14 e una 14 <-- 16 se aiuta avere due elenchi separati. |
@TheMule71 sulla lista sopra credo ci sia un refuso nella proposta porting da 14.0 a 16.0, forse intendevi così?
|
Ho mergiato #4434 quindi ho checkato il suo task, oppure va tolto? |
Ho scritto che è normale perché il caso d'uso tipico è che uno ha un problema nell'istanza di un cliente, lo corregge e propone qui la correzione: ovviamente lo fa solo per la versione che gli serve. Tornando alla gestione di issues/PRs, l'etichetta
is porting
P.S.: l'ho chiarito in #4391 (comment). |
Anche l'aggiornamento di questa issue va fatto dal PSC. Secondo me elencare solo qui dentro i 100 problemi aperti che ci sono fa perdere di vista il fatto che ci sono ancora 100 problemi aperti e la corrispondenza 1 issue <-> 1 problema.
La issue di migrazione è fatta in modo simile ma molto meno impegnativa da gestire perché va modificata solo in periodi specifici (quando esce una nuova versione).
Secondo me è ben più complicato della issue di migrazione. |
In descrizione, la PR di migrazione #3776 è riportata più volte: pensavo fosse un errore, ma forse invece è perché la PR #3776 risolveva diverse issues
e ad esempio #4265 è il backporting della soluzione per una di quelle issues (la #3874). Come facciamo a tracciare quali checkbox corrispondono a quale issue? |
`Todo list per l'allineamento delle PR da 14 a 16 e viceversa.
Porting da 14 a 16:
Back porting da 16 a 14:
The text was updated successfully, but these errors were encountered: