To understand my project you first need to understand what sTeam is. For that you can refer to the blog I wrote http://blog.fossasia.org/what-is-steam/
I started off small by fixing already existing bugs. There were multiple bugs with the edit command in the command line interface of sTeam. I extended the edit command to allow opening of multiple files as tabs in a vim editor. To provide users with more options and to make working on sTeam client easier I added the feature to open new files in steam directly from inside vim. I wrote a vim script to do this and communicated with the sTeam server through this script. My first major task was to implement a TLS connection between the sTeam command line client and the server. For this I had to understand the COAL protocol, which is a home grown protocol for sTeam. I improved the tooling for sTeam by adding in commandso work with groups from the steam-shell and to allow re-login from debug.pike. After this I did some cleaning up work by removing repeated code. The code for login was being repeated in different tools so I made a separate file containing all the common code and imported this in all the tools. I wrote an extensive help command describing every command for steam-shell and giving their syntax. There was some conceptual error in the steam-shell. Rooms and gates are the same but gothrough command was allowing the users to enter a gate but not a room, this was changed to enter command supporting both gates and room, I also changed the output of look command to not show gates and rooms as separate entities.
The next two tasks were entirely new additions to the project. First I wrote a test suite to test the calls to COAL functions. Pike does not have any kind of testing framework so I had to design my own testing framework and write test cases to test the COAL function calls. This will help further development of sTeam as testing of new code becomes easier. The next addition was to write a linux command for sTeam. Steam tools were accessible only from the tools folder that got copied to a particular location on installation. Now on installation users can use the steam command from anywhere to access all the tools.
1. We have combined all the work into two branches.
The commits made by me in each branch can be seen here.
2. I wrote weekly blogs summarizing the work done during the week.
All the blogs can be found at blog.fossasia.org.
The list in reverse chronological order is as follows.
- Testing, Documentation and Merging
- Writing linux commands
- Testing Hero – II
- Testing Hero
- Adding extensive help for sTeam
- What is sTeam
- Re-login in debug.pike
- Adding more functions to command line interface of steam-shell
- Writing vim scripts to open files in the steam structure
- Implementing TLS in pike
- steam-shell: Two processes in one terminal
- The Official Beginning
- Google Summer of Code: A new beginning
3. A list of tasks covered and all the Pull requests related to each can be seen here
|Fix the edit script.|
|Extend edit command for multiple files. Each file opens in its own tab|
|Implementing TLS for COAL to make it COALS.|
|Add the functionality to open files from inside vim|
|Write a plugin to make closing of files easier by closing the logs automatically.|
|Add the command to create groups to steam-shell.|
|Add login command to allow relogin in debug.pike|
|Remove repeated code used for login|
|Add a detailed help command to make sTeam easier to use for new users.|
|Change gothrough to enter and allow them to enter rooms as well.|
|Change the output of look command and show rooms and gates under the same section|
|Make steam tools accessible from everywhere|
|Write test cases to keep the software error free.|
4. Scrum Reports
Daily scrum reports have been posted and discussed on #steam-devel on irc.freenode.net and a backup can be found on the mailing list
5. Further Enhancements
- The testing framework needs to be improved
- More test cases needs to be added
In the end I would like to thank Google and FOSSASIA for providing me this wonderful opportunity to learn and collaborate. I would like to thank my mentors Martin and Trilok for guiding me through all the difficult times and helping me solve bugs whenever I got stuck. I would continue contributing to open source and try joining more projects under FOSSASIA to improve my skill set and to get new experience. I will also be taking active part in Google Code In and will love to be a mentor.