Reported in #4072 (closed), discussed in #4454
Scalaz is not re-generated by users or CI (only verified), so some compilation issues have been introduced into the generator. Specifically, the generator previously didn't handle defaults well (or even correctly, maybe?). This broke when array models were added to the openapi document used to generate samples. The inclusion of Date-related mappings being mapped to joda time in DefaultCodegen also caused some issues with new DateTime properties on models.
Over the course of what appears to be Nov 10-17 2019, CircleCI seems to be having intermittent issues with Scalaz verification. I found that green builds were picking up SBT 0.13.x and failed builds were SBT 1.1.0. It's not clear where the system level SBT is being defined, but a simple fix has been to enforce the sbt version in the generator.
For those unfamiliar with SBT; the SBT command acts as a launcher script which may switch to older/newer versions of SBT. A Scala project invoked with SBT 1.1.0 will look for an sbt.version override and happily attempt compilation with the available SBT 1.1.0. The problem is that SBT 1.1.0 uses Scala 2.12 and this is not binary compatible with Scala 2.11. This can cause issues with builds due to plugins or incompatible Java version.
PR checklist
-
Read the contribution guidelines. -
If contributing template-only or documentation-only changes which will change sample output, build the project before. -
Run the shell script(s) under ./bin/
(or Windows batch scripts under.\bin\windows
) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
if updating the code or mustache templates for a language ({LANG}
) (e.g. php, ruby, python, etc). -
File the PR against the correct branch: master
,4.3.x
,5.0.x
. Default:master
. -
Copy the technical committee to review the pull request if your PR is targeting a particular programming language.