Anul acesta, Shiny in Production a găzduit o „R Dev Day” împărțită în cele două zile dinaintea workshop-urilor preconferinței. R Dev Days sunt o nouă inițiativă a Grupului de lucru R Contribution, oferind o oportunitate pentru dezvoltatorii R de a se implica în contribuția la Proiectul R. R Dev Day va reveni la SIP 2025, așa că citiți mai departe pentru a afla ce au făcut participanții și luați în considerare să veniți anul viitor!
Traducere
Mediul local al unui utilizator R sau local stabilește limbajul uman preferat. Dacă sunt disponibile traduceri, R va afișa mesaje, erori și avertismente în limba respectivă. Deci, un mod important prin care comunitatea contribuie la R este dezvoltarea și menținerea acestor traduceri.
La R Dev Day, Gabriela de Lima Marin a învățat cum să contribuie la traduceri prin intermediul R’s Weblate, care oferă o interfață de browser ușor de utilizat pentru traducere. În prima sesiune, ea a lucrat în mod convențional, traducând câte un șir. În a doua sesiune, ea a explorat traducerea mesajelor în bloc folosind traducerea automată. A doua metodă a fost puțin mai rapidă, dar traducerile automate au necesitat o revizuire atentă – uneori aveau semnificația complet greșită!
Per total, Gabriela a tradus peste 200 de mesaje la R Dev Day! Dacă doriți să începeți să contribuiți la traduceri, puteți găsi linkuri către resurse în numărul 2 al depozitului r-dev-day.
Tabloul de bord pentru traduceri
Bug în grafica Cairo cu R
Bug-urile din baza R sunt urmărite pe Bugzilla lui R. Există multe modalități prin care colaboratorii pot ajuta cu erorile raportate: revizuirea rapoartelor pentru a evalua dacă problema este o eroare validă care nu a fost încă remediată în R-devel; crearea unui exemplu simplu reproductibil (sau reprex); depanarea codului R sau C subiacent pentru a analiza cauza principală a erorii; discutând despre cum să remediați eroarea sau propunând o actualizare a codului sursă pentru a remedia o eroare. Pentru R Dev Days, sunt selectate o serie de rapoarte de erori în care există un următor pas clar pe care contribuitorii trebuie să îl facă.
La R Dev Day @ SIP 2024, Ella Kaye și George Stagg s-au uitat la Bug 16721, care este o problemă care afectează grafica Cairo în R (< 4.5.0). Într-un complot de imagine care se așteaptă să fie un bloc complet de culori, va apărea o dungă albă, ca în exemplul de mai jos:
Dispozitivul Cairo este implementat în pachetul {grDevices}, care face parte din baza R. Ella și George au construit R din sursă, astfel încât au putut să depaneze atât codul R, cât și codul C care este apelat în reprexul de mai sus. Au fost nevoiți să rezolve unele probleme apărute la construirea R pe computerul Elei, inclusiv complicațiile de lucru cu mai multe versiuni de R. Sortarea acestor probleme a durat cea mai mare parte din prima sesiune, dar Ella a apreciat oportunitatea de a învăța câteva bune practici de la George, deoarece dezvoltator mai experimentat. În a doua sesiune s-au putut concentra pe depanare. Urmând sfaturile care fuseseră date de membrul R Core Paul Murrell înainte de Ziua R Dev, au încercat depanare tipărireadică adăugarea unei instrucțiuni de tipărire la codul sursă pentru a tipări informațiile cheie, în timp ce trasați un dreptunghi subțire cu grid::grid.rect()
. Ipoteza a fost că nimic nu va fi desenat atunci când lățimea este mai mică de un pixel. Ei au reușit să creeze un exemplu care nu a reprezentat nimic într-un dispozitiv grafic Cairo, dar a reprezentat un dreptunghi negru subțire într-un dispozitiv Quartz. S-au uitat mai atent la codul C pentru dispozitivul Quartz și au descoperit că are o soluție specifică cu comentariul:
în cazul dreptunghiurilor fără margini, fixați-le în pixeli.
aceasta rezolvă problemele cu image() fără a introduce alte artefacte.
Așa că au lucrat la actualizarea codului C pentru dispozitivul Cairo, pentru a utiliza aceeași soluție ca și dispozitivul Quartz. Reconstruirea R cu această modificare a rezolvat problema atât în reprexul original, cât și în cel mai simplu grid.rect()
exemplu!
Într-o întorsătură a complotului, au descoperit că dispozitivul Xlib a avut din nou un comportament diferit, nefiind nicio problemă cu reprexul original, dar eșuând la grid.rect()
exemplu. Săpând din nou codul, au găsit acel Quartz rotunjite valori la pixeli întregi, în timp ce Xlib trunchiată valorile. Ei și-au împărtășit descoperirile despre Bugzilla la sfârșitul R Dev Day și de atunci au primit câteva feedback de la Paul Murrell cu privire la următorii pași pentru a obține o remediere acceptată în baza R.
Container R Dev
Ghidul dezvoltatorilor R
Chiar și din această mână de sarcini care au fost selectate pentru R Dev Day @ SIP 2024, puteți vedea că sunt multe de învățat despre contribuția la R. Una dintre primele inițiative ale Grupului de lucru R Contribution a fost crearea unui Ghid de dezvoltare R (sau „R Dev Guide” pe scurt), pentru a documenta unele dintre procese. La fel ca tabloul de bord pentru traduceri și R Dev Container, aceasta este o resursă întreținută de comunitatea de colaboratori.
La R Dev Day, Cam Race a lucrat la două probleme legate de Ghidul R Dev. În ambele cazuri, unele lucrări inițiale au fost făcute de alții la o Ziua R Dev anterioară, așa că sarcina lui a fost să le revizuiască contribuția și să continue de unde au rămas. Prima problemă a fost adăugarea unei noi secțiuni despre site-urile web relevante pentru colaboratorii R, în special cele din domeniul r-project.org. A doua problemă a fost îmbunătățirea documentației despre cum să contribui la documentația lui R, inclusiv adăugarea unor exemple de erori închise cu succes. Cam a deschis două solicitări de extragere pentru a-și propune modificările (#186 și respectiv #188), împreună cu o altă solicitare de extragere pentru a remedia probleme minore, cum ar fi link-urile întrerupte.
Implicarea
După cum arată această postare, există o gamă largă de activități în care să te implici la o Zi R Dev, care se potrivesc diferitelor niveluri de abilități și experiență. R Dev Day @ SIP 2025 va avea loc în după-amiaza zilei de marți 8 octombrie și în dimineața zilei de miercuri 9 octombrie. Ne-ar plăcea ca R Dev Day de anul viitor să fie mai mare și mai bună – dacă sunteți inspirat să veniți, formularul de înregistrare este deja deschis!
Între timp, pentru știri despre alte evenimente pentru colaboratori R și linkuri către resurse care să vă ajute să începeți să contribuiți la baza R în orice moment, accesați site-ul R Contributor: contributor.r-project.org.
Pentru actualizări și revizuiri ale acestui articol, consultați postarea inițială