Difference between revisions of "EPI-CO-0001"
m (→Benefits) |
(→Possible mentor) |
||
Line 43: | Line 43: | ||
== Possible mentor == | == Possible mentor == | ||
− | + | [[User:Jfiat|Jocelyn Fiat]] |
Latest revision as of 13:29, 12 March 2009
Title
Save Eiffel Configuration File in a non-XML format
One line summary
Instead of using XML to save the Eiffel Configuration File (aka ECF), use a human readable format.
Status
Note started
Description
Before the introduction of ECF in version 5.7, EiffelStudio used to read Lace files as project configuration file. However there were too many limitations to that format and the EiffelStudio development team chose a new format when it added new features that were not backward compatible with Lace.
However some have complained that using XML for that new format was not the best thing and wanted a format that looks more like Lace and thus more like Eiffel.
The idea of this project is to analyze all the features that ECF offers and to propose an alternative file format that will be both forward and backward compatible (i.e. an old version should be able to read a new version and ignore what it does not understand, a new version should be able to read any old versions).
If possible the graphical UI for editing configuration file should be updated to support this new format.
Note that we have an internal representation of ECFs, and ideally the parsing and saving of the configuration files should simply be a translation to and from that internal representation.
Skills needed
Knowledge of parsing. Taste for building nice UI applications.
Difficulty
High
Benefits
Student will get a very good knowledge of Eiffel and the project configuration files used by the compiler. He will certainly learn to make compromise as changing a format of something is always challenging since there are as many opinions they are users.
Community will benefit from a possibly nicer to read, easier to extend project configuration format and a nicer GUI.
Licensing
GPLv2
Documentation
Internals should be documented in the source code as well as on http://dev.eiffel.com. User documentation on http://docs.eiffel.com