Remove dead publish_status from Article, move to RouteArticle #99

Closed
opened 2026-03-18 17:05:27 +01:00 by myrmidex · 0 comments
Owner

Summary

The publish_status field on Article (unpublished/publishing/published/error) is no longer set by anything after the #85 refactor. Publishing now happens per route_article, so publish tracking should also be per route_article.

Context

  • The old PublishApprovedArticleListener used to set publish_status on Article during publishing
  • The new listener (PublishApprovedArticleListener handling RouteArticleApproved) and PublishNextArticleJob work with RouteArticle and don't touch Article's publish_status
  • The field is still in the DB, model fillable, casts, and ArticleResource API response — but permanently stale

Tasks

  • Add publish_status enum column to route_articles table (migration)
  • Create PublishStatusEnum (unpublished/publishing/published/error)
  • Update PublishNextArticleJob to set publish_status on route_article during publishing
  • Update PublishApprovedArticleListener to set publish_status on route_article during publishing
  • Remove publish_status from articles table (migration)
  • Remove publish_status from Article model (fillable, casts, docblock)
  • Remove publish_status from ArticleResource
  • Update any views/components that reference Article publish_status
  • Tests for publish_status transitions on RouteArticle
## Summary The `publish_status` field on Article (`unpublished`/`publishing`/`published`/`error`) is no longer set by anything after the #85 refactor. Publishing now happens per route_article, so publish tracking should also be per route_article. ## Context - The old `PublishApprovedArticleListener` used to set `publish_status` on Article during publishing - The new listener (`PublishApprovedArticleListener` handling `RouteArticleApproved`) and `PublishNextArticleJob` work with `RouteArticle` and don't touch Article's `publish_status` - The field is still in the DB, model fillable, casts, and `ArticleResource` API response — but permanently stale ## Tasks - [ ] Add `publish_status` enum column to `route_articles` table (migration) - [ ] Create `PublishStatusEnum` (unpublished/publishing/published/error) - [ ] Update `PublishNextArticleJob` to set publish_status on route_article during publishing - [ ] Update `PublishApprovedArticleListener` to set publish_status on route_article during publishing - [ ] Remove `publish_status` from `articles` table (migration) - [ ] Remove `publish_status` from Article model (fillable, casts, docblock) - [ ] Remove `publish_status` from `ArticleResource` - [ ] Update any views/components that reference Article publish_status - [ ] Tests for publish_status transitions on RouteArticle
myrmidex added this to the v1.3.0 milestone 2026-03-18 17:05:27 +01:00
myrmidex added the
enhancement
label 2026-03-18 17:05:27 +01:00
myrmidex self-assigned this 2026-03-18 17:23:45 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lvl0/fedi-feed-router#99
No description provided.