Source Repositories
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 name | Description |
---|---|
xwiki-commons | Technical 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-rendering | Rendering library to convert some input syntax into another output syntax. Can be used by projects outside of the XWiki ecosystem. Uses xwiki-commons. |
xwiki-platform | Reusable 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-tools | Various internal subprojects for improving the XWiki development experience (release scripts, helper to easily debug XWiki inside Eclipse, etc). |
xwiki-docker | Docker images to run XWiki as a Docker container. |
xwiki-jenkins-pipeline | Jenkins custom pipeline libraries used by the various Jenkinsfile located at the root of various Git Repositories. |
xwiki-docker-build | Docker image for Jenkins Agent |
xwiki-clover-maven | Provide 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 |
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 name | Description |
---|---|
xwiki-commons/xwiki-commons-pom | The top level Maven build descriptor (a.k.a POM). It's referenced by all other build modules. |
xwiki-commons/xwiki-commons-core | Commons libraries (JARs) |
xwiki-commons/xwiki-commons-tools | Build tools used to build other commons modules. |
XWiki Rendering Structure
See the Rendering Project.
XWiki Platform Structure
Directory name | Description |
---|---|
xwiki-platform/xwiki-platform-core | All core modules (JARs, skins, extensions, Web, etc) |
xwiki-platform/xwiki-platform-tools | Build tools and various other misc. tools. |
xwiki-platform/xwiki-platform-distribution | Distributed 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).