| 38 | |
| 39 | |
| 40 | |
| 41 | ___________________________________________________________________________________________________________________________________________ |
| 42 | |
| 43 | == Personal == |
| 44 | |
| 45 | * Name: Marius - Vlad Coțofană |
| 46 | * E-Mail: marius.coto@gmail.com |
| 47 | * IRC/IM: mariusc (IRC), cmarius02 (GTalk, Skype) |
| 48 | * University/Enrollment: "Politehnica" University of Bucharest, studying Computer Science, 2nd year. |
| 49 | * Location/Timezone: Bucharest, Romania (GMT+2) |
| 50 | * Programming Knowledge: C/C++, Java, Python, Shell Scripting (bash). |
| 51 | * Short Bio: |
| 52 | |
| 53 | Hypnotised by computers from an early age, I began programming in high school. Learning C opened a new world for me and changed the way I used to see a computer. I followed Computer Science at the University, that brought me a whole range of other programming tools and languages, but C remained my favourite. I have adopted Linux, for almost 2 years, learned it, used it, taught it to other students and then decided to move on. OS X offered a new experience, much powerful and sharper and I decided to further improve it. |
| 54 | |
| 55 | Detail-oriented and highly analytical person, I have always tried to get involved in as many projects as possible, get around people that are better trained than me and learn from any experience. Although it takes me some time to connect to new people, I am devoted and helpful in any circumstances. Stubborn and punctual, I cannot stop until all work is done. |
| 56 | |
| 57 | |
| 58 | |
| 59 | == Project == |
| 60 | |
| 61 | === ABSTRACT === |
| 62 | |
| 63 | The lack of a proper testing environment is slowing down the development of the main project. Having an improved testing framework, that makes it easy for adding new tests and having a more comprehensive suite of tests, is essential to being able to refactor the code correctly. This also leads to an decrease in the time needed for adding new features and patches. |
| 64 | |
| 65 | === DETAILS === |
| 66 | |
| 67 | I will begin by setting up the necessary development environment, 2 weeks before the actual beginning of the coding period, time in which I will also make sure I have iterated through all of the Tcl features and I have a good understanding of how MacPorts source code is structured. |
| 68 | |
| 69 | In the first half of the coding period, I will review existing tests and further enhance them. This will walk me through the way they are constructed, so that I can maintain a consistent form and syntax throughout the entire testing framework. Having gain a sense of how things work, I can then begin writing new tests that will first cover the most important modules, and then continue and try to get as much coverage as possible. |
| 70 | |
| 71 | The second part will be focused on regression tests: improving existing ones and possibly adding new ones. Testing every part of the code is a good way of assuring correct behaviour, but as more and more functionality is added, new tests have to be added too. I will build an easy way of adding new tests, consisting in templates that are easy to use and understand. Having good documentation over the testing framework, is one of the objectives that would also be covered during this period. This will ease the work of people who want to add more tests or further extend the framework, and being open-source, inspire people who need testing for their own projects. |
| 72 | |
| 73 | Below you can find a tentative timeline, structured in 2-week intervals, as a generalised form from this detailed plan. |
| 74 | |
| 75 | === TIMELINE === |
| 76 | |
| 77 | Community bounding (1 June - 16 June): |
| 78 | |
| 79 | * prepare development environment |
| 80 | * further read on Tcl |
| 81 | * study MacPorts sources |
| 82 | |
| 83 | First coding period (17 June - 28 July): |
| 84 | |
| 85 | * 17 Jun - 30 Jun: review existing tests and improve them |
| 86 | * 1 Jul - 14 Jul: add unit tests for MacPorts base and the Portfile API |
| 87 | * 15 Jul - 28 Jul: add more tests that cover all modules |
| 88 | |
| 89 | Second coding period (29 July - 8 September): |
| 90 | |
| 91 | * 29 Jul - 11 Aug: improve available regression tests (and possibly add new ones) |
| 92 | * 12 Aug - 25 Aug: build a new, easy way for adding new tests |
| 93 | * 26 Aug - 8 Sep: write full documentation for the testing framework |
| 94 | * 9 Sep - 17 Sep: review code |
| 95 | |
| 96 | The remaining time between suggested 'pencils down' and firm 'pencils down' serves as buffer for unexpected changes and delays. |
| 97 | |
| 98 | |
| 99 | |
| 100 | === Additional Questions === |
| 101 | |
| 102 | * What are your experiences with Mac OS X so far? (How long do you use it, did you switch from Windows/Linux, etc.) |
| 103 | |
| 104 | I started using Mac OS X just 5 months ago (December 2012), when I bought a new notebook. Coming from a Linux world, I decided to switch because it had so many problems that I had to spend most of the time repairing them, rather than spending it developing. Of course, OS X, has its problems too, one of which is the lack of a proper package manager. MacPorts is a great solution to this problem, so I plan to be part of it. |
| 105 | |
| 106 | * Have you used MacPorts before, and if yes, for how long? |
| 107 | |
| 108 | I have used MacPorts since my first week with OS X (5 months ago), like one of my friends suggested, as a response to my complaints. |
| 109 | |
| 110 | * Do you have experience with other package management systems such as FreeBSD ports, Gentoo Portage, Debian APT, etc.? |
| 111 | |
| 112 | I have previously used many Debian-based distributions so I am familiar with DPKG and APT, but also tried YUM and RPM. |
| 113 | |
| 114 | * Have you already made contributions to MacPorts? (New ports, port updates, etc.) |
| 115 | |
| 116 | No contributions yet. I have focused on reading the code and understanding how it works. I plan to have my first commits before the coding period begins. |
| 117 | |
| 118 | * Have you already made contributions to other Open Source projects? |
| 119 | |
| 120 | Sadly, I do not have any major contribution to other Open Source projects, and that is the reason why I am so exited to start this project. |
| 121 | |
| 122 | * How much experience do you have with Tcl and C? |
| 123 | |
| 124 | C was my first programming language and quickly became my favorite. I began writing C code from high school and continued with it two years in my university studies, where I have also added POO notions (C++). This language has proven to be very powerful and feature rich, that is why I plan to stick to it. |
| 125 | |
| 126 | I began learning Tcl for two weeks, starting with the tutorial on the official site (as people from the MacPorts IRC-channel suggested) and already have made some scripts to further understand its features. My little experience with Tcl is backed up by a fairly large history (2 years) with shell scripting using bash. |