We have a couple of Openfire plugins which we have written ourselves. In our company we use a versioning system for all our projects which is defined like this: .-<build date/time>. . The version info that is presented in the Plugins tab in the Admin UI is validated against semantic versioning and if the validation fails it will show 0.0.0 as the version.
We would like to get rid of the validation of version numbering and allow arbitrary strings being used as versions.
I’m not a big fan of introducing a change only to accomodate a third-party versioning convention. I’m worried that skipping that validation has side-effects. Maybe we can do something in the presentation layer only, but I suspect that things aren’t that easy. Can you provide a PR with a suggested change that we can review?
I see now that the versioning system i describe didn’t render properly, but that’s moot maybe.
I didn’t realize Openfire used the plugin version for anything, but looking through the PluginManager and the PluginMetadataHelper code i realize it’s more complicated than i thought. I rescind my request to remove version validation.
I have an idea for a PR which would solve our (and maybe others) issue without affecting the existing validation or presentation for versions that adhere to the patterns specified in the Version class. Do you want me to tag it with anything special?
Excellent. I’ve created [OF-2285] Improve version representation of plugins - Ignite Realtime Jira as a placeholder for a potential improvement. If you can mention “OF-2285” somewhere in your commit message, that’d allow things to automatically sync up. For future reference, it would also convenient to include a link from Github to this thread, and/or vice versa.
I’m happy for you to give this a shot, but know that I’m not convinced that this won’t end up being a “won’t fix” resolution. Apart from the complexity in Openfire, the distribution process (part of our website) also makes use of these identifiers. Then again, that does already accomodate the “SNAPSHOT” identifier that’s introduced by Maven, so perhaps you can find a non-invasive way to put in this functionality.