YOGYUI

ESP-Matter GitHub Pull Request(PR-863) 승인 및 병합 본문

홈네트워크(IoT)/Matter

ESP-Matter GitHub Pull Request(PR-863) 승인 및 병합

요겨 2024. 4. 2. 15:33
반응형

ESP-Matter GitHub Repository Pull Request Accept & Merge (PR-863)

ESP32 SoC를 이용한 Matter 디바이스를 개발할 때 사용하는 SDK인 ESP-Matter는 깃허브(GitHub)에 저장소를 둔 오픈소스로, Espressif사에 속한 개발자 외에도 많은 일반 개발자들이 소스코드 작업에 참여하고 있다 


올해 2월 ESP32를 이용한 Matter 이산화탄소 농도 측정 센서 디바이스를 개발할 때 소스코드 중 일부가 Matter 1.2 spec과 맞지 않는 것을 발견했고, 문제를 해결하기 위한 소스코드 수정 방법도 블로그에 포스팅한 바 있다

[PROJ] Matter 이산화탄소 농도 측정 클러스터 개발 예제 (ESP32)

 

[PROJ] Matter 이산화탄소 농도 측정 클러스터 개발 예제 (ESP32)

Matter - Carbon Dioxide Concentration Measurement Cluster Developing Example using ESP32 SoC 지난 글에서 대기 성분 농도 측정(Concentration Measurement) 센서 관련 클러스터들의 Matter 스펙에 대해 알아봤다 Matter Specification

yogyui.tistory.com

 

기존 코드의 문제를 요약하면 아래와 같다

  1. 단정밀도 부동 소수점(single flating point) 자료형의 값을 가지는 어트리뷰트를 읽고 쓰지 못함
  2. 대기 성분 농도 측정 (Concentration Measurement) 클러스터들의 어트리뷰트 중 일부가 자료형이 잘못 구현되어 있음 (Matter 스펙 상 float이어야 하는 녀석들이 uint16_t로 구현되어 있음)

문제 해결법을 나 혼자만 알고 쓰는건 오픈소스 정신에 위배되기에 저장소를 포크(fork)한 뒤 수정사항들을 커밋한 후 풀 리퀘스트(Pull Request)를 요청했다 

https://github.com/espressif/esp-matter/pull/863

 

support r/w floating(single) value type (CON-1077) by YOGYUI · Pull Request #863 · espressif/esp-matter

@dhrishi I recently lost my remote and local branch while squashing PR commits because of my mistake, so reopened PR with new branch. I deeply sorry for inconvenience. [Related issue] #843 [Major...

github.com

※ squash 작업 중 커밋이 꼬이는 바람에 PR을 한번 더 요청 ㅎㅎ

 

변경 대상 파일은 총 7개이며, 741라인 추가 및 628라인 삭제로 단일 커밋치고는 변경점이 꽤 많다

※ PR에 적용된 커밋은 아래 링크 참고

https://github.com/espressif/esp-matter/commit/810a9ca8bcbf0dbe1baf36b18d7014e715b2f8f4

 

- attribute: support r/w floating(single) value type · espressif/esp-matter@810a9ca

- concentration measurement clusters: change attr value type (float) - remove 'add uncentainty attribute' - add 'measurement medium' attribute

github.com


변경점이 꽤 많아서 그런가, 3명이나 코드 리뷰를 진행했다 (dhrishi, wqx6, jadhavrohit924)

 

코드 리뷰가 끝났음에도 1달 가까이 병합이 되지 않아 문의를 남기기도 했다


3월 8일에 올린 PR이 4월 2일이 되어서야 main 브랜치로 병합(merge)이 완료됐다

 

https://github.com/espressif/esp-matter/commit/434aa0b6762a8ea321187b56dabebe5c364a620f

 

Merge branch 'pr_863' into 'main' · espressif/esp-matter@434aa0b

[GH_PR] support r/w floating(single) value type (CON-1077) See merge request app-frameworks/esp-matter!674

github.com

 

어떤 이유로 1달 가까이 오래 걸렸는지는 의문 ㅎㅎ

내가 수정한 코드들이 적용되는 예제가 없어서 검증이 오래 걸렸을 수 있겠다는 추측만 할 뿐...


2024년 4월 2일 기준, esp-matter 소스코드의 38명의 기여자(contributors) 중 한명이 되었다

언뜻 기여자 리스트를 살펴봤을 때 한국인은 최초인듯?

(아님 말고... 깃허브 프로필에 사진을 올리지 않거나 프로필에 본명을 기입하지 않으면 유저의 국적을 파악하기는 힘들다 ^^;;)

 

Git 작업은 내 개인 저장소나, 회사 내부 저장소에서만 작업을 주로 했지 esp-matter처럼 글로벌 규모(?)의 오픈소스에 내 코드를 적용한 건 이번이 처음이기에 나름 뜻깊은 작업과 하염없는 기다림이었다


이제 블로그에 포스팅한 각종 클러스터 예제들을 esp-matter 저장소에 커밋해서 진정한 기여자로 거듭나봐야겠다

반응형