# 利用・改変について 教材を利用・改変したい場合は、このリポジトリをforkし、fork先で管理してください。 ## 保守変更のライセンス メンテナーによる本家リポジトリの保守変更は、[READMEの適用範囲](./README.md#適用範囲)に従い、本文等はCC BY 4.0、対象コードはCC BY 4.0とBSD-2-Clauseのいずれかを利用者が選択できる条件で提供します。保守変更時には、その許諾に必要な権利を有することを確認します。第三者コンテンツを含む場合は、該当箇所に出典・権利者・適用ライセンスと当社による追加許諾の対象外であることを明記し、元の表示と必要なライセンス文を保持します。 ## forkして利用する 1. GitHubのFork機能でこのリポジトリをforkする 2. fork先で目的に合わせて教材を修正する 3. `bundle exec rake test`でMarkdown、リンク、Phase参照、Rack 3互換性などを確認する 4. [READMEの適用範囲](./README.md#適用範囲)に従い、本文等はCC BY 4.0、対象コードは選択したライセンスの条件を満たした上で利用・再配布する ## CC BY 4.0に基づく表示 本文等、およびCC BY 4.0を選択したコードを共有する場合は、[クリエイティブ・コモンズ 表示 4.0 国際ライセンス(CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.ja)に従い、少なくとも次を守ってください。 - 原著作者と著作権表示を記載する - [元のリポジトリ](https://github.com/speee/training-web-app)とCC BY 4.0へのリンクを記載する - 改変した場合は、その旨を示す - 株式会社Speeeが改変版やその利用を支持していると誤解される表示をしない - CC BY 4.0が許諾する利用を制限する追加の法的・技術的制約を設けない 表示例: ```text 「AI時代における低レイヤーから理解するWebアプリケーション研修ガイダンス」 © 2026 株式会社Speee (Speee, Inc.) 元の教材: https://github.com/speee/training-web-app ライセンス: CC BY 4.0 https://creativecommons.org/licenses/by/4.0/ 変更内容: <変更箇所や変更日を記載> ``` 詳細はこのリポジトリの[LICENSE](./LICENSE)を確認してください。 ## BSD-2-Clauseに基づくコードの再配布 [READMEで指定したコード例・コードファイル](./README.md#適用範囲)は、2-Clause BSD License(`BSD-2-Clause`)を選択して利用・改変・再配布できます。この場合、対象コードにCC BY 4.0の表示条件を併せて適用する必要はありません。周囲の説明文や課題文も転載する場合、その文章には引き続きCC BY 4.0の条件が適用されます。 - ソースコードの再配布では、著作権表示・2つの条件・免責条項を保持する - バイナリの再配布では、同じ表示・条件・免責条項を、配布物に付属するドキュメントその他の資料に含める 例えば、コードを取り込んだプロジェクトに、このリポジトリの[LICENSE-CODE](./LICENSE-CODE)を全文コピーして同梱し、READMEに次のように対象コードを示します。既存のコード内の著作権表示も保持してください。 ```text 本プロジェクトの <対象ファイル・コード箇所> には、次の教材のコードを含みます。 元の教材: https://github.com/speee/training-web-app Copyright (c) 2026, Speee, Inc. ライセンス: BSD-2-Clause(全文は同梱の LICENSE-CODE を参照) ``` この表示例は、ライセンス全文の同梱と組み合わせて使う案内です。出典URLや対象箇所の説明は推奨であり、BSD-2-Clauseに独自の条件を追加するものではありません。第三者由来のコード・依存ライブラリは、それぞれのライセンスにも従ってください。 ## ローカルでの確認 fork先で教材を変更した場合は、RubyとBundlerが利用できる環境で次のコマンドを実行してください。 対応環境と導入手順は[セットアップガイド](./SETUP.md)を参照してください。以下は教材ルートでの検証です。演習のテストは`work/`の別Rakefileで実行します。 ```bash bundle install bundle exec rake test ``` このコマンドは全Markdownファイルを対象に、次の項目を検査します。 - コードフェンスが正しく閉じていること - コードフェンスの言語指定がGitHubで解釈できる形式であること - 相対リンクの参照先が存在すること - `Phase X.Y`の参照先が存在すること - 既知の誤記や技術名の表記揺れがないこと - `LICENSE`が存在すること - Phase 3〜4のRackレスポンスヘッダ名が小文字であること - 教材の最小RackアプリがRack 3の`Rack::Lint`に適合すること - TCP、WEBrick/rackup、OpenSSL、ERB/JSON/IRB、SQLite3の依存APIが動くこと - 新しい演習ディレクトリでMinitest/SimpleCovが動き、既存の演習を上書きしないこと ## 本家リポジトリのCI 本家リポジトリの保守用Pull Requestと`main`ブランチへのpushでは、`Markdown`ワークフローが`bundle exec rake test`を実行します。外部リンクは一時的な通信障害でPull Requestを不安定にしないよう、`External links`ワークフローで毎週月曜日9:00(日本時間)に別途検査します。 各リンクは失敗時に3回まで再試行します。GitHubのActions画面から手動実行することもできます。教材内のlocalhostへのアクセス例や公開前の本家リポジトリURLなど、定期検査に適さないURLは`.lycheeignore`で検査対象から除外します。 `Markdown`ワークフローはmacOS 15とUbuntu 24.04を検証例とし、教材リポジトリのlockfileで動作を確認します。このOS・Gemの組み合わせは受講条件ではありません。Ruby・Rack以外の補助ツールの細かな版やSQLiteのビルド方式を教材側で要求しない方針です。lockfileの更新時はスモークテストでAPIの利用箇所を確認してください。これは演習の解答を自動採点するものではありません。