Now that Griffon 1.0.0 is available there may be some people experiencing upgrade problems. Say you have an existing Griffon application created with 0.9.5; this application has several plugins installed, some of them have a dependency on swing-0.9.5. All goes well when upgrading this application to Griffon 1.0.0 but any further commands make it fail with an error similar to the following one
What's going on here? The answer lies in stricter upgrade policies enforced since 0.9.5 when the plugin system was redesigned. Previous to 0.9.5 you could upgrade to a newer version in a very "careless" way, that is, just pick the latest number and do it. However this could to unexpected problems if there's a binary incompatibility lurking in the release. Because of this the team decided to enforce the following rules when resolving plugin version
- split version numbers into major.minor.revision
- if major number differs then abort
- if minor number differs, pick the bigger one
- if revision number differs, pick the bigger one
- tags should be treated in descending alphabetic order with the exception of -SNAPSHOT which is always last
This flag will the build to accept plugin upgrades even if there are differences in major numbers.
By the way, in case you're curious about the character ! next to each plugin name/version it means there's a conflict in that plugin or any of its dependencies. Additional characters may be present (one per line)
- . the plugin is installed
- + the plugin will be installed
- - the plugin will be removed
- ? the plugin could not be resolved
Keep on Groovying!