You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by "jamesfredley (via GitHub)" <gi...@apache.org> on 2026/05/04 12:32:32 UTC
[PR] Polish all 9 v8 guides for the imminent Grails 8 release [grails-static-website]
jamesfredley opened a new pull request, #506:
URL: https://github.com/apache/grails-static-website/pull/506
## Summary
Comprehensive pre-release polish pass on every v8 guide:
* **URL hygiene**: drop every `prev-snapshot.grails.org` reference (the snapshot forge will go stale on release) in favour of `start.grails.org` per the established pattern in `grails-fields-custom-widgets-and-wrappers v8`. The `curl` examples are rewritten as browser-based instructions because `start.grails.org` is a UI; its REST forge endpoint lives on a separate Cloud Run host that is not part of the user-facing interface. Four "Snapshot Starter" TOC titles drop the "Snapshot" word.
* **`grails-spock-test-tour v8`**: migrate the functional-test chapter from `GebSpec` to `grails.plugin.geb.ContainerGebSpec` (the canonical Grails 8 base class - Selenium runs inside a Testcontainers container, no host WebDriver binaries needed). Vendor a new `BookFunctionalSpec.groovy` snippet, drop `geb-with-webdriver-binaries` from the forge feature list, and update the registry subtitle + TOC title.
* **`grails-github-actions-cicd v8`**: align the CI/CD job graph with the same `ContainerGebSpec` story.
* **`grails-multi-module v8`**: add a new `devReload.adoc` chapter walking the supported `org.apache.grails.gradle.grails-exploded` plugin recipe (verified at `grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/exploded/GrailsExplodedPlugin.groovy` on `8.0.x`) plus the `grails { plugins { ... } }` wiring on the consuming webapp side. Expand `sharedCore.adoc` with cited source paths for the plugin descriptor, GORM cross-plugin auto-discovery, and the Gradle plugin lifecycle. Fix a real Gradle bug in the snippet `build.gradle`: dual `content { }` filter blocks AND-combine and silently disabled the snapshot/staging Maven repos for `grails*` artefacts.
* **`grails-htmx v8`**: refactor `TaskController` for production hygiene (explicit `flush:true`, validate-then-save, field-by-field assignment instead of `t.properties = params`, new `show(Long id)`), add a new `_taskCreated.gsp` partial demonstrating the canonical htmx out-of-band swap pattern, encode error messages as HTML, and add the `htmx 2.0.4` webjar dependency.
* **`grails-rest-library v8`**: fix a real operator-precedence bug in `BookController.bulkCreate` (`!request.JSON instanceof List` parses as `(!request.JSON) instanceof List` which is always false). Modernise to `bindData()`, `errors.allErrors`, and i18n `message(error: error)`. Add pagination (`index(Integer max)` + `countResources()`) and an `?author=<id>` filter via `Book.where { author.id == authorId }`. New `_errors.gson` view + new Liquibase `changelog.groovy` so the database-migration feature has its entry-point.
* **`grails-tailwindcss v8`**: tighten the asset-pipeline narrative across `whatYouWillBuild`, `gradleWiring`, and `firstPaint` so the `<asset:stylesheet>` taglib + `application.css` manifest path is in the body prose, not a sidebar `NOTE`. `tailwindBuild`/`npmInstall` use Provider-based `dependsOn` and pick up `services/`, `taglib/`, and `src/main/groovy` as extra source dirs. `input.css` gets `tag::components`/`end::components` markers so `componentLayer.adoc` can `include::` only the relevant block.
* **`grails-docker-bootbuildimage v8`**: cite the Spring Boot Gradle plugin coordinate (`spring-boot-gradle-plugin:4.0.5`, verified against `git show 8.0.x:dependencies.gradle`), cross-reference `grails-doc/src/en/guide/deployment.adoc` for WAR-file deployment as a complementary path.
* **`grails-vite-spa v8`**: critical fix - the `cors.adoc` chapter previously claimed Grails has no built-in CORS support. Wrong: `grails-doc/src/en/guide/theWebLayer/cors.adoc` documents the `grails.cors.enabled` block. Rewrote with the canonical YAML config. Cross-reference `grails-doc/src/en/guide/REST/`, `theWebLayer/urlMappings.adoc`, `theWebLayer/controllers/forwarding.adoc`, and `gettingStarted/developmentReloading.adoc`.
* **`grails-fields-custom-widgets-and-wrappers v8`**: cross-reference the official `grails-doc/src/en/guide/theWebLayer/fields.adoc` chapter, drop the stale hard-coded `8.0.0-SNAPSHOT` version reference, name the taglib source path, and document the additional `_themes/<theme>/` lookup level controlled by `grails.plugin.fields.theme`.
* Throughout, every chapter that touches files now ends with a `Files touched` bullet list matching the established `grails-fields-custom-widgets-and-wrappers v8` style.
## Verification
```
./gradlew --no-configuration-cache validateGuides -PvalidationMode=both
[validateGuides] mode=both: 93 guide(s) parsed, 0 SKIP-warned, 0 errors
```
`./gradlew --no-configuration-cache renderGuide_grails_*_8` PASSES for all 9 v8 guides (HTML in `build/dist/guides/grails-*/8/`).
Cross-references verified against `grails-core` 8.0.x via `git -C /home/james/projects/grails-core show 8.0.x:<path>` (read-only; never switched branches).
## Companion sample-repo updates
The matching `grails-guides/<name>` sample repos on the `grails8` branch have been updated in lock-step (7 of 9 needed changes; `docker-bootbuildimage` and `vite-spa` were already in sync). New head commits:
* `grails-spock-test-tour@126c7d8`
* `grails-htmx@b682b98`
* `grails-rest-library@36507fa`
* `grails-multi-module@34415a5`
* `grails-tailwindcss@18f48e7`
* `grails-github-actions-cicd@b16323c`
* `grails-fields-custom-widgets-and-wrappers@41b5737`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Polish all 9 v8 guides for the imminent Grails 8 release [grails-static-website]
Posted by "jamesfredley (via GitHub)" <gi...@apache.org>.
jamesfredley merged PR #506:
URL: https://github.com/apache/grails-static-website/pull/506
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org