KIELER Modularization Task Force Meeting
- Date: March 15th, 2011
- Attendants:
- cds
- chsch
- cmot
- haf
- msp
- Protocol: cds
- Begin: 10:25
- End: !11:50
Discussion
Problematic Use Cases
We have identified the following use cases as currently being problematic:
- New developers have to decide which plug-ins they need in their IDE.
- Auto builds break when building a plug-in that depends on recent changes in another plug-in.
- Users don't know which features they should install.
- Potential developers cannot distinguish between production code, experimental code and legacy code.
Possible Solutions
We have talked about the following approaches:
- Eliminate dependencies between features (problems 2 and 3)
- Define new features that contain all plug-ins they need. That way, features could be installed without having to worry about any other features they depend on.
- Less features would be needed. Installation would get easier, because the features could be geared towards our research areas without having to know about individual projects.
- A problem is that every feature would have to be built separately during the nightly build process -> time consuming
- Could perhaps be remedied by introducing Maven to manage dependencies.
- Project sets (problem 1 and 4)
- Hard to manage if there are many project sets.
- Easy to use for developers.
- Perhaps only have very few project sets, comparable to the features.
- Could be automatically generated somehow.
- Dependency graph (problem 1)
- Introduce an automatically generated graph showing the dependencies between our plugins.
- Harder to use for developers.
Final Solution
We propose the following solution:
- Have few features. The features must be self-contained and geared towards research areas. They must be configured manually.
- Automatically transform the feature definitions to project sets for developers.
The Plan
Your mission, should you choose to accept it, ...
- Prepare the features. We propose the following features: (included are the names of those responsible for creating that feature, as well as a list of plug-ins that could be part of it)
- SyncCharts (haf+cmot)
Relevant Core parts, SyncCharts, Esterel, S, Ptolemy, KIEM, KSBASE, KIML, GraphViz, KARMA, KEX (with SyncCharts examples) - KAOM (msp)
Relevant Core parts, KAOM, KIML, Ptolemy import, KARMA, KLoDD, Klay, KEX (with KAOM examples), KVID, KIEM, Validation Manager - UML (jes+cmot)
Papyrus bridge, Maude, KIEM, KIML, OGDF (class diagrams), GraphViz, Validation Manager, KEX (with UML examples) - KEG (msp)
Editor, GrAna, KIML, KSBASE, all layout algorithms, Import / Export incl. XML formats, KEX (with layout examples), Layout View - Layout Graphiti (msp)
KIML, all layout algorithms, Graphiti integration - Layout GMF (msp)
KIML, all layout algorithms, GMF integration
- SyncCharts (haf+cmot)
- Update Hudson
- Include new features. (done by those responsible for the respective features)
- Job name begins with Feature2.
- Folder features/de.cau.cs.kieler....feature2.
- Write the transformation that turns feature definitions to project sets. (haf)
- Update the documentation (Wiki) to link to the generated project sets. (?)
- Include new features. (done by those responsible for the respective features)
- Deadline: Next KIELER release, mid April