Difference between revisions of "Developer FAQ"
Revision as of 10:12, 26 March 2010
- 1 How to contribute?
- 2 Developer FAQ
- 2.1 How can I get the sources of the Rodin platform?
- 2.2 Installing the source bundle in Eclipse
- 2.3 Installing the sources from Subversion in Eclipse
- 2.4 Using Rodin-SVN from Eclipse consumes too much memory
- 2.5 How do I generate a Rodin product from sources?
- 2.6 How to build Rodin headless?
- 2.7 How do I collect debug information from the Rodin platform?
- 2.8 How do I submit a patch?
- 2.9 How do I track memory leaks?
- 2.10 How do I report a bug.
- 2.11 How do I save the models ?
- 2.12 How do I add a new attribute to existing elements (e.g. Event-B event)?
- 2.13 How do I extend the Event-B structure editor (the Edit Tab of the Event-B editor) for editing an attribute (which I added to the Rodin DB as described here)?
How to contribute?
See the How to contribute page.
How can I get the sources of the Rodin platform?
There are two options for getting the sources of the Rodin platform:
- The safe option is to download the source bundle which is made available with each platform release. This ensures that you will get a consistent set of source files, albeit maybe a bit outdated.
- The other option is to fetch the sources from Subversion, which allows to get their latest version. The Rodin developers strive for keeping theses sources usable (i.e. they should always compile and pass unit tests), but breakage can happen.
Installing the source bundle in Eclipse
To install the bundled sources, you first have to download the bundle from SourceForge. It takes the form of a ZIP file named rodin-VERSION-sources.zip. Then, in Eclipse, clickIn the Import popup, select and click . Then tick and enter the path to the source bundle you have just downloaded. Ensure that all projects are ticked and click . Your workspace gets populated with the source projects of the Rodin platform and Eclipse starts building.
Installing the sources from Subversion in Eclipse
To install the sources from Subversion, in Eclipse click https://rodin-b-sharp.svn.sourceforge.net/svnroot/rodin-b-sharp and click . In the tree displaying the subversion repository, select path trunk/RodinCore/org.rodinp.releng and click . Your workspace now contains the project org.rodinp.releng., then select in the Import popup and click twice. In the Url textbox, enter
To install the other source projects, click again, but this time select and click . When asked for a File name, enter the path to file org.rodinp.releng/rodin-core.psf in your workspace and click . Eclipse then fetches the other source projects of the Rodin platform into your workspace (this can take some time).
Using Rodin-SVN from Eclipse consumes too much memory
Running the Rodin platform from Eclipse can consume a lot of RAM and become impractical on a small machine. If you fall in this case, you can generate a product and use it as if it was a normal release.
How do I generate a Rodin product from sources?
In the project org.rodinp.platform, right-click on Rodin.platform and select. Choose and click on type Rodin for the Root directory, and choose the Destination directory. Then click on .
How to build Rodin headless?
When releasing a new version of the Rodin platform, the Rodin team builds the platform headless (i.e. using batch scripts rather than Eclipse GUI). The process used for that is described in Building Rodin Headless. Alternatively, the Rodin team has also set up a CruiseControl server for checking that builds do not break.
How do I collect debug information from the Rodin platform?
You may see the log in the console by appending -consoleLog to the rodin executable:
rodin --debug options.file -consoleLogwhere
org.pluginname/debug = true org.pluginname/debug/optionaldebug = truewhere optionaldebug may be found in the
How do I submit a patch?
Good practises for patch submission are described here.
How do I track memory leaks?
If you suspect that some memory isn't freed, you may find some useful directions on how to track memory leaks here.
How do I report a bug.
How do I save the models ?
After the separation between a file (IRodinFile) and its root (a IInternalElement), that occurred in version 0.9.2, model saving is no more achievable through internal elements. Instead, you have to save the IRodinFile.
IInternalElement element = ... element.getRodinFile().save(...);
How do I add a new attribute to existing elements (e.g. Event-B event)?
You need to extend the following extension point
org.rodinp.core.attributeTypes to declare the new attribute.
Note: There is no constraint on which element type this attribute type associated with. In principle, any attribute type can be attached to the any internal element type.
The detail steps are described in the following page Extending the Rodin Database.
How do I extend the Event-B structure editor (the Edit Tab of the Event-B editor) for editing an attribute (which I added to the Rodin DB as described here)?
You need to extend the following extension point
org.eventb.ui.editorItems to declare the two different elements:
- How the attribute is going to be displayed/edited. This is done by declaring one of the following elements:
- The relationship between the attribute and internal elements. This is done by declaring an
attributeRelationelement. Note: In fact, this relationship declares which element allows to have this attribute, which is not something enforce when the attribute is added as described here.
The detail steps are described in the following page Extending the Structure Editor.