>> I was trying to avoid using the XML file but is it safe to assume that the config.xml
>> files will be backwards compatible if we upgrade to a newer version of Jenkins in the future?
>
> Yes, we would make every attempt to retain `config.xml` compatibility,
> since failing to due so would cause a critical problem for essentially
> every Jenkins user.
Sorry, but that it not quite true in reality. As an example, I have performed a fresh installation of Jenkins
about 4 months ago. Within that time, when I look at the management page for plugins is see 16
messages of the following form:
"Warning: This plugin requires dependent plugins be upgraded and at least one of these dependent plugins
claims to use a different settings format than the installed version. Jobs using that plugin may need to be
reconfigured, and/or you may not be able to cleanly revert to the prior version without manually restoring
old settings. Consult the plugin release notes for details."
This indicates to me that the XML format has likely changed in an incompatible manner.
I have also maintained a customised jenkins-job-builder version in the past and experienced a number
of cases where I was forced to update the generated XML format due to changes in Jenkins plugins.
It may be a goal for some of the developers to maintain backwards compatibility, but it is clearly not
being achieved. My experience indicates that for any sizeable and non-trivial Jenkins setup you cannot
expect long term backwards compatibility for all the plugins. You will run into problems sooner rather
than later, which is why regular backups of all the configurations files in Jenkins are so important. That
is the only certain way to rollback a plugin upgrade. The built in mechanism in the Jenkins GUI are brittle.