Subject: Re: Google Summer of Code 2008

From: Jakub Narebski <[email-masked]>
Date: Fri, 29 Feb 2008 13:04:15 +0100

On Thu, 28 Feb 2008, Johannes Schindelin wrote:
> Do go ahead!  I started the page
> 
>         http://git.or.cz/gitwiki/SoC2008Ideas
> 
> which is utterly incomplete.  I just took the ideas of 2007 that I am 
> still interested in,

By the way, when looking at 2007 GSoC ideas one can see that some of 
them got implemented already outside of GSoC, and are no longer valid; 
well, perhaps as "improve <sth>" ideas. 

Subproject/submodule support got implemented, Mozilla has decided to use 
Mecurial instead of Git (but there are other large-scale imports: 
OpenOffice.org, GCC) and cvs2svn supports fast-import output which 
means export to git, gitattributes support got much extended.

> and removed other people from the Mentor list,  
> because I do not want to force them.  So please, if you are interested
> in mentoring one of the existing projects, just add yourself.
> 
> And of course add all those cool projects you have in mind.

I have some interesting ideas for GSoC, but unfortunately none (with 
perhaps single exception) that I could mentor. So I think I'd list them 
here for now, and later I'd add it to SoC2008Ideas page.

Here they are.

First, a few ideas which got partially implemented already, or are 
implemented and need improvements. I don't know if current contributors 
would want to be mentors, or would they want to submit their work under 
GSoC as participants.

* Lazy clone / remote alternates

  The idea here is to be able to remotely access objects from a network
  based object server, as neededm rather than having them all local.

  Goal: A working lazy clone prototype implementation that could be
  considered for inclusion, in a nice series of commits (separate
  branch/fork)
  Language: C
  Suggested mentor: Jan Holesovsky, who submitted proof-of-concept
  patch for lazy clone

* Partial (subtree) checkout, or its generalization: sparse checkout

  The idea is to checkout for example only Documentation subdirectory,
  work on it, but commit full tree. Some workflows may be better suited
  to this type of usage than using submodules. Optionally should include
  partial clone (not needed objects not in repository).

  Goal: A working partial checkout prototype implementation, with
  technical documentation.
  Language: C
  Suggested mentors: 
    gitzilla (sent proposal), 
    Nguyen Thai Ngoc Duy (pclouds), proposed to implements it

* Gitweb caching

  Implementing very smart caching in gitweb, to avoid the thundering
  herd problem on kernel.org whenever a repository gets updated, or at
  least support for caching engines in the form of generating proper
  Last-Modified: and ETag: headers, and responding to If-Modified-Since:
  and If-None-Match: requests, cheaply. 

  Perhaps becoming the gitweb maintainer could come of it, or at least
  the gitweb admin for kernel.org (sorely needed).

  Goal: At minimum, port kernel.org's caching to mainline (git's) gitweb
  Language: Perl, HTML, perhaps JavaScript
  Suggested mentors:
    John 'Warthog9' Hawley (wrote caching for kernel.org's gitweb)
    Petr Baudis (repo.or.cz admin)
    Lars Hjemli (cgit author, git web interface in C, with caching)
    Jakub Narebski (gitweb contributor)

Then, a few ideas which were proposed for GSoC 2007, but never 
implemented, and wasn't mentioned in this thread or on wiki for
GSoC 2008 yet

* Git / Subversion Interoperability

  The idea here is implement something in Git that speaks the Subversion
  protocol on the wire, but uses Git as the backend storage. (This would
  be like the existing git-cvsserver.)

  There are two potential approaches:

   1. git-svnserver
   2. write a backend for Subversion

  Goal: To be able to access git repository, at minimum read-only, from
  a Subversion client, at least svn CLI.
  Language: Open for proposal.
  Suggested mentors: 
    Eric Wong (git-svn author)
    Matthias Urlichs (git-svnimport author)
  Notes: I don't think we could pass it as Subversion SoC project, but
  I guess that we could ask for co-mentor for the Subversion protocol,
  or Subversion backend part of this task.

I'd send other ideas (including new ones, like translating svn:externals 
into git submodules in git-svn; or making git mode for Emacs have all 
features of tig, git-gui and gitk; or improving shallow clone support)
in a later post.

> Shawn, do we have to do the same again, as on this page?
> 
>         http://git.or.cz/gitwiki/Soc2007Application

A few things changes for us: we have participated in GSoC 2007; we need 
to find backup organization administrator (was: Martin Langhoff for 
GSoC2007), list of mentors would change most probably.

As far as I've checked the application form for organizations didn't 
change...
-- 
Jakub Narebski
Poland