iText 7 Communityへのコントリビュート

iTextのソースコードにコントリビュートし、iText 7 Communityをより良くしていきましょう。以下のガイドラインに従ってください。

iText 7 Communityコントリビュート

質問または問題がある場合

iText 7 Communityの使用方法に関する質問については、 Stack Overflowをご利用ください。

お客様が サポート契約を行っている場合は、JIRAおよび開発者に直接アクセスできます。

問題が見つかった場合

ソースコードのバグまたは文書の間違いが見つかった場合は、修正内容を付けて プル・リクエスト を送信してください。

以下の 送信ガイドライン を参照してください

機能を実装したい場合

新機能を実装する場合は、変更の種類を検討してください。

送信ガイドライン

質問または問題の送信

質問または問題を送信する前に、 Stack Overflowを検索してください。質問が既に回答済みである場合があります。

問題がバグであると考えられ、まだ報告されていない場合は、 Stack Overflow に質問し、実際にバグであり、自身のコードの誤りでないことを検証してください。 問題が重複して報告されないことで、当社では問題の修正と新機能の追加に注力することが可能になります。次の情報を提供すると、問題が迅速に処理される確率が上がります。

  • 適切な質問の方法

  • 問題の概要 - エラーが発生した場合は、Minify化されていないスタック・トレースが役立ちます

  • 理由またはユースケース - この不具合が自分に関係している理由を説明します

  • iTextバージョン - 前のバージョンにはなかった不具合か特定します

  • オペレーティング・システム - 問題がWindows、Linux、またはMacで発生するか特定します

  • エラーの再現 - 短く完結で正確(コンパイル可能)な例簡単な説明、詳細な説明、検証可能な例)を提供します

  • 関連する問題 - 同様の問題が以前に報告されているか特定します

  • 修正の提案 - 自分で不具合を修正できない場合は、 問題の原因を示すことができます(コードの行またはコミット) *質問のタグ - 質問には「itext7」タグを追加し、当社側で検索できるようにしてください。

**お互いに助け合いましょう。 **

プル・リクエストの送信

プル・リクエストを送信する前に、次のガイドラインを考慮してください。

  • 自分の送信内容に関連するオープンまたはクローズ済みのプル・リクエストについては、 GitHub を検索してください 。同じことの繰り返しを避けることができます。

  • 提案した変更が既に開発ブランチで対処されていないことを確認します。

  • 変更するファイルごとに個別のプル・リクエストを送信しないでください。 *21行以上のコード変更に対するプル・リクエストを送信する前には、 iTextコントリビュータ・ライセンス契約(iCLA) に署名してください(波括弧および他の糖衣構文はカウントしません)。 この契約がないコードは許可されません。

  • 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テスト・スイート一式を実行し、すべてのテストに合格することを確認してください。

  • iTextの コミット・メッセージ協定に従う記述的コミット・メッセージを使用して変更をコミットします。

    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-branch
    

    *GitHubで、プル・リクエストを「itext7:develop」に送信します。

  • iTextが変更を提案する場合: *必要な更新を行います。 ***iText 7 Community**テスト・スイートを再実行し、テストに合格することを確認します。 *ブランチのベースを再設定し、GitHubリポジトリに強制プッシュします(これにより、プル・リクエストが更新されます)。

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

    以上がコントリビュートの手順です。

プル・リクエストが統合された後

プル・リクエストが統合された後、ブランチを安全に削除し、 メイン(アップストリーム)リポジトリから変更を発行できます。

  • 次のように、GitHub web 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
    

コーディング規約

ソースコード全体で一貫性を確保するには、作業中に次のルールに留意してください。

  • 開発はJavaで行われてから.NETに移植されるため、Javaのコード送信が優先されます。 ただし、.NETポートに対する適切なプル・リクエストは継続する必要があります。

  • すべてのJavaコードはJava 7である必要があります。lambda式または他のJava 8言語機能はありません。

  • すべての機能またはバグ修正は、****1つ以上の ユニット・テストでテストされる必要があります。

  • すべての公開APIメソッドは、JavaDocで文書化される必要があります。APIを文書化する方法については、 既存の javadocを確認してください。

  • Javaプログラミング言語に関する Oracleのコード規約に含まれる規則に従います。さらに、以下に従う必要があります。 *すべてのコードは100文字で折り返します

Gitコミット・ガイドライン

gitコミット・メッセージの書式を設定する方法に関するガイドラインがあります。これにより、** プロジェクト履歴メッセージが読みやすく理解しやすくます。また、 **iText 7 Community変更ログの生成も、gitコミット・メッセージを使用して行われます。

これらのガイドラインは、Chris Beams氏のブログ投稿 Gitコミット・メッセージを作成する方法から引用されました。

コミット・メッセージの形式

各コミット・メッセージは、件名本文、およびフッターで構成されます。

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

コミット・メッセージのどの行も72文字以下である必要があります。これにより、メッセージが GitHubやさまざまなGitツールで読みやすくなります。

件名

件名には変更に関する簡潔な説明を含めます。

本文

フッター

フッターには互換性を破る変更に関する情報を含めます。また、フッターは このコミットがクローズするJIRAまたはGitHubの問題を参照する場所です。

iCLAに署名する

プル・リクエストを送信する前に、iTextコントリビュータ・ライセンス契約(iCLA)に署名してください。大きいコード 変更(重要なコード21行以上)が承認されるには、iCLAに署名する必要があります。これはすぐに終わります。

フォームに (digitally) 署名し、電子メール、Fax、または郵送で送付してください

コントリビュータの行動規範

このプロジェクトはコントリビュータの行動規範とともにリリースされます。このプロジェクトに参加することで、条件を遵守することに同意します。

iTextは Stack Exchange ネットワークを使用して、無償サポートと GitHub コード・ホスティングを行います。これらのサービスを使用することで、条件を遵守することに同意します。