Merge pull request #44 from kijin/fix/contributor-guide

참여 안내문 수정
This commit is contained in:
Kijin Sung 2016-01-09 15:17:09 +09:00
commit 73dc9c3c35
2 changed files with 149 additions and 19 deletions

View file

@ -1,25 +1,149 @@
# Contribution Guide
# 개발에 참여하고 싶으신 분들께 드리는 안내문
## Issue 작성
Issue 작성 시 참고해주세요.
## 이슈 작성
* 작성하려는 이슈가 이미 있는지 검색 후 등록해주세요. 비슷한 이슈가 있다면 댓글로 추가 내용을 덧붙일 수 있습니다.
* 이슈에는 하나의 문제 또는 제안을 작성해주세요. 절대 하나의 이슈에 2개 이상의 내용을 적지마세요.
* 이슈는 가능한 상세하고 간결하게 작성해주세요.
* 필요하다면 화면을 캡처하여 이미지를 업로드할 수 있습니다.
- **구글에서 답을 찾을 수 있는지 먼저 확인해 주십시오.**
- 관련된 이슈가 이미 있는지 검색하고, 같은 내용이라면 댓글로 덧붙여 주십시오.
오래된 이슈라도 메일로 알림이 전달되므로 묻힐 염려가 없습니다.
- 무관한 이슈에 댓글을 달지 말아 주십시오. 엉뚱한 사람에게 메일 알림이 전달됩니다.
- 2가지 이상 서로 다른 문제가 있는 경우, 각각 이슈를 등록해 주십시오.
- **버그 신고 전 자신의 서버가 RhymiX의 실행 환경을 충족하는지 확인해 주십시오.**
- PHP 5.3 미만, EUC-KR 환경, 퍼미션 오류 등은 호스팅 업체에 문의하셔야 합니다.
- 자신의 서버 환경은 `phpinfo`를 사용하여 확인할 수 있습니다.
- **버그 신고에는 아래의 내용을 반드시 포함시켜 주십시오.**
- 실행 환경
- 호스팅 환경에 대한 간단한 설명 (예: ○○24 리눅스 웹호스팅)
- RhymiX 버전 (예: 1.8.15)
- PHP 버전 (예: 5.6.16)
- 브라우저 종류 및 버전 (예: IE 11)
- 에러가 발생하는 경우 에러 메시지 전체
- 화면상에 에러가 표시되거나 디자인이 깨져 보이는 경우, 해당 스크린샷
- 브라우저의 개발자도구(F12)에 에러가 표시되는 경우, 콘솔 및 네트워크 탭의 스크린샷
- 증상을 확인해 볼 수 있는 웹사이트 주소
- 내부망이나 로컬 개발환경 등 외부인의 접속이 원천적으로 불가능한 경우가 아니라면 반드시 주소를 남겨 주시기 바랍니다.
## Pull request(PR)
* `master` 브랜치의 코드는 수정하지마세요.
* PR은 `develop` 브랜치만 허용합니다.
* `develop` 브랜치를 부모로 한 토픽 브랜치를 활용하면 편리합니다.
## 풀 리퀘스트(PR) 작성
- 자신의 저장소에서 별도의 브랜치를 만들어 작업하신 후, `develop` 브랜치로 풀 리퀘스트를 넣어주시면 됩니다.
- 예: 썸네일 관련 버그를 수정하는 경우 자신의 저장소에서 `fix/thumbnail` 브랜치를 만들어 작업하십시오.
작성 후에 수정할 것이 있으면 이 브랜치에서 계속 작업하고 커밋하시면 됩니다. PR 페이지에 자동으로 반영됩니다.
- 개발 진행 및 안정화에 따라 브랜치별 운영 정책이 변경될 수 있으니 유의하십시오.
- 아래의 코딩 규칙을 지키려고 노력해 주시기 바랍니다.
- 코딩 규칙에 맞지 않는 소스를 발견하더라도 PR의 주제외 관계없는 부분은 함부로 고치지 마세요!
코딩 규칙에 맞도록 소스를 수정하는 작업은 모두 별도의 PR로 처리하여야 합니다.
- 단, PR을 검토하는 개발자들은 괄호의 위치와 같은 사소한 문제를 지적하느라고
실제 기능에 관심을 주지 못하는 오류를 범하지 않도록 노력해야 합니다.
## Coding Guidelines
코드를 기여할 때 Coding conventions을 따라야합니다.
## 코딩 규칙
* 모든 text 파일의 charset은 BOM이 없는 UTF-8입니다.
* newline은 UNIX type을 사용합니다. 일부 파일이 다른 type을 사용하더라도 절대 고치지 마세요!
* 들여쓰기는 1개의 탭으로 합니다.
* class 선언과 function, if, foreach, for, while 등 중괄호의 `{}`는 다음 줄에 있어야 합니다.
* 마찬가지로 선언 다음에는 공백을 두지 않습니다. ex) CORRECT `if(...)`, INCORRECT `if (...)`
* **Coding convention에 맞지 않는 코드를 발견 하더라도 목적과 관계 없는 코드는 절대 고치지 마세요.**
### 일반
PHP, HTML, XML, CSS, JS 등 모든 텍스트 파일의 문자셋은 BOM이 없는 UTF-8입니다.
줄바꿈 문자는 유닉스 방식(`LF`)을 따릅니다.
윈도우 메모장에서 편집한 파일은 위의 두 가지 규칙에 어긋납니다.
윈도우 사용자는 [Notepad++](https://notepad-plus-plus.org/) 등의 개발자용 에디터를 사용하여 편집하시기 바랍니다.
들여쓰기는 1개의 탭으로 합니다.
단, 탭 대신 공백을 사용하는 파일에서는 일관성 유지를 위해 4칸의 공백을 사용할 수 있습니다.
PHP 코드만으로 이루어진 파일은 맨 끝에 `?>` 태그를 사용하지 않습니다.
### 공백 및 줄바꿈 규칙
클래스 및 함수 선언과 `if`, `for`, `foreach`, `while` 등의 중괄호는 다음 줄에 씁니다.
class Foo
{ // RIGHT
public function bar() { // WRONG
}
}
단, 클로져는 같은 줄에 중괄호를 쓸 수 있으며, 이 경우 중괄호 앞뒤에 한 칸씩 공백을 둡니다.
닫는 중괄호와 그 뒤의 기호 사이에는 공백을 두지 않습니다.
$foo = function($bar) { return $bar + 1; }; // RIGHT
$foo = function($bar){return $bar + 1;}; // WRONG
자바스크립트에서는 거의 모든 함수가 클로져이며, 잘못 줄바꿈할 경우 세미콜론이 삽입될 수 있으므로
중괄호를 다음 줄에 쓰지 않아도 됩니다.
$("#foo").on("click", function() { // OK
if ($(this).val() === "bar") { // OK
$(this).val("baz");
}
});
함수 호출시 함수명과 괄호 사이, 괄호와 인자 사이에 공백을 두지 않습니다.
인자를 구분하는 쉼표는 뒤쪽에만 한 칸의 공백을 둡니다.
function foobar($baz, $param) // RIGHT
function foobar ( $baz , $param ) // WRONG
`if`, `for`, `foreach`, `while` 등의 키워드 뒤에는 한 칸의 공백을 둘 수 있으며,
`==`, `!=`, `>` 등의 연산자는 앞뒤에 한 칸씩 공백을 둡니다.
if ($foo === $bar) // RECOMMENDED
if($foo === $bar) // OK for XE Compatibility
if($foo==$bar){ // WRONG
### 주석
주석은 관련 코드 윗줄에 써야 합니다. 조건문이나 루프의 경우에도 마찬가지입니다.
// If foo is bar, do something.
if ($foo->isBar())
{
// Note: this will do X, Y, and Z.
$foo->doSomething();
}
// Otherwise, do something else.
else
{
// TODO: Refactor this later.
$foo->doSomethingElse();
}
모든 클래스와 함수에는 `/**`으로 시작하는 PHPDoc 방식의 주석을 붙여야 합니다.
PHPDoc 주석 작성에 어려움이 있는 경우, 다른 클래스와 함수의 주석을 참고하십시오.
/**
* This is the Foo class.
*/
class Foo
{
/**
* Constructor.
*
* @param string $member_srl
*/
public function __construct($member_srl)
{
// 생략
}
/**
* Check if this Foo is bar.
*
* @return bool
*/
public function isBar()
{
return true;
}
}
불가피한 경우를 제외하면 주석은 영문으로 쓰는 것을 원칙으로 하며,
대문자로 시작하는 완전한 문장으로 이루어져야 합니다.
### 기타
RhymiX에서 정한 `error_reporting` 설정 하에서 어떤 에러도 발생하지 않도록 하는 것을 목표로 합니다.
문자열과 문자열, 정수와 정수를 비교할 때는 가능하면 `==` 대신 `===`을 사용합니다.
실제 자료형이 다를 가능성이 있는 경우 `intval()`, `strval()` 등의 함수와 함께 사용합니다.
여기에서 규정하지 않은 내용은 [PSR-1](http://www.php-fig.org/psr/psr-1/)과
[PSR-2](http://www.php-fig.org/psr/psr-2/)를 따릅니다.

View file

@ -39,6 +39,12 @@ RhymiX는 개발자와 사용자가 서로의 권리와 책임을 존중하는
- php.ini에서 session.auto_start = Off로 설정되어 있어야 합니다.
- 설치 폴더 또는 files 폴더에 쓰기 권한이 주어져야 합니다.
### 개발 참여
RhymiX는 개발자, 디자이너, 번역가 등의 도움과 일반 사용자들의 버그 신고를 환영합니다.
참여를 원하시는 분은 질서있고 효율적인 프로젝트 운영을 위해
[CONTRIBUTING.md](./CONTRIBUTING.md)를 먼저 읽어 주시기 바랍니다.
### 공식 홈페이지
- XETOWN : https://www.xetown.com