기여하는 방법#

Nix 생태계는 많은 자원봉사자와 소수의 유급 개발자가 개발하고 있으며, 세계에서 가장 큰 오픈 소스 소프트웨어 배포판 중 하나를 유지 관리하고 있습니다. 이를 계속 작동시키고 최신 상태로 유지하며 지속적으로 개선하는 일은 여러분의 지원 없이는 불가능합니다.

이 가이드는 Nix, Nixpkgs 또는 NixOS에 기여하는 방법을 보여 줍니다. 이 가이드는 여러분이 입문자 튜토리얼 시리즈에서 설명하는 기본 개념과 워크플로에 이미 어느 정도 능숙하다고 가정합니다. 가장 중요한 부분은 Nix 언어, 소프트웨어를 빌드하기 위해 derivation을 구성하는 다양한 Nixpkgs 메커니즘, 모듈 시스템, 그리고 NixOS 통합 테스트입니다.

중요

시간을 내어 기여할 수 없다면 Open Collective를 통해 NixOS 재단에 기부하는 것을 고려해 보십시오.

현재는 지식을 공유하고 Nix에 능숙한 개발자 커뮤니티를 키우기 위해 대면 행사에 자금을 지원하는 것에 중점을 두고 있습니다. 예산이 충분하다면 핵심 인프라와 코드의 지속적인 유지 관리 및 개발에 비용을 지불할 수 있을 것입니다. 이는 자원봉사자가 무기한으로 해 주기를 기대할 수 없는 고된 작업입니다.

시작하기#

관심 있는 부분과 관련된 참조 문서와 코드를 읽은 후, 충분히 알아본 상태에서 질문하는 것부터 시작하십시오.

다른 사용자 및 개발자와 연락하려면 커뮤니티 소통 플랫폼에 참여하십시오. 특정 주제에 관심이 있다면 커뮤니티 팀을 살펴보고 참여를 고려해 보십시오.

모든 소스 코드와 문서는 GitHub에 있으며, 변경 사항을 제안하려면 GitHub 계정이 필요합니다. 기술적인 논의는 이슈와 풀 리퀘스트 댓글에서 이루어집니다.

팁

Nix를 처음 접한다면 먼저 문서에 기여하는 것을 고려해 보십시오.

이 부분이 가장 많은 도움이 필요한 곳이며 가장 쉽게 시작할 수 있는 곳입니다.

저희도 그렇지 않기를 바라지만, 문서와 기여 가이드는 불완전하거나 오래된 경우가 많습니다. 저희는 이를 개선하기 위해 노력하고 있습니다. 기여 워크플로에서 문제를 마주칠 때마다 즉시 해결하면 모든 사람을 위해 상황을 개선하는 데 도움을 줄 수 있습니다. 이로 인해 원래 해결하려던 문제를 처리하는 속도가 느려질 수 있습니다. 하지만 앞으로 누구나 의미 있는 기여를 훨씬 쉽게 할 수 있게 될 것입니다. 그리고 장기적으로 더 나은 코드와 문서로 이어질 것입니다.

이슈 보고하기#

참고

코드나 작업 방법에 관한 일반적인 질문은 커뮤니티 소통 플랫폼을 이용해 주십시오

기술적인 문제를 설명하고 해결책을 제안하려면 GitHub 이슈를 열고, 문제가 해결되거나 무효화되면 이슈를 닫으십시오.

저희는 알고 있는 이슈만 고칠 수 있으므로, 마주치는 이슈는 무엇이든 보고해 주십시오.

여러분의 문제에 관해 이미 열려 있는 이슈가 없는지 확인하십시오. 이슈 템플릿을 따르고 요청된 정보를 모두 기입해 주십시오.

겪고 있는 문제를 재현할 수 있는 최소한의, 이해하기 쉬운 예제를 제공하는 데 특히 주의를 기울이십시오. 또한 문제를 직접 해결하려고 시도하면서 알아낸 내용도 함께 보여 주십시오. 이렇게 하면 이슈가 결국 해결될 가능성이 훨씬 높아지며, 이는 여러 가지 이유로 중요합니다.

  • 재현 가능한 예제는 간결하고 모호하지 않습니다.

    이는 이슈를 분류하고, 문제를 이해하고, 근본 원인을 찾고, 해결책을 개발하는 데 도움이 됩니다. 여러분이 사전에 조사한 내용은 유지 관리자의 분석에도 도움이 됩니다.

  • 누구나 해당 이슈가 여전히 유효한지 판단할 수 있게 해 줍니다.

    이슈는 오랫동안 처리되지 않은 채로 남아 있을 수 있습니다. 몇 달 또는 몇 년이 지난 뒤에도 이슈를 어떻게 처리할지 결정하려면 근본적인 문제가 여전히 남아 있는지, 아니면 해결되었는지 확인해야 합니다. 이 확인은 쉽게 할 수 있어야 합니다. 그래야 누구나 이슈 분류를 돕고, 유지 관리자에게 알려 이슈를 닫거나 우선순위를 다시 정하도록 할 수 있습니다.

  • 이 예제는 문제를 해결할 때 회귀 테스트로 사용할 수 있습니다.

팁

이상적으로는 해결책도 제안하거나 대략적으로 제시하는 것이 좋습니다. 사실 완벽한 이슈란 문제를 직접 해결하고 테스트를 통해 문제가 다시 발생하지 않도록 보장하는 풀 리퀘스트입니다.

중요

새로운 기능(패키지, 모듈, 명령 등)을 요청하는 이슈는 직접 구현할 의향과 능력이 있는 경우에만 열어 주십시오. 그러면 해당 이슈를 사용자 관심도를 가늠하고, 기능이 프로젝트에 적합한지 판단하고, 구현 전략을 논의하는 데 활용할 수 있습니다.

Nix에 기여하기#

Nix는 생태계의 초석이며 대부분 C++로 작성되어 있습니다.

개발을 돕고 싶다면 GitHub의 Nix 저장소에 있는 기여 가이드를 확인하십시오.

Nixpkgs에 기여하기#

팁

말로 된 소개를 원하시면 NixCon 2024 발표 Nixpkgs 기여자 되기를 시청하십시오.

Nixpkgs는 다양한 개발 영역을 가진 대규모 소프트웨어 프로젝트입니다. Nixpkgs 이슈 트래커에서 개선할 거리에 대한 영감을 얻을 수 있습니다.

돕고 싶다면 GitHub의 Nixpkgs 저장소에 있는 기여 가이드부터 읽고 코드와 기여 절차의 개요를 파악하십시오. 패키지 추가를 위한 프로그래밍 언어별 안내도 있습니다.

NixOS에 기여하기#

NixOS는 공동으로 개발되는 Linux 배포판으로, 선언적 프로그래밍 인터페이스를 통해 매우 유연한 방식으로 편리하게 설정할 수 있습니다. 모듈과 기본 설정의 코드는 nixpkgs GitHub 저장소의 nixos 디렉터리에 있습니다.

개선 작업을 시작하려면 NixOS 매뉴얼의 개발 섹션을 참고하십시오. NixOS 전용 기여자 문서는 아직 부족하지만, Nixpkgs 기여에 대한 관례 대부분이 적용됩니다. 이를 개선하는 데 도움을 주시면 대단히 감사하겠습니다.

새로운 기여자라면 good-first-bug 레이블이 붙은 이슈를 확인하십시오. 이미 익숙하다면 인기 있는 이슈를 해결해 주시는 것을 다른 NixOS 사용자들이 매우 고마워할 것입니다.

도움을 받는 방법#

풀 리퀘스트를 준비했는데 진행하는 데 도움이 필요하다면, 자세한 내용은 contributing-how-to-get-help를 확인하십시오.