Wiki source code of Source Repositories

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

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 All XWiki sources are stored in [[Git>>http://git-scm.com/]] repositories on {{scm}}GitHub{{/scm}}. XWiki is an [[OW2 project>>https://projects.ow2.org/view/xwiki/]], but we're using GitHub to store our sources.
6
7 You can browse the source repositories and download/clone the sources by using {{scm}}GitHub{{/scm}}. 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.
8
9 = Top Level Projects =
10
11 XWiki is not a single product, but an ecosystem of {{scm}}top-level projects{{/scm}}.
12
13 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 :
14
15 |=Git Repository name|=Description
16 |[[xwiki-commons>>commons:Main.WebHome]]|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.
17 |[[xwiki-rendering>>rendering:Main.WebHome]]|Rendering library to convert some input syntax into another output syntax. Can be used by projects outside of the XWiki ecosystem. Uses ##xwiki-commons##.
18 |[[xwiki-platform>>https://github.com/xwiki/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.
19 |[[xwiki-dev-tools>>https://github.com/xwiki/xwiki-dev-tools]]|Various internal subprojects for improving the XWiki development experience (release scripts, helper to easily debug XWiki inside Eclipse, etc).
20 |[[xwiki-docker>>https://github.com/xwiki/xwiki-docker]]|Docker images to run XWiki as a Docker container.
21 |[[xwiki-jenkins-pipeline>>https://github.com/xwiki/xwiki-jenkins-pipeline]]|Jenkins custom pipeline libraries used by the various ##Jenkinsfile## located at the root of various Git Repositories.
22 |[[xwiki-docker-build>>https://github.com/xwiki/xwiki-docker-build]]|Docker image for Jenkins Agent
23 |[[xwiki-clover-maven>>https://github.com/xwiki/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
24
25 {{info}}
26 In order to better understand the relationships between the Platform and other top level projects, check how XWiki is [[Architected>>xwiki:Documentation.DevGuide.Architecture]].
27 {{/info}}
28
29 = Contrib Projects =
30
31 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 {{scm user="xwiki-contrib"}}XWiki Contrib{{/scm}} organization on GitHub where everyone could contribute easily to XWiki-related projects (If you're interested see the [[documentation for Contrib projects>>contrib:Main.WebHome]]).
32
33 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>>contrib:Main.WebHome#HHostingtools]] (among other tools).
34
35 = Attic =
36
37 Finally abandonned project are moved to {{scm user="xwiki-attic"}}the xwiki-attic organization{{/scm}}.
38
39 = Project Structure =
40
41 == XWiki Commons Structure ==
42
43 |=Directory name|=Description
44 |xwiki-commons/xwiki-commons-pom|The top level Maven build descriptor (a.k.a POM). It's referenced by all other build modules.
45 |xwiki-commons/xwiki-commons-core|Commons libraries (JARs)
46 |xwiki-commons/xwiki-commons-tools|Build tools used to build other commons modules.
47
48 == XWiki Rendering Structure ==
49
50 See the [[Rendering Project>>rendering:Main.WebHome]].
51
52 == XWiki Platform Structure ==
53
54 |=Directory name|=Description
55 |xwiki-platform/xwiki-platform-core|All core modules (JARs, skins, extensions, Web, etc)
56 |xwiki-platform/xwiki-platform-tools|Build tools and various other misc. tools.
57 |xwiki-platform/xwiki-platform-distribution|Distributed packages (WAR, installers, Standard Flavor, etc)
58
59 = Getting Sources =
60
61 Go to {{scm}}GitHub{{/scm}}, select the repository you wish to get and follow the GitHub instructions.
62
63 Then [[build>>Building]] the sources.
64
65 Alternatively, locate the XWiki artifact for which you wish to get the sources of in our [[Maven Repository>>https://nexus.xwiki.org/nexus/content/repositories/releases/]] 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>>https://nexus.xwiki.org/nexus/content/repositories/releases/org/xwiki/commons/xwiki-commons-component-api/4.5.2/]].
66
67 = Branches and Tags =
68
69 Check our [[Versioning and Release practices>>VersioningAndReleasePractices#HReleasesandSCM]].
70
71 = GitHub Setup =
72
73 * We use dependabot to check for security issues (example for [[xwiki-platform>>https://github.com/xwiki/xwiki-platform/network/alerts]])
74 * 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>>https://github.com/xwiki/xwiki-platform/blob/master/.github/dependabot.yml]]
75
76 = History =
77
78 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.
79
80 Some details:
81
82 * An old archived version when the sources were in SVN can be [[accessed through WebArchive>>http://web.archive.org/web/20150922144425/http://svnsearch.org/svnsearch/repos/XWIKI/search]].
83 * To get the first commit of XWiki, checkout ##xwiki-platform## and issue: {{code language="sh"}}git rev-list --max-parents=0 --tags --branches --reverse | head -1 | xargs git log{{/code}} (another less good way: {{code language="sh"}}git log --reverse XWIKI_0_1_10{{/code}}).
84
85 {{info}}
86 Some trivia:
87 * The first commit of XWiki was done by Ludovic on 15 December 2003, at 09:13:33 Paris/France time.
88 * The first version of XWiki was taking less than 6MB of disk space (uncompressed and including its libraries).
89 {{/info}}

Get Connected