Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "IT Infrastructure Doc"
(→See which mirror sites are mirroring my files?) |
(→Create a new Component/Version/Milestone/Target?) |
||
(109 intermediate revisions by 26 users not shown) | |||
Line 3: | Line 3: | ||
==Website== | ==Website== | ||
===How do I setup my project website?=== | ===How do I setup my project website?=== | ||
− | Project websites are hosted in a | + | Project websites are hosted in a git repository separate from the actual project code. You can browse project website repositories using [http://git.eclipse.org/c/www.eclipse.org cGit]. Once the webmaster adds a space for your project, files you commit to the website repository are automatically published to www.eclipse.org/xyz, where |
− | Once the webmaster | + | |
− | adds a space for your project, files you commit to the website | + | |
xyz is your project's short name. | xyz is your project's short name. | ||
You are free to use HTML and PHP on your website. | You are free to use HTML and PHP on your website. | ||
− | <br > | + | <br >Hosting a project website is normally done when the project proposal has been approved. |
If you suspect your files are not being checked out to the www.eclipse.org website, simply commit a small change to one file. This is usually | If you suspect your files are not being checked out to the www.eclipse.org website, simply commit a small change to one file. This is usually | ||
enough to trigger a website refresh. | enough to trigger a website refresh. | ||
− | ===How do I | + | |
− | Please see | + | ===How do I use the Solstice theme?=== |
− | + | Please see [https://eclipse.org/eclipse.org-common/themes/solstice/docs/ this document] for information on using Solstice. | |
− | + | ||
− | + | ||
− | + | ||
===Use a database for my website?=== | ===Use a database for my website?=== | ||
Line 24: | Line 19: | ||
Large (1 MB+) ZIP and JAR files must be put in the downloads area, using the Find A Mirror script to link to them. | Large (1 MB+) ZIP and JAR files must be put in the downloads area, using the Find A Mirror script to link to them. | ||
However, small files (less than 1 MB) can be put on the www.eclipse.org/yourproject website directly without causing too much harm. | However, small files (less than 1 MB) can be put on the www.eclipse.org/yourproject website directly without causing too much harm. | ||
− | |||
− | |||
− | |||
− | |||
Remember to allow our mirrors at least 24 hours to sync up before using a transparent mirror redirect. | Remember to allow our mirrors at least 24 hours to sync up before using a transparent mirror redirect. | ||
===Use PHP on my website?=== | ===Use PHP on my website?=== | ||
− | PHP support is available on www.eclipse.org only. Simply commit files with the .php file extension to your website's | + | PHP support is available on www.eclipse.org only. Simply commit files with the .php file extension to your website's repository. |
Although some projects host PHP files on download.eclipse.org, we do not encourage or recommend it. | Although some projects host PHP files on download.eclipse.org, we do not encourage or recommend it. | ||
Line 50: | Line 41: | ||
There are many, many other security and PHP best-practices. These are just the basics. | There are many, many other security and PHP best-practices. These are just the basics. | ||
− | == | + | ==SSH== |
− | === | + | ===Shells=== |
− | + | * Shell access on eclipse.org servers is not supported. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
==Bugzilla== | ==Bugzilla== | ||
===Create a new Component/Version/Milestone/Target?=== | ===Create a new Component/Version/Milestone/Target?=== | ||
− | [http://wiki.eclipse.org/index.php/Webmaster_FAQ#I_need_to_add.2Fremove.change_a_version.2Fmilestone.2Fcomponent_in_Bugzilla._How_do_I_do_this.3F | + | For the Eclipse.org forge, you can use the Bugzilla Manager tool. More info is [http://wiki.eclipse.org/index.php/Webmaster_FAQ#I_need_to_add.2Fremove.change_a_version.2Fmilestone.2Fcomponent_in_Bugzilla._How_do_I_do_this.3F documented here]. |
+ | |||
+ | For other forges, Bugzilla changes can be requested via a Bugzilla [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Working%20Groups bug against the corresponding Working Group]. | ||
==Downloads== | ==Downloads== | ||
− | === | + | === Upload files to the download server? === |
− | + | ||
− | + | Downloadable files must be placed in the downloads area (~/downloads, or /home/data/httpd/download.eclipse.org) so they can be mirrored to our mirror sites worldwide. '''Please ensure only pertinent, current files are in the downloads area''', as we cannot store an eternity of nightly, integration and stable builds. Production releases can be kept forever; however, we ask that you move archived releases to archive.eclipse.org (see below). | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | To upload your files: | |
+ | *Use [[Jenkins]] to upload your files, see [[Milestone and Release Builds]]. (Formerly, SFTP or SCP client (in SFTP mode) was used to connect to build.eclipse.org using your committer account. The webmasters eventually want to get rid of "shell accounts" and have everyone do things through Jenkins). | ||
+ | *Upload files to your project's directory in the downloads area . Ask your project lead or see [[Hudson#Server_Storage | Hudson > Server Storage]]. (If you have ssh access, then typically ~/downloads/toplevel/yourproject). | ||
+ | *'''Please ensure that the file permissions include world-readable (664; rw-rw-r--) and directory permissions allow for world-executable (775, rwxrwxr-x).''' | ||
+ | *If you have ssh access, then large projects with frequent builds may find it more convenient to use RSYNC over SSH. | ||
+ | *Although you can link directly to download.eclipse.org/yourfile.zip, you can also use the Find a Mirror script (info below). Using this script allows you to view download statistics and allows users to pick a nearby mirror site for their download. | ||
− | + | Once your files are on the download.eclipse.org server, they are immediately available to the general public. However, for release builds, we ask that you wait at least four hours for our mirror sites to fetch the new files before linking to them. It typically takes a day or two for all the mirror sites to synchronize with us and get new files. | |
− | + | ||
− | + | Please note that although we tolerate PHP, HTML and JPG/GIF files on download.eclipse.org, we encourage you to put such files on www.eclipse.org. Those files are not mirrored to public mirror servers. | |
− | + | '''SYMLINKS''' are not supported. We cannot ensure that all our mirror servers support and honour symlinks. For that reason, please avoid the usage of symlinks. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Move files to archive.eclipse.org?=== | ===Move files to archive.eclipse.org?=== | ||
Line 151: | Line 74: | ||
store older release builds. | store older release builds. | ||
− | The archive.eclipse.org structure is similar to that of download.eclipse.org. To move your files, we recommend using the SSH prompt as below. If you are | + | The archive.eclipse.org structure is similar to that of download.eclipse.org. To move your files, we recommend using the SSH prompt as below. If you are not comfortable with the SSH prompt, you can ask WebMaster to move the files for you. You will need a shell account on build.eclipse.org. If you do not have one, please ask webmaster. |
− | not comfortable with the SSH prompt, you can ask WebMaster to move the files for you. | + | |
− | ssh yourcommitterid@ | + | ssh yourcommitterid@build.eclipse.org |
+ | mv ~/downloads/your/project/oldrelease/ /home/data/httpd/archive.eclipse.org/your/project/oldrelease/ | ||
− | + | '''Note''': if you preserve the exact path and filename from download.eclipse.org to archive.eclipse.org, you don't need to change your links if your links use the Find a Mirror script. | |
− | + | ||
− | + | This link will work if /path/to/a/file.zip is on download.eclipse.org, or if it gets moved to the same place on archive.eclipse.org | |
− | + | http://www.eclipse.org/downloads/download.php?file=/path/to/a/file.zip | |
− | '''Parameters:''' | + | '''P2 repositories''': P2 repositories are not normally accessed via the mirror selection script. Therefore, extra treatment is required when the move should be made transparently without affecting users who may still have the original URL. |
+ | |||
+ | [[Equinox/p2/p2.mirrorsURL#Moving_a_repo_to_archive.eclipse.org]] has a discussion how to achieve this (''work in progress''). | ||
+ | |||
+ | ===Use mirror sites/see which mirrors are mirroring my files?=== | ||
+ | Link to your download files like this: | ||
+ | |||
+ | Acceptable: http://download.eclipse.org/path/to/a/file.zip | ||
+ | |||
+ | Preferred: http://www.eclipse.org/downloads/download.php?file=/path/to/a/file.zip | ||
+ | |||
+ | '''Parameters for above script:''' | ||
* '''file''' (Required): specify the filename, relative to the downloads home, starting with a "/". This file must exist in the downloads area. Although you can specify a directory name, your mirror list will be more accurate if you specify a file. | * '''file''' (Required): specify the filename, relative to the downloads home, starting with a "/". This file must exist in the downloads area. Although you can specify a directory name, your mirror list will be more accurate if you specify a file. | ||
* '''format''' (Optional): specify html (default) or xml. Useful for building the mirrors.xml for Update sites. | * '''format''' (Optional): specify html (default) or xml. Useful for building the mirrors.xml for Update sites. | ||
* '''protocol''' (Optional): ftp or http: list only ftp or http mirrors only (both are the default) | * '''protocol''' (Optional): ftp or http: list only ftp or http mirrors only (both are the default) | ||
− | * '''r''' ( | + | * '''r''' (DEPRECATED): specify 1 to automatically redirect to the best mirror (the one that would normally be at the top) without asking the user to choose. |
− | * '''nf''' ( | + | * '''nf''' (DERECATED): specify 1 to get an actual 404 Not Found error if the file doesn't exist (instead of a lovely page saying so). |
The script will examine the Last Modified timestamp of the given file and return only those mirrors that have synchronized with Eclipse.org after that time. | The script will examine the Last Modified timestamp of the given file and return only those mirrors that have synchronized with Eclipse.org after that time. | ||
Examples: | Examples: | ||
− | + | All mirrors of the Lepido project, in XML format: | |
− | + | http://www.eclipse.org/downloads/download.php?file=/technology/lepido/M1/content.jar&format=xml | |
+ | |||
+ | Get a file from a random mirror, without prompting | ||
+ | http://download.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/eclipse-SDK-3.1-win32.zip | ||
+ | |||
'''PLEASE NOTE:''' We have a list of excluded file patterns -- files that are *not* sent to our mirrors. | '''PLEASE NOTE:''' We have a list of excluded file patterns -- files that are *not* sent to our mirrors. | ||
Nightly and Integration builds are typically very large and don't get many downloads, | Nightly and Integration builds are typically very large and don't get many downloads, | ||
therefore it's typically more costly (in terms of bandwidth) to mirror them than to support the few client downloads they generate. | therefore it's typically more costly (in terms of bandwidth) to mirror them than to support the few client downloads they generate. | ||
− | At time of writing, our exclusion list is: drops/I* drops/N* drops/M* | + | At time of writing, our exclusion list is: |
+ | *.nfs* | ||
+ | * apitools/ | ||
+ | * apidocs/ | ||
+ | * archive/ | ||
+ | * archives/ | ||
+ | * /athena | ||
+ | * builds/N* | ||
+ | * drops/I* | ||
+ | * drops/N* | ||
+ | * drops/M* | ||
+ | * *.jpg | ||
+ | * *.gif | ||
+ | * callisto/* | ||
+ | * compilelogs/ | ||
+ | * eclipse.org-common/ | ||
+ | * eclipse/testUpdates* | ||
+ | * eclipse/updates/3.2milestones | ||
+ | * /eclipse/updates/3.6-I-builds/ | ||
+ | * dev/TPTP* | ||
+ | * /tools/cdt/builds | ||
+ | * modeling/gmf/downloads/drops/B* | ||
+ | * *drops/*/N* | ||
+ | * *drops/*/I* | ||
+ | * *javadoc/ | ||
+ | * *javadocs/ | ||
+ | * linuxtools/N* | ||
+ | * *nightly* | ||
+ | * *Nightly* | ||
+ | * *staging* | ||
+ | * /webtools/downloads/drops/*/M* | ||
+ | * performance/ | ||
+ | * /releases/staging | ||
+ | * /releases/europa | ||
+ | * testresults/ | ||
+ | * /rt/eclipselink/nightly* | ||
+ | * /technology/babel/update-site* | ||
+ | * /technology/cosmos | ||
+ | * /technology/ohf | ||
+ | * /technology/tigerstripe | ||
+ | * testcompilelogs/ | ||
+ | * testResults/ | ||
+ | * /tools/downloads | ||
+ | * /tools/orbit/committers | ||
+ | * */N201* | ||
+ | * */I201* | ||
+ | * */I.I201* | ||
+ | * */I-* | ||
+ | * */N-* | ||
+ | * *integration*/ | ||
+ | * xref/ | ||
+ | * */M20* | ||
+ | * /rt/eclipselink/maven.repo* | ||
===Use the Find a Mirror script?=== | ===Use the Find a Mirror script?=== | ||
See the section above. | See the section above. | ||
− | === | + | ===Enable mirrors / use mirrorsURL for my p2 repo?=== |
− | + | ||
− | + | Your artifacts.xml (jar) should have a p2.mirrorsURL property. Here is a an example from http://download.eclipse.org/eclipse/updates/3.6/R-3.6.2-201102101200/artifacts.jar | |
− | + | ||
− | + | ||
− | + | ||
− | + | <repository name='"Eclipse Project Test Site"' type='org.eclipse.equinox.p2.artifact.repository.simpleRepository' version='1'> | |
− | < | + | <properties size='4'> |
− | + | <property name='p2.compressed' value='true'/> | |
− | + | <property name='p2.timestamp' value='1297373227427'/> | |
− | + | <property name='publishPackFilesAsSiblings' value='true'/> | |
− | + | <property name='p2.mirrorsURL' value='http://www.eclipse.org/downloads/download.php?file=/eclipse/updates/3.6/R-3.6.2-201102101200&format=xml'/> | |
− | + | </properties> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
− | + | ||
− | + | ||
− | + | A more detailed description can be found at [[Equinox/p2/p2.mirrorsURL]]. | |
− | + | ||
− | + | Ideally, '''everyone''', for all p2 repositories, should use this property, since even if not mirrored currently, it does not hurt anything in that case, and you never know when your repository might become mirrored. In fact, failure to use this property can result in too many requests for jar files coming directly to 'download.eclipse.org' and greatly slow down the network and use too much bandwidth. If this happens for your project (or repository) measures may be taken to automatically redirect all such requests somewhere else, which often does not work well; for examples, see {{bug|368826}}. | |
− | === | + | ===Include a p2.index file at p2 repository site?=== |
− | + | ||
− | + | A little documented aide to p2 is to include a special file named "p2.index" at your p2 repository URL site. Every well-behaved, well-optimized p2 repository should have one. This is especially important for composite repository sites as it can save several unsuccessful round trips to download server looking for files that do not exist. For "how to" instructions, see the [[Equinox/p2/p2_index| p2 wiki]]. For history and deeper technical discussion, see {{bug|347448}}. | |
− | + | ||
+ | ===See download statistics?=== | ||
+ | The Find a Mirror script tracks download requests once the user has picked a mirror site (or the main Eclipse download site). You can also view download stats for files downloaded via p2 if you [[Equinox p2 download stats|enable your p2 repository for download statistics]]. To view these statistics, use the Live Download Statistics tool (Portal > Project Committer > Tools for all Committers). | ||
+ | |||
+ | For more information, please see the [[Project Download Stats]] page. | ||
===Sign my plugins/ZIP files?=== | ===Sign my plugins/ZIP files?=== | ||
− | The Eclipse Foundation | + | The Eclipse Foundation allows committers to sign JAR and ZIP files on its behalf. Signing is done from any of the Jenkins servers, or on build.eclipse.org. There are three ways to sign: |
− | + | ||
− | + | ||
+ | ==== CBI Maven signing plugin ==== | ||
+ | |||
+ | Please see: https://www.eclipse.org/cbi/sitedocs/ | ||
+ | |||
+ | It uses the web service in the background. | ||
+ | |||
+ | ==== Web service (Instant) ==== | ||
+ | Using a web POST method, individual JAR files can be signed from any of the internal Jenkins servers (or from build.eclipse.org) with this service: | ||
+ | |||
+ | http://build.eclipse.org:31338/sign | ||
+ | |||
+ | The output of that service will be the signed file. '''Please note''' that the web service does not pack or process jar files. You must condition/pack them yourself '''prior''' to signing if you wish to do so. | ||
+ | |||
+ | {{important|Resigning Jarsigner|Contrary to to the [[#ZIP and JAR files from the command line (queued or not)|command line signing service]] the web service '''always resigns already signed jars'''. The maven jar signer plugin lets you specify [https://www.eclipse.org/cbi/sitedocs/eclipse-jarsigner-plugin/sign-mojo.html#resigningStrategy strategy to avoid submitting already signed jar to the webservice]. If you use the webservice directly, you need to do deal with it by yourself. You can see how the re-signing strategies are defined by looking at the code of the [http://git.eclipse.org/c/cbi/org.eclipse.cbi.git/tree/maven-plugins/eclipse-jarsigner-plugin/src/main/java/org/eclipse/cbi/maven/plugins/jarsigner/JarResigner.java JarResigner]}} | ||
+ | |||
+ | # JAR FILES: Submit unsigned-jar.jar and save signed output to signedfile.jar | ||
+ | curl -o signedfile.jar -F file=@unsigned-jar.jar http://build.eclipse.org:31338/sign | ||
+ | |||
+ | # WINDOWS EXE: Submit Windows unsigned.exe and save signed output to signed.exe | ||
+ | curl -o signed.exe -F file=@unsigned.exe http://build.eclipse.org:31338/winsign.php | ||
+ | |||
+ | # WINDOWS MSI: Submit Windows unsigned.msi and save signed output to signed.msi | ||
+ | curl -o signed.msi -F file=@unsigned.msi http://build.eclipse.org:31338/winsign.php | ||
+ | |||
+ | # MAC: Submit unsigned and save signed output to signed.zip | ||
+ | # Note: You must zip your entire *.app directory for example: zip -r unsigned.zip Eclipse.app | ||
+ | curl -o signed.zip -F file=@unsigned.zip http://build.eclipse.org:31338/macsign.php | ||
+ | |||
+ | Using the webservice is equally easy from Ant. Note that ${filename} cannot be a path. Input and output file name can be the same. | ||
+ | |||
+ | <exec dir="${dirname}" executable="curl"> | ||
+ | <arg value="--output"/> | ||
+ | <arg value="${filename}"/> | ||
+ | <arg value="--form"/> | ||
+ | <arg value="file=@${filename}"/> | ||
+ | <arg value="--silent"/> | ||
+ | <arg value="--show-error"/> | ||
+ | <arg value="--fail"/> | ||
+ | <arg value="http://build.eclipse.org:31338/sign"/> | ||
+ | </exec> | ||
+ | |||
+ | {{important|Version of Jarsigner|The web service only signs with Java 8 version of jarsigner.}} | ||
+ | |||
+ | Using the web service to sign Mac and Windows applications is also easy from Tycho, see | ||
+ | * [https://www.eclipse.org/cbi/sitedocs/eclipse-macsigner-plugin/plugin-info.html eclipse-macsigner-plugin] | ||
+ | * [https://www.eclipse.org/cbi/sitedocs/eclipse-winsigner-plugin/sign-mojo.html eclipse-winsigner-plugin] | ||
+ | * [https://web.archive.org/web/20161105100753/http://www.codetrails.com:80/blog/sign-your-eclipse-project Sign your eclipse project] (codetrails.com/archive.org) | ||
+ | * [https://dev.eclipse.org/mhonarc/lists/cbi-dev/msg01640.html OS X application signing] (cbi-dev mailing list) | ||
+ | |||
+ | ==== '''Deprecated''' - ZIP and JAR files from the command line (queued or not) ==== | ||
+ | |||
+ | {{important|Deprecated - will be shutdown on May 9th, 2018|This service will be shutdown on May 9th, 2018 (i.e., one month after Oxygen.3a - see [https://bugs.eclipse.org/521263 bug 531263] for details). Most certainly, this will only affect you if you use Buckminster as a build system (because Buckminster can only sign jars via /usr/bin/sign service). If you use Tycho, you're not concerned. There are two strategies for Buckminster users: | ||
+ | |||
+ | # Migrate to a modern / maintained build plugin system (See [https://projects.eclipse.org/projects/tools.buckminster Buckminster's activity]). See [https://wiki.eclipse.org/Tycho/Pack200#Pack200_and_Signing Tycho documentation] and [https://www.eclipse.org/cbi/maven-plugins/documentation/latest/eclipse-jarsigner-plugin/sign-mojo.html CBI Jarsigner Maven plugin] for how to add jar signing to a Tycho build. | ||
+ | # Deactivate signing in Buckminster and do the repacking and the signing phase as a post build step. You will need to do some shell scripting (in your CI instance) to browse all the jars, pack200/unpack200 them (aka repack) and then sign them. To sign a jar, you can use the webservice that the CBI maven plugin uses in the background (see [https://wiki.eclipse.org/IT_Infrastructure_Doc#Web_service_.28Instant.29 Jar signing web service documentation] for details). | ||
+ | |||
+ | If option 2 is chosen and highly motivated, we can provide some assistance with the shell script (fill a bug under [https://bugs.eclipse.org/bugs/enter_bug.cgi?product%3dCBI&component%3dsigning-service CBI/Signing-Service]).}} | ||
+ | |||
+ | From the command line (or from a script) invoke the following command: | ||
+ | /usr/bin/sign <file> <mail|nomail|now> [outputDir] [skiprepack] | ||
+ | |||
+ | * <file> refers to the name of the file, which '''must be located in the staging area''' (download-staging.priv). May be a single jar or a zip with multiple jars to be signed (with update site or p2 repo layout). | ||
+ | * <mail|nomail|now> either queues up the files for signing and sends email to confirm signing is complete, or signs the file immediately, returning control to the caller once signing is complete | ||
+ | * [outputDir] is an optional directory where the resulting file should be placed, leaving the originals intact | ||
+ | * [skiprepack] optionally does not pack/process JAR files | ||
+ | |||
+ | {{important|About repacking|pack/unpack process (aka conditioning, aka repack) is still required '''before''' signing if pack200 will be used on the Java jars at any time in the future. This option to the signing service provides the opportunity to use build systems that already do the conditioning to not to have to also re-do it again, automatically, as part of the signing process (which is wasteful at best, and in theory could cause odd, rare problems). That is, using <code>skiprepack</code> leaves the responsibility entirely to the user of the signing service to do the conditioning themselves, before submitting for signing.}} | ||
+ | |||
+ | Jar files which are already signed (either submitted directly or within a zip file) are '''not''' repacked/resigned. | ||
+ | |||
+ | By default, repacking and jar signing is done with Java 6. You can influence the Java version in two ways: | ||
+ | * Define (and export) an environment variable named <code>JAR_PROCESSOR_JAVA</code>. Its value should be <code>java6</code>, <code>java7</code> or <code>java8</code>. | ||
+ | * Move the file to be signed to a path that contains the string <code>java6</code>, <code>java7</code> or <code>java8</code> (e.g. /shared/download-staging.priv/path/to/your/project/java8/tobesigned.jar). This is useful when you don't manage the environment from which <code>/usr/bin/sign</code>. '''<code>JAR_PROCESSOR_JAVA</code> is ignored''' if java version is found from the path. | ||
+ | |||
+ | ===== JDK and Jar Processor versions ===== | ||
+ | |||
+ | Depending on how you influenced the Java version when running the command line signer, here are the JDKs use to run pack200 and jarsigner and also the version of jar processor: | ||
+ | |||
+ | * java6 ('''default''') | ||
+ | ** '''JDK''' <code>/opt/public/common/ibm-java-x86_64-60</code> | ||
+ | ** '''Jar Processor''' unreleased version of 2007 | ||
+ | * java7 (below is no mistake, JDK and Jar processor for java7 are the same as for java6). | ||
+ | ** '''JDK''' /opt/public/common/ibm-java-x86_64-60 | ||
+ | ** '''Jar Processor''' unreleased version of 2007 | ||
+ | * java8 | ||
+ | ** '''JDK''' <code>/shared/common/jdk1.8.0_x64-latest</code> | ||
+ | ** '''Jar Processor''' version 1.0.300.v20131211-1531 (from Luna SR0/SR1/SR2) | ||
+ | |||
+ | You can change the path to the JDKs and the Jar processors by exporting some environment variables: | ||
+ | * <code>DEFAULT_JAVA_VERSION</code> to change the default java version to be used (currently set to <code>java6</code>). If <code>JAR_PROCESSOR_JAVA</code> is also defined, it overrides <code>DEFAULT_JAVA_VERSION</code> | ||
+ | * <code>JDKS_java6</code>, <code>JDKS_java7</code>, <code>JDKS_java8</code>, path the JDK to be used for respective Java versions. | ||
+ | * <code>JAR_PROCESSORS_java6</code>, <code>JAR_PROCESSORS_java7</code>, <code>JAR_PROCESSORS_java8</code>, path to the jar processor to be used for respective java version. | ||
+ | |||
+ | ==== What about GPG signing? ==== | ||
+ | |||
+ | JAR signing of the bundles and GPG-signing of the Maven artifacts are two different steps. Once a jar has been "jar-signed", you may or may not GPG sign the corresponding Maven artifact (.jar + .pom file) so as it can be deployed on Central. As you hinted, JAR signing has to be done before the GPG signing, since doing it the other way around would break the GPG signature. | ||
+ | |||
+ | So you first have to sign your JAR file with the Eclipse Fdn certificate, either using the Maven plugin from CBI, the command line utility, or the signing web service – see above. | ||
+ | Once you have your signed JAR, you can GPG sign it and stage it on Central like this: | ||
+ | mvn gpg:sign-and-deploy-file \ | ||
+ | -DpomFile=target/myapp-1.0.pom \ | ||
+ | -Dfile=target/myapp-1.0.jar \ | ||
+ | -Durl=http://oss.sonatype.org/service/local/staging/deploy/maven2/ \ | ||
+ | -DrepositoryId=sonatype_oss | ||
+ | |||
+ | ==== Publish to Maven Central ==== | ||
+ | |||
+ | To deploy to Maven Central from your HIPP/JIPP, you'll need webmaster's assistance to | ||
+ | * Create a project specific account at Sonatype OSSRH | ||
+ | * Generate a GPG keypair for your HIPP/JIPP user | ||
+ | * Configure your HIPP/JIPP to GPG sign and upload artifacts | ||
+ | |||
+ | It takes a bit of time but afterwards, you will only be required to use a dedicated Maven settings on your HIPP/JIPP. | ||
+ | |||
+ | To get started, please file a bug against [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=CI-Jenkins Community > CI-Jenkins] asking for your HIPP/JIPP to be configured to let you publish to Maven central (don't forget the name of your Eclipse project). | ||
+ | |||
+ | If you want to publish jars from already released p2 repositories, consider using the strategy adopted by the Eclipse Platform. More info: [[Platform-releng/Publish To Maven Central]] | ||
==Builds== | ==Builds== | ||
===Access/use the Eclipse Build Server?=== | ===Access/use the Eclipse Build Server?=== | ||
− | + | [[Image:Build_infra_layout.png|thumb|Build and Hudson storage layout]] | |
+ | |||
+ | Although we strongly encourage the use of [https://ci.eclipse.org Jenkins] for builds, committers can use the build.eclipse.org server to run builds and tests for their project. | ||
Unlike the other eclipse.org servers, committers are permitted to run software on this server, | Unlike the other eclipse.org servers, committers are permitted to run software on this server, | ||
and to maintain running software in the background. If you need to run cron jobs, please contact | and to maintain running software in the background. If you need to run cron jobs, please contact | ||
Line 232: | Line 329: | ||
they typically run. | they typically run. | ||
'''Server details:''' | '''Server details:''' | ||
− | host: build.eclipse.org | + | * host: build.eclipse.org |
− | username: use your committer account | + | * username: use your committer account |
− | server: | + | *server: Intel Dual-Quad Xeon E5540 @ 2.53GHz, 24G RAM |
− | architecture: | + | * architecture: x86_64 |
− | You can use an SSH client to connect to the server. | + | You can use an SSH client to connect to the server. For more information on SSH, please see the SSH section of this document. |
− | + | ||
− | + | ||
− | + | ||
− | /home/data/httpd/download.eclipse.org -> the download.eclipse.org root, | + | Here are some directories that are of interest: |
− | connected to eclipse.org via Gigabit connection. | + | * '''/gitroot''' -> the code repositories, connected to eclipse.org via a Gigabit connection. Your Build account cannot write to these files directly |
+ | * '''/home/data/httpd/download.eclipse.org''' -> the download.eclipse.org root, connected to eclipse.org via Gigabit connection. | ||
+ | * '''/shared''' -> a shared disk to store your build files and applications. Please note, however, that we do not maintain backups of this directory. This path is structured like the downloads area, and is accessible via http://build.eclipse.org/ (That URL redirects to the Eclipse homepage, but browsing to a specific project URL will work: http://build.eclipse.org/technology/, http://build.eclipse.org/tools/ etc.) | ||
+ | * '''/shared/common''' -> a common location to store applications. Ant and various JDKs are located there. | ||
− | + | If you have any questions, please contact the webmaster. | |
− | + | ||
− | + | ||
− | / | + | ===Access/request Jenkins services=== |
− | + | ||
− | + | Please see the [[Jenkins]] document. | |
+ | == Code Quality Analysis == | ||
+ | * [[FindBugs]] | ||
+ | * [[Sonar]] | ||
+ | * JDT :), please consider enabling [http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/reference/preferences/java/compiler/ref-preferences-errors-warnings.htm?cp=1_4_2_0_3_1 compiler warnings] beyond the defaults. The JDT help also contains a start of a section on [http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/tasks/task-improve_code_quality.htm?cp=1_3_9 improving code quality]. | ||
==Mailing Lists== | ==Mailing Lists== | ||
Line 283: | Line 381: | ||
− | ''This page is moderated by | + | ''This page is moderated by the EMO'' |
[[Category:Development_Resources]] | [[Category:Development_Resources]] | ||
[[Category:How to Contribute]] | [[Category:How to Contribute]] |
Revision as of 12:43, 8 May 2018
Contents
- 1 Website
- 2 SSH
- 3 Bugzilla
- 4 Downloads
- 4.1 Upload files to the download server?
- 4.2 Move files to archive.eclipse.org?
- 4.3 Use mirror sites/see which mirrors are mirroring my files?
- 4.4 Use the Find a Mirror script?
- 4.5 Enable mirrors / use mirrorsURL for my p2 repo?
- 4.6 Include a p2.index file at p2 repository site?
- 4.7 See download statistics?
- 4.8 Sign my plugins/ZIP files?
- 5 Builds
- 6 Code Quality Analysis
- 7 Mailing Lists
- 8 Eclipse Wiki
- 9 Eclipse Servers
Website
How do I setup my project website?
Project websites are hosted in a git repository separate from the actual project code. You can browse project website repositories using cGit. Once the webmaster adds a space for your project, files you commit to the website repository are automatically published to www.eclipse.org/xyz, where
xyz is your project's short name.
You are free to use HTML and PHP on your website.
Hosting a project website is normally done when the project proposal has been approved.
If you suspect your files are not being checked out to the www.eclipse.org website, simply commit a small change to one file. This is usually
enough to trigger a website refresh.
How do I use the Solstice theme?
Please see this document for information on using Solstice.
Use a database for my website?
We currently do not offer projects with database support.
I need to put a large file on my website. How should I do this?
Large (1 MB+) ZIP and JAR files must be put in the downloads area, using the Find A Mirror script to link to them. However, small files (less than 1 MB) can be put on the www.eclipse.org/yourproject website directly without causing too much harm.
Remember to allow our mirrors at least 24 hours to sync up before using a transparent mirror redirect.
Use PHP on my website?
PHP support is available on www.eclipse.org only. Simply commit files with the .php file extension to your website's repository. Although some projects host PHP files on download.eclipse.org, we do not encourage or recommend it.
Eclipse.org is a high-traffic website. Please make sure your PHP code is optimized to run in this type of environment. See the next item.
Optimize my PHP code for large-scale use?
Eclipse.org is a high-traffic website. To improve PHP's functionality, we have set very liberal limits on how many resources PHP can consume. However. if if your project is very popular, bad PHP code can slow the entire site down.
Of course, we could harden PHP to protect our website, but that would cut some functionality. Some tips for you:
- Never call the web service to include/open files - include("http://www.eclipse.org/somefile.html") and fopen("http://localhost/somefile.xml") are very costly to run, because they call the web service, and can lead to eclipse.org Denial-Of-Servicing itself under heavy load.
- Never include/open remote files - include("http://www.someothersite.org/somefile.html") is forbidden, as someone could launch a Denial-Of-Service attack against a remote site. We don't allow you to establish remote connections from eclipse.org servers other than the build server.
- Sanitize your incoming parameters - include($parameter) is particularly dangerous if $parameter is not sanitized. Someone could freely surf the web anonymously, hiding behind eclipse.org servers, or they could use your page to access local files, or launch Denial-Of-Service attacks against remote servers.
- Cache aggregated, processor-intensive data - SQL aggregations, file system scans, Bugzilla lists can (and should) be cached to avoid redundant processor- and disk-intensive operations. For instance, scanning through download.eclipse.org directories to display the size of a build could be useful, but doesn't need to happen for each website visitor. Cache the results of this operation to a file, and update the file if the file is older than 12 hours.
There are many, many other security and PHP best-practices. These are just the basics.
SSH
Shells
- Shell access on eclipse.org servers is not supported.
Bugzilla
Create a new Component/Version/Milestone/Target?
For the Eclipse.org forge, you can use the Bugzilla Manager tool. More info is documented here.
For other forges, Bugzilla changes can be requested via a Bugzilla bug against the corresponding Working Group.
Downloads
Upload files to the download server?
Downloadable files must be placed in the downloads area (~/downloads, or /home/data/httpd/download.eclipse.org) so they can be mirrored to our mirror sites worldwide. Please ensure only pertinent, current files are in the downloads area, as we cannot store an eternity of nightly, integration and stable builds. Production releases can be kept forever; however, we ask that you move archived releases to archive.eclipse.org (see below).
To upload your files:
- Use Jenkins to upload your files, see Milestone and Release Builds. (Formerly, SFTP or SCP client (in SFTP mode) was used to connect to build.eclipse.org using your committer account. The webmasters eventually want to get rid of "shell accounts" and have everyone do things through Jenkins).
- Upload files to your project's directory in the downloads area . Ask your project lead or see Hudson > Server Storage. (If you have ssh access, then typically ~/downloads/toplevel/yourproject).
- Please ensure that the file permissions include world-readable (664; rw-rw-r--) and directory permissions allow for world-executable (775, rwxrwxr-x).
- If you have ssh access, then large projects with frequent builds may find it more convenient to use RSYNC over SSH.
- Although you can link directly to download.eclipse.org/yourfile.zip, you can also use the Find a Mirror script (info below). Using this script allows you to view download statistics and allows users to pick a nearby mirror site for their download.
Once your files are on the download.eclipse.org server, they are immediately available to the general public. However, for release builds, we ask that you wait at least four hours for our mirror sites to fetch the new files before linking to them. It typically takes a day or two for all the mirror sites to synchronize with us and get new files.
Please note that although we tolerate PHP, HTML and JPG/GIF files on download.eclipse.org, we encourage you to put such files on www.eclipse.org. Those files are not mirrored to public mirror servers.
SYMLINKS are not supported. We cannot ensure that all our mirror servers support and honour symlinks. For that reason, please avoid the usage of symlinks.
Move files to archive.eclipse.org?
Because our mirror sites don't have as much disk space for Eclipse files as we do, we have created an http://archive.eclipse.org site for you to store older release builds.
The archive.eclipse.org structure is similar to that of download.eclipse.org. To move your files, we recommend using the SSH prompt as below. If you are not comfortable with the SSH prompt, you can ask WebMaster to move the files for you. You will need a shell account on build.eclipse.org. If you do not have one, please ask webmaster.
ssh yourcommitterid@build.eclipse.org mv ~/downloads/your/project/oldrelease/ /home/data/httpd/archive.eclipse.org/your/project/oldrelease/
Note: if you preserve the exact path and filename from download.eclipse.org to archive.eclipse.org, you don't need to change your links if your links use the Find a Mirror script.
This link will work if /path/to/a/file.zip is on download.eclipse.org, or if it gets moved to the same place on archive.eclipse.org
http://www.eclipse.org/downloads/download.php?file=/path/to/a/file.zip
P2 repositories: P2 repositories are not normally accessed via the mirror selection script. Therefore, extra treatment is required when the move should be made transparently without affecting users who may still have the original URL.
Equinox/p2/p2.mirrorsURL#Moving_a_repo_to_archive.eclipse.org has a discussion how to achieve this (work in progress).
Use mirror sites/see which mirrors are mirroring my files?
Link to your download files like this:
Acceptable: http://download.eclipse.org/path/to/a/file.zip
Preferred: http://www.eclipse.org/downloads/download.php?file=/path/to/a/file.zip
Parameters for above script:
- file (Required): specify the filename, relative to the downloads home, starting with a "/". This file must exist in the downloads area. Although you can specify a directory name, your mirror list will be more accurate if you specify a file.
- format (Optional): specify html (default) or xml. Useful for building the mirrors.xml for Update sites.
- protocol (Optional): ftp or http: list only ftp or http mirrors only (both are the default)
- r (DEPRECATED): specify 1 to automatically redirect to the best mirror (the one that would normally be at the top) without asking the user to choose.
- nf (DERECATED): specify 1 to get an actual 404 Not Found error if the file doesn't exist (instead of a lovely page saying so).
The script will examine the Last Modified timestamp of the given file and return only those mirrors that have synchronized with Eclipse.org after that time.
Examples:
All mirrors of the Lepido project, in XML format: http://www.eclipse.org/downloads/download.php?file=/technology/lepido/M1/content.jar&format=xml
Get a file from a random mirror, without prompting http://download.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/eclipse-SDK-3.1-win32.zip
PLEASE NOTE: We have a list of excluded file patterns -- files that are *not* sent to our mirrors.
Nightly and Integration builds are typically very large and don't get many downloads,
therefore it's typically more costly (in terms of bandwidth) to mirror them than to support the few client downloads they generate.
At time of writing, our exclusion list is:
- .nfs*
- apitools/
- apidocs/
- archive/
- archives/
- /athena
- builds/N*
- drops/I*
- drops/N*
- drops/M*
- *.jpg
- *.gif
- callisto/*
- compilelogs/
- eclipse.org-common/
- eclipse/testUpdates*
- eclipse/updates/3.2milestones
- /eclipse/updates/3.6-I-builds/
- dev/TPTP*
- /tools/cdt/builds
- modeling/gmf/downloads/drops/B*
- *drops/*/N*
- *drops/*/I*
- *javadoc/
- *javadocs/
- linuxtools/N*
- *nightly*
- *Nightly*
- *staging*
- /webtools/downloads/drops/*/M*
- performance/
- /releases/staging
- /releases/europa
- testresults/
- /rt/eclipselink/nightly*
- /technology/babel/update-site*
- /technology/cosmos
- /technology/ohf
- /technology/tigerstripe
- testcompilelogs/
- testResults/
- /tools/downloads
- /tools/orbit/committers
- */N201*
- */I201*
- */I.I201*
- */I-*
- */N-*
- *integration*/
- xref/
- */M20*
- /rt/eclipselink/maven.repo*
Use the Find a Mirror script?
See the section above.
Enable mirrors / use mirrorsURL for my p2 repo?
Your artifacts.xml (jar) should have a p2.mirrorsURL property. Here is a an example from http://download.eclipse.org/eclipse/updates/3.6/R-3.6.2-201102101200/artifacts.jar
<repository name='"Eclipse Project Test Site"' type='org.eclipse.equinox.p2.artifact.repository.simpleRepository' version='1'> <properties size='4'> <property name='p2.compressed' value='true'/> <property name='p2.timestamp' value='1297373227427'/> <property name='publishPackFilesAsSiblings' value='true'/> <property name='p2.mirrorsURL' value='http://www.eclipse.org/downloads/download.php?file=/eclipse/updates/3.6/R-3.6.2-201102101200&format=xml'/> </properties>
A more detailed description can be found at Equinox/p2/p2.mirrorsURL.
Ideally, everyone, for all p2 repositories, should use this property, since even if not mirrored currently, it does not hurt anything in that case, and you never know when your repository might become mirrored. In fact, failure to use this property can result in too many requests for jar files coming directly to 'download.eclipse.org' and greatly slow down the network and use too much bandwidth. If this happens for your project (or repository) measures may be taken to automatically redirect all such requests somewhere else, which often does not work well; for examples, see bug 368826.
Include a p2.index file at p2 repository site?
A little documented aide to p2 is to include a special file named "p2.index" at your p2 repository URL site. Every well-behaved, well-optimized p2 repository should have one. This is especially important for composite repository sites as it can save several unsuccessful round trips to download server looking for files that do not exist. For "how to" instructions, see the p2 wiki. For history and deeper technical discussion, see bug 347448.
See download statistics?
The Find a Mirror script tracks download requests once the user has picked a mirror site (or the main Eclipse download site). You can also view download stats for files downloaded via p2 if you enable your p2 repository for download statistics. To view these statistics, use the Live Download Statistics tool (Portal > Project Committer > Tools for all Committers).
For more information, please see the Project Download Stats page.
Sign my plugins/ZIP files?
The Eclipse Foundation allows committers to sign JAR and ZIP files on its behalf. Signing is done from any of the Jenkins servers, or on build.eclipse.org. There are three ways to sign:
CBI Maven signing plugin
Please see: https://www.eclipse.org/cbi/sitedocs/
It uses the web service in the background.
Web service (Instant)
Using a web POST method, individual JAR files can be signed from any of the internal Jenkins servers (or from build.eclipse.org) with this service:
http://build.eclipse.org:31338/sign
The output of that service will be the signed file. Please note that the web service does not pack or process jar files. You must condition/pack them yourself prior to signing if you wish to do so.
# JAR FILES: Submit unsigned-jar.jar and save signed output to signedfile.jar curl -o signedfile.jar -F file=@unsigned-jar.jar http://build.eclipse.org:31338/sign
# WINDOWS EXE: Submit Windows unsigned.exe and save signed output to signed.exe curl -o signed.exe -F file=@unsigned.exe http://build.eclipse.org:31338/winsign.php
# WINDOWS MSI: Submit Windows unsigned.msi and save signed output to signed.msi curl -o signed.msi -F file=@unsigned.msi http://build.eclipse.org:31338/winsign.php
# MAC: Submit unsigned and save signed output to signed.zip # Note: You must zip your entire *.app directory for example: zip -r unsigned.zip Eclipse.app curl -o signed.zip -F file=@unsigned.zip http://build.eclipse.org:31338/macsign.php
Using the webservice is equally easy from Ant. Note that ${filename} cannot be a path. Input and output file name can be the same.
<exec dir="${dirname}" executable="curl"> <arg value="--output"/> <arg value="${filename}"/> <arg value="--form"/> <arg value="file=@${filename}"/> <arg value="--silent"/> <arg value="--show-error"/> <arg value="--fail"/> <arg value="http://build.eclipse.org:31338/sign"/> </exec>
Using the web service to sign Mac and Windows applications is also easy from Tycho, see
- eclipse-macsigner-plugin
- eclipse-winsigner-plugin
- Sign your eclipse project (codetrails.com/archive.org)
- OS X application signing (cbi-dev mailing list)
Deprecated - ZIP and JAR files from the command line (queued or not)
From the command line (or from a script) invoke the following command:
/usr/bin/sign <file> <mail|nomail|now> [outputDir] [skiprepack]
- <file> refers to the name of the file, which must be located in the staging area (download-staging.priv). May be a single jar or a zip with multiple jars to be signed (with update site or p2 repo layout).
- <mail|nomail|now> either queues up the files for signing and sends email to confirm signing is complete, or signs the file immediately, returning control to the caller once signing is complete
- [outputDir] is an optional directory where the resulting file should be placed, leaving the originals intact
- [skiprepack] optionally does not pack/process JAR files
Jar files which are already signed (either submitted directly or within a zip file) are not repacked/resigned.
By default, repacking and jar signing is done with Java 6. You can influence the Java version in two ways:
- Define (and export) an environment variable named
JAR_PROCESSOR_JAVA
. Its value should bejava6
,java7
orjava8
. - Move the file to be signed to a path that contains the string
java6
,java7
orjava8
(e.g. /shared/download-staging.priv/path/to/your/project/java8/tobesigned.jar). This is useful when you don't manage the environment from which/usr/bin/sign
.JAR_PROCESSOR_JAVA
is ignored if java version is found from the path.
JDK and Jar Processor versions
Depending on how you influenced the Java version when running the command line signer, here are the JDKs use to run pack200 and jarsigner and also the version of jar processor:
- java6 (default)
- JDK
/opt/public/common/ibm-java-x86_64-60
- Jar Processor unreleased version of 2007
- JDK
- java7 (below is no mistake, JDK and Jar processor for java7 are the same as for java6).
- JDK /opt/public/common/ibm-java-x86_64-60
- Jar Processor unreleased version of 2007
- java8
- JDK
/shared/common/jdk1.8.0_x64-latest
- Jar Processor version 1.0.300.v20131211-1531 (from Luna SR0/SR1/SR2)
- JDK
You can change the path to the JDKs and the Jar processors by exporting some environment variables:
-
DEFAULT_JAVA_VERSION
to change the default java version to be used (currently set tojava6
). IfJAR_PROCESSOR_JAVA
is also defined, it overridesDEFAULT_JAVA_VERSION
-
JDKS_java6
,JDKS_java7
,JDKS_java8
, path the JDK to be used for respective Java versions. -
JAR_PROCESSORS_java6
,JAR_PROCESSORS_java7
,JAR_PROCESSORS_java8
, path to the jar processor to be used for respective java version.
What about GPG signing?
JAR signing of the bundles and GPG-signing of the Maven artifacts are two different steps. Once a jar has been "jar-signed", you may or may not GPG sign the corresponding Maven artifact (.jar + .pom file) so as it can be deployed on Central. As you hinted, JAR signing has to be done before the GPG signing, since doing it the other way around would break the GPG signature.
So you first have to sign your JAR file with the Eclipse Fdn certificate, either using the Maven plugin from CBI, the command line utility, or the signing web service – see above. Once you have your signed JAR, you can GPG sign it and stage it on Central like this:
mvn gpg:sign-and-deploy-file \ -DpomFile=target/myapp-1.0.pom \ -Dfile=target/myapp-1.0.jar \ -Durl=http://oss.sonatype.org/service/local/staging/deploy/maven2/ \ -DrepositoryId=sonatype_oss
Publish to Maven Central
To deploy to Maven Central from your HIPP/JIPP, you'll need webmaster's assistance to
- Create a project specific account at Sonatype OSSRH
- Generate a GPG keypair for your HIPP/JIPP user
- Configure your HIPP/JIPP to GPG sign and upload artifacts
It takes a bit of time but afterwards, you will only be required to use a dedicated Maven settings on your HIPP/JIPP.
To get started, please file a bug against Community > CI-Jenkins asking for your HIPP/JIPP to be configured to let you publish to Maven central (don't forget the name of your Eclipse project).
If you want to publish jars from already released p2 repositories, consider using the strategy adopted by the Eclipse Platform. More info: Platform-releng/Publish To Maven Central
Builds
Access/use the Eclipse Build Server?
Although we strongly encourage the use of Jenkins for builds, committers can use the build.eclipse.org server to run builds and tests for their project. Unlike the other eclipse.org servers, committers are permitted to run software on this server, and to maintain running software in the background. If you need to run cron jobs, please contact the webmaster, stating the time and frequency at which these jobs are to run, and for how long they typically run. Server details:
- host: build.eclipse.org
- username: use your committer account
- server: Intel Dual-Quad Xeon E5540 @ 2.53GHz, 24G RAM
- architecture: x86_64
You can use an SSH client to connect to the server. For more information on SSH, please see the SSH section of this document.
Here are some directories that are of interest:
- /gitroot -> the code repositories, connected to eclipse.org via a Gigabit connection. Your Build account cannot write to these files directly
- /home/data/httpd/download.eclipse.org -> the download.eclipse.org root, connected to eclipse.org via Gigabit connection.
- /shared -> a shared disk to store your build files and applications. Please note, however, that we do not maintain backups of this directory. This path is structured like the downloads area, and is accessible via http://build.eclipse.org/ (That URL redirects to the Eclipse homepage, but browsing to a specific project URL will work: http://build.eclipse.org/technology/, http://build.eclipse.org/tools/ etc.)
- /shared/common -> a common location to store applications. Ant and various JDKs are located there.
If you have any questions, please contact the webmaster.
Access/request Jenkins services
Please see the Jenkins document.
Code Quality Analysis
- FindBugs
- Sonar
- JDT :), please consider enabling compiler warnings beyond the defaults. The JDT help also contains a start of a section on improving code quality.
Mailing Lists
Setup a new mailing list?
Because Mailing Lists are subject to SPAM and can adversely affect eclipse.org performance (imaging sending 200 e-mails to a list that contains 3000 members), proper care is taken in configuring each list. New mailing lists are set up by the WebMaster for this reason. Also, the webmaster creates an HTML view (called mailing list archives) of mailing list postings for archive and search purposes.
View list members?
Because mailing lists contain private information, such as a member's e-mail address, name and surname, we cannot publicly display this information. However, the PMC or Project Lead can become the list administrator, which would allow you to view the membership information for your lists. The PMC/Project lead can inquire about list administration to the WebMaster, stating which lists they would like to manage.
Eclipse Wiki
Create a new page in the Eclipse Wiki
To create a new page, simply type the page name at the end of "/" in the URL. The name can contain spaces. For instance, http://wiki.eclipse.org/Some_Page will allow you to create and edit this new page.
Eclipse Servers
Eclipse Foundation IT SLA
When you become committer, your default shell allows only CVS and SVN commands. If you need a 'real' shell for dealing with distribution files or working with automated builds, you'll need to have your project lead or the project PMC file a bug requesting the upgrade.
This page is moderated by the EMO