The XWiki Contrib Project provides hosting for projects related to XWiki. These projects are not part of the official XWiki distributions and are not maintained by the XWiki development team.

Hosting tools

The project hosting forge can provide contributors with some or all of the following tools :

  • A SVN directory, under http://svn.xwiki.org/svnroot/xwiki/contrib/
  • A JIRA project for tracking bugs and feature requests, at http://jira.xwiki.org/ and under the "XWiki Contributed projects" category. Note that there will be a generic JIRA project to be used by all projects till they  achieve a first release or till they grow to a size significant enough to warrant a dedicated JIRA project
  • A generic maven groupId : org.xwiki.contrib
  • Project pages on xwiki.org sites to describe and document the project.

    Our long term objective is to make all projects documentation accessible from http://code.xwiki.org, though the content from code.xwiki.org should be aggregated from the various XWiki sites : platform.xwiki.org for the XWiki platform's modules, contrib.xwiki.org for contributed projects, etc.

    For the time being and until we perform that restructuration of code.xwiki.org, projects from the XWiki Contrib project can be documented in two places : 

    • On a page on code.xwiki.org, only if the project has been already made available for download here (i.e., has been released at least once).
    • On a dedicated space on contrib.xwiki.org for other projects.

Requesting a project

The contrib project is open for anyone with a project that request it. Simply send us an email at devs AT xwiki.org using "[Contrib]" at the beginning of your email's subject. Let us know the name and a short description of your project. If your project has already been made available for download on code.xwiki.org, please precise it and point us to its page (If it is not, then no need to hurry, you will make it available once it's ready). Finally, let us know which of the listed tools you need. For SVN access, you will need to register a user on http://www.xwiki.org with a UNIX-like user name, and let us know about it. Such a username is composed of the first letter of your first name immediately followed by your last name, the whole with no capital letter (for example jdoe if your name is John Doe). We will get back to you shortly with all the information you need.

SVN organization

The contrib SVN directory (in XWiki's SVN repository) is organized with the following structure :

  http://svn.xwiki.org/svnroot/xwiki/contrib/ |__people/ |__projects/ |__retired/ |__sandbox/  

Each of the sub-directory has the following meaning :

  • people is a directory for "personal tests" projects. The idea is behind is to give whoever requests it a personal space where he can experiment with XWiki code, and that space is private (i.e. an implied rule is that people are not supposed to commit code in others projects, thus making it different from sandbox projects). Each sub-folder of people/ is composed of the username of the person that requests his project, for example "jvelociter".
  • projects hosts the actual contrib projects, that are active (meaning that they still do make sense as projects in
    the XWiki ecosystem, they are not abandoned, etc.)
  • retired is the "place where dead project go ;(" A dead project can be a project that get superseded by a newer one, or a project that is not actively maintained for a long period of time.
  • sandbox is the place for experimental projects that have not been released.

Releasing a project

XWiki.org allows you to release your project on its maven repository as long as you follow the following steps:

  • Use org.xwiki.contrib as groupId in your maven module
  • Request for an account on http://nexus.xwiki.org on the [email protected] mailing list
  • Once you've received your credentials put them in /.m2/settings.xml
    <settings>
    ...
    <servers>
    ...
     <server>
       <id>xwiki-staging</id>
       <username>username</username>
       <password>********</password>
     </server>
    ...
    </servers>
    ...
    </settings>
  • Put the following configuration in your project pom.xml
    <project>
    ...
     <distributionManagement>
       <repository>
         <id>xwiki-staging</id>
         <name>XWiki Staging Repository</name>
         <url>http://nexus.xwiki.org/nexus/service/local/staging/deploy/maven2/</url>
       </repository>
     </distributionManagement>
    ...
    </project>
  • Send a vote on the [email protected] mailing list to discuss the promotion of your project out of sandbox
  • Close the vote
  • Create an issue on http://jira.xwiki.org/jira/browse/XCONTRIB regarding your project promotion
  • Create the new home for your project in contrib/projects/
    cd contrib/projects
    mkdir myproject
    mkdir myproject/branches
    mkdir myproject/tags
    svn add myproject
    cd ../sandbox
    svn move myproject ../projects/myproject/trunk
    cd ../../
    svn ci (don't forget to refer to the JIRA issue you've created)
  • Release the project with the maven release plugin
    cd contrib/projects/myproject
    mvn release:prepare
    mvn release:perform
  • Ask for someone to promote your release (ie. make it available on maven.xwiki.org) in the thread you've created earlier on devs.xwiki.org
  • After that your release will be available for download on maven.xwiki.org and anyone will be able to use it as a dependency for his own project
Tags:
   

Get Connected