Skip to content

開発フロー

このドキュメントは、rs-textbook-guide をローカルで開発するときの基本的な流れをまとめたものです。

  • Ruby と Bundler が利用できること
  • SQLite3 が利用できること
  • ドキュメントを編集する場合は pnpm が利用できること

※興味のある方はnixガイドに沿ってnixを使用すると簡単に設定ができます.

このリポジトリでは Rails アプリ本体と、docs/ 以下の Astro/Starlight ドキュメントを別々に起動します。

Rails アプリの依存関係をインストールします。

Terminal window
bundle install

データベースを準備します。

Terminal window
bin/rails db:prepare

初期データを流し込みます。

Terminal window
bin/rails db:seed

db/seeds.rbdb/seeds/ 以下の CSV を順に取り込みます。seed は既存レコードを更新する形で実行できるため、CSV を更新したあとも同じコマンドで反映できます。

ローカルのデータを作り直して seed を入れ直したい場合は、次のコマンドを使います。既存のローカルデータは削除されます。

Terminal window
bin/rails db:seed:replant

ドキュメントサイトを編集する場合は、docs/ で依存関係をインストールします。

Terminal window
cd docs
pnpm install

Rails アプリはリポジトリルートで起動します。

Terminal window
./bin/dev

./bin/devProcfile.dev を使い、Rails サーバーと Tailwind CSS の watch process を同時に起動します。既定のポートは 3000 です。

ポートを変更する場合は PORT を指定します。

Terminal window
PORT=3001 ./bin/dev

Rails のテストを実行します。

Terminal window
bin/rails test

system test を実行します。

Terminal window
bin/rails test:system

RuboCop を実行します。

Terminal window
bundle exec rubocop

Brakeman を実行します。

Terminal window
bundle exec brakeman

ドキュメントサイトをビルドします。

Terminal window
cd docs
pnpm build
  1. 最新の変更を取り込む。

  2. bundle installbin/rails db:prepare を実行してローカル環境を更新する。

  3. ./bin/dev で Rails アプリを起動し、対象画面の現在の挙動を確認する。

  4. 小さな単位でコードを変更し、必要に応じてテストを追加する。

  5. テーブル、カラム、制約、関連、初期データの形を変える場合は migration を作成する。

  6. migration を実行する。

    Terminal window
    bin/rails db:migrate
  7. 初期データやマスターデータも変更する場合は、db/seeds/ 以下の CSV と db/seeds.rb を更新する。

  8. seed を流し直して、変更後のデータがローカルで取り込めることを確認する。

    Terminal window
    bin/rails db:seed
  9. ローカルデータを完全に作り直して確認したい場合は、必要に応じて seed を入れ直す。

    Terminal window
    bin/rails db:seed:replant
  10. bin/rails test、関連する system test、静的解析を実行する。

  11. UI やドキュメントを変更した場合は、ブラウザで表示を確認する。

./bin/dev が gem の不足で終了した場合は、リポジトリルートで bundle install を実行します。

Terminal window
bundle install

データベース関連のエラーが出る場合は、migration と seed の状態を確認してから db:prepare を実行します。

Terminal window
bin/rails db:prepare

CSS の変更が反映されない場合は、./bin/dev を再起動して Tailwind CSS の watch process を立ち上げ直します。