Originally created by @odenix on GitHub (Nov 12, 2024).
codegen-java should support generating record classes instead of regular classes whenever possible.
(codegen-kotlin already generates data classes whenever possible.)
I have this almost working, but one important question remains: how to deal with backward compatibility?
One option is to introduce a —generate-records flag and only generate record classes if this flag is set.
Another option is to ask users to stay on the 0.27 code generator until they are ready to switch to record classes.
In any case, generating record classes should eventually become the default.
Originally created by @odenix on GitHub (Nov 12, 2024).
codegen-java should support generating record classes instead of regular classes whenever possible.
(codegen-kotlin already generates data classes whenever possible.)
I have this almost working, but one important question remains: how to deal with backward compatibility?
One option is to introduce a `—generate-records` flag and only generate record classes if this flag is set.
Another option is to ask users to stay on the 0.27 code generator until they are ready to switch to record classes.
In any case, generating record classes should eventually become the default.
Yeah, definitely. Now with Java 11 dropped, the code generator should generate records. I think this is okay as a breaking change (generate java records by default, require flag to retain old behavior).
@bioball commented on GitHub (Nov 13, 2024):
Yeah, definitely. Now with Java 11 dropped, the code generator should generate records. I think this is okay as a breaking change (generate java records by default, require flag to retain old behavior).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @odenix on GitHub (Nov 12, 2024).
codegen-java should support generating record classes instead of regular classes whenever possible.
(codegen-kotlin already generates data classes whenever possible.)
I have this almost working, but one important question remains: how to deal with backward compatibility?
One option is to introduce a
—generate-recordsflag and only generate record classes if this flag is set.Another option is to ask users to stay on the 0.27 code generator until they are ready to switch to record classes.
In any case, generating record classes should eventually become the default.
@bioball commented on GitHub (Nov 13, 2024):
Yeah, definitely. Now with Java 11 dropped, the code generator should generate records. I think this is okay as a breaking change (generate java records by default, require flag to retain old behavior).
@odenix commented on GitHub (Nov 19, 2024):
Blocked on #790.
@raymyers commented on GitHub (Jan 10, 2025):
So that might mean unblocked now then? 🤞
@bioball commented on GitHub (Mar 1, 2025):
Implementation: https://github.com/apple/pkl/pull/970