Skip to content

Refuse to build an app from a Playground book (BL-16855) - #8344

Closed
andrew-polk wants to merge 1 commit into
Version6.5from
BL-16855
Closed

Refuse to build an app from a Playground book (BL-16855)#8344
andrew-polk wants to merge 1 commit into
Version6.5from
BL-16855

Conversation

@andrew-polk

@andrew-polk andrew-polk commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Problem. Bloom refuses to publish a book made from the Playground template: the BloomPUB, ePUB, PDF, video, and library-upload screens all disable their action button for such a book. Publish > Apps (Reading App Builder) was the exception, so a Playground book could be turned into an Android app.

What the PR does.

  • The Reading App Builder status now lists the titles of any books headed into the app that came from the Playground template, covering every book in the app's Choose Books list, not just the current one. The Apps screen disables Prepare and Build while that list is non-empty, with a tooltip naming the books (one new localizable string).
  • The Reading App Builder export refuses to start if any book headed into the app is a Playground book, naming the offending book(s) in the Apps screen log. This is the safety net behind the UI check.
  • The Playground test moves from Book to BookInfo, so both checks read the book lineage without loading the book. A tracked book that has since been deleted from the collection is skipped by the status check rather than breaking it.
  • Unit tests cover the export guard and the status field.

Ref: https://issues.bloomlibrary.org/youtrack/issue/BL-16855

🤖 Generated with Claude Code

Devin review


This change is Reviewable

Comment thread src/BloomExe/Publish/Rab/RabProjectService.cs Outdated
@andrew-polk

Copy link
Copy Markdown
Contributor Author

[Claude Fable 5.1] Consulted Devin on 2026-09-10 22:02 UTC up to commit eca37173910e3d3a90487a3e86f2e4e6a8e3ab31. Devin raised one bug over the branch, deleted book locks the Apps screen, which is fixed and which Devin's re-review marks resolved. No Investigate or Informational flags. The pr-automation check passed on every commit.

https://issues.bloomlibrary.org/youtrack/issue/BL-16855

Publish > Apps was the one publish screen that did not refuse a book made
from the Playground template. The Reading App Builder status now lists the
titles of any Playground books among the books headed into the app (every
tracked book, not just the current one); the Apps screen disables Prepare
and Build while that list is non-empty, with a tooltip naming the books.
The export also refuses to start if any such book is present, naming it in
the log. IsPlayground moves to BookInfo so both checks read the lineage
without loading the book, and a tracked book that was deleted from the
collection is skipped by the status rather than breaking it.

Tests: RabPlaygroundCheckTests and an appBuilderShared spec; full C# and
vitest suites green.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@andrew-polk
andrew-polk marked this pull request as ready for review September 10, 2026 22:23
@hatton

hatton commented Sep 11, 2026

Copy link
Copy Markdown
Member

That's alot of code for this one check, isn't it? I wonder if we could trade bullet-proofness for something simpler, such as simply filtering them out in the chooser?

@andrew-polk

Copy link
Copy Markdown
Contributor Author

[Claude Fable 5.1] Closing: superseded by #8348, which fixes BL-16855 by showing the Publish > Apps subscription overlay for a Playground book instead of disabling Prepare and Build.

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