Skip to content

Conversation

@eomerdws
Copy link
Contributor

@eomerdws eomerdws commented Nov 24, 2025

Converting flat odt files pulled from Google Docs to PDF under /static/docs.

Summary by CodeRabbit

  • Chores
    • Build now pre-generates documentation PDFs during image creation and packages them into the final artifact.
    • Documentation PDFs are included as built-in static assets and available at runtime for consistent distribution and easier access across deployments.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 24, 2025

Walkthrough

Introduces a docs-builder stage in the Dockerfile that converts .fodt docs to PDFs during image build and copies the generated PDFs into the final image at /app/static/docs.

Changes

Cohort / File(s) Summary
Multi-stage Build / Docs
Dockerfile
Adds a docs-builder build stage that converts .fodt documentation files to PDF and copies the generated PDFs from the docs-builder stage into the final image at /app/static/docs.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer
  participant Build as Docker Build
  participant DocsStage as docs-builder (build stage)
  participant FinalStage as final image

  Dev->>Build: docker build
  note right of Build: Multi-stage build starts
  Build->>DocsStage: install dependencies\nconvert .fodt -> PDFs
  DocsStage-->>Build: PDFs in /docs/pdf
  Build->>FinalStage: COPY from DocsStage:/docs/pdf -> /app/static/docs
  FinalStage-->>Dev: final image includes generated PDFs
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify docs-builder installs required conversion tools and that tool versions are compatible.
  • Confirm COPY uses correct source path from the docs-builder stage and target /app/static/docs.
  • Ensure file permissions and runtime accessibility of /app/static/docs.

Poem

🐇 In builds I nibble, convert and bind,
FODT to PDF, neat files I find.
Layers stack, a quiet art—
Static docs now play their part.
Hooray, says the rabbit, build complete and kind.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Convert Docs to PDF' directly matches the PR objective of converting flat ODT files to PDF under /static/docs, accurately summarizing the main change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4ecde3b and 6571a40.

📒 Files selected for processing (1)
  • Dockerfile (2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-04T18:32:21.272Z
Learnt from: 7dev7urandom
Repo: sillsdev/appbuilder-portal PR: 1186
File: deployment/development/docker-compose.yml:71-72
Timestamp: 2025-08-04T18:32:21.272Z
Learning: In the appbuilder-portal project, for development-only services like Jaeger used for tracing visualization, the team prefers to use the `latest` tag to stay current with new features rather than pinning to specific versions.

Applied to files:

  • Dockerfile
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: checks / build-and-test
🔇 Additional comments (1)
Dockerfile (1)

45-47: Final-stage COPY integration looks good.

The placement and implementation are correct:

  • ✓ Directory creation is idempotent and safe.
  • ✓ COPY placement doesn't interfere with layer caching or build order.
  • ✓ The glob pattern will fail the build if no PDFs exist in the docs-builder stage, providing a safeguard.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2f49ca8 and 4ecde3b.

📒 Files selected for processing (1)
  • Dockerfile (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: checks / build-and-test
🔇 Additional comments (1)
Dockerfile (1)

46-48: Copy logic is sound.

The directory creation and PDF copy logic is correct and follows best practices.

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.

1 participant