Skip to main content

はじめに

開発に取りかかる前に、以下の点を理解しておいてください。
  • 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

まず、Docker イメージを pull し、次のコマンドを実行してこの Docker イメージのラベルを確認します。
bash
その後、コミット(b0d05c0) がアップストリームの master ブランチに存在するかを確認できます。
これは想定された動作です。6.0.1 リリースは、6.0.0 イメージの上に構築されたマイナーパッチリリースです。変更は新しいコミットからイメージを再ビルドするのではなく、既存の 6.0.0 イメージにパッチを当てることで適用されています。そのため、イメージ内のコミットハッシュは 6.0.0 と 6.0.1 で同一になります。詳細については、hotfix を参照してください。
最終更新日 2026年10月4日