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

Sujet proposé par Matthieu Moy, Grégory Mounié et Simon Courtemanche pour l'année 2012-2013.

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 (Matthieu Moy) 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 en 2011 et 2012 (mentorés par Mounir Lamouri, de la Mozilla Corporation), et l'expérience a été très intéressante (cf. la page Contribution à Mozilla Firefox sur Ensiwiki). Paul Adenot, de la Mozilla Corporation, est volontaire pour mentorer une équipe. 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).

Eigen : bibliothèque d'algèbre linéaire

Eigen est une librairie d'algèbre linéaire open source écrite en C++. Cette librairie est utilisée dans de nombreux projets, dont notamment l'application Street View de Google. Eigen étant une librairie relativement récente, il existe un bon espace pour les contributions (cf todo-liste). Un premier contact avec la communauté d'Eigen a été établi. Il ne demande qu'à être prolongé selon votre inspiration.

Ce sujet est à mi chemin entre les mathématiques appliqués et l'informatique.

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