Hi devs,
Context
=======
I’d like to propose a new best practice for extensions and especially recommended ones.
We already have the following on
http://dev.xwiki.org/xwiki/bin/view/Community/ApplicationDevelopmentBestPra…:
"In your POM always try to depend on the oldest version of commons/rendering/platform
dependencies for which your code works. At least, ensure that your Applications works on
the latest LTS version of XWiki. This will allow the largest number of users to use your
application.”
In addition on the definition of a Recommended Extension at
http://extensions.xwiki.org/xwiki/bin/view/ExtensionCode/RecommendedExtensi…
we say:
“Works at least with the latest stable XWiki versions and with the LTS version”
This proposal is about ensuring that an extension works with the latest stable XWiki
version.
Proposal
========
1) Always create a LATEST branch for recommended extensions
2) On this branch depend on LATEST for parent pom. For example:
<parent>
<groupId>org.xwiki.commons</groupId>
<artifactId>xwiki-commons-pom</artifactId>
<version>LATEST</version>
</parent>
Note 1: For extensions using
https://github.com/xwiki-contrib/parent we also need to
release latest version of those poms as part of the XWiki
commons/rendering/platform/enterprise release process.
Note 2: The advantage of using LATEST is that it doesn’t require maintenance from the
extensions whenever new versions of XWiki commons/rendering/platform/enterprise are
released. It does require to update the contrib parent poms though.
3) On
ci.xwiki.org, make sure that the job is defined to build 2 branches. You can also
leave the branch name empty and Jenkins will then build all available branches as I’ve
done for IRC Bot app:
http://ci.xwiki.org/job/Contrib%20-%20IRC%20Bot%20Application/configure (check the “Source
Code Management” section).
WDYT?
Thanks
-Vincent