Difference between revisions of "Modeling Project Releng/Releng Module"

From Eclipsepedia

Jump to: navigation, search
m (EMFT Releng Module moved to Modeling Project Releng Module)
m
Line 1: Line 1:
 +
<!-- for the latest version of this doc, see http://wiki.eclipse.org/index.php/Modeling_Project_Releng_Module -->
 +
 
===Template Usage Steps===
 
===Template Usage Steps===
  
 
First, you need to get a copy of the template.
 
First, you need to get a copy of the template.
  
# Copy org.eclipse.emft/releng/common_releng_template to org.eclipse.emft/releng/'''''_SHORTNAME_''''', where '''''_SHORTNAME_''''' = "cdo", "eodm", "jeteditor", etc.
+
<ol>
# Find and rename all files with '''''_SHORTNAME_''''' in their name, using the project's shortname
+
<li> For EMFT, copy /cvsroot/technology/org.eclipse.emft/releng/common_releng_template to  
:* promoteToEclipse.'''''_SHORTNAME_'''''.properties
+
org.eclipse.emft/releng/'''''<code style="color:darkgreen">_SHORTNAME_</code>''''',  
:* templateFiles/'''''_SHORTNAME_'''''.map.template
+
where '''''<code style="color:darkgreen">_SHORTNAME_</code>''''' = "cdo", "eodm", "jeteditor", etc. </li>
:* maps/'''''_SHORTNAME_'''''.map
+
<li> For Modeling, copy /cvsroot/modeling/releng-common/templates/org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>'''''.releng to
# Find and replace all occurrences in all files of the string "'''''_SHORTNAME_'''''" with your project's shortname.
+
/cvsroot/modeling/org.eclipse.modeling.'''''<code style="color:darkgreen">_PARENTPROJECTNAME_</code>'''''/org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>'''''.releng,
# Find and replace all occurrences in all files of the string "'''''_PROJECTNAMESPACE_'''''" with your project's namespace. This ''can'' be the same as the shortname, that is  
+
where '''''<code style="color:darkgreen">_PARENTPROJECTNAME_</code>''''' = "mdt", "m2t", etc.
+
'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''' is defined below.</li>
 +
<li> Find and rename all files with '''''<code style="color:darkgreen">_SHORTNAME_</code>''''' in their name, using the project's shortname
 +
:* promoteToEclipse.'''''<code style="color:darkgreen">_SHORTNAME_</code>'''''.properties
 +
:* templateFiles/'''''<code style="color:darkgreen">_SHORTNAME_</code>'''''.map.template
 +
:* maps/'''''<code style="color:darkgreen">_SHORTNAME_</code>'''''.map</li>
 +
<li> Find and replace all occurrences in all files of the string "'''''<code style="color:darkgreen">_PARENTPROJECTNAME_</code>'''''" with your parent project's name.</li>
 +
<li> Find and replace all occurrences in all files of the string "'''''<code style="color:darkgreen">_SHORTNAME_</code>'''''" with your project's shortname.</li>
 +
<li> Find and replace all occurrences in all files of the string "'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>'''''" with your project's namespace. This ''can'' be the same as the shortname, that is</li>
 +
</ol>
 
       eodm:
 
       eodm:
           org.eclipse.'''''_PROJECTNAMESPACE_''''' -> org.eclipse.eodm
+
           org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''' -> org.eclipse.eodm
 
   
 
   
 
:but is often different, including ''.emf'' or more
 
:but is often different, including ''.emf'' or more
 
   
 
   
 
       cdo:  
 
       cdo:  
           org.eclipse.'''''_PROJECTNAMESPACE_''''' -> org.eclipse''.emf''.cdo
+
           org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''' -> org.eclipse''.emf''.cdo
 +
 +
          - or -
 +
 +
      uml2tools:
 +
          org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''' -> org.eclipse''.uml2.tools''
 
   
 
   
 
           - or -
 
           - or -
 
   
 
   
 
       jeteditor:
 
       jeteditor:
           org.eclipse.'''''_PROJECTNAMESPACE_''''' -> org.eclipse''.emf.codegen''.jet.editor
+
           org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''' -> org.eclipse''.emf.codegen''.jet.editor
 
+
 
===Customization Steps===
 
===Customization Steps===
  
Line 48: Line 63:
 
     Additional changes may be required. For examples, see these projects:
 
     Additional changes may be required. For examples, see these projects:
 
      
 
      
       * JDK 1.4: eodm, jet, jeteditor, ocl, query, validation, transaction
+
       * JDK 1.4: eodm, jeteditor
       * JDK 1.5: cdo, net4j
+
      * JDK 5.0 and JDK 1.4: ocl, query, validation, transaction, jet
 +
          (5.0 used in 1.1/0.8 development streams,
 +
            1.4 used in 1.0/0.7 maintenance streams)
 +
       * JDK 5.0: cdo, net4j
  
 
  4. Edit templateFiles/index.html.template:  
 
  4. Edit templateFiles/index.html.template:  
Line 79: Line 97:
 
This is a checklist of all the customizations required to move from generic template to custom implementation. Ideally, much of this could be replaced with an Eclipse-based Wizard.  
 
This is a checklist of all the customizations required to move from generic template to custom implementation. Ideally, much of this could be replaced with an Eclipse-based Wizard.  
  
* '''''_SHORTNAME_''''', '''''_PROJECTNAMESPACE_'''''
+
* '''''<code style="color:darkgreen">_PARENTPROJECTNAME_</code>''''', '''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''', '''''<code style="color:darkgreen">_SHORTNAME_</code>'''''
* JDK version (1.4, 1.5), $JAVA_HOME / $javaHome flags/variables, JVM option flags (-Xmx, -Xms...)
+
* JDK version (1.4, 5.0), $JAVA_HOME / $javaHome flags/variables, JVM option flags (-Xmx, -Xms...)
 
* email name/address for newsgroup posts
 
* email name/address for newsgroup posts
 
* files in SDK that need to be copied to runtime/examples for completeness, etc.
 
* files in SDK that need to be copied to runtime/examples for completeness, etc.
 
* test plugin jarred/not-jarred
 
* test plugin jarred/not-jarred
 
* cvs username(s) (usually set to nickb; doesn't need to change)
 
* cvs username(s) (usually set to nickb; doesn't need to change)
* included namespaces (usually just org.eclipse.'''''_PROJECTNAMESPACE_''''', but can include more)
+
* included namespaces (usually just org.eclipse.'''''<code style="color:darkgreen">_PROJECTNAMESPACE_</code>''''', but can include more -- see EMFT Transaction project, which includes .workspace as well as .transaction)
 
* upstream dependencies (usually just Eclipse + EMF, but sometimes more)
 
* upstream dependencies (usually just Eclipse + EMF, but sometimes more)
 
* 3rd party jars used only for building (but not publishable) (usually none)
 
* 3rd party jars used only for building (but not publishable) (usually none)

Revision as of 15:47, 18 December 2006


Template Usage Steps

First, you need to get a copy of the template.

  1. For EMFT, copy /cvsroot/technology/org.eclipse.emft/releng/common_releng_template to org.eclipse.emft/releng/_SHORTNAME_, where _SHORTNAME_ = "cdo", "eodm", "jeteditor", etc.
  2. For Modeling, copy /cvsroot/modeling/releng-common/templates/org.eclipse._PROJECTNAMESPACE_.releng to /cvsroot/modeling/org.eclipse.modeling._PARENTPROJECTNAME_/org.eclipse._PROJECTNAMESPACE_.releng, where _PARENTPROJECTNAME_ = "mdt", "m2t", etc. _PROJECTNAMESPACE_ is defined below.
  3. Find and rename all files with _SHORTNAME_ in their name, using the project's shortname
    • promoteToEclipse._SHORTNAME_.properties
    • templateFiles/_SHORTNAME_.map.template
    • maps/_SHORTNAME_.map
  4. Find and replace all occurrences in all files of the string "_PARENTPROJECTNAME_" with your parent project's name.
  5. Find and replace all occurrences in all files of the string "_SHORTNAME_" with your project's shortname.
  6. Find and replace all occurrences in all files of the string "_PROJECTNAMESPACE_" with your project's namespace. This can be the same as the shortname, that is
      eodm:
         org.eclipse._PROJECTNAMESPACE_ -> org.eclipse.eodm

but is often different, including .emf or more
      cdo: 
         org.eclipse._PROJECTNAMESPACE_ -> org.eclipse.emf.cdo

         - or -

      uml2tools: 
         org.eclipse._PROJECTNAMESPACE_ -> org.eclipse.uml2.tools

         - or -

      jeteditor:
         org.eclipse._PROJECTNAMESPACE_ -> org.eclipse.emf.codegen.jet.editor

Customization Steps

Next, you need to customize the template for your project's specific needs.

1. Edit promoteToEclipse.*.properties: 
      enter the correct name / email address
      
      newsgroupPublisherEmail="My Name <me@mydomain.com>"
2. Edit repoInfo.properties: 
      enter the correct cvs username(s)
3. Edit buildAll.xml:
      ensure that if you are properly configured for the JDK you require (1.4, 5.0) (see TODOs)

   If this project depends on more than just Eclipse and EMF (eg., also on OCL) then enter
      more <replacefilter/> tags in target "publish" (see TODO)

   If necessary, you can manually copy files from the SDK into the other zips (see TODO)

   If necessary, you should remove 3rd party jars used at build time from the zips (see TODO)

   Additional changes may be required. For examples, see these projects:
   
      * JDK 1.4: eodm, jeteditor
      * JDK 5.0 and JDK 1.4: ocl, query, validation, transaction, jet 
          (5.0 used in 1.1/0.8 development streams, 
           1.4 used in 1.0/0.7 maintenance streams) 
      * JDK 5.0: cdo, net4j
4. Edit templateFiles/index.html.template: 
      ensure all requirements are listed in the Requirements table (see TODO)
5. Edit builder/*/build.properties: 
      ensure they are configured for the correct JDK version (see TODO)
6. Edit builder/*/customTargets.xml: 
      ensure all requirements are downloaded and unpacked as needed (see TODO)
      verify all namespaces are properly defined in -bundleDirectoryMatchRegex argument (see TODO)
7. Edit builder/tests/configs/local/customTest.xml: 
      ensure all requirements are downloaded and unpacked as needed (see TODO)
8. Edit builder/tests/configs/local/testing.properties: 
      ensure proper JDK and vmflags are set (see TODOs)
9. Edit builder/tests/scripts/runtests: 
      ensure proper JDK is set (see TODO)
      ensure proper J2SE15flags are set (see TODO)
10. Edit builder/tests/scripts/test.xml:
      ensure all requirements are downloaded and unpacked as needed (see TODO)
      ensure if your test plugin is jarred you (un)comment out the appropriate lines (see TODOs)

Template Variables

This is a checklist of all the customizations required to move from generic template to custom implementation. Ideally, much of this could be replaced with an Eclipse-based Wizard.

  • _PARENTPROJECTNAME_, _PROJECTNAMESPACE_, _SHORTNAME_
  • JDK version (1.4, 5.0), $JAVA_HOME / $javaHome flags/variables, JVM option flags (-Xmx, -Xms...)
  • email name/address for newsgroup posts
  • files in SDK that need to be copied to runtime/examples for completeness, etc.
  • test plugin jarred/not-jarred
  • cvs username(s) (usually set to nickb; doesn't need to change)
  • included namespaces (usually just org.eclipse._PROJECTNAMESPACE_, but can include more -- see EMFT Transaction project, which includes .workspace as well as .transaction)
  • upstream dependencies (usually just Eclipse + EMF, but sometimes more)
  • 3rd party jars used only for building (but not publishable) (usually none)
  • additional extra customizations (if any)