Skip to content

[Publication] Add a Lulu-compliant print and EPUB adapter pack #377

Description

@szmyty

Outcome

Add a versioned Lulu publication provider pack that turns a reviewed generic publication profile into validated Lulu upload candidates without hard-coding Lulu rules into Renderflow core.

This is the concrete commercial-publication consumer of:

Boundary

  • Renderflow owns reusable planning, rendering, provider adapters, validation, provenance, and packaging.
  • The content repository owns source pages, title/creator metadata, rights, identifiers, product choices, approval, credentials, upload, and publication.
  • Lulu is a replaceable provider profile, not a core format.
  • Initial scope produces and validates upload candidates. It does not log in, upload, order a proof, allocate an ISBN, or publish.

Versioned Lulu rule pack

  • Pin a rule-pack version, observation date, and official source URLs.
  • Separate print-direct, lulu-bookstore, global-distribution, pdf-ebook, and epub-distribution capability/eligibility results.
  • Treat provider/channel restrictions as data with hard errors, warnings, and informational findings.
  • Do not fetch changing rules during a deterministic build.
  • Produce a machine-readable conformance report and human preflight report.
  • Fail closed when a required rule is unknown or the requested product combination is unverified.

Print candidate

Generate and validate:

  • single-page-layout interior PDF at exact selected trim/bleed geometry
  • separate one-piece cover PDF using a user-supplied current Lulu template for the selected page count, paper, binding, and channel
  • distinct Lulu Bookstore and Distribution covers where their spine geometry differs
  • embedded fonts, flattened layers, rasterized vectors where required, high-resolution assets, correct page order, and no unintended blank pages
  • no trim/bleed marks in distribution files
  • title page followed by copyright page with metadata and print ISBN where distribution requires them
  • exact title/subtitle/contributor/language/color metadata consistency
  • correct barcode identity, dimensions, quiet background, and safe placement when enabled
  • proof/contact sheet plus geometry, resolution, font, color, and metadata reports

Do not compute undocumented cover/spine geometry from guesses. Consume Lulu’s current generated template as an explicit input and record its digest.

EPUB candidate

Generate and validate:

  • EPUB 3.3-compatible XHTML publication and EPUBCheck v5 evidence
  • correct internal title, subtitle, contributors, language, identifier, and ebook ISBN metadata
  • complete ordered navigation/TOC and page-list relationship to print where applicable
  • RGB, legible, non-truncated images and text
  • no unsupported interactive or fillable content in the Lulu distribution profile
  • cover artifact appropriate for retailer metadata
  • file-size policy with Lulu’s recommendations/limits represented accurately
  • accessibility metadata and optional Ace by DAISY evidence
  • explicit fixed-layout compatibility result per selected Lulu/retailer channel; do not silently convert or claim support

Support a faithful fixed-layout comic EPUB and an accessible companion/reflow branch when the canonical source permits it. Their roles and ISBN decisions remain separate and explicit.

Eligibility guardrails

  • Validate trim, binding, paper, color, page count, language, ISBN, metadata, and channel eligibility before declaring an artifact upload-ready.
  • Represent Lulu printing, Lulu Bookstore sale, Lulu Direct, Amazon eligibility, and Ingram/Barnes & Noble availability independently.
  • Add a regression fixture showing that a 44-page color interior is below Lulu’s current 72-page Amazon Global Distribution minimum.
  • Never infer Barnes & Noble shelf placement from Ingram availability.
  • Record that Global Distribution review can take at least 12 weeks and requires creator proof approval.

Fixtures and portability

  • Redistribution-safe synthetic comic fixture covering full bleed, spreads split into single pages, metadata, barcode safe area, and cover-template alignment.
  • Passing and failing EPUB fixtures.
  • Native Linux and Termux/proot-compatible local execution where underlying tools are available.
  • Capability discovery reports missing optional tools honestly.
  • Golden report/schema fixtures and reproducibility checks.
  • Adapter authoring documentation shows how another printer/provider can implement the same generic publication capability.

Acceptance criteria

  • A project can request Lulu candidates declaratively through the generic profile/adapter system.
  • Provider-specific rules stay outside the core artifact model.
  • Every candidate is traceable to source, profile, rule pack, template, adapter/tool versions, validation, and approval state.
  • A valid generic PDF/EPUB that is invalid for a requested Lulu channel cannot be labeled Lulu-compliant.
  • No credentials, upload side effects, ISBN allocation, proof approval, or publication occur.
  • Formatting, Clippy, tests, docs, and CI pass.

Official references

Dependencies

The Orientation consumer is tracked in incomprisllc/comics#22. Keep its current local builder as a transitional fallback until this adapter demonstrates parity.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions