Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 456079

Summary: Installing only the "Sirius Specification Environment" feature produces a half-functioning, half-broken installation
Product: [Modeling] Sirius Reporter: Pierre-Charles David <pierre-charles.david>
Component: RelengAssignee: Laurent Redor <laurent.redor>
Status: CLOSED FIXED QA Contact: Belqassim Djafer <belqassim.djafer>
Severity: normal    
Priority: P3 CC: belqassim.djafer, bota.catalin, laurent.fasani, laurent.redor
Version: 1.0.0Keywords: triaged
Target Milestone: 3.0.0M7   
Hardware: All   
OS: All   
See Also: https://git.eclipse.org/r/46882
https://git.eclipse.org/r/46881
https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4786daf302b65739b7b925e1fc8145b03c204cb5
https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=07ae725a28c61f2169cf6e95dea9f591be6b8cef
https://git.eclipse.org/r/47063
https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=8c36c8ff798150b97b099cba19b62fe75d6f3620
Whiteboard:

Description Pierre-Charles David CLA 2014-12-23 09:18:17 EST
Steps to reproduce:
1. From a fresh Luna install, "Help > Install new software", "Work with":  http://download.eclipse.org/sirius/updates/releases/2.0.1/luna.
2. In the "Sirius" category, check only the "Sirius Specification Environment" feature. It would seem logical that a feature targeted for specifiers would include a complete and functional installation of Sirius, except maybe for some extensionts (like EEF and Xtext integration). Install and restart.
3. Create a new VSM, and try to create a new representation description in it: diagrams and trees are available, but not tables. Check the plug-ins installed: the oes.table and oes.editor.table plug-ins are present, but not oes.table.ui.
4. "Help > Install new software", and this time install everything from the "Sirius" category. Restart and repeat step 3: now tables are available.

The content of the features were designed to minimize the technical dependencies each one introduces, but this does not match how users expect them to behave. In particular, if a feature is named "Sirius Specification Environment" and includes in its description "Install this if you want to create your own Sirius-based modelers", it should by itself produce a fully functional Sirius installation.
Comment 1 Pierre-Charles David CLA 2015-04-05 10:39:59 EDT
More generally, for Mars we should rethink the current organisation of our features, focusing on user expectations instead of the technical details of their contents (e.g. the dependencies they need).

In the Mars repository, the only visible (categorized) features should probably be:
* One basic feature targetting specifiers (the only kind of users who will explicitly install Sirius, as opposed to a Sirius-based modeler). It should include the VSM editors and runtime support for all dialects, and the documentation. It should not include the bridges for: Acceleo 3 (not sure about this one), AQL, EEF, Xtext. It should not include the tests (API and tests themselves).
* One feature for each of the optional extensions: Acceleo 3, AQL, EEF, Xtext. When relevant (e.g. for A3 and AQL), the feature should include both runtime and specifier support.
* One feature with sample modelers (or maybe this should go with the basic one?).

The exisiting features can still be kept for now, and the one we already contribute to the simrel can stay there, juste non-categorized (and thus invisible by default).
Comment 2 Laurent Redor CLA 2015-04-30 03:28:27 EDT
Summary of the current state

Current features and their names

* org.eclipse.sirius.doc.feature: Sirius Documentation
* org.eclipse.sirius.runtime: Sirius Core Runtime
* org.eclipse.sirius.runtime.acceleo: Sirius Runtime Support for Acceleo 3
* org.eclipse.sirius.runtime.aql: Sirius Runtime Support for AQL (Experimental)
* org.eclipse.sirius.runtime.ide.eef: Sirius Integration with EEF
* org.eclipse.sirius.runtime.ide.ui: Sirius Runtime IDE
* org.eclipse.sirius.runtime.ide.ui.acceleo: Sirius IDE Support for Acceleo
* org.eclipse.sirius.runtime.ide.xtext: Sirius Integration with Xtext
* org.eclipse.sirius.runtime.ocl: Sirius Runtime Support for OCL
* org.eclipse.sirius.sample.interactions.feature: Sirius Sample - Interactions Modeler
* org.eclipse.sirius.samples: Sirius Samples
* org.eclipse.sirius.specifier.ide.ui: Sirius Specification Environment
* org.eclipse.sirius.specifier.ide.ui.acceleo: Sirius Specification Editor Support for Acceleo
* org.eclipse.sirius.specifier.ide.ui.aql: Sirius Specification Editor Support for AQL (Experimental)
* org.eclipse.sirius.tests: Sirius Automated Tests
* org.eclipse.sirius.tests.support: Sirius APIs and Runtime for Automated Tests

Current features and their description

* org.eclipse.sirius.doc.feature: Sirius documentation. Includes information on how to use Sirius-based modelers (for end-users), how to create new graphical modelers using Sirius (for specifiers/architects) and how to extend the Sirius platform (for developers and advanced specifiers).
* org.eclipse.sirius.runtime: The core runtime of Sirius, UI-independant and dialect-agnostic. Install this if you want to either use existing Sirius-based modelers or create new ones.
* org.eclipse.sirius.runtime.acceleo: Sirius runtime support for interpreting Acceleo 3.x queries used in Viewpoint Specification Models. Install this if you want to use Sirius-based modelers which use Acceleo in their definition.
* org.eclipse.sirius.runtime.aql: Sirius runtime support for interpreting Acceleo expression in Viewpoint Specification Models using the AQL light interpreter. Install this if you want to use the AQL light interpreter.
* org.eclipse.sirius.runtime.ide.eef: Support for using EEF views and wizards with Sirius representations. Install this if you have EEF-based property views for your domain model and want to see them when editing your domain through Sirius-based modelers.
* org.eclipse.sirius.runtime.ide.ui: Sirius UI and workbench integration, including graphical editors for all types of Sirius representations, and support for Modeling projects with streamlined workflow. Install this if you need to use Sirius-based modelers or create new ones.
* org.eclipse.sirius.runtime.ide.ui.acceleo: Sirius IDE integration with Acceleo 3. Provides Sirius-specific extensions to the Acceleo &quot;Interpreter&quot; view. Install this if you want to create Sirius-based modelers which use Acceleo expression and want to easily test your expressions.
* org.eclipse.sirius.runtime.ide.xtext: Sirius support for Xtext models. Install this if you want to use Sirius-based modelers (or create new ones) on Xtext-based domain models.
* org.eclipse.sirius.runtime.ocl: Sirius runtime support for interpreting OCL queries used in Viewpoint Specification Models. Install this if you want to use Sirius-based modelers which use raw OCL expressions in their definitions.
* org.eclipse.sirius.sample.interactions.feature: Sample Ecore-based interactions metamodel and sequence diagram.
* org.eclipse.sirius.samples: Sample Sirius-based modelers, which can be used as examples and reference by specifiers. Install this if you plan to create Sirius-based modelers and want to have working examples to study.
* org.eclipse.sirius.specifier.ide.ui: Sirius Specification Environment. Provides wizards and editors to create Viewpoint Specification Projects and Models. Install this if you want to create your own Sirius-based modelers.
* org.eclipse.sirius.specifier.ide.ui.acceleo: Provides completion and validation for Acceleo 3 expressions in the VSM editor. Install this if you want to create Sirius-based modelers which use Acceleo expressions in their definitions.
* org.eclipse.sirius.specifier.ide.ui.aql: Provides completion and validation for Acceleo Query Language expressions in the VSM editor using the experimental light interpreter. Install this if you want to try the light interpreter.
* org.eclipse.sirius.tests: APIs and runtime to write and run automated tests on Sirius-based modelers, using JUnit or SWTbot. Install this if you want to write automated tests for your own Sirius-based modelers.
* org.eclipse.sirius.tests.support: APIs and runtime to write and run automated tests on Sirius-based modelers, using JUnit or SWTbot. Install this if you want to write automated tests for your own Sirius-based modelers.
Comment 3 Eclipse Genie CLA 2015-04-30 09:12:53 EDT
New Gerrit change created: https://git.eclipse.org/r/46882

WARNING: this patchset contains 1478 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire
Comment 4 Eclipse Genie CLA 2015-04-30 09:12:55 EDT
New Gerrit change created: https://git.eclipse.org/r/46881
Comment 5 Laurent Redor CLA 2015-04-30 09:37:13 EDT
Finally, the features visible in simrel will be:
* org.eclipse.sirius.specifier (new feature added for this issue, not categorized in our update site)
** Sirius Specifier Environment
* org.eclipse.sirius.aql (new feature added for this issue, not categorized in our update site)
** Sirius Support for AQL
* org.eclipse.sirius.runtime.ide.eef (already extisting feature)
** Sirius Integration with EEF
* org.eclipse.sirius.runtime.ide.xtext (already extisting feature)
** Sirius Integration with Xtext
* org.eclipse.sirius.samples  (already extisting feature)
** Sirius Samples

* org.eclipse.sirius.acceleo (Sirius Support for Acceleo 3) is not visible in the simrel because it is installed by default with org.eclipse.sirius.specifier.
Comment 6 Laurent Redor CLA 2015-04-30 09:38:35 EDT
To validate this issue:
* Install an new Eclipse Mars for Commiters
* Add the repository of Sirius
* Install the feature "org.eclipse.sirius.specifier: Sirius Specifier Environment" (this feature is not available in category, uncheck "Group items by category" to see it)
* Check that you can create a VSM and each kind of representations in it (Diagram, Sequence diagram, Edition table, Cross table and Tree)
* Check that in an expression field of the VSM, the completion shows "[/]", "var:", "feature:" and "service:".
* Check that the Interpreter view is available and proposes "Acceleo interpreter" and "Sirius interpreter". Check that in "Sirius interpreter", the completion shows "[/]", "var:", "feature:" and "service:".
* Install the feature "org.eclipse.sirius.aql: Sirius Support for AQL" (this feature is not available in category, uncheck "Group items by category" to see it)
* Check that in an expression field of the VSM, the completion now also shows "aql:".
* Check that in "Sirius interpreter" of Interpreter view, the completion now also shows "aql:".
* Install the feature "org.eclipse.sirius.runtime.ide.eef: Sirius Integration with EEF"
* Check that the new section "Sirius/Sirius Specifier Manual/Using the Extended Editing Framework with Sirius" is available in the documentation
* Install the feature "org.eclipse.sirius.runtime.ide.xtext: Sirius Integration with Xtext"
* Check that thi new feature is in the installed feature
* Install the feature "org.eclipse.sirius.samples: Sirius Samples"
* Check that the "Basic Family" wizards are available in the Examples category
Comment 7 Laurent Redor CLA 2015-04-30 09:43:38 EDT
Remaining question to deal with (not necessary in this issue): What about the Interpreter view that comes with Acceleo (id = org.eclipse.acceleo.ui.interpreter, in plugin org.eclipse.acceleo.ui.interpreter)?
* The plugin org.eclipse.acceleo.ui.interpreter is "required" for plugin org.eclipse.sirius.interpreter. Plugin org.eclipse.sirius.interpreter is currently installed by the feature org.eclipse.sirius.runtime.ide.ui.acceleo (Sirius IDE Support for Acceleo / Sirius IDE integration with Acceleo 3. Provides Sirius-specific extensions to the Acceleo "Interpreter" view. Install this if you want to create Sirius-based modelers which use Acceleo expression and want to easily test your expressions.) I don't think that the feature id/name/description is always OK.
* When AQL will replace, Acceleo 3 in the default install, we must verify that the view will always be installed.
Comment 9 Pierre-Charles David CLA 2015-05-04 04:41:33 EDT
(In reply to Laurent Redor from comment #7)
> Remaining question to deal with (not necessary in this issue): What about
> the Interpreter view that comes with Acceleo (id =
> org.eclipse.acceleo.ui.interpreter, in plugin
> org.eclipse.acceleo.ui.interpreter)?
> * The plugin org.eclipse.acceleo.ui.interpreter is "required" for plugin
> org.eclipse.sirius.interpreter. Plugin org.eclipse.sirius.interpreter is
> currently installed by the feature org.eclipse.sirius.runtime.ide.ui.acceleo

oes.interpreter should probably be part of the new oes.specifier feature. It should resolve fine at oes.specifier is designed to work as part of the SimRel, which includes all Acceleo 3, incl. org.eclipse.acceleo.ui.interpreter.
Comment 11 Laurent Redor CLA 2015-05-04 10:16:04 EDT
Contrary to what has been said in comment 5, the feature org.eclipse.sirius.acceleo has not been created as there plugins are directly referenced by default by the feature org.eclipse.sirius.specifier.
Comment 12 Eclipse Genie CLA 2015-05-04 10:52:50 EDT
New Gerrit change created: https://git.eclipse.org/r/47063
Comment 14 Laurent Redor CLA 2015-05-04 12:09:39 EDT
Fixed with commits of comment 8, comment 10 and comment 13.
Comment 15 Belqassim Djafer CLA 2015-05-26 05:46:12 EDT
Verified with Sirius 3.0.0 RC1
Comment 16 Pierre-Charles David CLA 2015-06-24 11:14:45 EDT
Available in Sirius 3.0.0. See https://wiki.eclipse.org/Sirius/3.0.0.
Comment 17 Esteban DUGUEPEROUX CLA 2015-08-27 10:02:57 EDT
*** Bug 476002 has been marked as a duplicate of this bug. ***