Jump to: navigation, search

MoDisco/How to contribute

The MoDisco project is open to contributors. All external contributions are welcome :

  • new modernization use-cases
  • extensions of MoDisco components
  • metamodels of legacy technologies
  • discoverers and model transformations

How To contribute

In the comments of your code, you may mention your identity and company by mail, URL, etc. In this way you may get back some advice from interested people.

To submit your MoDisco contribution, please open a bugzilla entry in the Modeling/GMT/MoDisco component (you can use the following address: https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GMT&component=MoDisco-Contribution ). Then you could attach your file(s).

Your contribution will be reviewed and integrated.

If you need more details, please use the MoDisco newsgroup.

What to do before contributing

If you wish to publish your component(s) in this project, please check following points :

  • Provide an about.html file (Cf. http://wiki.eclipse.org/The_about.html)
  • Provide your Code with the header described below
  • Check unused plug-in dependences
  • Check that it exists one branding plug-in per feature
  • Externalize String from code

The following Bash command can be used to search missing about.html files:

 $ find org.eclipse.gmt* -name build.properties \! -exec grep -sq about.html {} \; -type f -print

Header Syntax

 /**
 * *******************************************************************************
 * Copyright (c) <year> <company>.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     <contributor> (<company>) - initial implementation
 * *******************************************************************************
 *
 * $Id$
 */

Manifest file

In the MANIFEST.MF:

  • the vendor name must be "Eclipse Modeling Project"
  • the plug-in name must finished with "(Incubation)"
  • the plug-in version must finish with ".qualifier"

In the MANIFEST.MF the Strings must be externalized (use “PDE Tools > Externalize Strings…”)

String Externalize

Cliquer sur le projet, puis sur "Source > Externalize Strings...". On a alors un wizard qui pour chaque String trouvée permet de choisir si elle doit être rendue internationalisable ou pas, et de lui associer une clé.

Par contre, il faut faire attention à ne pas utiliser de concaténations dans les messages, car chaque langue peut avoir un ordre différent. Par exemple, au lieu de:

       MoDiscoBrowserPlugin.logError("Condition query " + queryName + " in query set "
               + querySetName + " : expected boolean return type, got "
               + conditionResult.getClass().getSimpleName() + ".");

On aura à la place:

dans messages.properties:

       CustomizationEngine_conditionQueryWrongReturnType=Condition query {0} in query set {1} : expected boolean return type, got {2}.

Et dans le code:

       MoDiscoBrowserPlugin.logError(NLS.bind(
               Messages.CustomizationEngine_conditionQueryWrongReturnType,
               new Object[] { queryName, querySetName,
                       conditionResult.getClass().getSimpleName() }));

En plus Eclipse reconnait les Message Bundles et affiche le contenu de la chaine quand on passe le curseur sur une clé dans le code. Et en faisant "Source > Find Broken Internationalized String", on peut retrouver les clés non définies ou non utilisées.

Il faut aussi utiliser le wizard "PDE Tools > Externalize Strings...".

Il faudrait que tout le monde active la verification des chaines des caratères dans les préférences d'Eclipse : Windows > Preference > Java > Compiler > Erros/Warnings > "Non-externalized strings (missing/unused $NON-NLS$ tag"


Version numbering

Guidelines of MoDisco components are available here

build.properties

Following files and folders should never been in “src.includes” (see bug 286808):

  • .classpath
  • .project
  • .settings/
  • META-INF
  • OSGI-INF/
  • bin/
  • build.properties
  • plugin.xml
  • plugin.properties
  • src

When a file is in bin.includes, it should never be present in src.includes, with the exception of about.html.

Get the source of MoDisco project

Svn Howto