Introduced "latest" xsd file path #2886
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Main Change
We ship a new xsd version with each non-patch release of liquibase, but while some people find that helpful others find it overly complex. Furthermore, examples and documentation gets difficult to keep up to date when references need to be constantly updated.
This PR would solve that problem by introducing a new
dbchangelog-latest.xsd
url so people can use:as an XSD reference if they don't want to be locked into the specific version.
With each new non-patch release, we:
Because Liquibase reads the dbchangelog XSD files from the shipped jar, "latest" will always be the version shipped in the version of liquibase they run.
BUT: that may be different than the version currently at http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd if they are not on the actual latest version of Liquibase.
AND ALSO BUT: other tools like IDEs rely on downloading the xsd and caching it, so that may become out of sync in surprising ways
Secondary changes
Things to Worry About
I think PR makes sense if the following "best practice" is actually what we want to suggest:
a. Therefore our docs should always use -latest.xsd with one new page added explaining the pros and cons to using -latest vs a versioned xsd.
a. The primary driver for this would be people who rely on external tools like an IDE that caches too hard and/or is too "ahead" of the version of liquibase they use.
My theory is that the XSD tends to change infrequently enough and when it does it is just in minor ways that even if IDEs etc are using an older or newer version most differences won't get noticed. But maybe those small differences will be annoying and surprising enough that it overwhelms the "nice to have" of not longer having to think about the version info in the file.
But is that a valid theory?