Changes for page XWiki Contrib

Last modified by Vincent Massol on 2024/03/11 10:26

<
From version < 126.2 >
edited by Vincent Massol
on 2020/07/02 15:23
To version < 127.1 >
edited by Vincent Massol
on 2020/10/02 12:27
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -14,19 +14,19 @@
14 14  
15 15  The project hosting forge can provide contributors with some or all of the following tools:
16 16  
17 -* A **GitHub repository**, under http://github.com/xwiki-contrib
17 +* A **GitHub repository**, under https://github.com/xwiki-contrib
18 18  * A **JIRA project** for tracking bugs and feature requests, at https://jira.xwiki.org/ and under the "XWiki Contributed projects" category. Note that each project should have its own JIRA project (we used to have a single generic JIRA project with different ##components## but this was creating difficulties).
19 19  * A generic **maven groupId**: ##org.xwiki.contrib## (or ##org.xwiki.contrib.<module name>## if the project has several modules). That's until the project reaches a certain size and visibility, in which case it can have its own maven group id.
20 20  * **Project pages** on [[extensions.xwiki.org>>extensions:Main.WebHome]] to describe and document the project. When the project reaches a certain visibility and size it can have its own wiki on xwiki.org.
21 -* A **CI job** on http://ci.xwiki.org for building the project automatically on each commit (more specifically see [[XWiki Contrib jobs>>http://ci.xwiki.org/view/Contrib/job/XWiki%20Contrib/]]).
22 -* A **Sonar project report** on http://sonar.xwiki.org to analyze the project's quality with various metrics.
23 -* **Translations**, under the [[l10n platform>>http://l10n.xwiki.org]].
21 +* A **CI job** on https://ci.xwiki.org for building the project automatically on each commit (more specifically see [[XWiki Contrib jobs>>https://ci.xwiki.org/view/Contrib/job/XWiki%20Contrib/]]).
22 +* A **Sonar project report** on https://sonar.xwiki.org to analyze the project's quality with various metrics.
23 +* **Translations**, under the [[l10n platform>>https://l10n.xwiki.org]].
24 24  * There's no dedicated Forum. For the moment, all the projects share the [[Development category of the forum>>https://forum.xwiki.org/c/Dev]].
25 25  * There's no dedicated chat room, the [[main #xwiki chat room>>dev:Community.Chat]] must be used.
26 26  
27 27  = Contributing to an existing project =
28 28  
29 -If you're interested to contribute to an existing project on http://github.com/xwiki-contrib, please send a post to the [[Forum (dev category)>>https://forum.xwiki.org/c/Dev]], introducing yourself and explaining what you wish to do. Make sure to create an account on GitHub and mention this id in the email so that we can give you access. Thanks for helping out! :)
29 +If you're interested to contribute to an existing project on https://github.com/xwiki-contrib, please send a post to the [[Forum (dev category)>>https://forum.xwiki.org/c/Dev]], introducing yourself and explaining what you wish to do. Make sure to create an account on GitHub and mention this id in the email so that we can give you access. Thanks for helping out! :)
30 30  
31 31  = Why join XWiki Contrib =
32 32  
... ... @@ -42,7 +42,7 @@
42 42  
43 43  = Requesting a project =
44 44  
45 -The contrib project is open for anyone who wish to start a new project. Simply send a post on the [[Forum (dev category)>>https://forum.xwiki.org/c/Dev]] using the ##contrib## tag. Let us know the name and a short description of the project. If your project has already been made available for download on extensions.xwiki.org, please mention 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 tools listed above you need. For GitHub access, you will need to register a user on http://github.com and let us know about it (a best practice is to have a username 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).
45 +The contrib project is open for anyone who wish to start a new project. Simply send a post on the [[Forum (dev category)>>https://forum.xwiki.org/c/Dev]] using the ##contrib## tag. Let us know the name and a short description of the project. If your project has already been made available for download on extensions.xwiki.org, please mention 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 tools listed above you need. For GitHub access, you will need to register a user on https://github.com and let us know about it (a best practice is to have a username 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).
46 46  
47 47  == Choosing the name ==
48 48  
... ... @@ -78,7 +78,7 @@
78 78  
79 79  * Project Lead: [<info taken from the jira project, e.g. Vincent Massol>](<url to user profile on xwiki.org)
80 80  <if single extension page>
81 -* [Documentation & Download](<url on e.x.o, e.g. http://extensions.xwiki.org/xwiki/bin/view/Extension/Flash+messages+application>)
81 +* [Documentation & Download](<url on e.x.o, e.g. https://extensions.xwiki.org/xwiki/bin/view/Extension/Flash+messages+application>)
82 82  </if single extension page>
83 83  <if several extension pages>
84 84  * Documentation & Downloads:
... ... @@ -86,8 +86,8 @@
86 86  ...
87 87   * [<pretty name of pageN, e.g. My App API](<urlN on e.x.o)
88 88  </if several extension pages>
89 -* [Issue Tracker](<url on jira.xwiki.org, e.g. https://jira.xwiki.org/browse/XAFLASHM>)
90 -* Communication: [Forum](<url, e.g. https://forum.xwiki.org/c/Devs>), [IRC](<url, e.g. http://dev.xwiki.org/xwiki/bin/view/Community/IRC>)
89 +* [Issue Tracker](<url on jira.xwiki.org, e.g. https://jira.xwiki.org/browse/XAFLASHM>)
90 +* Communication: [Forum](<url, e.g. https://forum.xwiki.org/>), [IRC](<url, e.g. https://dev.xwiki.org/xwiki/bin/view/Community/Chat>)
91 91  <if link pointing to all dev practices>
92 92  * [Development Practices](<URL pointing to a site defining the list of practices to be followed by contributors when contributing on this project>)
93 93  </if link pointing to all dev practices>
... ... @@ -106,13 +106,13 @@
106 106  * Translations: N/A
107 107  </if translation is not used>
108 108  <if sonar is used>
109 -* [Sonar Dashboard](<url to the project’s dashboard on sonar.xwiki.org, e.g. http://sonar.xwiki.org/dashboard/index/10464>)
109 +* [Sonar Dashboard](<url to the project’s dashboard on sonar.xwiki.org, e.g. https://sonar.xwiki.org/dashboard/index/10464>)
110 110  </if sonar is used>
111 111  <if sonar is not used>
112 112  * Sonar Dashboard: N/A
113 113  </if sonar is not used>
114 114  <if ci is used>
115 -* Continuous Integration Status: [![Build Status](http://ci.xwiki.org/job/XWiki%20Contrib/job/<job name on ci.xwiki.org>/job/master/badge/icon)](http://ci.xwiki.org/job/XWiki%20Contrib/job/<job name on ci.xwiki.org>/job/master/)
115 +* Continuous Integration Status: [![Build Status](https://ci.xwiki.org/job/XWiki%20Contrib/job/<job name on ci.xwiki.org>/job/master/badge/icon)](https://ci.xwiki.org/job/XWiki%20Contrib/job/<job name on ci.xwiki.org>/job/master/)
116 116  </if ci is used>
117 117  <if ci is not used>
118 118  * Continuous Integration Status: N/A
... ... @@ -127,7 +127,7 @@
127 127  Here's [[an example>>https://github.com/xwiki-contrib/application-antispam/blob/master/README.md]].
128 128  
129 129  {{info}}
130 -In order to find the build status URL for the badges, you should navigate to your project on ci.xwiki.org and then click on the "Embeddable Build Status" link ([[example>>http://ci.xwiki.org/view/Contrib/job/XWiki%20Contrib/job/application-antispam/job/master/badge/]]). Use the "Markdown (with view)" and "unprotected" links.
130 +In order to find the build status URL for the badges, you should navigate to your project on ci.xwiki.org and then click on the "Embeddable Build Status" link ([[example>>https://ci.xwiki.org/view/Contrib/job/XWiki%20Contrib/job/application-antispam/job/master/badge/]]). Use the "Markdown (with view)" and "unprotected" links.
131 131  {{/info}}
132 132  
133 133  == For XWiki Admins ==
... ... @@ -170,7 +170,7 @@
170 170  
171 171  = Requesting CI / Snapshot builds for your project =
172 172  
173 -XWiki.org has a [[continuous build>>dev:Community.ContinuousBuild]] which builds maven projects each time they are modified on GitHub and put the resulting artifact in our [[snapshots Maven repository>>http://nexus.xwiki.org/nexus/content/groups/public-snapshots/]]. This is useful when you want people using your project as a dependency to continuously benefit from the improvements or to tell users of your Extension try it out before it's released.
173 +XWiki.org has a [[continuous build>>dev:Community.ContinuousBuild]] which builds maven projects each time they are modified on GitHub and put the resulting artifact in our [[snapshots Maven repository>>https://nexus.xwiki.org/nexus/content/groups/public-snapshots/]]. This is useful when you want people using your project as a dependency to continuously benefit from the improvements or to tell users of your Extension try it out before it's released.
174 174  
175 175  To have your project added to the continuous build follow thes steps:
176 176  
... ... @@ -223,7 +223,7 @@
223 223  )))
224 224  
225 225  {{warning}}
226 -At the moment, we still need to trigger a rescan of the GitHub organization to make a new project appear on the [[CI page for XWiki Contrib>>http://ci.xwiki.org/view/Contrib/job/XWiki%20Contrib/]]. Please ping a dev on IRC or on the [[Forum>>https://forum.xwiki.org/c/Dev]].
226 +At the moment, we still need to trigger a rescan of the GitHub organization to make a new project appear on the [[CI page for XWiki Contrib>>https://ci.xwiki.org/view/Contrib/job/XWiki%20Contrib/]]. Please ping a dev on IRC or on the [[Forum>>https://forum.xwiki.org/c/Dev]].
227 227  {{/warning}}
228 228  
229 229  = Requesting translation component on l10n.xwiki.org =
... ... @@ -251,10 +251,10 @@
251 251  
252 252  == Release using Maven ==
253 253  
254 -XWiki.org allows you to release your project on the [[XWiki Maven Remote Repository>>http://nexus.xwiki.org]] as long as you follow these steps:
254 +XWiki.org allows you to release your project on the [[XWiki Maven Remote Repository>>https://nexus.xwiki.org]] as long as you follow these steps:
255 255  
256 256  * Use ##org.xwiki.contrib## as ##groupId## in your maven module
257 -* Request for an account on [[Nexus>>http://nexus.xwiki.org]] by sending a post on the [[Forum>>https://forum.xwiki.org/c/Dev]], mentioning the username you'd wish to have (you could also mention which extension you're planning to release to provide contextual information).
257 +* Request for an account on [[Nexus>>https://nexus.xwiki.org]] by sending a post on the [[Forum>>https://forum.xwiki.org/c/Dev]], mentioning the username you'd wish to have (you could also mention which extension you're planning to release to provide contextual information).
258 258  * Once you've received your credentials put them in(((
259 259  ##~~/.m2/settings.xml##
260 260  
... ... @@ -290,11 +290,11 @@
290 290  </project>
291 291  {{/code}}
292 292  
293 -Where ##{extensionrepository}## is the name of the repository in [[http://github.com/xwiki-contrib/]].
293 +Where ##{extensionrepository}## is the name of the repository in [[https://github.com/xwiki-contrib/]].
294 294  )))
295 295  * Release the project with the maven release plugin (notice the ##integration-tests## profile that is needed when there are functional tests but that you should always use since it doesn't harm; the full command is important, otherwise only a portion of the modules will get prepared and thus some will have wrong versions afterwards).(((
296 296  {{code language="none"}}
297 -mvn release:prepare -Pintegration-tests -Darguments="-DskipTests" -DskipTests
297 +mvn release:prepare -Pintegration-tests,docker -Darguments="-DskipTests" -DskipTests
298 298  {{/code}}
299 299  
300 300  {{warning}}
... ... @@ -301,11 +301,11 @@
301 301  If you want to skip the enforcer plugin, use:
302 302  
303 303  {{code language="none"}}
304 -mvn release:prepare -Pintegration-tests -Darguments="-DskipTests -Dxwiki.enforcer.skip=true" -DskipTests
304 +mvn release:prepare -Pintegration-tests,docker -Darguments="-DskipTests -Dxwiki.enforcer.skip=true" -DskipTests
305 305  {{/code}}
306 306  {{/warning}}
307 307  )))
308 -* The released XWiki artifacts are signed ([[http:~~/~~/en.wikipedia.org/wiki/Digital_signature>>http://en.wikipedia.org/wiki/Digital_signature]]). This helps downloaders check that indeed the binary is what was initially put in there, and was not replaced by an intruder.(((
308 +* The released XWiki artifacts are signed ([[http:~~/~~/en.wikipedia.org/wiki/Digital_signature>>https://en.wikipedia.org/wiki/Digital_signature]]). This helps downloaders check that indeed the binary is what was initially put in there, and was not replaced by an intruder.(((
309 309  The signing maven plugin is configured in the toplevel pom ( {{code}}<groupId>org.xwiki.commons</groupId><artifactId>xwiki-commons</artifactId>{{/code}} ) so any module that's inheriting from that will have the gpg plugin configured by default. To find out, get the effective pom of your module ( {{code}}mvn help:effective-pom{{/code}} ) and check if the gpg maven plugin is there (maven-gpg-plugin).
310 310  
311 311  If you're gonna try to release like that, it will probably fail since the gpg plugin expects you to have a gnupg key with a password. You now have 2 options:
... ... @@ -331,7 +331,7 @@
331 331  {{/code}}
332 332  )))
333 333  * Configure your setup to sign properly. To do that, you will have to:
334 -** generate a gpg key which will be stored in your home folder and will be used by maven. On linux you can do that using the default gpg command ({{code}}gpg --gen-key{{/code}}, read the man page if you want to know more about the options). On Windows you can use [[Gpg4win>>http://www.gpg4win.org/]], while on Mac you have the [[GPG Suite>>https://gpgtools.org/]]. If you don't know what to fill in for the options requested by the tool, keep the defaults.
334 +** generate a gpg key which will be stored in your home folder and will be used by maven. On linux you can do that using the default gpg command ({{code}}gpg --gen-key{{/code}}, read the man page if you want to know more about the options). On Windows you can use [[Gpg4win>>https://www.gpg4win.org/]], while on Mac you have the [[GPG Suite>>https://gpgtools.org/]]. If you don't know what to fill in for the options requested by the tool, keep the defaults.
335 335  ** Tell maven the passphrase of this key (the one you entered upon key generation), either in the command line when performing the release {{code}}mvn release:perform -Darguments=-Dgpg.passphrase=PASSWORD{{/code}} or set it in your maven settings.xml like this(((
336 336  {{code}}
337 337  ...
... ... @@ -356,7 +356,7 @@
356 356  mvn release:perform -Darguments="-Dgpg.passphrase="YourGpg4winPassword" -Dxwiki.enforcer.skip=true"
357 357  {{/code}}
358 358  
359 -but be careful to replace "YourGpg4winPassword" with the actual password chosen when creating a GPG key with [[Gpg4win>>http://www.gpg4win.org/]].
359 +but be careful to replace "YourGpg4winPassword" with the actual password chosen when creating a GPG key with [[Gpg4win>>https://www.gpg4win.org/]].
360 360  {{/info}}
361 361  
362 362  {{info}}
... ... @@ -398,7 +398,7 @@
398 398  {{/warning}}
399 399  )))
400 400  * Note that you'll need to push the changes done by the release plugin: {{code}}git push origin master{{/code}}
401 -* By default the extension will be automatically released on ##nexus.xwiki.org##. In case you have configured your extension's POM so that it's not the case then ask for someone (on the [[Forum>>https://forum.xwiki.org/c/Dev]] or on IRC) to validate your release from the staging repository on [[Nexus>>http://nexus.xwiki.org]] to make your extension available on ##nexus.xwiki.org##. Alternatively if you've been granted the permissions you can do this yourself by understanding [[Nexus Staging>>http://books.sonatype.com/nexus-book/reference/staging-repositories.html]]. To perform promotion do the following:
401 +* By default the extension will be automatically released on ##nexus.xwiki.org##. In case you have configured your extension's POM so that it's not the case then ask for someone (on the [[Forum>>https://forum.xwiki.org/c/Dev]] or on IRC) to validate your release from the staging repository on [[Nexus>>https://nexus.xwiki.org]] to make your extension available on ##nexus.xwiki.org##. Alternatively if you've been granted the permissions you can do this yourself by understanding [[Nexus Staging>>https://books.sonatype.com/nexus-book/reference/staging-repositories.html]]. To perform promotion do the following:
402 402  ** Select the repository to validate in the Staging Repositories list
403 403  ** Click the "Close" button to close it. Wait a few seconds since it's done asynchronously.
404 404  ** Make sure to test your extension from the closed staging repo first since a released repo cannot be removed!
... ... @@ -421,10 +421,10 @@
421 421  {{/code}}
422 422  
423 423  {{warning}}
424 -The document for the [[##release:rollback## mojo>>http://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html]] says that currently the deletion of the created tag is not implemented. Thus even if you see the rollback call you will still need to perform step 2 of the manual process below.
424 +The document for the [[##release:rollback## mojo>>https://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html]] says that currently the deletion of the created tag is not implemented. Thus even if you see the rollback call you will still need to perform step 2 of the manual process below.
425 425  {{/warning}}
426 426  
427 -Now if you have already deleted those files, don't panic! It's still easy to recover. You'll just need to do manually [[what the ##release:rollback## does>>http://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html]]:
427 +Now if you have already deleted those files, don't panic! It's still easy to recover. You'll just need to do manually [[what the ##release:rollback## does>>https://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html]]:
428 428  
429 429  * Rollback the changes done by the ##release:prepare## call by reverting the changes in Git
430 430  * Remove the local and remote tag created by the ##release:prepare## call ({{code language="none"}}git tag --delete the_local_tag{{/code}} and {{code language="none"}}git push origin :the_remote_tag{{/code}}).

Get Connected