Changes for page Source Repositories

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

From version 24.1
edited by Denis Gervalle
on 2011/05/10 09:55
Change comment: There is no comment for this version
To version 25.1
edited by Vincent Massol
on 2011/08/08 17:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.dgervalle
1 +xwiki:XWiki.VincentMassol
Content
... ... @@ -4,7 +4,7 @@
4 4  
5 5  All XWiki sources are stored in [[Git>>http://git-scm.com/]] repositories on [[GitHub>>https://github.com/xwiki]]. XWiki is an [[ObjectWeb's project>>http://forge.objectweb.org/projects/xwiki/]], but we're using GitHub to store our sources.
6 6  
7 -You can browse the source repositories and download the sources by using [[GitHub>>https://github.com/xwiki]].
7 +You can browse the source repositories and download/clone the sources by using [[GitHub>>https://github.com/xwiki]].
8 8  
9 9  = Top Level Projects =
10 10  
... ... @@ -28,40 +28,22 @@
28 28  We're still migrating from Subversion to Git and the following projects have not been migrated yet and are still available on our subversion instance at http://svn.xwiki.org/svnroot/xwiki/ :
29 29  
30 30  |=Directory name|=Description
31 -|[[contrib>>contrib:Main.WebHome]]|Location for contributions. Anyone can request to get access to this location to contribute code. You don't need to be a committer to do so.
32 32  |[[curriki>>curriki:Main.WebHome]]|A collaborative platform to help create and share educational resources.
33 33  {{/warning}}
34 34  
35 -= Project Structure =
34 += Contrib Projects =
36 36  
37 -{{error}}The content below this point has not been updated yet following the recent migration from Subversion to Git. It's a work in progress{{/error}}
36 +In addition to the Top Level Projects mentioned above (and for which only XWiki committers have the rights to commit to), we've also created an [[XWiki Contrib>>https://github.com/xwiki-contrib]] organization on GitHub where everyone could contribute easily to XWiki-related projects (If you're interested see the [[documentation for Contrib projects>>http://contrib.xwiki.org/]]).
38 38  
39 -Each top level project decides how it structures its trunk, branches and tags. However the general rule is to have ##trunk/##, ##branches/## and ##tags/## directory just below the top level project directory.
38 += Project Structure =
40 40  
41 -For example:
42 -
43 -* To check the trunk for XWiki Enterprise you'd use the URL: http://svn.xwiki.org/svnroot/xwiki/enterprise/trunk/
44 -* To check out the 2.0 version of XWiki Enterprise you'd use the URL: http://svn.xwiki.org/svnroot/xwiki/enterprise/tags/xwiki-enterprise-2.0/ (you can browse all available versions at http://svn.xwiki.org/svnroot/xwiki/enterprise/tags/ )
45 -* To check out some XWiki Enterprise branch you'd use the URL: http:~/~/svn.xwiki.org/svnroot/xwiki/enterprise/branches/<name of branch> (you can browse all available branches at http://svn.xwiki.org/svnroot/xwiki/enterprise/branches/ )
46 -
47 -Note that the trunks/tags/branches structure is different for the Commons and Platform projects since those projects have different release cycles for their various modules (see below for more).
48 -
49 49  == XWiki Commons Structure ==
50 50  
51 51  |=Directory name|=Description
52 -|commons/xwiki-commons-pom|The top level Maven build descriptor (a.k.a POM). It's referenced by all other build modules.
53 -|commons/xwiki-commons-core|Commons libraries (JARs)
54 -|commons/xwiki-commons-tools|Build tools used to build other commons modules.
43 +|xwiki-commons/xwiki-commons-pom|The top level Maven build descriptor (a.k.a POM). It's referenced by all other build modules.
44 +|xwiki-commons/xwiki-commons-core|Commons libraries (JARs)
45 +|xwiki-commons/xwiki-commons-tools|Build tools used to build other commons modules.
55 55  
56 -Here are some useful subversion URLs:
57 -
58 -* Anonymous access to all platform modules: http://svn.xwiki.org/svnroot/xwiki/commons/trunks
59 -* Developer access to all platform modules: https://svn.xwiki.org/svnroot/xwiki/commons/trunks
60 -
61 -{{info}}
62 -Anonymous users can also use the HTTPS protocol for checking out sources, but they won't be able to commit changes in the repository.
63 -{{/info}}
64 -
65 65  == XWiki Rendering Structure ==
66 66  
67 67  See the [[Rendering Project>>rendering:Main.WebHome]].
... ... @@ -69,90 +69,22 @@
69 69  == XWiki Platform Structure ==
70 70  
71 71  |=Directory name|=Description
72 -|platform/core|XWiki Core. Generates the core XWiki JARs.
73 -|platform/skins|XWiki skins.
74 -|platform/web|Templates and more generally all reusable web files. Generates the platform WAR.
75 -|platform/xwiki-applications|Set of reusable XWiki documents exported as XML (XARs). They are usually included in the Products Wikis.
76 -|platform/xwiki-plugins|XWiki plugins that are currently not included in the core. In the future all plugins will be moved here.
77 -|platform/xwiki-tools|Build tools and various other misc. tools.
54 +|xwiki-platform/xwiki-platform-core|All core modules (JARs, skins, extensions, Web, etc)
55 +|xwiki-platform/xwiki-platform-tools|Build tools and various other misc. tools.
78 78  
79 -Here are some useful subversion URLs:
80 -
81 -* Anonymous access to all platform modules: http://svn.xwiki.org/svnroot/xwiki/platform/trunks
82 -* Developer access to all platform modules: https://svn.xwiki.org/svnroot/xwiki/platform/trunks
83 -
84 -{{info}}
85 -Anonymous users can also use the HTTPS protocol for checking out sources, but they won't be able to commit changes in the repository.
86 -{{/info}}
87 -
88 -{{info}}
89 -The ##trunks## directory mentioned above is using [[svn externals>>http://svnbook.red-bean.com/en/1.0/ch07s03.html]]. This means that checking it out will check out other directories too. For information here are the ##svn:externals## definitions used:
90 -
91 -{{code language="none"}}
92 -core https://svn.xwiki.org/svnroot/xwiki/platform/core/trunk
93 -web https://svn.xwiki.org/svnroot/xwiki/platform/web/trunk
94 -skins https://svn.xwiki.org/svnroot/xwiki/platform/skins/trunk
95 -applications https://svn.xwiki.org/svnroot/xwiki/platform/xwiki-applications/trunk
96 -plugins https://svn.xwiki.org/svnroot/xwiki/platform/xwiki-plugins/trunk
97 -tools https://svn.xwiki.org/svnroot/xwiki/platform/xwiki-tools/trunk
98 -{{/code}}
99 -
100 -{{/info}}
101 -
102 -It's also possible to check out individual modules. For example:
103 -
104 -* Anonymous access to the Platform Core only: http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk
105 -* Anonymous access to the Platform Plugins only: http://svn.xwiki.org/svnroot/xwiki/platform/xwiki-plugins/trunk
106 -* Anonymous access to the Platform Applications only: http://svn.xwiki.org/svnroot/xwiki/platform/xwiki-applications/trunk
107 -
108 108  == XWiki Enterprise Structure ==
109 109  
110 110  |=Directory name|=Description
111 -|enterprise/wiki|Default XWiki Enterprise XAR.
112 -|enterprise/database|Loads the XWiki Enterprise XAR into target databases.
113 -|enterprise/distribution|Generates distributions for given Servlet container and given Databases.
114 -|enterprise/distribution-tests|Functional tests.
115 -|enteprise/installers|Generates generic and Windows installers based on generated distributions.
116 -|enterprise/web|Generates the XWiki Enterprise WAR.
60 +|xwiki-enterprise/xwiki-enterprise-wiki|Default XWiki Enterprise XAR.
61 +|xwiki-enterprise/xwiki-enterprise-database|Loads the XWiki Enterprise XAR into target databases.
62 +|xwiki-enterprise/xwiki-enterprise-distribution|Generates distributions for given Servlet container and given Databases.
63 +|xwiki-enterprise/xwiki-enterprise-test|Functional tests.
64 +|xwiki-enterprise/xwiki-enterprise-installers|Generates generic and Windows installers based on generated distributions.
65 +|xwiki-enterprise/xwiki-enterprise-web|Generates the XWiki Enterprise WAR.
117 117  
118 118  = Checking out sources =
119 119  
120 -* Use your favorite Subversion client ([[svn command line client>>http://subversion.tigris.org]], [[TortoiseSVN on Windows>>http://tortoisesvn.tigris.org/]], your IDE, etc)
121 -* If you're a user check out [[http:~~/~~/svn.xwiki.org/svnroot/xwiki/...>>http://svn.xwiki.org/svnroot/xwiki/]] where ... represents the directory you wish to check out
122 -* If you're a [[Committer>>Committership]] check out [[https:~~/~~/svn.xwiki.org/svnroot/xwiki/...>>https://svn.xwiki.org/svnroot/xwiki/]] where ... represents the directory you wish to check out
69 +Go to [[GitHub>>https://github.com/xwiki/]], select the repository you wish to get and follow the GitHub instructions.
123 123  
124 -{{warning}}
125 -**Caution:** http://svn.xwiki.org/svnroot/xwiki/platform contains every file in every release, and is about 7 Gigabytes in size (and growing). Unless you are making a historical archive of the XWiki development process, it is recommended that you checkout just the trunks at http://svn.xwiki.org/svnroot/xwiki/platform/trunks
126 -{{/warning}}
71 +Then [[build>>Community.Building]] the sources.
127 127  
128 -Then [[build>>Community.Building]] the checked out sources.
129 -
130 -= Tips & Tricks =
131 -
132 -== Building a specific version of XWiki Enterprise ==
133 -
134 -Note: You don't need to check out all sources to build a given module. You just need to check out that module since the dependencies used by that module will be fetched automatically by Maven (See [[Building>>Community.Building]]). However if that module is used by another module you'll need to check out the source for that modules and rebuild it to use your modified sources.
135 -
136 -For example imagine you're making a change in ##platform/core/xwiki-core## and you want to have them in XWiki Enterprise, you'll need to build ##platform/core/xwiki-core##, then check out and build ##platform/web## and ##enterprise/##. To make this simpler and not have to manually find out which specific dependencies to check out and build you could decide to rebuild the full ##platform/core## and ##platform/web##.
137 -
138 -Let's take an example and try to build XWiki Enterprise 2.0. You'd check out and build:
139 -
140 -* http://svn.xwiki.org/svnroot/xwiki/platform/core/tags/xwiki-core-2.0/
141 -* http://svn.xwiki.org/svnroot/xwiki/platform/web/tags/xwiki-web-2.0/
142 -* http://svn.xwiki.org/svnroot/xwiki/enterprise/tags/xwiki-enterprise-2.0/
143 -
144 -Note that this won't rebuild plugins or applications used by XWiki Enterprise. If you wanted to bring changes to those you'd need to find out which version of them is used by XWiki Enterprise (by looking in ##enterprise/pom.xml##), check them out and build them after you've built ##platform/core## and before you build ##platform/web##.
145 -
146 -== Find project dependencies versions ==
147 -
148 -To easily find project versions recursively you can use the following command:
149 -
150 -{{code}}
151 -mvn dependency:tree
152 -{{/code}}
153 -
154 -For example with XE, checkout XE tag version you are interested on and type the command line in XE root folder.
155 -
156 -{{code}}
157 -svn co http://svn.xwiki.org/svnroot/xwiki/enterprise/tags/xwiki-enterprise-2.0/ && cd xwiki-enterprise-2.0 && mvn dependency:tree
158 -{{/code}}

Get Connected