내가 오픈소스 기여하는 이유
1. 내가 사용한 오픈소스에 기능을 제공하지 않거나 제대로 동작하지 않을 때
- example
- 내가 속한 조직에 필요한 기능이 부족하거나 수정되어야할 경우가 많았다. 회사 VCS 에 올려 따로 관리해도 좋지만 불필요한 과정(예를 들어, 변경된 기능을 포함해 cicd 파이프라인을 새로 생성)을 없애고 싶었다.
2. 회사에서 많은 코드베이스를 갖는 프로젝트를 접할 기회가 적음
- Airflow 경우만 보더라도 코드 라인수가 굉장히 많다. 이들이 어떻게 동작하는지 코드베이스로 확인할 수 있는 회사 코드는 드물다. (물론 내가 거쳐온 조직이 관리한 코드가 적을 수 있다.)
- 자연스럽게 많은 양의 코드를 살펴보면 넓은 시야를 가질 수 있다고 믿는다. 물론 이로인해 불필요한 설계를 할 수 있겠지만 나에게 있어선 많은 코드를 보고 이해하는 것이 내 성장과 굉장히 밀접해 있다.
3. 도움 받은 만큼 나도 도움을 주고 싶은 마음
- 가장 큰 이유. 근데 왜 마지막에 언급했을까?
가식적으로 보일 것 같았다. - 데이터 엔지니어라면 누구나 쓰는 Airflow, 이를 만든 사람들이 있었기에 내 일을 하는데 정말 많은 도움을 주었다. 도움만 받지 말고 나도 누군가에게 도움을 줄 수 있지 않을까? 라는 마음에서 시작했다.
- 나도 누군가에게 도움을 줄 수 있다. 고마움을 받은 컨트리뷰터/커미터/PMC 에게 "편히 사용하게 만들어줘서 고마워요" 라는 말대신 코드로 보답하고 싶었다.
기여 결과물
- airflow
- feat (airflowctl): add dag operations to conform all API endpoints
- Fix image url in IDE onboarding doc (about task sdk)
- Add a note
airflow users
command is available when FAB auth-manager is enabled - Enable to add inline ssh key in GitHook
- Forbid extra fields on execution api
- Fix GitDagBundle to support https (include 46073/46179)
- Set container name to envSourceContainerName in KEDA ScaledObject
- Support connection extra parameters in MsSqlHook
- Support multiple executors in chart
- Bump to mypy-boto3-appflow and pass without # type: ignore[arg-type]
- Add parent_model param in UploadModelOperator
- Add CloudRunServiceHook and operator
- enable AIRFLOW__CELERY__BROKER_URL_CMD when passwordSecretName is true
- dbt
- kafka-connect-bigquery: Support n:1 to topic2TableMap (topic:table)
- kafka-connect-transform-tojsonstring: Support to transtorm record without schema (schemaless json format)
- meltano
- datahub
- great-expectations: [DOCS] edit term(data_conext, checkpoints)-link in with airflow
- mageai
- PyAirbyte: Chore: Remove import only used in TYPE_CHECKING
- astronomer-cosmos: Improve MWAA getting-started docs by removing unused imports
- professional-services-data-validator: feat: use python-oracledb instead of cx_Oracle