upstream fork管理方針
Copyright © 2026 Hiroya Kubo. この文書はCC BY-SA 4.0で提供します。
この文書は、TM Kamishibai ecosystemが保持する上流forkの目的、差分、利用条件、戻し方を記録します。独自extension、toolchain、applicationとは別枠で扱い、上流projectの恒久的な再実装や別製品として紹介しません。
2026年8月25日時点では、この方針は公開プレリリースv4.0.0-rc.8のruntime behaviorと独立しています。renderer runtimeを変更せず、上流forkの分類、pin、license、issue routingだけを文書化します。
正本data
上流forkの機械可読な正本はsources/upstream-forks.jsonです。公開記事、ecosystem index、各repositoryの短い導線は、このdataと矛盾しない範囲で作成します。
scratch-render entryは次の例外profileを持ちます。
| 項目 | 値 |
|---|---|
| profile | upstream-fork |
| fork repository | kubohiroya/scratch-render |
| immediate upstream | TurboWarp/scratch-render |
| original source | scratchfoundation/scratch-render |
| default branch | develop |
| upstream sync branch | TurboWarp/scratch-render の develop |
| npm publish | しない |
| downstream pin | fork差分を使う場合はexact commitで固定する |
| tracking issue | tm-kamishibai-docs#175 |
kubohiroya/scratch-render は renderer の性能測定、互換性確認、限定patchの検証に使う開発forkです。TM Kamishibaiが renderer commitを参照する場合でも、恒久的な独自renderer distributionとして扱いません。検証が終わったpatchは、可能なら上流へ戻すか、不要であれば撤回します。
READMEに置くべきfork status
scratch-render 側 README の冒頭には、少なくとも次の趣旨を置きます。このdocs repositoryだけでは scratch-render のREADMEを変更できないため、本文はfork repository側のPRで反映します。
## Fork status
This repository is a development fork of `TurboWarp/scratch-render` used for
narrowly scoped experiments and patches required by downstream projects.
It is not a separate renderer product.
READMEでは、immediate upstream、original source、default branchと上流branchの対応、下流利用時のexact commit pin、一般的なTurboWarp bugの報告先、fork固有patchだけを本forkで追跡する方針を同じ節にまとめます。
差分管理
fork差分は、目的、関連Issue、採用理由、検証fixture、rollback commitを一組で記録します。目的のない実験branchをdefault branchへ積み上げません。
上流との差分確認は、fork側で upstream remoteを TurboWarp/scratch-render に向けてから実行します。
git remote add upstream https://github.com/TurboWarp/scratch-render.git
git fetch upstream
git log --oneline upstream/develop..HEAD
git diff --stat upstream/develop...HEAD
downstreamがfork commitを採用する場合は、version rangeやbranch名ではなくexact commitで固定します。採用中のpatchが不要になった場合は、TM Kamishibai側の参照を上流commitへ戻し、rollback commitと検証結果を追跡Issueへ残します。
Issue routing
一般的なrendererの不具合、TurboWarp本体で再現する描画問題、上流でも必要な改善は、原則としてTurboWarp/scratch-renderへ報告します。
TM Kamishibaiの検証中だけ必要なpatch、下流fixtureに依存する一時的な計測、上流へ持ち込む前の確認は、fork固有patchとしてtm-kamishibai-docs#175または関連するTM Kamishibai側Issueへ紐付けます。
License
scratch-render forkではMPL-2.0全文と上流由来のlicense noticeを維持します。Scratch Foundation由来部分のnoticeを削除せず、fork固有変更にも上流license条件を適用します。
独自extension repository向けの共通LICENSEテンプレートで、上流由来のnoticeを上書きしません。docs側のこの文書とupstream-forks.jsonは、TM Kamishibai docsの既存区分に従います。
Ecosystem indexでの表示
ecosystem indexでは、scratch-renderを独自productやextension一覧へ混ぜません。「upstream fork / 実験基盤」として別枠に置き、次を明記します。
- TurboWarp renderer自体を独自に再実装するprojectではない
- 必要な上流調査、性能測定、patch検証のために保持するforkである
- 下流で使う場合はexact commitで固定し、採用理由とrollbackを記録する
- 可能な場合は公式TurboWarp upstreamへ戻すことを優先する
適用外
upstream-fork profileには、通常のextension repository policyをそのまま適用しません。次は対象外です。
- Extension ID
- block reference
- npm package metadataの統一
- Pages user guide
runtime behaviorを変更するpatch、npm publish、tag作成、release作成は、この文書更新の範囲に含めません。