Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "Modeling Project Releng"

(New page: This document is directed to the '''Eclipse Modeling Framework Technologies''' ('''EMFT''') [http://www.eclipse.org/modeling/emft/] component owners and was created help them to set up...)
 
 
(26 intermediate revisions by one other user not shown)
Line 1: Line 1:
This document is directed to the '''[[Eclipse Modeling Framework Technologies]]''' ('''EMFT''') [http://www.eclipse.org/modeling/emft/] component owners and was created help them to set up and run their builds. It describes the existing procedures that all EMFT components are required to adopt, describing, for example, how the files should be organized, what the build files are, and the Integration and Milestone release process.
+
This document is directed at [[Modeling Project]] component leads, including those in [[EMF]], [[EMFT]], [[M2M]], [[M2T]] & [[MDT]]. This system has also been used for [[GEF]] and [[TM_and_RSE_FAQ|DSDP-TM-RSE]], and with a little effort, can be used for other non-Modeling projects and components.
  
Note that many of the tips and tricks described herein apply to EMF, MDT, and M2T builds as well.
+
It describes the existing procedures that components are required to adopt, describing, for example, how the files should be organized, what the build files are, and the Integration and Milestone release process.
  
Throughout this document are references to releng (Release Engineering) files which need to be configured along the way. When a project is first starting, these steps are normally skipped until after all the plugin content is in CVS. Then, and only then, the [[Modeling Project Releng Module]] can be created for the new project, and builds can begin.  
+
Throughout this document are references to releng (Release Engineering) files which need to be configured along the way. When a project is first [[Modeling_Project_Releng/Component_Creation | being created]], these steps are normally not started until after all the plugin content is in CVS. Then, and only then, the [[Modeling Project Releng/Releng Module | Releng Module]] can be created for the new project, and builds can begin.  
  
 +
<blockquote>
  
----
+
* Creation
 +
:1. [[Modeling_Project_Releng/Component_Creation | Component Creation]] -- includes workflow and TODOs by assignee
 +
:2. [[Modeling_Project_Releng/Website_Maintenance | Website Maintenance]] -- includes how to control web content and [[Modeling_Project_Releng/Component_Creation/Build_Server_Setup|add users]]
 +
:3. [[Development_Resources/Project_Plan/Modeling_Project|Project Plan]] -- includes how to create your plan.xml and set up Bugzilla queries
  
 +
*Setup
 +
:4. [[Modeling Project Releng/Releng Module | Releng Module]] -- how to get started working with PDE's releng.basebuilder
 +
:5. [[Modeling Project Releng/Plugin And Feature Files | Plugin And Feature Files]] -- includes structure & layout for your plugin/feature files
 +
:6. [[Modeling Project Releng/Building Zips And Jars | Building Zips And Jars]] -- includes Incubation status, 3rd party jars, compiler settings, [[Modeling_Project_Releng/Building_Zips_And_Jars#Built_features_.26_plugins_have_.22HEAD.22_in_their_version_qualifier|tagging & releasing code]], [[Modeling_Project_Releng/Plugin Version Auditing|plugin version auditing]] and build/test troubleshooting
  
<blockquote>
+
*Publication
'''''Overwhelmed yet?'''''
+
:7. [[Modeling Project Releng/Releasing | Releasing]] -- schedules, reviews, promoting builds, and generating project meta-information (release notes, RSS feeds, newsgroup announcements)
 
+
:8. [[Modeling Project Releng/Maintenance | Maintenance]] -- cleanup tips
 
+
:9. [[Modeling Project Releng/Branching | Branching]] -- how to branch
Well, you're in luck. As of 2006-07-12, there is a new module template which can be used as a starting point. For more on creating and configuring a Modeling Project Releng Module, see [[Modeling Project Releng Module]]. Go there, start with that, then come back here for tips and tricks if necessary.
+
 
</blockquote>
 
</blockquote>
  
 +
===See Also===
  
----
+
* [[Modeling_Project_Releng/Cheat_Sheet|Modeling Project Releng Cheat Sheet]] -- quick reference guide for running and promoting builds by hand and by schedule
 
+
* [[Modeling Project Releng Plan]] -- what's the plan?
 
+
* [https://bugs.eclipse.org/bugs/buglist.cgi?product=Modeling&component=Releng&component=Website&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.bug_status,bugs.target_milestone,bugs.bug_id&query_format=advanced Open Modeling Project Releng Bugs / RFEs]
This is a live document! We will be enriching it as questions are raised.
+
* Server configuration for [[EMF_Build_Server_Setup|emf.torolab]] & [[EMFT_Build_Server_Setup|emft.eclipse]]
 
+
* [[Platform-releng-faq|Platform Releng FAQ]]
==Plugin and Feature Files==
+
* [[:Category:Releng]]
 
+
The contents of your features and plugins directories should mimic what is available in the [http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/ EMF] and [http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.uml2/ UML2] projects. Although this section tries to summarize the important points, "learning by example" is the recommended approach.
+
 
+
 
+
===Directory Structure===
+
 
+
<span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf example]></span>
+
 
+
We will ask you to organize your files as we've done for [http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/ EMF] and [http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.uml2/ UML2]. Basically you will need to create the following directory structure for each subdirectory you own under the EMFT module:
+
 
+
<table cellpadding="2" cellspacing="2" border="1"><tr><td colspan="3"><b style="color:darkred">OLD Style -- features intermixed</b></td><td colspan="3"><b style="color:darkgreen">NEW Style -- features separated</b></td></tr>
+
<tr valign="top"><td>
+
Old EMFT project (/cvsroot/technology)
+
emft/''[subproject]''/
+
  plugins
+
  doc
+
  tests
+
  examples
+
+
</td><td><br/><br/> - or -
+
</td><td>
+
New EMFT project (/cvsroot/modeling/)
+
org.eclipse.*/org.eclipse.*.''[subproject]''/
+
  plugins
+
  doc
+
  tests
+
  examples
+
+
</td><td>
+
Old EMFT project (/cvsroot/technology)
+
emft/''[subproject]''/
+
  plugins
+
  doc
+
  tests
+
  examples
+
  features
+
</td><td><br/><br/> - or -
+
</td><td>
+
New EMFT project (/cvsroot/modeling/)
+
org.eclipse.*/org.eclipse.*.''[subproject]''/
+
  plugins
+
  doc
+
  tests
+
  examples
+
  features
+
</td></tr>
+
<tr valign="top"><td colspan="3">
+
# plugins:
+
#* the plugins that provide the function
+
#* the features that include these plugins + the branding plugins for these features
+
#* the SDK feature (to generate a bundle that includes source + the plugins)
+
# doc:
+
#* the doc plugins (with the build scripts)
+
#* the features that include these plugins + the branding plugins for these features
+
# tests:
+
#* the test plugins (with the Eclipse test framework artifacts - such as  [http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/tests/org.eclipse.emf.test.core/test.xml?rev=HEAD&content-type=text/vnd.viewcvs-markup this one])
+
#* the features that include these plugins + the branding plugins for these features
+
# examples:
+
#* any plugin you want to use as example
+
#* the features that include these plugins + the branding plugins for these features
+
</td><td colspan="3">
+
# plugins:
+
#* the plugins that provide the function
+
# doc:
+
#* the doc plugins (with the build scripts)
+
# tests:
+
#* the test plugins (with the Eclipse test framework artifacts - such as  [http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/tests/org.eclipse.emf.test.core/test.xml?rev=HEAD&content-type=text/vnd.viewcvs-markup this one])
+
# examples:
+
#* any plugin you want to use as example
+
# features:
+
#* the SDK feature (to generate a bundle that includes source + the plugins)
+
#* all main, source, test, doc, and example features
+
 
+
</td></tr></table>
+
 
+
The directories containing features and fragments must be suffixed by ''-feature'' and ''-fragment'' respectively.
+
 
+
If you want source plugins and features, you will have to [[#Source Plugin & Feature <example>|create them]].
+
  
===General Recommendations===
 
  
* Each feature and plugin directory should be also an Eclipse project, containing all the necessary files such as, for example, ''.project''.
+
[[Category:Modeling]] [[Category:Releng]]
* The ''.project'' must only refer to builders available to the open-source community. Also, since Eclipse 3M2, it should not refer to other plugin projects. <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/.project?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
* We use CVS to backup the files, so...
+
** You can, and probably should, use the ''$Id$'' CVS tag. For more details and other tags read the [http://ximbiot.com/cvs/wiki/index.php?title=CVS--Concurrent_Versions_System_v1.12.12.1:_Keyword_substitution CVS documentation]
+
** Add a ''.cvsignore'' file to keep unnecessary files (such as the output directory) out of CVS. <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/.cvsignore?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
* Don't add unnecessary files to your plugins and features. If you use a "non-Eclipse standard" file, please ensure that it has a purpose and that that purpose is clear.
+
* All plugins should provide the following files:
+
** META-INF/MANIFEST.MF <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/META-INF/MANIFEST.MF?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
** plugin.xml <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/plugin.xml?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
** plugin.properties <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/plugin.properties?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
** build.properties <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/build.properties?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
** about.html <span style="font-size: 9pt"><[http://dev.eclipse.org/viewcvs/indextools.cgi/org.eclipse.emf/plugins/org.eclipse.emf.ecore/about.html?rev=HEAD&content-type=text/vnd.viewcvs-markup example]></span>
+
* The ''build.properties'' file is extremely important and must be accurate to allow PDE to build your plugins and features. Please review the EMF ''build.properties'' files for plugins with code, documentation and branding plugins, and features.
+

Latest revision as of 01:27, 23 November 2008

This document is directed at Modeling Project component leads, including those in EMF, EMFT, M2M, M2T & MDT. This system has also been used for GEF and DSDP-TM-RSE, and with a little effort, can be used for other non-Modeling projects and components.

It describes the existing procedures that components are required to adopt, describing, for example, how the files should be organized, what the build files are, and the Integration and Milestone release process.

Throughout this document are references to releng (Release Engineering) files which need to be configured along the way. When a project is first being created, these steps are normally not started until after all the plugin content is in CVS. Then, and only then, the Releng Module can be created for the new project, and builds can begin.

  • Creation
1. Component Creation -- includes workflow and TODOs by assignee
2. Website Maintenance -- includes how to control web content and add users
3. Project Plan -- includes how to create your plan.xml and set up Bugzilla queries
  • Setup
4. Releng Module -- how to get started working with PDE's releng.basebuilder
5. Plugin And Feature Files -- includes structure & layout for your plugin/feature files
6. Building Zips And Jars -- includes Incubation status, 3rd party jars, compiler settings, tagging & releasing code, plugin version auditing and build/test troubleshooting
  • Publication
7. Releasing -- schedules, reviews, promoting builds, and generating project meta-information (release notes, RSS feeds, newsgroup announcements)
8. Maintenance -- cleanup tips
9. Branching -- how to branch

See Also

Copyright © Eclipse Foundation, Inc. All Rights Reserved.