Skip to content

Conversation

@yasulab
Copy link
Member

@yasulab yasulab commented Nov 1, 2025

概要

Issue #1757 の作業として、分離されていた news rake タスクを整理し、役割を明確にしました。

変更内容

🔄 Rake タスクの整理

  • lib/tasks/fetch_news.rakelib/tasks/import_news.rake を削除
  • lib/tasks/news.rake を新規作成(統合版)
  • 役割を明確に分離した2つのタスクを提供

📋 明確な役割分離(dojos タスクと同様)

タスク 役割 処理フロー
news:fetch フィード取得 RSS → YAML
news:upsert DB投入 YAML → DB

参考:既存の dojos タスクも同様の分離

  • dojos:update_db_by_yaml (YAML → DB)
  • dojos:migrate_adding_id_to_yaml (DB → YAML)

🎯 命名規則の一貫性

  • upsert = YAML からデータベースへの投入
  • fetch = 外部ソースからの取得
  • 他のタスクと同じ命名パターンを採用

🔄 運用フローの更新

  • script/release.sh: news:import_from_yamlnews:upsert に変更
  • .github/workflows/daily.yml: 既に news:fetch を使用(変更不要)

📅 処理フローの分担

GitHub Actions (daily.yml):
└─ news:fetch (RSS → YAML) → commit & push

Heroku Release Phase (script/release.sh):
└─ news:upsert (YAML → DB)

To-Do アクション

🔍 テストとバリデーション

  • news:fetch でRSSフィードが正しくYAMLに保存されるか確認
  • news:upsert でYAMLからDBに正しく投入されるか確認
  • 両タスクの連携動作確認
  • Heroku release phase での news:upsert 動作確認

📅 運用設定の確認

  • script/release.sh のタスク名を更新
  • GitHub Actions の daily.yml を確認(変更不要)

検証済み事項

rails -T news で2つのタスクが正しく表示される
✅ 役割が明確に分離されている
✅ dojos タスクと同様の設計パターン
✅ 運用フローとの整合性を確保

学んだ設計原則

  • 命名規則: fetch (外部→ファイル), upsert (ファイル→DB)
  • 役割分離: 1タスク1責務の原則
  • 運用連携: GitHub Actions + Heroku Release Phase
  • 一貫性: 既存タスクとの統一パターン

関連 Issue

Closes part of #1757 - News タスクの統合とコード整理

Issue #1757 の一部として、分離されていた news:fetch と news:import_from_yaml を
単一の news:upsert タスクに統合。他の rake タスクとの設計一貫性を保つ。

変更内容:
- lib/tasks/fetch_news.rake と lib/tasks/import_news.rake を削除
- lib/tasks/news.rake を新規作成(統合版)
- RSS フィードからデータベースまでを一貫処理
- 後方互換性のためエイリアスタスクを提供

他のタスクとの一貫性:
- podcasts:upsert (RSS → DB 直接)
- dojo_event_services:upsert (YAML → DB 直接)
- 同様の統合パターンを採用
RSS取得・インポートタスクなので、後方互換性は不要。
よりシンプルな実装に変更。

- news:fetch エイリアスを削除
- news:import_from_yaml エイリアスを削除
- news:upsert のみ提供
@yasulab yasulab changed the title [WIP] Issue #1757: News タスクの統合とRSSフィード自動化 News タスクの統合とRSSフィード自動化 Nov 1, 2025
- news:fetch: RSS → YAML(フィード取得)
- news:upsert: YAML → DB(データベース投入)

dojos タスクと同様の明確な役割分離を実現:
- dojos:update_db_by_yaml (YAML → DB)
- dojos:migrate_adding_id_to_yaml (DB → YAML)

upsert の命名規則に従い、YAML からの DB 投入を upsert とする。
script/release.sh で news:import_from_yaml から news:upsert に変更。
Heroku のリリースフェーズで正しいタスク名を使用する。
@yasulab yasulab changed the title News タスクの統合とRSSフィード自動化 refactor: News タスクの統合 Nov 1, 2025
@yasulab yasulab closed this Nov 1, 2025
@yasulab yasulab deleted the add-pr-times-rss-to-news-section branch November 1, 2025 07:20
@yasulab yasulab restored the add-pr-times-rss-to-news-section branch November 1, 2025 07:21
@yasulab yasulab deleted the add-pr-times-rss-to-news-section branch November 1, 2025 07:21
@yasulab
Copy link
Member Author

yasulab commented Nov 1, 2025

Stop adding PR TIMES RSS for now, and refactor existing tasks instead: #1759

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants