diff --git a/_projects/editor_support.md b/_projects/editor_support.md new file mode 100644 index 00000000..86ef927b --- /dev/null +++ b/_projects/editor_support.md @@ -0,0 +1,90 @@ +--- +collaborating_projects: + - coala +status: in_progress +desc: "Develop an efficient strategy that allows coala to maintain a number of plugins for different editors." +difficulty: medium +initiatives: + - GSoC + - RGSoC +issues: + - "https://github.com/coala/coala-atom/issues/37" + - "https://github.com/coala/coala-eclipse/issues/51" + - "https://github.com/coala/coala-vim/issues/24" + - "https://github.com/coala/coala-gedit/issues/5" + - "https://github.com/coala/coala-sublime/issues/4" +markdown: editor_support.md +mentors: + - AbdealiJK + - fneu +name: "Cohesive Editor Support" +requirements: + - "The proposal has to provide a convincing strategy for testing, documentation and maintaining editor plugins" + - "The applicant should have one patch accepted to any of the coala plugins." +tags: + - Editors + - Plugins +--- +coala features quite a few editor plugins already, none of which are +*supported* by the definition of having regular continuous integration and +tests running to ensure its functionality. The goal of this project is to +plan, introduce and configure a testing routine that allows coala to ensure +the functioning of its editor plugins at all times. Presently, the lack of a +proper testing environment leads to the breakdowns of plugins going unnoticed. +A viable approach might be to set up weekly tests for the current editor +plugins. + +The goal is to develop an efficient strategy that allows coala to maintain a +number of plugins for different editors. This would not only benefit coala by +attracting more developers as the plugins across various platforms will be +widely used, but it would also benefit the end-users by giving them a working +linter plugin across their favourite editors which are easily maintained and +tested regularly with the latest build of coala. + +For sublime, we'll be using the +[unittest plugin](https://github.com/randy3k/UnitTesting) +which is a plugin by itself. +For atom, we have the apm testing architecture +which does not require a GUI. +For VI, we will most likely use a testing framework such as +[Vimcasts](https://github.com/kana/vim-vspec). +For some editors like gedit, running tests is not easy and +there is no api to do it. In such cases we would want to use +[dogtail](https://fedorahosted.org/dogtail/) +(a GUI tester) or a similar tool to do this. + +We will have to explore the possibility of having a single git repository for +atom, sublime-text and vim as it will ultimately be easier to maintain in the +long run and will have a proper CI, which can be easily managed. Issues will +be raised more frequently as a result of this. + +Documentation which isn't available at the moment will have to describe the +usage details of existing plugins, we can have asciicinemas or gifs of the +entire process from installation to examples of the plugins in action. +Documentation can also be created for future plugins, and on the basis of the +tests which will be written for the existing ones, it'll be easier to test +the future plugins. This will result in a clear cut path of creating plugins +for coala. + + +#### MILESTONES + +##### PREPARATION/BONDING + +* A cEP for the testing, documentation and maintaining strategy has been merged. + +##### CODING PHASE 1 + +* The testing strategy has been set up for coala. +* At least one of coala's editor plugins is continually tested. + +##### CODING PHASE 2 + +* Documentation and tutorials showing the usage of existing plugins is + available. +* Maintaining strategy is placed into effect. + +##### CODING PHASE 3 + +* At least three of coala's editor plugins are continually tested. +* Documentation is available to easily set up testing for future editor plugins.