Hi Sven,
Indeed you are right. `vmx` image type is a legacy one as this turns to
be a specific case of the `oem` type. Kiwi automatically converts old
descriptions into the schema version of the running kiwi.
As noted in the issue link you found the `vmx` type turned to be
limiting for anyone aiming to build non expandable disk VMs with some
specific configuration available as part of the `oemconfig` section. So
that the `oem-resize` section in `oemconfig` was introduced. At this
point `vmx` type execution path compared with the one of the `oem` type
including `<oem-resize>false</oem-resize>` were completely equivalent.
So, the dracut modules to dump and repartition disk are only activated
and included within the initrd if `oem-resize` is set to true. Yes,
having a `vmx` type with some `oem` package types listed will result in
also including those. You can also make use of the command
```
kiwi-ng image info --print-xml
```
to actually render the XML converted to latest version known by the
current kiwi. This is what will be really processed and evaluated by
kiwi. This is helpful to realize and notice eventual schema changes.
Documentation is expected to be aligned with the latest upstream
release, so having a look on the converted XML to latest version with
the `image info` command can be helpful to better align your
descriptions with the current docs.
> So is this now the standard behavior of kiwi-ng and the descriptions
> should be ported to the above oem definition since vmx is just a legacy
> descriptor? Or is there just a gap in the documentaion?
Yes, vmx is a legacy, as this is, in fact, an specific use case of `oem`
type. KIWI automatically converts from one to the other. I'd say it is a
good practice to keep XML schema up to date, even though we take special
care to make all schema changes backward compatible.
> For someone new working with kiwi-ng this is quite confusing especially
> when working with existing descriptions and the official documentation.
I can see you confusion and doubts, I am wondering how this could be
documented to make it easier to understand and follow. Do you think
having a note or section explaining `vmx` type is legacy and how this is
converted to `oem` would have been clarifying for you?
I hope the explanation is helpful.
Regards,
David