"contrib"폴더에는 무엇이 있습니까?


42

종종 오픈 소스 소프트웨어 프로젝트에는 "contrib"라는 폴더가 있습니다. 예를 들어 Django에는 하나가 있습니다. 무엇입니까?


귀하의 연구를 공유하면 모든 사람을 도울 수 있습니다. 당신이 무엇을 시도했고 왜 그것이 당신의 요구를 충족시키지 못했는지 알려주십시오. 이것은 당신이 시간을내어 자신을 돕기 위해 노력했고, 명백한 답변을 되풀이하는 것을 막아 주며, 무엇보다도보다 구체적이고 적절한 답변을 얻는 데 도움이됩니다. 또한 묻는 방법
gnat

11
문제는 분명했다. IMO. - " Contrib프로젝트 에서이 폴더가 계속 표시됩니까?" - "왜, 왜 프로젝트에 없는가?" - "알아야 할 표준 규칙이 있습니까?"
BrainSlugs83

답변:


17

그것은이었다 소프트웨어입니다 있는 contrib 프로젝트에 uted하지만, 이는 실제로 핵심 개발자가 유지되지 않을 수 있습니다. "contrib"또는 "Contrib"라는 이름은 오랫동안 정립 된 규칙이지만 실제로는 그 이름에 특별한 것이 없으며 일반적으로 상당히 큰 프로젝트에서만 사용됩니다.


2
이것이 정답입니다.
Blrfl

나는 또한 contrib에있는 것들이 때때로 non-contrib로가는 것을 알아 차렸다. 나는 이것이 더 적극적인 지원과 개발을 위해 프로젝트 메인 라인에 채택되었다는 것을 의미한다고 생각합니까?
fostandy

1
@fostandy : 예, 맞습니다.
Bryan Oakley

15

떠오르는 인기있는 오픈 소스 프로젝트를 살펴보면 "contrib"폴더에 대한 언급이 없습니다.

"contrib"폴더가있는 유일한 것은 Django입니다. Django의 경우이 폴더의 역할은 설명서에 이미 설명되어 있습니다 .

Django는 Python의 "배터리 포함"철학을 따르고 자합니다. 일반적인 웹 개발 문제를 해결하는 다양한 추가 옵션 도구가 제공됩니다.

이 코드 django/contrib는 Django 배포판에 있습니다. 이 문서는 패키지에 대한 의존성과 함께 패키지에 대한 개요를 제공합니다.

Django Book의 16 장 에는이 디렉토리의 역할과 목차에 대한 자세한 설명이 들어 있습니다.

또 다른 예는 Solr 입니다. 을 사용 gitstats하면 기고자에 대한 통계를 얻을 수 있습니다.

Robert Muir         22.09%
Michael McCandless  13.60%
Mark Robert Miller   9.73%
Uwe Schindler        8.17%
Yonik Seeley         5.56%
Steven Rowe          5.55%

그런 다음 다음 contrib을 실행 하여 디렉토리 만 선택할 수 있습니다 .

git filter-branch --subdirectory-filter solr/contrib --prune-empty

통계를 한 번 더 얻으십시오.

Robert Muir         19.62%
Steven Rowe          8.87%
Mark Robert Miller   8.33%
Uwe Schindler        8.06%
James Dyer           7.80%

따라서 최고 저자는 실질적으로 동일하므로 외부인의 기여가 아닙니다. contrib폴더 내부의 디렉토리를 보면 장고에서와 마찬가지로“다양한 옵션 도구”인 것 같습니다. 예를 들어 Solr을 작동시키기 위해 데이터 가져 오기 요청 핸들러가 필요하지 않지만 데이터베이스 나 XML에서 데이터를 가져 오려면 contrib폴더 에 저장하는 것이 좋습니다. map-reduce와 마찬가지로 반드시 필요하지는 않지만 필요한 경우가 있습니다.

그 플러그인이나 애드온입니까? 나는이 용어를 사용하지 않을 것이다. 플러그인 및 애드온은 기본 애플리케이션과 특정 통합됩니다. 예를 들어, 플러그인은 독립형으로 실행되지 않지만 기본 애플리케이션 내에서 호스팅됩니다. 반면에 contrib독립형으로 실행할 수있는 도구가 포함되어 있습니다.


2
실제로, 나는 "contrib"이 무엇인지 정확히 궁금했습니다. 그런 다음 솔트도 그런트를했다. 이것은 plugin / add-on /의 또 다른 용어입니까?
Martyn

@ user3265472 : Solr을 포함하도록 답변을 편집했습니다. 그런트에 관해서는, 당신이 얘기 이 하나 ? contrib 디렉토리가 없다고 생각합니다.
Arseni Mourzenko

그래, 그중 하나야, 질문에서 폴더를 놓쳤다. 나는 "contrib"이라는 용어를 스스로 이해하려고했다. 그런트에는 그런 플러그인 (Grunt-contrib-uglify, Grunt-contrib-jshint 등)이라는 다양한 플러그인 / 라이브러리 (?)가 있습니다. 주어진 설명은 나에게 더 나은 아이디어를 제공합니다. 감사합니다.
Martyn

2
데비안의 일부 패키지는 'contrib'라는 패키지 클래스에 속합니다. 이것은 데비안 정책 매뉴얼이 말한 내용입니다. "다른 아카이브 영역 (무료, 비유 용)의 패키지는 데비안 배포판의 일부로 간주되지 않습니다. 버그 추적 시스템 및 메일 링리스트) "
케빈 휠러

3
수년 동안 내가 본 많은 OSS 프로젝트에는 폴더가 있습니다 Contrib(Akka.NET에서 또 다른 폴더를 보고 있습니다)! -폴더 이름이 왜 또는이 명명 규칙에 대한 규칙이 무엇인지 모르겠습니다. -지금까지 언급 한 것은 "contrib"이 사용한 모든 방식에 맞는 것 같지 않습니다. -모든 프로젝트가 완전히 다른 것처럼 보입니다 (Akka.Net은 Akka.Clustering, Logging, DI, Persistence, TestKits 등 코드베이스의 1/4을 넣는 것으로 보입니다).
BrainSlugs83

6

그것은 라이브러리 또는 구성 요소가 의미있어 있는 contrib의 프로젝트에 UTE,하지만 소유하지 않은하거나 프로젝트 자체의 일부. 나는 항상 그것을 사용하는 타사 라이브러리를 배치하기 위해 공통 또는 공유 위치로 사용했습니다.

예를 들어 다음이있을 수 있습니다.

  • / Contrib / log4net-xxx
  • /Contrib/SSH.NET-xxx
  • / BackendService
  • / DesktopUI
  • / GenUtils
  • / SMCore
  • / WebUI

그런 다음 상대 경로를 사용하여 각 프로젝트 구성 요소에서 해당 구성 요소를 참조하므로 빌드하기 전에 설정이나 구성이 필요하지 않습니다. 로컬에서 체크 아웃 한 위치에 상관없이 리포지토리에서 바로 빌드됩니다.


나는이 견해를 공유하지 않습니다. 당신이 무엇을 설명 들어, 차라리 이름을 사용 vendor하거나 thirdparty.
moi

2

Git은이 규칙을 사용하는 오픈 소스 소프트웨어의 훌륭한 예입니다.

https://github.com/git/git/tree/master/contrib

해당 README.md 파일에서 발췌 한 내용은 다음과 같습니다.

기여 소프트웨어

이러한 조각은 공식 자식 소스 트리의 일부로 제공되지만 다소 다른 상태입니다. 이 도구의 목적은 git 주변에 흥미로운 도구를, 심지어 실험적인 도구로 유지하고, 사용자에게 더 쉽게 액세스 할 수 있도록하고, 도구를 더 넓게 노출시켜 더 빠르게 개선 할 수 있도록하는 것입니다.

나는 이것들을 그렇게 많이 만질 것으로 기대하지 않습니다. 내 일상 작업과 관련하여 이러한 하위 디렉토리는 해당 기본 작성자가 소유합니다. 이러한 구성 요소 사용자와 contrib / subtree "소유자"사용자가 해결해야 할 기술적 / 디자인 문제가있는 경우 도움을 드리겠습니다. 그러나 문제를 해결 및 / 또는 개선하려는 시도 는 하위 트리 소유자의 측면에 있어야합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.