Projet de spécialité Ensimag 2A : contribution à un logiciel libre

Sujet proposé par Matthieu Moy pour l'année 2011-2012.

Objectifs

Le but du projet est de participer à un projet « de la vraie vie » (un logiciel activement développé, ayant déjà un bon nombre d'utilisateurs, ...). Un bon moyen d'atteindre cet objectif est de contribuer à un logiciel libre.

Vous (étudiants) devrez choisir une fonctionnalité à implémenter, et suivre son développement depuis l'idée jusqu'à l'acceptation du code par l'équipe de développeurs officielle. En choisissant un logiciel développé par une communauté ayant de bonnes habitudes en terme de qualité de code et processus de développement, ceci vous permettra d'apprendre et de pratiquer sur un cas réel entre autres :

Choix du sujet

Avant de vous inscrire pour ce sujet, il faudra choisir une fonctionalité à implémenter sur le logiciel choisi. Attention à ne pas vous surestimer, et à ne pas sous-estimer l'effort nécessaire pour apporter un morceau de code de l'état de prototype à un état acceptable en production.

Pour proposer un encadrement de qualité, je propose quelques logiciels pour lesquels le contexte est bien connu. Je suis ouvert à d'autres propositions si vous en avez. Dans tous les cas, vous êtes invités à discuter du projet au plus tôt, avec moi et sur les mailing-lists des projets qui vous intéressent.

Git

Je connais bien Git, donc choisir ce logiciel est en un sens une solution de facilité. De bonnes sources d'inspiration pour préparer ce projet sont les pages SmallProjectsIdeas, Soc2012ideas, Soc2011ideas, Soc2010ideas et Soc2009ideas sur le Wiki de Git. Voir aussi la proposition de projet sur Git et MediaWiki.

Mozilla Firefox

Des étudiants ont pu contribuer à Firefox l'an passé, et l'expérience a été très intéressante. Mounir Lamouri, qui avait encadré l'équipe en 2011 est volontaire pour encadrer une équipe à nouveau cette année. La base de code de Firefox est grosse, donc un peu impressionnante au premier abord, mais il y a beaucoup de documentation et une communauté accueillante (cf. par exemple Developer Guide, et la liste des Mentored Bugs pour lesquels quelqu'un s'est porté volontaire pour aider un nouveau développeur).

Contiki OS

Contiki est un OS destiné à des équipements embarqués contraints de type nœud capteur. Voir le sujet Mise en place d'une suite de tests pour Contiki pour une idée de projet.

Votre logiciel préféré

Bien sûr, la liste ne peut être exhaustive. N'hésitez pas à faire d'autres suggestions.

Déroulement du projet

Les étudiants commenceront par se familiariser avec la base de code, et la communauté, en proposant des améliorations mineures (par exemple, clarification du code sans changement de fonctionalité). Après avoir commencé à travailler sur le projet proprement dit, les étudiants me soumettront leur code pour une première revue rapide, avant la soumission à l'équipe de développeurs du projet.

Évaluation

L'évaluation prendra en compte les points suivants (liste non-exhaustive) :

Organisation

Historique

Matthieu MOY
Retour à la page d'accueil