All GML-based applications should use the new (proper) GML compiler, which allows us, among other things, to verify in CI that the GML is well-formed to a high degree. This is a task list for all applications which still need this done. To find a candidate yourself, just search for stringify_gml
, the old non-compiling GML method, in the CMake lists.
Porting an application usually involves the following steps, assuming that there already is a dedicated widget class for the GML definition:
try_create
method to the appropriate widget. The compiler error on the generated file will tell you how that must look exactly.try_create
(which is generated from GML and will perform initial setup), then it performs its own setup. Remove any load_from_gml
calls.try_create
must then be public.ErrorOr<void> initialize()
; see #22860The only real place for error is an incorrectly public try_create or failing to call try_create in the custom setup function; any other error is caught by the compiler.
In some instances, the GML compiler needs to learn about new special cases not encountered before, like string argument types, enum properties, etc. I can't always predict when this is necessary, even though I'm certain most of the special cases are accounted for.
When this task list is completed: Don't delete the load_from_gml function or Playground! They are here to stay. However, the stringify_gml CMake function can be removed.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too