{"thread":{"id":"26991","subject":"GSOC application: Network layer for libgit2","startedAt":"2011-04-04T22:20:59Z","lastAt":"2011-04-04T22:20:59Z","messageCount":1,"participants":["Carlos Martín Nieto"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"165141","messageId":"20110404222051.GB4529@centaur.lab.cmartin.tk","threadId":"26991","inReplyTo":null,"subject":"GSOC application: Network layer for libgit2","fromName":"Carlos Martín Nieto","fromEmail":"carlos@cmartin.tk","sentAt":"2011-04-04T22:20:59Z","receivedAt":"2011-04-04T22:20:59Z","isPatch":false,"sender":{"key":"carlos@cmartin.tk","avatar":"https://gravatar.com/avatar/956bfe8371004f2960febf266a6af789f60cdc01fbae48bb151ad4c9b532c3a2?d=mp&s=160"},"body":"Hi all,\n\n I'd like to take part in this year's GSOC adding a/the network layer\nto libgit2. I already have some experience with git and libgit2. This\nmessage is mostly in order to get some feedback to the timeline and\ngoals. I'll send a formal application in a day or two.\n\n Not studying in the US, I don't have free time that early, so I\nexpect most of the actual hard coding will be done after the\nmidterm. By then I do want to have most of the thinking done.\n\n From reading the documentation, I assume I'll have to write\npack-objects using libgit2, or rather add that support to it in the\nlibrary and then write {upload,receive}-pack first mostly as a client\nof the library in order to include it in a more library-friendly form\nonce it works.\n\n My goal for this project would be to add the object packing code to\nlibgit2 and, if we want to have pushing and fetching inside the\nlibrary, to add this functionality to the library as well. Otherwise,\nthe client would be useful for later conversion of git.git to libgit2\nor as an example for others.\n\n As for success, I'd rate a success to have the library code merged or\nready to merge both for object packing and network protocol, if it\ndoes go into the library.\n\n I expect the timeline to be:\n\n - Pre-coding time: get to know the packed object format better, read\n   the documentation and code for it in git.git.\n\n- Up to midterm: due to the difference in lecture times between the US\n   and Germany, I won't be able to devote all my time to coding, but I\n   expect/hope to have code using the network protocol working by this\n   time, as well as a design for object packing (the code has to be\n   worthy of a library, so object caches would have to be invalidated\n   and other side-effects which come from not being allowed to assume\n   the code runs once and then dies).\n\n- Up to the end: get object packing working, thread safety issues,\n  reviews, and other misc. library code stuff, including getting\n  push/fetch into the library if necessary.\n\n I've put the network side of things earlier because I expect it to be\n'lighter' but I'd be interested to know if people think the order\nshould be reversed.\n\n As for previous involvement, I've sent a few small patches to git.git\nand larger ones to libgit2. I'm currently writing its config file\nsupport during an internship. In the melange application, I'll post\nsome gmane links to threads and to my libgit2 fork on gibhub.\n\n Thanks for your time if you've read this far,\n   cmn\n-- \nCarlos Martín Nieto | http://cmartin.tk\n\n\"¿Cómo voy a decir bobadas si soy mudo?\" -- CACHAI\n"}]}