mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
설치 환경, 개발 참여 안내문 등의 링크를 공식 매뉴얼 주소로 대체
This commit is contained in:
parent
bc7f8a73c3
commit
577f902b49
2 changed files with 6 additions and 229 deletions
230
CONTRIBUTING.md
230
CONTRIBUTING.md
|
|
@ -1,230 +1,6 @@
|
||||||
# 개발에 참여하고 싶으신 분들께 드리는 안내문
|
# 개발에 참여하고 싶으신 분들께 드리는 안내문
|
||||||
|
|
||||||
## 이슈 작성
|
이 파일의 내용은 공식 매뉴얼로 옮겨졌습니다.
|
||||||
|
|
||||||
- **구글에서 답을 찾을 수 있는지 먼저 확인해 주십시오.**
|
|
||||||
- 관련된 이슈가 이미 있는지 검색하고, 같은 내용이라면 댓글로 덧붙여 주십시오.
|
|
||||||
오래된 이슈라도 메일로 알림이 전달되므로 묻힐 염려가 없습니다.
|
|
||||||
- 무관한 이슈에 댓글을 달지 말아 주십시오. 엉뚱한 사람에게 메일 알림이 전달됩니다.
|
|
||||||
- 2가지 이상 서로 다른 문제가 있는 경우, 각각 이슈를 등록해 주십시오.
|
|
||||||
- 보안 취약점은 공개적으로 언급하지 말고 devops@rhymix.org로 알려 주시면 감사하겠습니다.
|
|
||||||
- **버그 신고 전 자신의 서버가 Rhymix의 [설치 환경](https://github.com/rhymix/rhymix-docs/blob/master/ko/introduction/requirements.md)을 충족하는지 확인해 주십시오.**
|
|
||||||
- 자신의 서버 환경은 `phpinfo`를 사용하여 확인할 수 있습니다.
|
|
||||||
- 낮은 PHP 버전, 확장 미설치, 퍼미션 관련 오류는 호스팅 업체에 문의하셔야 합니다.
|
|
||||||
- **버그 신고에는 아래의 내용을 반드시 포함시켜 주십시오.**
|
|
||||||
- 실행 환경
|
|
||||||
- 호스팅 환경에 대한 간단한 설명 (예: ○○24 리눅스 웹호스팅)
|
|
||||||
- Rhymix 버전 (예: 1.9.9.8)
|
|
||||||
- PHP 버전 (예: 7.2.32)
|
|
||||||
- 브라우저 종류 및 버전 (예: IE 11)
|
|
||||||
- 에러가 발생하는 경우 에러 메시지 전체
|
|
||||||
- 화면상에 에러가 표시되거나 디자인이 깨져 보이는 경우, 해당 스크린샷
|
|
||||||
- 브라우저의 개발자도구(F12)에 에러가 표시되는 경우, 콘솔 및 네트워크 탭의 스크린샷
|
|
||||||
- 증상을 확인해 볼 수 있는 웹사이트 주소
|
|
||||||
- 내부망이나 로컬 개발환경 등 외부인의 접속이 원천적으로 불가능한 경우가 아니라면 반드시 주소를 남겨 주시기 바랍니다.
|
|
||||||
- 공개적인 개발을 추구하는 오픈소스 소프트웨어의 특성상, 이슈 해결에 필요한 정보를 공개하지 않는 경우
|
|
||||||
처리가 지연되거나 제3자에게 비용을 지불하고 해결해야 하는 등 불이익이 발생할 수 있습니다.
|
|
||||||
|
|
||||||
## 풀 리퀘스트(PR) 작성
|
|
||||||
|
|
||||||
- 자신의 저장소에서 별도의 브랜치를 만들어 작업하신 후, `develop` 브랜치로 풀 리퀘스트를 넣어주시면 됩니다.
|
|
||||||
- 예: 썸네일 관련 버그를 수정하는 경우 자신의 저장소에서 `fix/thumbnail` 브랜치를 만들어 작업하십시오.
|
|
||||||
작성 후에 수정할 것이 있으면 이 브랜치에서 계속 작업하고 커밋하시면 됩니다. PR 페이지에 자동으로 반영됩니다.
|
|
||||||
- 개발 진행 및 안정화에 따라 브랜치별 운영 정책이 변경될 수 있으니 유의하십시오.
|
|
||||||
- 아래의 코딩 규칙을 지키려고 노력해 주시기 바랍니다.
|
|
||||||
- **코딩 규칙에 맞지 않는 소스를 발견하더라도 PR의 주제와 관계없는 부분은 함부로 고치지 마세요!
|
|
||||||
코딩 규칙에 맞도록 소스를 수정하는 작업은 모두 별도의 PR로 처리하여야 합니다.**
|
|
||||||
- **단, PR을 검토하는 개발자들은 괄호의 위치와 같은 사소한 문제를 지적하느라고
|
|
||||||
실제 기능에 관심을 주지 못하는 오류를 범하지 않도록 노력해야 합니다.**
|
|
||||||
- PR의 제목은 커밋 메시지에 적용되는 규칙을 참고하되, 가능하면 한글로 작성해 주십시오.
|
|
||||||
- 유닛 테스트를 통과하지 못하거나, 통과하기 위해 테스트를 삭제할 경우 PR이 거부될 수 있습니다.
|
|
||||||
단, 테스트 자체에 문제가 있거나 테스트 내용을 변경해야 한다고 생각되는 경우 개발팀과 의논해 주십시오.
|
|
||||||
|
|
||||||
## 저작권 및 라이선스
|
|
||||||
|
|
||||||
- 모든 소스 코드의 저작권은 해당 작성자가 가집니다.
|
|
||||||
- 모든 소스 코드에는 GPL v2 또는 그 이후 버전의 라이선스가 적용됩니다.
|
|
||||||
- Rhymix 개발팀을 비롯한 전세계 어느 누구라도 어떤 목적으로든지 자유롭게 사용, 수정, 재배포할 수 있습니다.
|
|
||||||
- 타인에게 저작권이 있는 코드를 가져온 경우, 원본의 라이선스를 GPL로 전환할 수 있어야 합니다.
|
|
||||||
- 한 번 적용한 라이선스는 철회할 수 없습니다.
|
|
||||||
- **풀 리퀘스트를 작성하실 경우 위의 두 가지에 동의하시는 것으로 간주합니다.**
|
|
||||||
|
|
||||||
## 코딩 규칙
|
|
||||||
|
|
||||||
### 일반
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
조건문이나 순환문 내에 하나의 명령만 있는 경우에도 반드시 중괄호를 사용합니다.
|
|
||||||
그래야 나중에 명령이 추가될 경우 수정하기 편리합니다.
|
|
||||||
|
|
||||||
if (!$foo) return false; // WRONG
|
|
||||||
if (!$bar) // RIGHT
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
단, 클로져는 같은 줄에 중괄호를 쓸 수 있으며,
|
|
||||||
이 경우 중괄호 앞뒤에 한 칸씩 공백을 두어 클로져가 시작되고 끝나는 지점을 찾기 쉽도록 합니다.
|
|
||||||
닫는 중괄호와 그 뒤의 기호 사이에는 공백을 두지 않습니다.
|
|
||||||
|
|
||||||
$foo = function($bar) { return $bar + 1; }; // RIGHT
|
|
||||||
$foo = function($bar) { // RIGHT
|
|
||||||
return $bar + 1;
|
|
||||||
};
|
|
||||||
$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
|
|
||||||
|
|
||||||
여러 줄에 걸쳐 배열을 선언할 경우, 마지막 구성요소 뒤에 쉼표를 남깁니다.
|
|
||||||
그래야 나중에 구성요소를 추가할 때 편리합니다.
|
|
||||||
|
|
||||||
$animals = array(
|
|
||||||
'bear',
|
|
||||||
'cat',
|
|
||||||
'dog', // COMMA
|
|
||||||
);
|
|
||||||
|
|
||||||
단, 자바스크립트 및 JSON에서는 마지막 쉼표를 반드시 삭제해야 합니다.
|
|
||||||
쉼표를 남겨둘 경우 일부 브라우저에서 오류가 발생할 수 있기 때문입니다.
|
|
||||||
|
|
||||||
var animals = [
|
|
||||||
'bear',
|
|
||||||
'cat',
|
|
||||||
'dog' // NO COMMA
|
|
||||||
];
|
|
||||||
|
|
||||||
### 주석
|
|
||||||
|
|
||||||
주석은 관련 코드 윗줄에 써야 합니다. 조건문이나 루프의 경우에도 마찬가지입니다.
|
|
||||||
|
|
||||||
// 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
불가피한 경우를 제외하면 주석은 영문으로 쓰는 것을 원칙으로 하며,
|
|
||||||
대문자로 시작하는 완전한 문장으로 이루어져야 합니다.
|
|
||||||
|
|
||||||
### 커밋 메시지
|
|
||||||
|
|
||||||
커밋 메시지는 가능하면 영문으로 작성하며, **동사원형**으로 시작하는 **현재형**, **명령형** 문장 사용을 원칙으로 합니다.
|
|
||||||
|
|
||||||
Delete unnecessary condition // RIGHT
|
|
||||||
Fix #1234 // RIGHT
|
|
||||||
Deletes unnecessary condition // WRONG (불필요한 동사변화)
|
|
||||||
Fixed #1234 // WRONG (불필요한 과거형)
|
|
||||||
|
|
||||||
이 규칙에 맞추어 영문으로 커밋 메시지를 작성하기 어려운 경우, 한글로 작성해도 무방합니다.
|
|
||||||
한글 커밋 메시지는 **어디서** **무엇을** **어떻게** 했는지 간결하고 명확하고 격식있게 표현하며,
|
|
||||||
가능하면 현재형 동사로 마치도록 합니다.
|
|
||||||
|
|
||||||
크롬 최신 버전에서 스크립트 오류 해결 // RIGHT
|
|
||||||
Foo 클래스에 bar() 메소드 추가 // RIGHT
|
|
||||||
파일첨부 에러나는거 고쳤쩌염~^^ // WRONG (격식없는 표현)
|
|
||||||
함수 개선 // WRONG (두리뭉실한 표현)
|
|
||||||
|
|
||||||
### 기타
|
|
||||||
|
|
||||||
Rhymix의 기본 `error_reporting` 설정 하에서 어떤 에러도 발생하지 않도록 하는 것을 목표로 하지만,
|
|
||||||
선언하지 않은 변수 등 `E_NOTICE`를 일으키는 문제도 가능하면 새로 만들어내지는 않도록 합니다.
|
|
||||||
|
|
||||||
문자열과 문자열, 정수와 정수를 비교할 때는 가능하면 `==` 대신 `===`을 사용합니다.
|
|
||||||
실제 자료형이 다를 가능성이 있는 경우 `intval()`, `strval()` 등의 함수와 함께 사용합니다.
|
|
||||||
정수는 항상 64비트 범위를 가지는 것으로 가정합니다.
|
|
||||||
|
|
||||||
PHP 5.4 이상에서 지원하는 간단한 배열 문법(`[1, 2, 3]`)을 사용할 수 있으나,
|
|
||||||
복잡한 구조의 배열을 선언할 때는 이 문법이 오히려 가독성을 해칠 수 있으니 주의하시기 바랍니다.
|
|
||||||
|
|
||||||
전역 상수를 참조할 때는 `\RX_CLIENT_IP`와 같이 `\`를 앞에 붙여서,
|
|
||||||
추후 다른 네임스페이스로 코드를 이동 또는 복사하더라도 문제가 생기지 않도록 합니다.
|
|
||||||
|
|
||||||
여기에서 규정하지 않은 내용은 [PSR-1](http://www.php-fig.org/psr/psr-1/)과
|
|
||||||
[PSR-2](http://www.php-fig.org/psr/psr-2/)를 따릅니다.
|
|
||||||
|
|
||||||
composer 라이브러리를 업데이트할 때는 라이믹스에서 공식적으로 지원하는 환경(PHP 7.0 이상)에서
|
|
||||||
정상 작동하는 버전으로 고정시켜야 합니다. 지원하는 환경을 초과하는 버전을 필요로 하는 라이브러리를 가져와서는 안됩니다.
|
|
||||||
또한 불필요한 라이브러리가 들어오는 것을 막기 위해 반드시 아래의 명령으로 업데이트합니다.
|
|
||||||
|
|
||||||
composer update --no-dev --optimize-autoloader
|
|
||||||
|
|
||||||
|
- [이슈 및 PR 작성 방법](https://rhymix.org/manual/contrib/github)
|
||||||
|
- [코딩 규칙](https://rhymix.org/manual/contrib/coding-standards)
|
||||||
|
|
|
||||||
|
|
@ -37,13 +37,14 @@ Rhymix는 개발자와 사용자가 서로의 권리와 책임을 존중하는
|
||||||
### 설치 환경
|
### 설치 환경
|
||||||
|
|
||||||
Rhymix를 사용하려면 PHP 7.0 이상, MySQL 5.0.7 이상 버전이 필요합니다.
|
Rhymix를 사용하려면 PHP 7.0 이상, MySQL 5.0.7 이상 버전이 필요합니다.
|
||||||
자세한 설치 환경은 [매뉴얼](https://github.com/rhymix/rhymix-docs/blob/master/ko/introduction/requirements.md)을 참고하십시오.
|
자세한 설치 환경은 [매뉴얼](https://rhymix.org/manual/introduction/requirements)을 참고하십시오.
|
||||||
|
|
||||||
### 개발 참여
|
### 개발 참여
|
||||||
|
|
||||||
Rhymix는 개발자, 디자이너, 번역가 등의 도움과 일반 사용자들의 버그 신고를 환영합니다.
|
Rhymix는 개발자, 디자이너, 번역가 등의 도움과 일반 사용자들의 버그 신고를 환영합니다.
|
||||||
참여를 원하시는 분은 질서있고 효율적인 프로젝트 운영을 위해
|
참여를 원하시는 분은 질서있고 효율적인 프로젝트 운영을 위해
|
||||||
[CONTRIBUTING.md](./CONTRIBUTING.md)를 먼저 읽어 주시기 바랍니다.
|
[이슈 및 PR 작성 방법](https://rhymix.org/manual/contrib/github)과
|
||||||
|
[코딩 규칙](https://rhymix.org/manual/contrib/coding-standards)을 먼저 읽어 주시기 바랍니다.
|
||||||
|
|
||||||
보안 취약점을 발견하셨다면 해커들에게 알려지기 전에 먼저 패치를 작성할 수 있도록
|
보안 취약점을 발견하셨다면 해커들에게 알려지기 전에 먼저 패치를 작성할 수 있도록
|
||||||
devops@rhymix.org로 알려 주시면 감사하겠습니다.
|
devops@rhymix.org로 알려 주시면 감사하겠습니다.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue