오픈 소스 PHP 애플리케이션 출시를위한 모범 사례


10

저는 생계를위한 PHP 개발자이지만 이전에 오픈 소스 프로젝트에 참여한 적이 없었습니다.

본인이 사용할 CMS를 개발 중입니다. 나는 프로토 타입을 가지고 있는데 일단 준비가되면 (아마 2 개월 정도) 이것이 PHP 커뮤니티가 관심을 가질만한 일이라고 생각합니다.

나는 상당히 자신감있는 개발자이지만 특히 오픈 소스 문제와 관련하여 지식이 부족한 영역이 있습니다.

  • 프로젝트를 홍보하고 공동 작업에 관심이있는 다른 사람들을 찾는 가장 좋은 방법은 무엇입니까?
  • 내 CMS는 CakePHP에 의해 구동되며 기본적으로 그 위에 레이어로 있습니다. GitHub에서 CakePHP 프로젝트를 분기했습니다. 이전에 SVN (버전 제어 시스템)을 사용했지만 GIT에 익숙하지 않으므로 "최상의 방법"으로 작업하고 있는지 확인하고 싶습니다.
  • 라이센스 문제에 대해 어떻게 알 수 있습니까? 내 앱에 가장 적합한 오픈 소스 라이센스는 무엇입니까? 또한 내 프로젝트는 다른 많은 오픈 소스 프로젝트에서 빌려 왔습니다. 예를 들어 코드 섹션이 많이 수정되었지만 저작권 / 라이센스 통지가 있습니다-내 의무가 무엇인지 전혀 모릅니다 이것들을 유지

이것들은 내가 가진 질문의 몇 가지 예일 뿐이지 만, 나에게 유용한 몇 가지 자료가 있어야한다고 생각합니다. 시작하기 가장 좋은 곳은 어디입니까? 이러한 문제를 다루는 최고의 커뮤니티 / 사이트는 무엇입니까? 주위를 둘러 보았지만 많이 생각해 낼 수 없었습니다 ...


라이센스에 관한 몇 가지 좋은 답변이 있었습니까? 다른 질문에 대한 아이디어가 있습니까? 아마도 이것을 두 개의 게시물로 나누었을 것입니다!
user916336

답변:


5

나는 변호사가 아니지만, 이것 하나를 시도해 볼 것입니다.

CakePHP는 MIT 라이센스에 따라 라이센스가 부여됩니다. 이는 기본적으로 라이센스가 해당 소프트웨어와 함께 배포되는 조건에서 독점 소프트웨어 내에서 재사용 할 수 있음을 의미합니다. 많은 오픈 소스 프로젝트가 공개 된 GPL 라이센스 와 호환 됩니다.

에 관해서는 다른 프로젝트 당신 "차용", 당신은 자신의 라이센스 유형을 확인하고 서로 사용하기로 결정 라이센스 유형과 자신의 호환성을 확인해야합니다. 경우 어떤 그들이 사용하는 GPL의 라이센스를, 당신은 또한 라이센스 상태의 조건으로, GPL로 공개해야

GPL은 일반적으로 사용되는 최초의 카피 레프트 라이센스이므로 파생 된 저작물은 동일한 라이센스 조건에 따라서 만 배포 될 수 있습니다.

...

GPL은 일반적으로 사용되는 최초의 카피 레프트 라이센스이므로 파생 된 저작물은 동일한 라이센스 조건에 따라서 만 배포 될 수 있습니다.

제 제안은 GNU GPL v3 라이센스에 따라 귀하의 저작물에 대한 적절한 소유권을 부여하는 한편 다른 사람들이 상업적 프로젝트와 공개 프로젝트 모두에서 잠재적으로 라이센스를 사용할 수있게함으로써 릴리스 하는 것입니다. 그러나 "빌려온"프로젝트의 라이센스는 호환 가능해야합니다 .


Git 및 Github의 모범 사례와 관련 git submodule하여 자신의 라이브러리에 다른 프로젝트를 포함시키는 데 사용 하십시오. 작업을 자신의 것으로 다시 커밋하지 않기 때문에 파일을 직접 포함하는 것보다 낫습니다.

$ git submodule add git://github.com/cakephp/cakephp.git vendor/cake-php
$ git submodule update --init

자식 서브 모듈도 확실하지 않습니다. 예를 들어 내 프로젝트는 jQuery와 jQuery UI를 사용합니다. GitHub의 소스가 많은 파일과 폴더로 분할되어 하위 모듈로 포함시키는 방법은 무엇입니까? 나는 또한 내가 사용하고있는 HTMLPurifier와 같은 것을 가지고있다. 내가 필요로하는 파일은 하나의 하위 폴더에 있지만 git 하위 모듈을 사용하면 선택의 여지가없는 것 같습니다. 필요하지 않은 추가 항목을 포함하거나 프로젝트를 불필요하게 대량으로 만들거나 다른 사람의 작업을 커밋하는 것처럼 내 자신의!

라이센스의 특성과 마찬가지로 원하는 파일 만 분할하여 포함 할 수 없습니다. 패키지화 된 전체 프로젝트를 포함해야합니다. git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
adlawson

다른 사람들은 이것을하지 않는 것 같습니다 : Wordpress를 가져 가면 jQuery에서 필요한 축소 된 파일을 폴더에 넣고 폴더로 커밋 한 것 같습니다 : github.com/wordpress/wordpress/tree/master/wp-includes/js

1
WordPress는 버전 제어에 SVN을 사용합니다. 그들의 Github 저장소는 단순히 거울입니다. 내가 아는 한 SVN에는 "하위 모듈"기능이 없으므로 다시 커밋하는 옵션이 없었습니다. 또 다른 참고로, 모범 사례의 예로 WordPress를 사용 하지 마십시오 .
adlawson

내가 누락 된 것이 아니라면 jQuery의 경우이 작업을 수행 할 수있는 방법이없는 것 같습니다. 그들의 저장소 github.com/jquery/jquery를 살펴보십시오. 수백 개의 개별 .js 파일과 빌드 스크립트 일뿐이므로 jquery.com에서 사본을 다운로드하여 직접 커밋하지 않으면 프로젝트에 포함시킬 수 없습니다 또는 내가 틀렸습니까?

0

Eric S. Raymond (이 책의 나머지 부분도 읽을 가치가 있음) 에서이 안내서 를 확인하십시오 .

개인적으로, 나는 그것에 대해 크게 걱정하지 않을 것입니다-당신은 이미 직접 돈을 벌지 않을 것입니다. 이미 훌륭한 무료 범용 CMS가 풍부하기 때문에 다른 사람도 없습니다. 바이러스 성 라이센스 (일반적으로 GPL 또는 다양한)를 사용하는 코드를 차용하지 않는 한, 가능한 한 가장 자유로운 라이센스 (MIT 또는 BSD)를 사용하는 것이 좋습니다.

사용중인 라이브러리 및 스 니펫의 모든 라이센스를주의해서 읽으십시오. 코드를 재배포하고 수정할 수 있는지 여부와 파생 된 저작물에 코드를 포함해야하는지 여부를 명시해야합니다 (대부분의 라이센스에는 코드가 필요하며 그렇지 않은 라이센스의 경우에도 귀속) 그들의 작품에 대한 원저자)

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