Difference between revisions of "Category:Projects"
(→General environment mechanisms) |
m (→How to become a developer) |
||
(48 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | ==Contributing to open-source EiffelStudio== | |
− | There are many ways to | + | Now that you have [[Spread_the_word|spread the word]] about Eiffel, you feel the urge to contribute to the product itself. There are many ways to help develop EiffelStudio through projects large and small. Check the list of open projects below; if you see one of interest, contact the project members as listed on the corresponding project page. Don't forget to subscribe to the Eiffel developers list (see the [[Mailing_Lists|the mailing lists page]]) where you can post questions about past, current and possible projects. |
− | + | If you feel none of the current projects covers your special interest, see below how to [[#Adding_your_own_project|add your own project]]. | |
− | Eiffel is | + | Whatever your contribution, remember that Eiffel is also about style. Make sure you are familiar with the [[Design_and_coding_rules|design and coding rules]] and apply them thoroughly. |
− | + | {{note| '''To authors of projects available from this page:''' please make sure the project description is up to date and in particular that '''the project members are listed''' and reachable; that's the best way to gain more collaborators. If the project is no longer active please move the entry to [[#Projects_to_be_started_or_restarted|projects to be started or restarted]] section so that someone else may pick it up.}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | __TOC__ | |
− | + | ||
− | + | ==How to become a developer== | |
+ | Before giving access to the EiffelStudio repository, we need to assess the quality of your work. To do so, we ask you to participate in the projects/areas of your choice by submitting patches to the forums for a peer review. If after several contributions your code and work is satisfactory to the other developers, we will grant you access to the EiffelStudio subversion repository where you can be integrated with your fellow EiffelStudio developers. | ||
== General environment mechanisms == | == General environment mechanisms == | ||
There are always new ideas to improve the user experience with EiffelStudio. | There are always new ideas to improve the user experience with EiffelStudio. | ||
− | |||
− | |||
* [[Advanced Class and Feature Wizard| Advanced class and feature wizard ]] | * [[Advanced Class and Feature Wizard| Advanced class and feature wizard ]] | ||
::Improve ease of use, for both novice and advanced users, by refining the tools that create classes and features from templates. | ::Improve ease of use, for both novice and advanced users, by refining the tools that create classes and features from templates. | ||
Line 29: | Line 24: | ||
::While Eiffel doesn't need some of the refactoring mechanisms of other languages, the environment could benefit from new refactoring mechanisms in addition to the ones currently supported. | ::While Eiffel doesn't need some of the refactoring mechanisms of other languages, the environment could benefit from new refactoring mechanisms in addition to the ones currently supported. | ||
* [[Eiffel_Mutation_Testing_Tool| Eiffel Mutation Testing Tool]] | * [[Eiffel_Mutation_Testing_Tool| Eiffel Mutation Testing Tool]] | ||
− | ::Build a high-quality mutation testing tool (for evaluating the quality of test strategies, fault detectability and redundancy) taking advantage of Eiffel's mechanisms, especially Design by Contract. | + | ::Build a high-quality mutation testing tool (for evaluating the quality of test strategies, fault detectability and redundancy) taking advantage of Eiffel's mechanisms, especially Design by Contract. |
− | + | ||
+ | {{Note| For tool development check out the [[Tool Integration Development]] page for a quick tutorial on how to integrate a tool window in EiffelStudio.}} | ||
== Graphics and user interface == | == Graphics and user interface == | ||
Line 37: | Line 33: | ||
*[[Vision2_Accelerator|EiffelVision Accelerators]] | *[[Vision2_Accelerator|EiffelVision Accelerators]] | ||
::More keyboard accelerators for EiffelVision applications. | ::More keyboard accelerators for EiffelVision applications. | ||
− | *[[ | + | *[[EiffelVision_Unicode|Unicode support for EiffelVision]] |
− | ::EiffelVision support for the character set of | + | ::EiffelVision support for the character set of arbitrary human languages (see also [[Unicode]]). |
*[[EiffelBuild_Integration|EiffelBuild Integration]] | *[[EiffelBuild_Integration|EiffelBuild Integration]] | ||
+ | ::The graphical user interface builder, EiffelBuild, is currently a separate product. Ideally it should be completely integrated with EiffelStudio. | ||
*[[Cocoa_for_EiffelVision2|Cocoa for EiffelVision]] | *[[Cocoa_for_EiffelVision2|Cocoa for EiffelVision]] | ||
::Provide EiffelVision with a Carbon back-end to make it truly native on the Mac. | ::Provide EiffelVision with a Carbon back-end to make it truly native on the Mac. | ||
− | |||
− | |||
* [[Internationalization|EiffelStudio UI for other languages (internationalization)]] | * [[Internationalization|EiffelStudio UI for other languages (internationalization)]] | ||
::EiffelStudio provides support for changing the user interface messages and dialogs to any language. If you are a fluent speaker of a language other than English, you can help the localization into that language. | ::EiffelStudio provides support for changing the user interface messages and dialogs to any language. If you are a fluent speaker of a language other than English, you can help the localization into that language. | ||
+ | |||
+ | |||
+ | == Libraries (other than EiffelVision) == | ||
+ | |||
+ | Eiffel is all about reuse of quality components. The best way to get started as an Eiffel contributor is to extend an existing library, or start a new one to fill a need. | ||
+ | |||
+ | * [[#Graphics_and_user_interface|EiffelVision-related developments appear under graphics and user interface]]. | ||
+ | * [[Eiffel_NXT | Eiffel LEGO NXT Commumication Library and EiffelStudio Integration]] | ||
+ | ::Remote communication with LEGO NXT Mindstorms "bricks" | ||
+ | |||
== Build infrastructure == | == Build infrastructure == | ||
Developments in this category are intended to help produce new versions of EiffelStudio faster and better. | Developments in this category are intended to help produce new versions of EiffelStudio faster and better. | ||
− | *[[Build_tool | Build tool]] | + | *[[Build_tool | Build tool]] |
− | *[[Debian_packages | Debian packages]] | + | ::Simplify and streamline the EiffelStudio build process. |
+ | *[[Debian_packages | Debian packages]] | ||
+ | ::Include EiffelStudio in standard Debian installation | ||
*[[OSX_release_infrastructure|OSX release infrastructure]] | *[[OSX_release_infrastructure|OSX release infrastructure]] | ||
− | + | ::Script the release of Mac universal binaries for OS X | |
− | * [[ | + | |
+ | |||
+ | == Language and compiler == | ||
+ | This is the heart of the Eiffel environment: providing the best possible implementation of the Eiffel language. See the [[:Category:Compiler|compiler pages]] for detailed information about EiffelStudio's compiling techniques including the Melting Ice Technology. | ||
+ | * [[ECMA Implementation|Full ISO/ECMA support]] | ||
+ | ::The Eiffel standard developed by the ECMA TC39-TG4 committee and approved in 2006 by the International Standards Organization is the definitive reference on the Eiffel language. Work is progressing quickly to include all ECMA-ISO mechanisms into the EiffelStudio compiler; you can help fill the remaining gaps. | ||
+ | |||
+ | {{note|On this site you will also find a [[:Category:ECMA|category]] for ECMA pages in which many proposals and other topics are discussed, but are not necessarily approved by the ECMA committee. Refer to the official ISO/ECMA documents for the official word.}} | ||
Line 61: | Line 75: | ||
* [[ESTeaching | Eiffel Studio for Teaching]] | * [[ESTeaching | Eiffel Studio for Teaching]] | ||
− | |||
− | |||
+ | == Testing == | ||
+ | Developing is not everything; the results must also be tested for functionality and performance. The EiffelStudio testing process is completely open and follows advanced software engineering standard. Please visit the special [[:Category:Testing|category devoted to EiffelStudio testing]]. | ||
+ | |||
+ | |||
+ | |||
+ | == Projects to be started or restarted == | ||
+ | The projects in this list are mere ideas which may not yet have a project page. Some of them were started but not completed. Feel free to take over! If you do so, move the project to one of the above sections (compiler, libraries etc.). If you have further suggestions you may include them here. | ||
+ | * [[EiffelStudio_Wish_List|EiffelStudio Wish List]] | ||
+ | ::Not really the description of a single project, but a collection of ideas of cool things to add to EiffelStudio. Feel free to add to it. | ||
+ | * [[Compilation_Without_Configuration|Compilation without configuration]] | ||
+ | ::A mechanism to compile classes without providing a control file. | ||
+ | * [[Wish CHARACTER 16|CHARACTER 16]] | ||
+ | ::A request for a new basic type. | ||
+ | *[[Component_standards| Standards and tools for Eiffel-based components]] | ||
+ | ::Develop a standard for distributing Eiffel components in binary form, and implement it | ||
* [[Unicode|Unicode support improvement]] | * [[Unicode|Unicode support improvement]] | ||
+ | ::Improve support for character sets of arbitrary human languages. See also [[EiffelVision_Unicode|EiffelVision Unicode support]]. | ||
* [[New_ports|Porting to new platforms (OSX Intel, OpenBSD)]] | * [[New_ports|Porting to new platforms (OSX Intel, OpenBSD)]] | ||
+ | ::Eiffel is highly portable; a port to a new platform is a moderate effort. | ||
* [[IDE|IDE improvements]] | * [[IDE|IDE improvements]] | ||
+ | ::This should be replaced by more specific goals, see [[#General_environment_mechanisms|general environment mechanisms]] above. | ||
* [[Extended_static_checking|Extended static checking]] | * [[Extended_static_checking|Extended static checking]] | ||
+ | ::See e.g. ESC-Java, Spec#... | ||
* [[Code_checking|Direct code checking (red squiggly lines)]] | * [[Code_checking|Direct code checking (red squiggly lines)]] | ||
+ | ::More user-friendly error "non-messages", following the lead of spelling error reporting in MS Word | ||
* [[Learning|Integrated learning support]] | * [[Learning|Integrated learning support]] | ||
+ | ::Support for total beginners | ||
* [[Macros|Editor macro recording and playback]] | * [[Macros|Editor macro recording and playback]] | ||
+ | ::Give EiffelStudio, in particular the editor, a macro facility | ||
* [[Editor_breakpoints|Inserting and navigation of editor breakpoints]] | * [[Editor_breakpoints|Inserting and navigation of editor breakpoints]] | ||
− | * [[Trace_points|Adding trace points | + | ::Add breakpoints to the editor for better navigation |
+ | * [[EMU| Eiffel Multi User]] | ||
+ | ::Integrate a repository mechanism | ||
+ | * [[Trace_points|Adding trace points]] | ||
+ | :: Output a trace statement indicating a trace point has been hit, without the need to write code or stop execution | ||
* [[Update_notification|Update notification]] | * [[Update_notification|Update notification]] | ||
− | ::An update notification service to let developers know there is a new version available | + | ::An update notification service to let developers know there is a new version available. |
* [[Configuration_management|Integrated support for configuration management]] | * [[Configuration_management|Integrated support for configuration management]] | ||
+ | ::Integrate configuration management into EiffelStudio. | ||
+ | *[[Scintilla_component| Multiplatform editor component: Scintilla]] | ||
+ | ::Encapsulate Scintilla multi-platform editor | ||
+ | *[[Gecko_component| Multiplatform layout engine component: Mozilla/Gecko]] | ||
+ | ::Encapsulate Gecko html multi-platform engine component | ||
== Completed projects == | == Completed projects == | ||
+ | |||
+ | * [[AutoTest_Integration|Integrating AutoTest into EiffelStudio]] | ||
+ | ::[http://se.ethz.ch/research/autotest/ AutoTest] is an automated testing framework taking advantage of Eiffel's Design by Contract to provide far more automation than current solutions such as JUnit. Currently it is a separate tool; ideally it should be part of EiffelStudio. | ||
+ | |||
== Adding your own project == | == Adding your own project == | ||
+ | To add your own project: | ||
+ | *Make sure it is not redundant with one of the existing projects. If there is any chance of duplication, please contact the project authors first. | ||
+ | *If you have not already done so, subscribe to the developers' mailing list (see the [[Mailing_Lists|the mailing lists page]]). Post a message to the list explaining your idea and asking for feedback. | ||
+ | *Also check the above [[#Projects_to_be_started_or_restarted|list of "projects to be started or restarted"]], in particular the [[EiffelStudio_Wish_List|EiffelStudio Wish List]]. Some of the pages are just stubs, but others already have a detailed analysis which can serve as a framework for future work on the corresponding features. | ||
+ | *If you decide to go forward, create a page about your project, listing the goals of the project, the rationale (why is this useful?), the issues to be solved, the overall techniques proposed, and a general development strategy. Make sure to include a "project members" section so that people can contact you (for example through your user name on this Wiki). | ||
+ | *Edit the present page so that it includes a link to your project page; select the appropriate category. Below the link, include (as in current entries) a one- or two-line summary of the project's goal. | ||
+ | *Do it! | ||
+ | |||
+ | |||
+ | ==See also== | ||
+ | * [[Spread_the_word|Spread the word]] | ||
+ | |||
+ | |||
+ | [[Category:Contributions]] |
Latest revision as of 07:55, 24 February 2015
Contributing to open-source EiffelStudio
Now that you have spread the word about Eiffel, you feel the urge to contribute to the product itself. There are many ways to help develop EiffelStudio through projects large and small. Check the list of open projects below; if you see one of interest, contact the project members as listed on the corresponding project page. Don't forget to subscribe to the Eiffel developers list (see the the mailing lists page) where you can post questions about past, current and possible projects.
If you feel none of the current projects covers your special interest, see below how to add your own project.
Whatever your contribution, remember that Eiffel is also about style. Make sure you are familiar with the design and coding rules and apply them thoroughly.
Note: To authors of projects available from this page: please make sure the project description is up to date and in particular that the project members are listed and reachable; that's the best way to gain more collaborators. If the project is no longer active please move the entry to projects to be started or restarted section so that someone else may pick it up.
Contents
- 1 Contributing to open-source EiffelStudio
- 2 How to become a developer
- 3 General environment mechanisms
- 4 Graphics and user interface
- 5 Libraries (other than EiffelVision)
- 6 Build infrastructure
- 7 Language and compiler
- 8 Other Stuff
- 9 Testing
- 10 Projects to be started or restarted
- 11 Completed projects
- 12 Adding your own project
- 13 See also
How to become a developer
Before giving access to the EiffelStudio repository, we need to assess the quality of your work. To do so, we ask you to participate in the projects/areas of your choice by submitting patches to the forums for a peer review. If after several contributions your code and work is satisfactory to the other developers, we will grant you access to the EiffelStudio subversion repository where you can be integrated with your fellow EiffelStudio developers.
General environment mechanisms
There are always new ideas to improve the user experience with EiffelStudio.
- Improve ease of use, for both novice and advanced users, by refining the tools that create classes and features from templates.
- Improve the EiffelStudio built-in smart editor.
- While Eiffel doesn't need some of the refactoring mechanisms of other languages, the environment could benefit from new refactoring mechanisms in addition to the ones currently supported.
- Build a high-quality mutation testing tool (for evaluating the quality of test strategies, fault detectability and redundancy) taking advantage of Eiffel's mechanisms, especially Design by Contract.
Note: For tool development check out the Tool Integration Development page for a quick tutorial on how to integrate a tool window in EiffelStudio.
Graphics and user interface
Make the user interface of EiffelStudio more appealing. Much of the work is to be done in the underlying EiffelVision library, with the added benefit that improvements will be available to user applications as well.
- More keyboard accelerators for EiffelVision applications.
- EiffelVision support for the character set of arbitrary human languages (see also Unicode).
- The graphical user interface builder, EiffelBuild, is currently a separate product. Ideally it should be completely integrated with EiffelStudio.
- Provide EiffelVision with a Carbon back-end to make it truly native on the Mac.
- EiffelStudio provides support for changing the user interface messages and dialogs to any language. If you are a fluent speaker of a language other than English, you can help the localization into that language.
Libraries (other than EiffelVision)
Eiffel is all about reuse of quality components. The best way to get started as an Eiffel contributor is to extend an existing library, or start a new one to fill a need.
- EiffelVision-related developments appear under graphics and user interface.
- Eiffel LEGO NXT Commumication Library and EiffelStudio Integration
- Remote communication with LEGO NXT Mindstorms "bricks"
Build infrastructure
Developments in this category are intended to help produce new versions of EiffelStudio faster and better.
- Simplify and streamline the EiffelStudio build process.
- Include EiffelStudio in standard Debian installation
- Script the release of Mac universal binaries for OS X
Language and compiler
This is the heart of the Eiffel environment: providing the best possible implementation of the Eiffel language. See the compiler pages for detailed information about EiffelStudio's compiling techniques including the Melting Ice Technology.
- The Eiffel standard developed by the ECMA TC39-TG4 committee and approved in 2006 by the International Standards Organization is the definitive reference on the Eiffel language. Work is progressing quickly to include all ECMA-ISO mechanisms into the EiffelStudio compiler; you can help fill the remaining gaps.
Note: On this site you will also find a category for ECMA pages in which many proposals and other topics are discussed, but are not necessarily approved by the ECMA committee. Refer to the official ISO/ECMA documents for the official word.
Other Stuff
Testing
Developing is not everything; the results must also be tested for functionality and performance. The EiffelStudio testing process is completely open and follows advanced software engineering standard. Please visit the special category devoted to EiffelStudio testing.
Projects to be started or restarted
The projects in this list are mere ideas which may not yet have a project page. Some of them were started but not completed. Feel free to take over! If you do so, move the project to one of the above sections (compiler, libraries etc.). If you have further suggestions you may include them here.
- Not really the description of a single project, but a collection of ideas of cool things to add to EiffelStudio. Feel free to add to it.
- A mechanism to compile classes without providing a control file.
- A request for a new basic type.
- Develop a standard for distributing Eiffel components in binary form, and implement it
- Improve support for character sets of arbitrary human languages. See also EiffelVision Unicode support.
- Eiffel is highly portable; a port to a new platform is a moderate effort.
- This should be replaced by more specific goals, see general environment mechanisms above.
- See e.g. ESC-Java, Spec#...
- More user-friendly error "non-messages", following the lead of spelling error reporting in MS Word
- Support for total beginners
- Give EiffelStudio, in particular the editor, a macro facility
- Add breakpoints to the editor for better navigation
- Integrate a repository mechanism
- Output a trace statement indicating a trace point has been hit, without the need to write code or stop execution
- An update notification service to let developers know there is a new version available.
- Integrate configuration management into EiffelStudio.
- Encapsulate Scintilla multi-platform editor
- Encapsulate Gecko html multi-platform engine component
Completed projects
- AutoTest is an automated testing framework taking advantage of Eiffel's Design by Contract to provide far more automation than current solutions such as JUnit. Currently it is a separate tool; ideally it should be part of EiffelStudio.
Adding your own project
To add your own project:
- Make sure it is not redundant with one of the existing projects. If there is any chance of duplication, please contact the project authors first.
- If you have not already done so, subscribe to the developers' mailing list (see the the mailing lists page). Post a message to the list explaining your idea and asking for feedback.
- Also check the above list of "projects to be started or restarted", in particular the EiffelStudio Wish List. Some of the pages are just stubs, but others already have a detailed analysis which can serve as a framework for future work on the corresponding features.
- If you decide to go forward, create a page about your project, listing the goals of the project, the rationale (why is this useful?), the issues to be solved, the overall techniques proposed, and a general development strategy. Make sure to include a "project members" section so that people can contact you (for example through your user name on this Wiki).
- Edit the present page so that it includes a link to your project page; select the appropriate category. Below the link, include (as in current entries) a one- or two-line summary of the project's goal.
- Do it!
See also
Subcategories
This category has the following 3 subcategories, out of 3 total.
Pages in category "Projects"
The following 67 pages are in this category, out of 67 total.