iText 7 Community에 기여하기

귀하가 소스 코드에 기여해 주시고 iText 7 Community를 지금보다 발전시키도록 도움을 주시면 감사하겠습니다. 따라주시면 좋을 가이드라인이 있습니다.

iText 7 Community 기여

질문이나 문제가 있습니까?

iText 7 Community 사용 방법에 대한 질문이 있다면 이를 Stack Overflow로 이동하십시오.

귀하가 지원 계약을 한 고객인 경우, 당사 JIRA 및 당사 개발자에 직접 액세스할 수 있습니다.

문제를 발견했습니까?

소스 코드에서 버그를 발견하거나 문서에서 실수를 발견한 경우, 수정된 Pull 요청을 제출하여 도움을 주실 수 있습니다.

아래 제출 가이드라인을 참조하십시오.

기능을 구현하고 싶습니까?

새 기능을 구현하고 싶다면 다음 변경 사항을 고려하십시오.

  • 프로젝트에 기여하고자 하는 주요 변경사항은 먼저 논의되어 저희가 업무를 더 잘 조정하고, 업무 중복을 방지할 수 있게 하며, 변경 사항의 구현을 도와 성공적으로 프로젝트 내에서 수락될 수 있게 해야 합니다. community@itextpdf.com으로 문의해 주십시오.

  • 소규모 변경 사항GitHub 저장소Pull 요청으로 생성 및 제출될 수 있습니다.

제출 가이드라인

질문 또는 문제 제출

질문이나 문제를 제출하기 전 Stack Overflow를 검색해보면 이미 답변된 질문에 대한 답변을 찾을 수도 있습니다.

문제가 버그인 것으로 보이며, 보고되지 않았다면 Stack Overflow에 질문해 정말 버그인지 그리고 자체 코드의 실수가 아닌지 확인하십시오. 문제를 중복으로 보고하지 않음으로써 문제 해결 및 새로운 기능 추가에 투자할 수 있는 노력을 최대화 할 수 있도록 도와주십시오. 다음 정보의 제공해주시면 보다 신속하게 문제를 처리해 드릴 수 있습니다.

  • 좋은 질문하기

  • 문제 개요 - 오류가 발견되는 경우, 논 미니파이드 스택 추적이 도움이 됩니다

  • 동기 부여 또는 사용 사례 - 버그인 이유 설명

  • iText 버전 - 회귀입니까?

  • 운영 체제 - Windows 또는 Linux, 아니면 Mac의 문제입니까?

  • 오류 재현 단기간, 자체 포함, 교정(컴파일 가능), 예제, 또한 최소, 완전, 확인 가능 예제라고도 부름.

  • 관련 문제 - 이전에 유사한 문제가 보고되었습니까?

  • 수정 제안 - 버그를 직접 수정할 수 없을 경우, 문제를 일으키는 원인이 무엇인지 지목할 수도 있습니다(코드 라인 또는 커밋).

  • 질문 태그 - 'iText7'이라는 태그를 질문에 추가해 찾을 수 있습니다.

도움을 받았다면, 다른 사람들을 도와주십시오. 아주 잘 했습니다!

Pull 요청 제출

Pull 요청을 하기 전 다음 가이드라인을 고려하십시오.

  • 제출과 관련된 Pull 요청 열기 또는 닫기는 GitHub를 검색하십시오. 업무 중복을 피할 수 있습니다.

  • 제안된 변경 사항이 개발 지점에 이미 소개되지 않았는지 확인합니다.

  • 변경하는 모든 파일에 대한 개별 pull 요청을 보내지 마십시오.

  • 20줄 이상의 중요 코드 변경에 대한 pull 요청을 보내기 전 iText iCLA(Contributor License Agreement)(중괄호 또는 작은 구문 요소는 계산하지 않음)에 서명하십시오. 저희는 본 계약 없이 코드를 수락할 수 없습니다.

  • iText 7 Community를 로컬 시스템으로 복사하십시오.

    git clone git@github.com:itext/itext7.git
    cd itext7
    git fetch origin
    git checkout -b develop origin/develop
    
  • 개발 지점에 있지 않은 새 git 지점을 변경하십시오.

    git checkout -b my-fix-branch develop
    
  • 적절한 테스트 사례를 포함한 패치를 생성하십시오.

  • 코딩 규칙을 따르십시오.

  • 전체 iText 7 Community 테스트 제품군을 실행하고 모든 테스트가 통과되는지 확인하십시오.

  • 커밋 메시지 범례를 따르는 설명 커밋 메시지를 사용해 변경 사항을 커밋하십시오.

    git commit -a
    

    참고: 옵션 커밋 -a 명령줄 옵션은 자동으로 편집 파일을 add(추가) 및 rm합니다.

  • 이제 git rebase --interactive로 귀하의 커밋(원하거나 필요할 경우)을 수정하기 좋은 시점입니다.

  • 변경 사항을 로컬에서 구성해 모든 테스트가 통과되게 하십시오.

  • 지점을 GitHub 계정으로 푸시하십시오.

    git remote add my-remote git@github.com:my-remote/itext7.git
    git push my-remote my-fix-branc
    
  • GitHub에서 pull 요청을 itext7:develop로 보내십시오.

  • 저희가 변경 사항을 제안할 경우:

    • 필수 업데이트를 하십시오.

    • iText 7 Community 테스트 제품군을 다시 실행해 테스트를 통과할 수 있게 하십시오.

    • 지점을 재지정하고 GitHub 저장소로 푸시합니다(이는 끌어오기 요청을 업데이트하게 됩니다).

      git fetch origin
      git rebase develop -i
      git push my-remote my-fix-branch -f
      

      완료되었습니다! 기여해 주셔서 감사합니다!

pull 요청을 병합한 후

끌어오기 요청을 병합한 후, 지점을 안전하게 삭제하고 변경 사항을 메인(업스트림) 저장소에서 가져올 수 있습니다.

  • 다음과 같이 GitHub 웹 UI 또는 로컬 쉘을 통해 GitHub에 있는 원격 지점을 삭제합니다.

    git push my-remote --delete my-fix-branch
    
  • 개발 지점을 확인합니다.

    git checkout develop -f
    
  • 로컬 지점을 삭제합니다.

    git branch -D my-fix-branch
    
  • 최신 업스트림 버전으로 개발을 업데이트합니다.

    git pull --ff upstream develop
    

코딩 규칙

소스 코드 전체의 일관성을 보장하기 위해 작업 중 규칙을 염두에 두어야 합니다.

  • 자바에서 우선 개발한 뒤, .NET 포트를 개발하고, 자바 코드 제출이 선호됩니다. 그럼에도 불구하고 .NET 포트에 대한 양호한 pull 요청을 중단하지 않아야 합니다.

  • 모든 자바 코드는 자바 7에 있어야 합니다. 죄송하지만 람다 식이나 기타 자바 8 언어 기능이 없습니다.

  • 모든 기능이나 버그 수정은 1개 이상의 장치 테스트로 테스트되어야 합니다.

  • 모든 공개 API 메소드는 JavaDoc으로 문서화해야 합니다. API를 문서화하는 방법을 확인하려면 기존 JavaDocs를 확인하십시오.

  • 저희는 Oracle의 자바 프로그래밍 언어용 코드 규약과 추가 사항인

    • 100자로 모든 코드** 다루기**에 있는 규칙을 준수합니다.

Git 커밋 가이드라인

Git 커밋 메시지가 포맷되는 방법에 대한 가이드라인이 있습니다. 따라서 ** 프로젝트 기록을 통해 볼 때 이해하기 쉬운 메시지를 보다 쉽게 읽을 수 있습니다. 또한, git 커밋 메시지를 사용해 **iText 7 Community 변경 로그를 생성합니다.

이 가이드라인은 Chris Beams의 블로그 포스트 Git 커밋 메시지 작성 방법에서 발췌했습니다.

커밋 메시지 형식

각 커밋 메시지는 제목, 본문주석으로 구성되어 있습니다.

<subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

커밋 메시지의 모든 라인은 72자가 넘어서는 안 됩니다! 이는 메시지를 GitHub에서는 물론 다양한 Git 도구에서도 쉽게 읽을 수 있게 합니다.

제목

제목에는 변경 사항에 대한 간단한 설명이 있어야 합니다.

본문

바닥글

바닥글에는 브레이킹 체인지에 대한 정보가 있으며 이 커밋이 닫히는 참조 JIRA 또는 GitHub 문제를 참조합니다.

iCLA 서명

pull 요청을 전송하기 전 iText iCLA(Contributor License Agreement)에 서명하십시오. 수락되는 대규모 코드 변경 사항(20줄 이상의 중요 코드)의 경우, iCLA에 서명을 해야 합니다. 신속 프로세스입니다. 저희가 약속드립니다!

여러분이 (디지털) 서명 뒤, 이메일, 팩스 또는 우편으로 형식을 보내주셔야 합니다.

기여자 행동 강령

이 프로젝트가 기여자 사용 규정과 함께 릴리스되었다는 점을 참고하십시오. 이 프로젝트에 참여함으로써 본 약관을 준수한다는 데 동의합니다.

무료 지원을 위해 Stack Exchange 네트워크 그리고 코드 호스팅을 위해 GitHub를 사용합니다. 이 서비스를 사용함으로써 귀하는 약관을 따른다는 데 동의합니다.