SAP ·
SAP UI5'e ilk katkım: iki satırlık düzeltme, 2.955 satırlık PR
UI5/webcomponents #9817: salt okunur TextArea'da odak çerçevesinin kenarlığa değmesi, iki tema arasındaki tutarlılık ve temiz bir branch'in önemi.
UI5 Web Components, SAP'nin Fiori arayüzlerini herhangi bir framework ile kurmaya yarayan bileşen kütüphanesi. adrian-bobev, #9741 numaralı issue'da ui5-textarea bileşenindeki küçük görsel hataları bildirdi. Benim ele aldığım ikincisiydi: sap_horizon_dark temasında, Negative, Critical ya da Information durumundaki bir TextArea salt okunur yapılıp tıklandığında, odak çerçevesi kenarlığa değiyordu. Positive durumunda ve durumsuz TextArea'da ise arada beklenen 1 piksellik boşluk vardı.
Kök neden: tek bir CSS değişkeni
Temanın parametre dosyasında salt okunur alanların odak boşluğu 1px olarak tanımlıydı. Ama değer durumlu (value-state) alanlar için ayrı bir değişken vardı ve 0 idi. Düzeltme bu değişkeni diğerleriyle aynı hizaya getirmekti:
--_ui5_textarea_readonly_focus_offset: 1px;
- --_ui5_textarea_value_state_focus_offset: 0;
+ --_ui5_textarea_value_state_focus_offset: 1px;İlk PR neden 2.955 satır oldu?
İlk denemem #9759 idi. İki hata yapmıştım:
- Düzeltmeyi yalnızca
sap_horizontemasına uygulamıştım. Issue'daki adımlar isesap_horizon_darktemasındaydı ve her temanın kendi parametre dosyası var. - PR'ı forkumun
maindalından açmıştım ve bu dalı güncel tutmak için SAP'ninmaindalını içine merge etmiştim. Sonuç: PR'a başkalarının 31 commit'i, CHANGELOG'lar ve alakasız paketler karıştı. İki satırlık bir değişiklik, 2.955 eklemeli bir PR gibi görünüyordu.
Bileşenin maintainer'ı nnaydenow incelemede iki şey istedi: aynı düzeltmenin sap_horizon_dark dosyasına da uygulanması ve branch'in main üzerine rebase edilmesi.
Temiz PR
Karmaşık branch'i düzeltmeye çalışmak yerine eski PR'ı kapatıp yeni ve temiz bir branch'ten #9817'yi açtım: iki tema dosyası, her birinde bir satır. nnaydenow ertesi sabah onaylayıp birleştirdi.
Dersler
- Tema tabanlı bir kütüphanede görsel bir düzeltme tek bir dosyada bitmez; aynı değişkenin her temada nasıl tanımlandığına bakmak gerekir.
- Katkıyı her zaman güncel
main'den açılmış ayrı bir branch'ten gönder. İnceleyen kişinin görmesi gereken tek şey senin değişikliğin olmalı.