Source Repositories

Last modified by Simon Urli on 2023/10/10 11:55

All XWiki sources are stored in Git repositories on GitHub. XWiki is an OW2 project, but we're using GitHub to store our sources.

You can browse the source repositories and download/clone the sources by using GitHub. If you're looking for sources corresponding to a given XWiki version you'll need to switch to that version's branch in GitHub's UI.

Top Level Projects

XWiki is not a single product, but an ecosystem of top-level projects.

Here's the list of repositories (one repository per top level project) maintained by the XWiki Core Development Team (a.k.a Core XWiki Committers) and that you should see if you browse the Git repositories at https://github.com/xwiki :

Git Repository nameDescription
xwiki-commonsTechnical libraries common to several other top level projects. Can be used by projects outside of the XWiki ecosystem; not related to the wiki domain.
xwiki-renderingRendering library to convert some input syntax into another output syntax. Can be used by projects outside of the XWiki ecosystem. Uses xwiki-commons.
xwiki-platformReusable components/parts used by other top level projects, making up a wiki runtime. Uses xwiki-commons and xwiki-rendering. Also provide the default Distribution and the Standard Flavor.
xwiki-dev-toolsVarious internal subprojects for improving the XWiki development experience (release scripts, helper to easily debug XWiki inside Eclipse, etc).
xwiki-dockerDocker images to run XWiki as a Docker container.
xwiki-jenkins-pipelineJenkins custom pipeline libraries used by the various Jenkinsfile located at the root of various Git Repositories.
xwiki-docker-buildDocker image for Jenkins Agent
xwiki-clover-mavenProvide a Clover diff between two reports, excluding test classes and showing global TPC contribution diffs for each Maven module with the goal of finding out which modules are negatively contributing to the global TPC

In order to better understand the relationships between the Platform and other top level projects, check how XWiki is Architected.

Contrib Projects

In addition to the Top Level Projects mentioned above (and for which only XWiki Core committers have the rights to commit to), we've also created an XWiki Contrib organization on GitHub where everyone could contribute easily to XWiki-related projects (If you're interested see the documentation for Contrib projects).

Note that GitHub offers free hosting for open source projects for every registered user, so you don't have to ask for access to the xwiki-contrib repositories if you just want to host your own code. That said we would love for you to put your project on xwiki-contrib since it makes it easy for users/developers to find XWiki-related projects under a single location (it also makes better advertising for your own project). By using xwiki-contrib you also gain a wiki and a JIRA project if you want to (among other tools).

Attic

Finally abandonned project are moved to the xwiki-attic organization.

Project Structure

XWiki Commons Structure

Directory nameDescription
xwiki-commons/xwiki-commons-pomThe top level Maven build descriptor (a.k.a POM). It's referenced by all other build modules.
xwiki-commons/xwiki-commons-coreCommons libraries (JARs)
xwiki-commons/xwiki-commons-toolsBuild tools used to build other commons modules.

XWiki Rendering Structure

See the Rendering Project.

XWiki Platform Structure

Directory nameDescription
xwiki-platform/xwiki-platform-coreAll core modules (JARs, skins, extensions, Web, etc)
xwiki-platform/xwiki-platform-toolsBuild tools and various other misc. tools.
xwiki-platform/xwiki-platform-distributionDistributed packages (WAR, installers, Standard Flavor, etc)

Getting Sources

Go to GitHub, select the repository you wish to get and follow the GitHub instructions.

Then build the sources.

Alternatively, locate the XWiki artifact for which you wish to get the sources of in our Maven Repository and download the associated source JAR. For example to get the sources for the "XWiki Commons Component API" module, get the JAR file ending with -sources here.

Branches and Tags

Check our Versioning and Release practices.

GitHub Setup

  • We use dependabot to check for security issues (example for xwiki-platform)
  • We also use dependabot to automatically issue PullRequests when new dependency versions are found. Our goal is to always be the most up to date possible. Example for xwiki-platform

History

Originally the sources were put on SourceForge in CVS in 2003. They were then moved to a Subversion instance and are now in git on GitHub.

Some details:

  • An old archived version when the sources were in SVN can be accessed through WebArchive.
  • To get the first commit of XWiki, checkout xwiki-platform and issue: git rev-list --max-parents=0 --tags --branches --reverse | head -1 | xargs git log (another less good way: git log --reverse XWIKI_0_1_10).

Some trivia:

  • The first commit of XWiki was done by Ludovic on 15 December 2003, at 09:13:33 Paris/France time.
  • The first version of XWiki was taking less than 6MB of disk space (uncompressed and including its libraries).
Tags:
   

Get Connected