This is the first draft of Melange Roadmap for 2009. This document is still incomplete (work in progress). We will be adding more description for each task listed below shortly.
To simplify the release process, release script will be created. Script will need to support Mercurial (hg) repository cause of our recent switch from SVN to hg. Release script will build, test using test suite, branch, tag new release and create tar.gz package to put into Download section on our code.google.com project page. In addition to that, script will also create app.yaml file from app.yaml.template and support cherrypicking of branches (previous releases) and deployment to testing GAE instances.
Please see the wiki topic for more information.
Melange GHOP features support GSoC project:
Right now Melange has a small set of basic unit tests (40). This task aims to extend our test suite with unit, smoke and functional tests. In addition to that we would also like to extend seed_db module which creates fake entities of different Melange models in the datastore for quick testing of Melange functionality locally and on deployed GAE application instance. seed_db module will be extended to seed all the models currently used within Melange.
Due to Google App Engine limitations we currently have problems with listing more than 1000 entities via the web interface. Fix for that has been already committed however it still requires some work including: addition of missing indexes, support for sharded counters to show total number of entries in the table/list, usage of deepFetch function in CSV export of tables in order to export whole table at once, not in batches like it is right now (just visible part of the table is exported).
Extract interesting statistics from the Melange datastore for the benefit of different Melange Roles including Program Administrator, Developer, Organization Administrator, Mentor. Use it for: Graphs, Histograms, More Google Maps integration and CSV export.
Melange Statistics module GSoC projects:
To be discussed during Monday (27th of May 2009) conference call what issues we will be working on in the first place.
Survey is a set of questions with a different types of answers. Melange currently doesn't support surveys (quizes). In order to do midterm, final evaluations or any additional surveys within Melange the Surveys(Quiz) module is needed. Surveys can be created/edited/deleted by Program Administrator or Organization Administrator. Each of them can also list all created Surveys. Program Administrator can request to take a quiz (survey) to any Program user including Mentors, Students, Organization Administrators. Organization Administrator should be able to request to take a quiz from Organization Mentors or Students only. Quiz issuer should be able to list quiz results, list users who did not yet take a quiz and export all that information, results to CSV file. Surveys should have option to set quiz start and end date which will make them available only during this period.
Example survey module for drupal: http://drupal.org/project/quiz
This functionality will be used for midterm, final evaluations and additional surveys.
Future feature: Allow other Melange users to create and administer surveys. Need to talk to legal about any implications before considering this feature from the Google perspective.
Raises interesting ethical question: Should all evaluation data from user created surveys be public provided results are anonymized/user has ability to opt-out of having survey results published? Think survey results should only be published at an aggregate level in any case.
If survey results are not public, should the Sponsor (Host) of a particular program using Melange have access to survey data? I think that Sponsors should have access to all this data. If system users prefer not to share this data with Sponsors, there are other FOSS survey tool options.
Our buildbot needs to be configured to use Hg repository and pull the commits from it every couple minutes or using post-commit-hooks support on code.google.com project hosting (support for post-commit-hooks for Mercurial repositories is not available yet). Our buildbot also needs to test our code using pylint, which can be part of the build script that buildbot is already configured to run. Emails from buildbot should be send to melange-soc-buildbot google group (http://groups.google.com/group/melange-soc-buildbot). Our wiki documentation should also be updated with information about buildbot url and new buildbot google group.
In previous years students who have failed to complete GSoC project have just disappeared from the web application and no information about them was present on any program page. We are considering changing this. We would a have special link on the Organization Home page listing “failed” projects (e.g. disappearing students, failed via midterm or final evaluation). In addition to that there will be special comment support for those projects and both project mentors and student will be able to comment on the project to explain what happened and what was the reason of failure.
This feature should be implemented regardless of Google‘s final thoughts on this feature. Post-mortem reports are a beautiful thing and also help people not go down the wrong path when considering a solving a specific problem. It’s also useful for people to get a view of the social reasons things didn't work out: being overcommitted to other work, social obligations, etc. Things happen.
For implementation for GSoC, I need to confirm with Legal that this is OK and sync with Chris quickly. I assume he'll be totally fine with it.
I also think we ought to send Sponsors an email when a post-mortem is posted (good feedback). Also cuts down on trolling reports (think: I failed because my mentors were mean to me. It clearly wasn‘t that I took a ten week vacation. Hrm, maybe that is useful to publish. This is also a good lesson in the fact that what you say publicly here as with all Open Source participation is something that people will see/look at when considering if they’d like to undertake projects with you in the future.)
More information about this task can be found in our issue tracker Issue 201 (on Google Code).
Main usage will be for tax forms and all sorts of documentation in GSoC, avatars and patches can wait.
See [Ihttp://code.google.com/p/soc/issues/detail?id=44] Issue 44 (on Google Code).
From Google perspective for source code, LH needs to check implications from legal perspective. Assume it's ok since we satisfy restrictions now with eligibility requirements.
Tax forms from students in USA cannot be stored on GSoC site.
I see this feature as being most useful for patches/source code (GHOP), student presentations, etc. Why not have all your program “work” in one place? Useful instead of searching around. At the very least we already provide students with the opportunity to show off their work via links on their student proposal page (e.g. to slides on Slideshare or videos, etc.)
Scheduled for: July - August 2009
Who: James Levy (GSoC), Sverre Rabbelier
ETA: 1 month
integration with FeedBurner API so we don't have to cache it
feeds with important dates based on program timeline (can't we just feed from existing program calendar? - LH)
feeds generated using cron jobs ?
interface to post announcement by Program Administrators, Organization Administrators
each student proposal gets a feed so mentors are aware of any proposal changes/updates
Melange news framework GSoC project:
Melange currently uses Google App Engine and django, however some of the django functionality doesn't work on GAE. With django-patch support in Melange we would be able to leverage all features of django inside Melange. In addition django-patch is required to enable gaebar support in Melange. gaebar is Google App Engine Backup and Restore project which allows to easily import and export data from GAE datastore to local computer or to other instance of application running on GAE. With gaebar support we would be able to do regular backups.
Every year GSoC students request CPT letters or other documents that will confirm their participation in GSoC. Program Administrators print out GSoC student certificates for all students that successfully finished their projects. This process is very time consuming and we aim to automate it. External python script will be created with support for simple documents templates for different kind of documents including CPT letters and certificates. Script will be able to fetch data from Melange datastore about students and generate documents in pdf format using reportlab library. For certificates script will create one big ready to print pdf file that will include certificates for all students. For other documents where pdf generation will be much faster (few documents at a time) Program Administrator will be able to select students in Web UI, select document type he/she wants to send to the Student and with a click of a button, document pdf will be generated and send to user via email. Students should be also able to request those documents via web user interface and maybe cron jobs can autogenerate and send out those documents every couple hours automatically without any intervention from Program Administrator.
This feature will need to be able to embed images, e.g. scanned signature and company logo.
Future feature: make this functionality available to organizations to easily produce letters of recommendation for their students. Allow easy sharing of recommendation templates/good example letters.
Clubs within Melange are similar to User Groups. We would like to enable users to create different Clubs within Melange (i.e Apache Club could include all GSoC Apache students, mentors and org admins). Club owner will be able to manage memeberships, add/remove/invite/delete members. Club Members will be able to quickly apply to different projects by reusing their already created Club profile.
Showing failed students on the organization page with additional comments from both students and mentors. Requires additional discussion with GOSPO Team.
I see this as very different from dealing with failed students. People want to see things like:
etc. There's all kind of data folks will want on a dashboard. This is a great place to solicit community feedback. We can choose how to limit what we implement and others are welcome to create their own views/etc. They have the source code.
KML should include location of all mentors and students and connections between them just like in previous years. Using libkml python bindings (http://code.google.com/p/libkml/).
KML example from GSoC 2008 can be found here:
Currently Melange provides limited export of lists into CSV file. We would like to extend this export to support Google Spreadsheets API. With this functionality we could export all kinds of data into users GSpreadsheet and then edit it inside Google Documents or export it to different formats including CSV, Excel, ODF and any other formats supported by Google Docs.
I think this feature is more useful for the organizations than for Google. Exporting directly to a Google spreadsheet is fine, but then I‘m just going to download and work with the file locally. Spreadsheets doesn’t do a good job with gigantic reports (e.g. 1000 GSoC students)
We would like to enable Program Administrators, Students, Mentors and Org admins to organize meetings withing Melange (invite users to attend a meeting, list registered event/meeting users, add meeting webpage, integration with Calendar API for reminders).
Also should allow tagging, e.g. Debian, Python, San Francisco and search based on tags. Should also autopublish to program calendar.
Currently Melange doesn't support search functionality. We would like to add support for searching different Melange models including Users, Students, Mentors, Org admins, Students Proposals and Projects, Documents. This feature can be also integrated with ajaxy table view.
We want to be able to do diffs and revision histories on our documents, student proposals. Rietveld source code might help us to archive this goal.
This feature aims to introduce additional mode for wiki like syntax in Melange documents, by setting document mode you can choose between WYSIWYG editor and Wiki syntax mode.
Every year GSoC students try to find other GSoCers that live in the same country or nearby their city. We would like to introduce geolocation based search functionality within Melange to allow Students, Mentors and Org admins to search for other Melange users nearby or in particular location. This feature can be integrated with meeting organizer to easily invite all users from within selected area.
With so many GSoC projects every year and internet media era, Melange is looking for a way to share GSoC students project presentations, screenshots, screencasts, GSoC related events photos, videos etc. This task aims to implement some form of gallery with presentations, photos, videos support (embedding presentations from Google Documents or other services, embedding photos from PicasaWeb, Flickr, embedding videos from YouTube, Vimeo).
In previous years GSoC used different web application that was tight to Google infrastructure. The information about Students, Mentors and Org admins from previous years are still available and aim of this task is to import that data into our socghop instance of Melange. This task is non-trivial cause the data models in Melange and previous GSoC webapp are different so conversion script is required.
Melange is looking for a way to extend communication between GSoC/GHOP participants (Mentors, Organization Administrators, Students). In order to do that we would like to implement a set of social features including possibility to send/receive messages to other users, add other users as friends or talk with other users via Google Talk via web interface (this features is in the Google App Engine roadmap).
I think I‘m just being a luddite, but I don’t care about this at all. If I want to talk to someone, I am going to talk to them on IRC. I can see this being useful for first contact between mentors/students, e.g. “I'd like to talk to you about your proposal, can you please email me at ....”
Is their some useful way to be more inclusive in which instant messaging tools we'd support?
This topic requires additional research in order to determine how we can use OpenSocial inside Melange and how long it will take to integrate that kind of functionality.