# Xenomai 개발에 기여하는 방법

Xenomai 프로젝트에 기여하는 방법은 여러 가지가 있다. 이 섹션에서는 이 오픈 소스 프로젝트에 기여하기 위해 필요한 주요 단계를 살펴보겠다.

#### 소스 코드 기여

Xenomai는 오픈 소스 소프트웨어로, 누구나 코드에 접근하고 개선할 수 있다. 다음은 소스 코드에 기여하는 방법이다:

**1. 저장소 클론**

먼저 Xenomai 소스 코드를 클론한다.

```bash
git clone https://gitlab.denx.de/Xenomai/xenomai.git
cd xenomai
```

**2. 새로운 브랜치 생성**

기여할 변경 사항에 대해 새로운 브랜치를 생성한다.

```bash
git checkout -b my-feature-branch
```

**3. 코드 수정 및 테스트**

수정 사항을 코드에 반영하고, 충분히 테스트한다. 관련된 테스트 케이스를 추가/수정하여 변경 사항이 정확하게 동작하는지 확인한다.

**4. 커밋 및 푸시**

변경 사항을 커밋하고 원격 저장소에 푸시한다.

```bash
git add .
git commit -m "Add new feature or fix"
git push origin my-feature-branch
```

**5. Merge Request 생성**

GitLab에서 Merge Request를 생성하여 변경 사항을 공식 저장소로 요청한다.

#### 문서화 기여

Xenomai 프로젝트에서는 문서화 작업도 중요하다. 다음은 문서 작업에 기여하는 방법이다.

**1. 문서 저장소 클론**

문서화 저장소를 클론한다.

```bash
git clone https://gitlab.denx.de/Xenomai/xenomai-doc.git
cd xenomai-doc
```

**2. 내용 수정 및 추가**

필요한 문서를 수정하거나 새로 추가한다. Xenomai 문서화는 일반적으로 Markdown 형식을 사용한다.

**3. 커밋 및 푸시**

변경된 문서를 커밋하고 푸시한다.

```bash
git add .
git commit -m "Update documentation for new feature"
git push origin my-docs-branch
```

**4. Merge Request 생성**

GitLab에서 문서 변경에 대한 Merge Request를 생성한다.

#### 버그 리포트

버그를 발견했을 때는 프로젝트에 이를 알리는 것이 중요하다. 다음은 버그 리포트를 작성하는 방법이다.

**1. 이슈 트래커 방문**

Xenomai 프로젝트의 이슈 트래커를 방문한다.

**2. 새로운 이슈 생성**

"New Issue" 버튼을 눌러 새로운 이슈를 생성한다.

**3. 버그 세부사항 작성**

버그의 재현 단계, 예상 결과, 실제 결과와 환경 정보(운영체제, Xenomai 버전 등)를 상세히 작성한다.

### 기여 가이드라인

Xenomai 프로젝트는 다양한 형태의 기여를 환영하며, 기여 가이드라인을 통해 프로젝트의 일관성을 유지한다.

#### 코드 스타일

모든 코드 기여는 Xenomai의 코드 스타일 가이드라인을 따라야 한다. 주석, 변수 이름, 함수 이름, 들여쓰기 등의 코딩 스타일을 준수하는 것이 중요하다.

#### 리뷰 프로세스

Merge Request는 리뷰어에 의해 검토된다. 피드백을 반영하여 변경 사항을 업데이트하고, 필요 시 추가적인 설명을 제공한다.

#### 테스트

모든 기여는 가능한 한 많은 테스트를 거쳐야 한다. Unit test, integration test 등을 통해 변경 사항이 전체 시스템에 미치는 영향을 최소화해야 한다.

### 윤리적 기여

Xenomai 커뮤니티는 서로를 존중하고, 공정한 기여 문화를 조성하는 것을 목표로 한다. 다음은 윤리적 기여를 위한 가이드라인이다.

#### 커뮤니케이션

모든 커뮤니케이션은 존중과 배려를 기반으로 해야 한다. 의견 차이는 건설적으로 해결하며, 비판은 비난이 아닌 발전을 위한 것으로 받아들이다.

#### 코드 소유권

기여한 모든 코드는 오픈 소스 라이센스에 따라 Xenomai 프로젝트의 일부가 되며, 누구든지 개선할 수 있다.

#### 공평한 기여

각 기여자들은 동등한 배려와 존중을 받으며, 기여의 크기와 상관없이 모두 중요한 역할을 담당하고 있다.

### FAQ

#### 프로젝트에 기여하는데 어떤 기술 스택이 필요한가요?

Xenomai는 주로 C 언어로 작성되었으며, 리눅스 커널에 대한 지식이 필요하다. 실시간 시스템과 관련된 지식 또한 큰 도움이 된다.

#### 기여할 아이디어는 어떻게 찾을 수 있나요?

이슈 트래커에 있는 "Good first issue" 태그가 붙은 이슈를 통해 기여할 아이디어를 찾을 수 있다. 또한, 문서화 작업이나 버그 수정에도 기여할 수 있다.

#### Merge Request가 거부되면 어떻게 해야 하나요?

리뷰어의 피드백을 수용하고, 변경 사항을 반영하여 다시 Merge Request를 제출하면 된다. 거부는 개선을 위한 피드백으로 받아들이세요.
