はじめに
開発に取りかかる前に、以下の点を理解しておいてください。- Overleaf は公式には内部リポジトリで開発されており、Community Edition は overleaf/overleaf で公開されています。内部リポジトリと公開リポジトリ間のコード同期は copybot が担当しています。
- Ayaka-notes/overleaf-pro は Overleaf Community のフォーク版です。このプロジェクトを長期的に継続させたいと考えているため、コントリビュートする前に以下のルールに従ってください。
コミットルール
- 既存の Overleaf のコードに大規模な変更を加えないでください。機能はできる限り
services/web/modulesフォルダーに集約してください。これにより、後でコードをマージ・更新する際の作業量を最小限に抑えられます。 - Vibe coding は確かに手軽な方法ですが、プロジェクトを簡単に混乱させ、後々メンテナンス不能にしてしまう可能性があるため、慎重に使用してください。
- 開発中に翻訳関連のコンテンツを追加しないでください。可能な限り既存の翻訳を使用してください。
- どうしても必要な場合を除き、環境変数を新たに導入しないでください。必要な場合は、Overleaf Toolkit や docs.overleaf.com にある環境変数とできる限り一貫性を保つようにしてください。
ブランチルール
overleaf-pro の開発では、以下のブランチを使用します。main: このブランチはアップストリームのコード同期専用です。外部の変更は絶対にコミットしないでください。このブランチにはce-v[X.x.x]のようなタグを付けます。これは Overleaf 公式 Community Edition のv[X.x.x]に対応することを示します。注意: このタグは変更不可です!server-pro: 日常の開発に使用するデフォルトブランチです。feature-X: 特定の機能を開発するためのブランチです。release-vX.0.0: リリース専用のブランチで、リリース前にホットフィックスを行います。

Overleaf Pro のブランチルール
GitHub Action
GitHub Action は自動 CI/CD を担当しており、以下を含みます。- main ブランチの夜間更新
- 開発用 Docker イメージのビルド
- Docker イメージのリリース
Q&A
Overleaf Community Edition X.0.0 のコミットハッシュを確認するには?
Overleaf Community Edition X.0.0 のコミットハッシュを確認するには?
まず、Docker イメージを pull し、次のコマンドを実行してこの Docker イメージのラベルを確認します。その後、コミット(b0d05c0) がアップストリームの master ブランチに存在するかを確認できます。
bash
CE イメージの 6.0.0 と 6.0.1 でコミットハッシュが同じなのはなぜですか?
CE イメージの 6.0.0 と 6.0.1 でコミットハッシュが同じなのはなぜですか?
これは想定された動作です。6.0.1 リリースは、6.0.0 イメージの上に構築されたマイナーパッチリリースです。変更は新しいコミットからイメージを再ビルドするのではなく、既存の 6.0.0 イメージにパッチを当てることで適用されています。そのため、イメージ内のコミットハッシュは 6.0.0 と 6.0.1 で同一になります。詳細については、hotfix を参照してください。

