codeconsole opened a new pull request, #146: URL: https://github.com/apache/grails-forge-ui/pull/146
## Summary The Grails Forge API now reports two relationship fields per feature (apache/grails-core#15987): `dependentFeatures` — features a selection adds automatically server-side — and `oneOfGroup` — features sharing a group are mutually exclusive. The feature selector previously surfaced neither: implied features were invisible in the selection, and conflicting features could be selected together only to fail at generation time. A new `featureRelations` helper expands a selection transitively (a feature's dependents, their dependents, and so on), and the selector acts on it: - **Implied features** are labelled *included automatically by <feature>* on their card, made non-toggleable, and appended to the Additional Selected Features row as non-removable *(included)* chips. - **Conflicting features** — those whose selection, directly or through anything they would add automatically, would land in a one-of group already occupied by another feature — are greyed out and disabled, labelled *unavailable with <feature>*. Example with the new Spring Security features: selecting **Grails Spring Security UI Plugin** shows **Grails Spring Security Plugin** as included and disables **Spring Boot Starter Security** (the conflict flows through the implied core plugin). Features without the new metadata behave exactly as before, and the fields are absent-tolerant, so the UI works unchanged against API versions that do not ship them — the two PRs can merge independently in either order. ## Testing - `npm run lint` clean - `npx vitest run` — 30/30 passing - Verified live against a local Forge API serving the metadata: implied labelling, transitive disabling, and chip rendering all as described -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
