Jump to: navigation, search

Difference between revisions of "Modeling Project Releng/Component Creation"

m (Bugzilla Setup: typo)
(Component Setup)
 
(42 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This is a process workflow for creating a new [[EMFT]] component.  
+
This is a process workflow for creating a new [[EMFT]] (or other Modeling project) component.  
  
 
''In this example, the new EMFT component is EMF JCR Management, or org.eclipse.emf.jcrm. See also bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=182379 182379] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=182380 182380].''
 
''In this example, the new EMFT component is EMF JCR Management, or org.eclipse.emf.jcrm. See also bugs [https://bugs.eclipse.org/bugs/show_bug.cgi?id=182379 182379] and [https://bugs.eclipse.org/bugs/show_bug.cgi?id=182380 182380].''
  
==Legend==
+
= Legend =
  
 
Names in square brackets are assignees. If more than one assignee is listed, the first listed is the principal w/ other(s) as backup.
 
Names in square brackets are assignees. If more than one assignee is listed, the first listed is the principal w/ other(s) as backup.
Line 11: Line 11:
 
* <b style="color:orange">REL</b> = Release Engineer
 
* <b style="color:orange">REL</b> = Release Engineer
 
* <b style="color:green">COMP</b> = Component Owner
 
* <b style="color:green">COMP</b> = Component Owner
 +
 +
= Workflow =
 +
 +
== Proposal ==
 +
 +
:''(The proposal submission process is subject to change. If you see anything glaringly wrong here, please correct it.)''
 +
 +
* [<b style="color:green">COMP</b>] contact PMC via [[:Category:Modeling_Meetings | meeting]] or [https://dev.eclipse.org/mailman/listinfo/modeling-pmc mailing] [http://dev.eclipse.org/mhonarc/lists/modeling-pmc/maillist.html list] to pitch component idea. Should have a first draft of the proposal doc (.doc, .ppt, .pdf, or ideally, in wiki format) and maybe some sample code at this point
 +
* [<b style="color:green">COMP</b>] with PMC approval, post announcement to [http://www.eclipse.org/newsgroups/index_project.php relevant newsgroup(s)] to gather community/peer feedback.
 +
:* Wait two weeks
 +
* [<b style="color:green">COMP</b>] post announcement to project's [http://www.eclipse.org/mail/index_project.php developer mailing list] to gather approval votes from existing project committers.
 +
:* Wait one week
 +
* [<b style="color:green">COMP</b>] post announcement to PMC mailing list after successful conclusion of committer vote.
 +
* [<b style="color:green">COMP</b>] formalize proposal document in wiki; link from [[EMFT#Proposed_Components |Proposed Components]] page.
 +
:* Examples: [[EMF4Net Proposal]], [[Mint]], [[Temporality]]
 +
* [<b style="color:green">COMP</b>] send note to EMO for planetwide announcement, including short paragraph describing component and link to proposal doc in wiki.
 +
  
 
== Committer Legal Setup ==
 
== Committer Legal Setup ==
  
 +
* [<b style="color:red">PMC</b>] submit New Project Provisioning Request (NPPR) for new component and <b style="color:green">COMP</b>, per http://www.eclipse.org/projects/project_provisioning_request.php
 
* [<b style="color:red">PMC</b>] submit New Committer Request Form (NCRF) for <b style="color:green">COMP</b>, per http://www.eclipse.org/projects/dev_process/new-committer.php
 
* [<b style="color:red">PMC</b>] submit New Committer Request Form (NCRF) for <b style="color:green">COMP</b>, per http://www.eclipse.org/projects/dev_process/new-committer.php
 
* [<b style="color:green">COMP</b>] fax committer agreement to the EMO  
 
* [<b style="color:green">COMP</b>] fax committer agreement to the EMO  
 
* [<b style="color:green">COMP</b>] fax company agreement to the EMO  
 
* [<b style="color:green">COMP</b>] fax company agreement to the EMO  
 
* [<b style="color:green">COMP</b>] submit Committer Questionnaire
 
* [<b style="color:green">COMP</b>] submit Committer Questionnaire
 +
  
 
== Commiter Account Setup ==
 
== Commiter Account Setup ==
Line 25: Line 44:
 
* [<b style="color:blue">WM</b>] add <b style="color:green">COMP</b> to groups emf-jcrm, emf-jcrm-releng
 
* [<b style="color:blue">WM</b>] add <b style="color:green">COMP</b> to groups emf-jcrm, emf-jcrm-releng
  
* [<b style="color:blue">WM</b>] add <b style="color:green">COMP</b> to groups emftadmin (download.eclipse) & emft-home (www.eclipse)
+
* [<b style="color:blue">WM</b>] add <b style="color:green">COMP</b> to groups emftadmin (download.eclipse) & modeling-home (www.eclipse)
  
 
* [<b style="color:blue">WM</b>] add <b style="color:orange">REL</b> to group emf-jcrm-releng
 
* [<b style="color:blue">WM</b>] add <b style="color:orange">REL</b> to group emf-jcrm-releng
 +
  
 
== Component Setup ==
 
== Component Setup ==
  
* [<b style="color:green">COMP</b>] provide component description text to <b style="color:red">PMC</b> & <b style="color:orange">REL</b> for website intro/detail & Bugzilla component description  
+
* [<b style="color:green">COMP</b>] provide component description text to <b style="color:red">PMC</b> & <b style="color:orange">REL</b> for [[Modeling_Project_Releng/Website_Maintenance | website intro/detail]] & Bugzilla component description
 +
* [<b style="color:green">COMP</b>] provide introductory wiki page, linked from [[EMFT]] (or applicable parent project) page
 +
* [<b style="color:green">COMP</b>] [[Development_Resources/Project_Plan/Modeling_Project|provide project plan]], linked from [http://www.eclipse.org/projects/project-plan.php?projectid=modeling Modeling Project plan] or one of its subprojects
  
 
== Bugzilla Setup ==
 
== Bugzilla Setup ==
Line 38: Line 60:
  
 
* [<b style="color:orange">REL</b>] add new [https://bugs.eclipse.org/bugs/describecomponents.cgi?product=EMFT component], with <b style="color:green">COMP</b> as default assignee
 
* [<b style="color:orange">REL</b>] add new [https://bugs.eclipse.org/bugs/describecomponents.cgi?product=EMFT component], with <b style="color:green">COMP</b> as default assignee
 +
  
 
== CVS Setup ==
 
== CVS Setup ==
Line 44: Line 67:
  
 
* [<b style="color:blue">WM</b>] change group id on /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.jcrm.releng/ to emf-jcrm-releng
 
* [<b style="color:blue">WM</b>] change group id on /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.jcrm.releng/ to emf-jcrm-releng
 +
  
 
== Code Contribution ==
 
== Code Contribution ==
  
* [<b style="color:green">COMP</b>] commit code into /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.jcrm/ per details in [[EMFT_Procedures | EMFT Procedures]]. Recommend setting plugins to version 0.7.0 if based on EMF 2.2 or 0.8.0 if based on EMF 2.3
+
* [<b style="color:green">COMP</b>] '''Existing code written by the new committers''' must be submitted to [https://dev.eclipse.org/ipzilla/ IPzilla] for legal clearance before being committed to CVS.  Zip all the sources and attach it to the IPZilla.  Ensure that proper EPL copyright notices are in place. Document the names of all the people who have contributed to the code.  All contributors must agree to the terms of the EPL license for the contribution.  Please add the project lead (one of the PMC members) to the IPzilla bug's CC: list so that they can approve it.
 +
 
 +
* [<b style="color:green">COMP</b>] '''Third party code''' must also be submitted to [https://dev.eclipse.org/ipzilla/ IPzilla] for legal clearance before being committed to CVS. Note also that many 3rd party libraries are available via the [http://www.eclipse.org/orbit/ Orbit] project, and so can be freely used in your development workspace and added to the project at build time (rather than needing to be duplicated in CVS).  The use of libraries already in Orbit nevertheless requires approval.  Each third party library should be filed as a separate IPzilla.  Please add the project lead (one of the PMC members) to the CC list for approval.
 +
 
 +
* [<b style="color:green">COMP</b>] ''Once cleared by PMC and Eclipse Legal,'' commit code into /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.<your-component>/ ([[Modeling_Project_Releng/Plugin_And_Feature_Files#Directory_Structure|details here]]). Recommend setting plugins to version 0.7.0 to give you a few years before you have to hit the ominous 1.0.0 release.
  
 
== Release Engineering ==
 
== Release Engineering ==
  
* [<b style="color:orange">REL</b>] add new component to the EMFT website (http://www.eclipse.org/emft/projects/); identify as having no downloads yet
+
* [<b style="color:green">COMP</b>] [[Modeling_Project_Releng/Website_Maintenance | add new component to the EMFT website]]; identify as having no downloads yet
  
 
* [<b style="color:green">COMP</b>] contact <b style="color:orange">REL</b> via IM (eg., [[User:nickb]]) to begin releng coordination
 
* [<b style="color:green">COMP</b>] contact <b style="color:orange">REL</b> via IM (eg., [[User:nickb]]) to begin releng coordination
  
* [<b style="color:orange">REL</b>] set up build server (emft.eclipse.org or build.eclipse.org) for running JCRM builds, including granting ssh & firewall access to <b style="color:green">COMP</b> (if on emft.eclipse.org)
+
* [<b style="color:green">COMP</b>] provide component compilation requirements to <b style="color:orange">REL</b>: upstream dependencies (eg., EMF, UML2, OCL...), 3rd party libraries (from [http://www.eclipse.org/orbit/ Orbit] or other), JDK version (1.4 or 5.0), plugin version (eg., usually 0.7.0 to start). See also [[Modeling_Project_Releng/Website_Maintenance#Build_UI | Build UI]]
 +
 
 +
* [<b style="color:green">COMP</b>] create [[EMFT_Releng_Module | releng module]]. See also [[Modeling Project Releng]] to more tips and advice
 +
 
 +
* [<b style="color:orange">REL</b>] [[Modeling_Project_Releng/Component_Creation/Build_Server_Setup | set up build server]] (emft.eclipse.org or build.eclipse.org)
  
* [<b style="color:green">COMP</b>/<b style="color:orange">REL</b>] create [[EMFT_Releng_Module | releng module]]
+
* [<b style="color:green">COMP</b>] run your first build! See [[Modeling_Project_Releng/Building#Running_Builds|Running Builds]]
  
* [<b style="color:orange">REL</b>] set up build server for publishing JCRM builds
+
* [<b style="color:green">COMP</b>] [[Modeling_Project_Releng/Releasing#SSH_Key_Setup|set up SSH keys]] for connecting passwordlessly from emft.eclipse.org to download1.eclipse.org and dev.eclipse.org
  
* [<b style="color:green">COMP</b>] publish first JCRM build to download1.eclipse.org
+
* [<b style="color:green">COMP</b>] publish first build to download1.eclipse.org
  
* [<b style="color:orange">REL</b>] update website to reflect project has first successful build
+
* [<b style="color:green">COMP</b>] update website to reflect project has first successful build. See [[Modeling_Project_Releng/Website_Maintenance#Site_Navigation | Site Navigation]]
  
* [<b style="color:orange">REL</b>] update Search CVS (incl. relupdate.php) to ensure component is being logged (release notes, build news)
+
* [<b style="color:orange">REL</b>] [[Modeling_Project_Releng/Component_Creation/Database_Setup | set up database for new component]]
  
 
[[Category:Releng]] [[Category:EMFT]]
 
[[Category:Releng]] [[Category:EMFT]]
 +
[[Category:Modeling]] [[Category:Modeling Project Management]]

Latest revision as of 01:22, 23 November 2008

This is a process workflow for creating a new EMFT (or other Modeling project) component.

In this example, the new EMFT component is EMF JCR Management, or org.eclipse.emf.jcrm. See also bugs 182379 and 182380.

Legend

Names in square brackets are assignees. If more than one assignee is listed, the first listed is the principal w/ other(s) as backup.

  • WM = Webmaster(s)
  • PMC = Project Management Chair
  • REL = Release Engineer
  • COMP = Component Owner

Workflow

Proposal

(The proposal submission process is subject to change. If you see anything glaringly wrong here, please correct it.)
  • [COMP] contact PMC via meeting or mailing list to pitch component idea. Should have a first draft of the proposal doc (.doc, .ppt, .pdf, or ideally, in wiki format) and maybe some sample code at this point
  • [COMP] with PMC approval, post announcement to relevant newsgroup(s) to gather community/peer feedback.
  • Wait two weeks
  • [COMP] post announcement to project's developer mailing list to gather approval votes from existing project committers.
  • Wait one week
  • [COMP] post announcement to PMC mailing list after successful conclusion of committer vote.
  • [COMP] formalize proposal document in wiki; link from Proposed Components page.
  • [COMP] send note to EMO for planetwide announcement, including short paragraph describing component and link to proposal doc in wiki.


Committer Legal Setup


Commiter Account Setup

  • [WM] create dev.eclipse.org userid for COMP; user requires a full shell, not a restricted one
  • [WM] add COMP to groups emf-jcrm, emf-jcrm-releng
  • [WM] add COMP to groups emftadmin (download.eclipse) & modeling-home (www.eclipse)
  • [WM] add REL to group emf-jcrm-releng


Component Setup

Bugzilla Setup

  • [COMP] register with Bugzilla to create an account
  • [REL] add new component, with COMP as default assignee


CVS Setup

  • [WM] change group id on /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.jcrm/ to emf-jcrm
  • [WM] change group id on /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.jcrm.releng/ to emf-jcrm-releng


Code Contribution

  • [COMP] Existing code written by the new committers must be submitted to IPzilla for legal clearance before being committed to CVS. Zip all the sources and attach it to the IPZilla. Ensure that proper EPL copyright notices are in place. Document the names of all the people who have contributed to the code. All contributors must agree to the terms of the EPL license for the contribution. Please add the project lead (one of the PMC members) to the IPzilla bug's CC: list so that they can approve it.
  • [COMP] Third party code must also be submitted to IPzilla for legal clearance before being committed to CVS. Note also that many 3rd party libraries are available via the Orbit project, and so can be freely used in your development workspace and added to the project at build time (rather than needing to be duplicated in CVS). The use of libraries already in Orbit nevertheless requires approval. Each third party library should be filed as a separate IPzilla. Please add the project lead (one of the PMC members) to the CC list for approval.
  • [COMP] Once cleared by PMC and Eclipse Legal, commit code into /cvsroot/modeling/org.eclipse.emf/org.eclipse.emf.<your-component>/ (details here). Recommend setting plugins to version 0.7.0 to give you a few years before you have to hit the ominous 1.0.0 release.

Release Engineering

  • [COMP] contact REL via IM (eg., User:nickb) to begin releng coordination
  • [COMP] provide component compilation requirements to REL: upstream dependencies (eg., EMF, UML2, OCL...), 3rd party libraries (from Orbit or other), JDK version (1.4 or 5.0), plugin version (eg., usually 0.7.0 to start). See also Build UI
  • [COMP] set up SSH keys for connecting passwordlessly from emft.eclipse.org to download1.eclipse.org and dev.eclipse.org
  • [COMP] publish first build to download1.eclipse.org
  • [COMP] update website to reflect project has first successful build. See Site Navigation