Code generator for Sunday client libraries and standard server libraries.
- The Gradle plugin now defaults to deterministic output for build/cache correctness by omitting generated timestamps unless explicitly set.
- Includes are discovered by parsing RAML sources; changes in nested include chains are tracked automatically.
- The
includesDSL property is deprecated and has no effect. - To opt in to a timestamp, set
generationTimestampon a generation (for example, a fixed string or a time you compute in the build script). - Each generation exclusively owns its output directory. Do not share it with other generations or handwritten sources. A successful generation replaces that directory from staged output, so removed types, renamed packages, and disabled categories do not leave stale classes. A failed generation preserves the previous output. A cached ownership manifest records generated file hashes; unowned or modified files are rejected before replacement or cache restoration. When upgrading from an older generator without a manifest, use an empty output directory or inspect and remove only the old generated files before rebuilding.
- For shared models, generate models once (
generateModel=true,generateService=false) and make facade modules depend on that artifact with model output disabled. Use distinct service packages when client/server interfaces share names. All languages preserve schema-permitted dynamic model fields by default. Use-no-preserve-unknown-fields(CLI) orpreserveUnknownFields.set(false)(Kotlin Gradle plugin) to validate and discard them. See dynamic model fields. - Generated Kotlin broker consumers require
sunday-broker2.0.0-beta.6 or newer for decode-failure recovery. A siblingsunday-ktcheckout is substituted by default during local development. Run./gradlew -PuseLocalSundayKt=false checkto validate against published runtime artifacts instead.
Copyright 2021 Outfox, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.