기여를 시작하는 방법
Rust에 기여하는 데 관심을 가져 주셔서 감사합니다! 기여하는 방법은 다양하며, 저희는 그 모든 기여에 감사드립니다. 이 문서는 다른 Rust 기여자와 연락하고 Rust 프로젝트에 기여를 시작하는 방법을 설명합니다.
다시 한번 말씀드리지만, 모든 기여자는 저희 행동 강령을 따라야 합니다.
질문하기
먼저, 하려는 기여에 관해 궁금한 점이 있다면 다음 장소에서 다른 기여자에게 질문할 수 있습니다.
- Rust Zulip 서버는 대부분의 Rust 팀과 기여자가 사용하는 주요 소통 공간입니다. 또한 무슨 일이 진행되고 있는지 지켜보기에도 좋은 곳입니다.
- 예를 들어 컴파일러 팀(
t-compiler)의 Zulip “채널”이나t-compiler/help를 살펴볼 수 있습니다.
- 예를 들어 컴파일러 팀(
- internals.rust-lang.org(IRLO)는 Rust 개발을 논의하는 포럼입니다.
더 많은 자료는 공식 웹사이트의 팀 및 워킹 그룹 목록과 커뮤니티 페이지도 참고하십시오.
부디 질문해 주십시오! 많은 분이 “전문가의 시간을 낭비하고 있다“고 느낀다고 말씀하시지만, 저희는 그렇게 생각하지 않습니다. 기여자는 저희에게 중요합니다.
또한 부담스럽지 않다면 공개 토픽을 이용하십시오. 그러면 다른 사람들도 질문과 답변을 볼 수 있고, 어쩌면 그 내용을 이 가이드에 다시 반영할 수도 있습니다 :)
팁: 영어가 모국어가 아니어서 글쓰기에 자신이 없다면 번역기의 도움을 받아 보십시오. 다만 길고 복잡한 단어를 만들어 내는 LLM 도구는 사용하지 마십시오. 일상적인 팀 작업에서는 이해하기 쉽도록 간단하고 명확한 단어를 쓰는 것이 가장 좋습니다. 사소한 오타나 문법 실수가 오히려 더 인간적으로 보이게 할 수 있으며, 사람들은 사람과 더 잘 소통합니다.
저희 LLM 정책도 참고하십시오.
상당한 규모의 변경 사항을 기여하고 싶다면, 먼저 해당 변경 사항과 관련된 팀에 연락하시기를 권합니다. 팀마다 선호하는 작업 방식이 있으므로, 사전 논의를 거치고 팀의 동의를 얻을 수 있도록 권장 절차를 따르십시오.
- 컴파일러 팀: 주요 변경 제안(MCP) 또는 의견 요청(RFC)(자세한 내용은 여기를 참고하십시오)
- Rustdoc 팀: 팀의 Zulip 채널에서 팀에 연락하십시오
- 라이브러리 팀: GitHub에 API 변경 제안(ACP)을 올리거나 Zulip에서 팀에 연락하십시오(자세한 내용은 여기를 참고하십시오)
- 부트스트랩 팀: 팀의 Zulip 채널에서 질문하십시오
확실하지 않다면 언제든지 Zulip에서 질문하십시오.
에티켓
질문할 때 유용한 정보를 가능한 한 많이 포함해 주시기를 부탁드립니다. 다만 Rust 기여에 익숙하지 않다면 이것이 어려울 수 있다는 점도 잘 알고 있습니다.
아무런 맥락 없이 누군가를 핑하기만 하면 다소 성가실 수 있고 불필요한 소음만 만들 수 있습니다. 그러니 팀 구성원들이 하루에도 많은 핑을 받는다는 점을 유념해 주십시오.
기여를 시작하려면 어떻게 해야 합니까?
Rust 프로젝트는 규모가 상당히 커서 어느 부분에 도움이 필요한지, 또는 어느 부분이 입문자가 시작하기에 좋은지 알기 어려울 수 있습니다. 다음은 기여를 시작하기에 좋은 rust-lang 프로젝트 목록입니다(모든 프로젝트를 담고 있지는 않습니다). 이 중 일부 프로젝트에는 기여자 가이드가 있고, 도움이 필요한 이슈나 처음 시작하기 좋은 이슈로 표시된 이슈도 있습니다.
| 프로젝트 | 기여 가이드 | 처음 시작하기 좋은 이슈 | 설명 |
|---|---|---|---|
| 컴파일러 | rustc-dev-guide | 도움 요청 | Rust 컴파일러 및 관련 도구 |
| 표준 라이브러리 | std-dev-guide | Rust 표준 라이브러리 | |
| Rustdoc | Rustdoc 개요 | Rust 문서 생성기 | |
| Cargo | Cargo 기여자 가이드 | 처음 시작하기 좋은 이슈 | Rust 패키지 관리자 및 빌드 시스템 |
| Clippy | Clippy 기여자 가이드 | 처음 시작하기 좋은 이슈 | Rust 린터 |
| Rustfmt | Rustfmt 기여 가이드 | 처음 시작하기 좋은 이슈 | Rust 포매터 |
| Rust analyzer | 기여 빠른 시작 | 처음 시작하기 좋은 이슈 | IDE용 Rust 컴파일러 프런트엔드 및 LSP |
| Miri | Miri 기여 가이드 | 처음 시작하기 좋은 이슈 | Rust 인터프리터 및 UB 탐지기 |
| Rustup | Rustup 개발자 가이드 | 도움 요청 | Rust 툴체인 설치 프로그램 |
| crates.io | crates.io 기여 가이드 | 이슈 트래커 | Rust 패키지 레지스트리 |
| Bors | bors 개발 가이드 | 도움 요청 | Rust CI 병합 봇 |
| rustc-perf | 도움 요청 | Rust 컴파일러 벤치마크 모음 | |
| Triagebot | 처음 시작하기 좋은 이슈 | Rust 자동화 봇 | |
| Rust 플레이그라운드 | 도움 요청 | Rust 온라인 플레이그라운드 | |
| Rustlings | Rustlings 기여 가이드 | 이슈 트래커 | Rust 연습 문제 |
| MdBook | MdBook 기여 가이드 | 도움 요청 | Rust로 작성된 책 생성기 |
영감을 얻고 싶으시다면 rust-lang의 모든 저장소를 살펴보십시오!
에티켓
FOSS1 프로젝트에 처음 기여하는 일이 때로는 혼란스러울 수 있다는 것을 저희도 알고 있으며, 저희 프로젝트에서 협업할 때 기여자와 리뷰어 모두가 최상의 경험을 하기를 바랍니다.
이 목표를 이루기 위해 서로 신뢰를 쌓고 서로의 시간과 노력을 존중하고자 합니다. 다음의 간단한 지침을 따르기를 권장합니다:
- 작게 시작하십시오. 첫 기여로 거대한 코드 덩어리를 제출하는 것은 신뢰를 쌓는 데 도움이 되지 않습니다
- 제출하는 작업은 본인의 것이어야 합니다. 즉, 그 모든 부분을 완전히 이해하고 있어야 합니다
- 제출하기 전에 작업을 꼼꼼히 확인하십시오. 확실하지 않은 부분은 질문하거나 (인라인 주석이나
todo!()로) 저희에게 알려 주십시오 - 이슈를 수정하고 싶지만 설계에 확신이 없다면 저희 Zulip 서버에 참여하여 조언을 구하셔도 좋습니다
- 리뷰어의 시간을 존중해 주십시오. 리뷰 사이에 며칠의 여유를 두고, 코드가 컴파일되고 테스트를 통과할 때만 리뷰를 요청하거나, 그 단계에서 리뷰를 요청하는 이유를 설명해 주십시오(리뷰할 준비가 될 때까지 초안 상태로 두어도 됩니다)
- 코멘트는 간결하게 작성하도록 노력하시고, 완벽한 글쓰기에 대해서는 걱정하지 마십시오. 명확하게, 요점만 전달하도록 노력하십시오
- 프로젝트 내 소통의 일관성을 위해 (커밋 메시지 등을 포함하여) 소통할 때는 영어를 사용해 주십시오(영어는 저희 프로젝트에서 공용어로 인정되는 언어입니다). 문법이나 문장이 완벽할 필요는 전혀 없습니다!
저희의 LLM 사용 정책도 참고하십시오.
다양한 종류의 기여
Rust 프로젝트에 기여할 수 있는 방법은 다양합니다:
-
코드 작성이 가장 대표적인 방법입니다. 하지만 꼭 Rust로만 작성해야 하는 것은 아닙니다! 물론 저희 프로젝트 대부분은 Rust로 작성되어 있지만, 다른 기술도 사용합니다. 예를 들어 GitHub CI 워크플로나 자동화용 Python 스크립트를 개선하는 데 도움을 주시거나, HTML/CSS/JS로 웹 프런트엔드(예: Rustdoc이나 벤치마크 스위트 웹사이트)에 기여하실 수 있습니다. 자신의 강점을 살리십시오!
-
문서 개선은 아마도 가장 쉽게 기여를 시작할 수 있는 방법 중 하나일 것입니다. 이 페이지나 Forge의 다른 곳, 또는 다른 Rust (사용자 대상) 문서에서 오타나 불분명한 부분을 발견하셨거나, 유용한 정보가 빠져 있다고 느끼셨습니까? 좋습니다. 그렇다면 풀 리퀘스트를 보내 주십시오. 그러면 기여자가 되실 것입니다! :)
현재 내부 문서에 대한 오타/맞춤법 수정(대개 변경에 따르는 번거로움이나 리뷰 시간만큼의 가치가 없습니다)이나 테스트 스위트에 대한 수정(의도치 않게 코드 회귀를 일으킬 수 있습니다)은 받지 않는다는 점에 유의하십시오
-
테스트 개선도 매우 가치 있는 일입니다. 테스트는 아무리 많아도 부족하기 때문입니다. 여기에는 기존 테스트를 문서화하거나, 이미 수정되었지만 적절한 테스트가 없는 이슈에 대한 테스트를 작성하는 일도 포함될 수 있습니다.
-
또한 이슈 트리아지를 돕거나 오래된 이슈를 재현하여 여전히 유효한지 확인하는 방식으로 저장소의 이슈 트래커 개선에 도움을 주실 수도 있습니다.
-
또는 프로그래밍 언어에 관한 논의를 좋아하신다면 RFC 절차에 참여하실 수도 있습니다.
-
users.rust-lang.org(URLO)나 StackOverflow에서 질문에 답변하여 다른 Rust 사용자를 도우실 수도 있습니다.
-
자유 오픈 소스 프로젝트입니다. 참고: https://en.wikipedia.org/wiki/Free_and_open-source_software ↩