MTmertturkoglu.comTüm yazılar

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_horizon temasına uygulamıştım. Issue'daki adımlar ise sap_horizon_dark temasındaydı ve her temanın kendi parametre dosyası var.
  • PR'ı forkumun main dalından açmıştım ve bu dalı güncel tutmak için SAP'nin main dalı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ı.