Skip to content

Add ZIO HTTP template2 support#446

Merged
nafg merged 1 commit into
masterfrom
feat/zio-http-template2
Jul 19, 2026
Merged

Add ZIO HTTP template2 support#446
nafg merged 1 commit into
masterfrom
feat/zio-http-template2

Conversation

@nafg

@nafg nafg commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a ZioHttpTemplate2 generator target backed by zio-http 3.11.3
  • publish _ziohttp modules for Bootstrap 3/4/5, Bulma, Tabler, Semantic UI, Fomantic UI, and Font Awesome
  • support chainable classes while preserving and normalizing existing template2 class attributes
  • expose allocation-light C.* class-name values that compose with both vararg and collection forms of template2's className API without becoming text children
  • avoid per-extension lazy-value state while retaining cached values on singleton C objects
  • add cross-built rendering and compile-safety tests

Validation

  • all 25 projects load and the ZIO HTTP targets compile on Scala 2.13.18 and 3.8.4
  • tabler_ziohttp/compile passed on both Scala versions
  • all 6 template2 integration tests passed on both Scala versions
  • githubWorkflowCheck passed
  • validated with master's Scalameta 4.16.0; the class attribute is represented as a synthetic Lit.String so managed-source rendering does not require tokenizing parsed quasiquote origins

@mergify

mergify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@nafg
nafg force-pushed the feat/zio-http-template2 branch from 34de901 to 9cd018a Compare July 19, 2026 04:45
@nafg
nafg requested a review from Copilot July 19, 2026 08:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the CSS DSL generator with a new ZIO HTTP template2 target, adding publishable _ziohttp modules across supported CSS frameworks and documenting usage, plus a new rendering test to validate class composition and attribute normalization.

Changes:

  • Added a TargetImpl.ZioHttpTemplate2 generator target and wired it into code generation (support injection) for generated DSL modules.
  • Introduced new *_ziohttp SBT subprojects for Bootstrap/Bulma/Semantic/Fomantic/Font Awesome, and updated README install coordinates generation to emit safe <version> placeholders on snapshots.
  • Added a bootstrap3_ziohttp munit test suite covering chaining, C composition, and class-attribute preservation/normalization.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
README.md Documents the new ZIO HTTP template2 target and publishes module coordinates + usage example.
project/TargetImpl.scala Adds the ZIO HTTP template2 target implementation and support definitions.
project/Generator.scala Injects per-target support code into generated DSL modules.
generateInstructions.sbt Extends the README artifact table generator for _ziohttp and snapshot-safe <version> placeholders.
build.sbt Adds *_ziohttp subprojects and zio-http dependency wiring.
bootstrap3_ziohttp/src/test/scala/cssdsl/bootstrap3/ZioHttpTemplate2DslSpec.scala Adds rendering tests validating class composition and existing class-attr preservation/normalization.

Comment thread project/TargetImpl.scala
@nafg
nafg force-pushed the feat/zio-http-template2 branch 2 times, most recently from e840053 to e885021 Compare July 19, 2026 10:29
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@nafg, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d64ca803-6405-47f4-868d-94e5219a8dac

📥 Commits

Reviewing files that changed from the base of the PR and between 9abcbbf and 87c2d94.

📒 Files selected for processing (5)
  • bootstrap3_ziohttp/src/test/scala/cssdsl/bootstrap3/ZioHttpTemplate2DslSpec.scala
  • build.sbt
  • generateInstructions.sbt
  • project/Generator.scala
  • project/TargetImpl.scala
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/zio-http-template2

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.

@nafg
nafg force-pushed the feat/zio-http-template2 branch from e885021 to 69254b2 Compare July 19, 2026 10:30
Add a ZIO HTTP template2 target implementation and publishable modules for every supported CSS framework. Generated tag extensions append classes without losing existing attributes, while C values integrate safely with template2 className attributes instead of becoming text children.

Extend the generator with target-specific support definitions, document the new coordinates and usage, and add cross-built rendering tests for class composition and attribute normalization. Snapshot-generated install instructions now use a version placeholder so pull-request documentation does not advertise unpublished coordinates.
@nafg
nafg force-pushed the feat/zio-http-template2 branch from 69254b2 to 87c2d94 Compare July 19, 2026 10:33
@nafg
nafg merged commit 33e1ab8 into master Jul 19, 2026
6 of 8 checks passed
@nafg
nafg deleted the feat/zio-http-template2 branch July 19, 2026 10:34
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