<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-502209917167538130</id><updated>2018-08-28T20:49:31.680+02:00</updated><category term="orga"/><category term="schema"/><category term="design"/><category term="pdo"/><category term="planet"/><category term="progress"/><title type='text'>Summer of Code: new wanna-build</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gsoc09-wb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gsoc09-wb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-502209917167538130.post-7486917252392344701</id><published>2009-05-02T11:45:00.000+02:00</published><updated>2009-05-02T16:37:39.618+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pdo"/><title type='text'>Getting rid of Packages-arch-specific</title><content type='html'>I did a fair bit of (not GSoC-related) &lt;a href=&quot;http://git.debian.org/?p=mirror/packages-arch-specific.git;a=summary&quot;&gt;Packages-arch-specific maintenance&lt;/a&gt; in the pretty recent past.  This control file, which even predates build-dependencies being introduced into source packages, specifies which packages are not deemed missing on some architectures and which are thus excluded from autobuilding.  Interestingly Ubuntu is also using it for their autobuilding system, which is considerably newer than ours.&lt;br /&gt;&lt;br /&gt;As a first step in the cleanup I removed all the entries that were in there solely because the sources in question depend on some architecture-specific packages.  This can be solved by automatic dep-waiting directly in &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;/span&gt; nowadays.   I still think that the whole concept of this file is flawed, though.  Basically it works around a misfeature of &lt;span style=&quot;font-style: italic;&quot;&gt;dpkg-source&lt;/span&gt;, which fails to accurately document the architecture set of the source package.&lt;br /&gt;&lt;br /&gt;A little example: if you have a package that builds two binary packages, of which one is &lt;span style=&quot;font-style: italic;&quot;&gt;arch:all &lt;/span&gt;and one &lt;span style=&quot;font-style: italic;&quot;&gt;arch:i386&lt;/span&gt;. Now &lt;span style=&quot;font-style: italic;&quot;&gt;dpkg-source&lt;/span&gt; will unhelpfully assume that the package is buildable on every architecture and put &quot;Architecture: any&quot; into the &lt;span style=&quot;font-style: italic;&quot;&gt;dsc&lt;/span&gt;.  Now we have no way anymore to get the original information that there are two packages with the architecture set &#39;all&#39;, &#39;i386&#39;.&lt;br /&gt;&lt;br /&gt;If we look at the `debian/control&#39; in the source package however, we can find the information as we need it.  If we build a set of all architectures mentioned in there we can determine correctly where it needs building (with the presence of &quot;any&quot; being extrapolated to all architecture we are currently building for).&lt;br /&gt;&lt;br /&gt;The practical result of this exercise if we take &#39;kfreebsd-7&#39; as an other example: The package in question is &lt;span style=&quot;font-style: italic;&quot;&gt;arch:any&lt;/span&gt; according to its &lt;span style=&quot;font-style: italic;&quot;&gt;dsc&lt;/span&gt;.  If we build the set of all architectures mentioned we get &quot;all kfreebsd-i386 kfreebsd-amd64&quot;.  No need for exclusion in a manually-maintained file anymore.&lt;br /&gt;&lt;br /&gt;So I patched &lt;span style=&quot;font-style: italic;&quot;&gt;dpkg-source&lt;/span&gt; today (&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526617&quot;&gt;#526617&lt;/a&gt;) to collect the necessary information and put it into the &lt;span style=&quot;font-style: italic;&quot;&gt;dsc&lt;/span&gt;.  It looks like policy does indeed allow this behaviour and I hope that I did not miss something.  I still wonder why this was not fixed within the last decade.  Sadly we will still need to continue checking packages which specify &lt;span style=&quot;font-style: italic;&quot;&gt;arch:any&lt;/span&gt; for quite a while as we cannot distinguish packages with properly built lists from packages built with an older dpkg-source.&lt;br /&gt;&lt;br /&gt;Even despite this information collection packages could, of course, still fail to build on some architectures because they got their `debian/rules&#39; wrong, despite their `debian/control&#39; mentioning &lt;span style=&quot;font-style: italic;&quot;&gt;any&lt;/span&gt;-ness.  But that can be solved with a bunch of bug reports.  All in all we should be able to drop this control file hopefully soon.&lt;br /&gt;&lt;br /&gt;In other news I tried to determine packages in need of autobuilding in pure Python and got to a disappointing wall-clock time of 25s on the test host for just one architecture.  The old &lt;span style=&quot;font-style: italic;&quot;&gt;quinn-diff&lt;/span&gt; only needs half a second for the same job.  But it bails down to the fact that iterating through a Packages file takes that long, the additional logic is barely noticeable.  At least multiple architectures could be processed in parallel, assuming a multi-core/SMP system on the &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;/span&gt; host.</content><link rel='replies' type='application/atom+xml' href='http://gsoc09-wb.blogspot.com/feeds/7486917252392344701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/05/getting-rid-of-packages-arch-specific.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/7486917252392344701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/7486917252392344701'/><link rel='alternate' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/05/getting-rid-of-packages-arch-specific.html' title='Getting rid of Packages-arch-specific'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-502209917167538130.post-3795486457424799216</id><published>2009-04-22T00:07:00.006+02:00</published><updated>2009-04-22T00:16:27.336+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="orga"/><category scheme="http://www.blogger.com/atom/ns#" term="planet"/><category scheme="http://www.blogger.com/atom/ns#" term="progress"/><title type='text'>Proposal accepted</title><content type='html'>So it turns out that my &lt;a href=&quot;http://socghop.appspot.com/document/show/user/pkern/wb_python&quot;&gt;proposal&lt;/a&gt; has been &lt;a href=&quot;http://socghop.appspot.com/org/home/google/gsoc2009/debian&quot;&gt;accepted&lt;/a&gt; by Debian&#39;s GSoC admins and Google. \o/  (Ok, probably also due to the many Debian people judging the proposal.)  Looks like I will be kept pretty busy for quite a while.&lt;br /&gt;&lt;br /&gt;I already started my work in the last days and I&#39;m progressing slowly.  Currently I&#39;m still investigating what to keep and what to drop from the current PostgreSQL schema proposal (some incomplete ramblings available here: &lt;a href=&quot;http://gsoc09-wb.blogspot.com/2009/04/wanna-build-postgresql-schema-take-1.html&quot;&gt;part 1&lt;/a&gt;, &lt;a href=&quot;http://gsoc09-wb.blogspot.com/2009/04/wanna-build-postgresql-schema-take-2.html&quot;&gt;part 2&lt;/a&gt;).  It contains more data than necessary and it is designed to serve as a new DB backend for the existing &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;/span&gt; and not how I imagined it to work.  I will iron out those problems with my mentor, Luk Claes, and Adeodató Simo in a meeting somewhere during the weekend.</content><link rel='replies' type='application/atom+xml' href='http://gsoc09-wb.blogspot.com/feeds/3795486457424799216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/proposal-accepted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/3795486457424799216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/3795486457424799216'/><link rel='alternate' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/proposal-accepted.html' title='Proposal accepted'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-502209917167538130.post-4809223858365855769</id><published>2009-04-19T21:26:00.000+02:00</published><updated>2009-04-19T21:43:41.081+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="schema"/><title type='text'>Wanna-Build PostgreSQL schema (take 2)</title><content type='html'>So there we go with the next part of the new database: the binaries and sources representation.  I will start with a tiny introduction on how we currently fetch the data, though.&lt;br /&gt;&lt;br /&gt;This data is currently fetched from the Packages and Sources files &lt;span style=&quot;font-style: italic;&quot;&gt;dak&lt;/span&gt; on ftp-master generates for us.  For unstable it is additionally merged with what others call &quot;&lt;span&gt;incoming&lt;/span&gt;&quot;.  Actually this is not quite true as &quot;incoming&quot; as &lt;a href=&quot;http://incoming.debian.org/&quot;&gt;exported on the web&lt;/a&gt; is &lt;span style=&quot;font-style: italic;&quot;&gt;dak&lt;/span&gt;&#39;s &lt;span style=&quot;font-style: italic;&quot;&gt;accepted&lt;/span&gt; queue, which contains sources and binaries for all suites (i.e. oldstable, stable, testing, unstable and experimental).   The &lt;span style=&quot;font-style: italic;&quot;&gt;buildd&lt;/span&gt;s only see a subset: the sources and binaries for unstable.  This process, misleadingly named &quot;autobuilt accepted&quot; by its creator, is thus currently unable to provide timely experimental or stable autobuilding as the input files for &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;/span&gt; are only refreshed during &lt;span style=&quot;font-style: italic;&quot;&gt;dinstall&lt;/span&gt;.  Our FTP masters plan to change &lt;span style=&quot;font-style: italic;&quot;&gt;dak&lt;/span&gt; to just dump Packages and Sources files from the database which then gathers all needed information to be able to do this.  At that point it could also be possible for us to just import a dump of &lt;span style=&quot;font-style: italic;&quot;&gt;dak&lt;/span&gt;&#39;s data (or getting a realtime feed of it).  Canonical unified package building and publishing into one large application (Soyuz), with some synergy effects having all available in one database.  (On the other hand I do not have deep insight into Soyuz and my statements on that are mostly guesswork.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_4cfWN3V6z8o/Sejl-0FURGI/AAAAAAAAAO0/GfLlsWeGZ6g/s1600-h/wannab_binaries_sources.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 59px;&quot; src=&quot;http://2.bp.blogspot.com/_4cfWN3V6z8o/Sejl-0FURGI/AAAAAAAAAO0/GfLlsWeGZ6g/s200/wannab_binaries_sources.jpg&quot; alt=&quot;ER diagram for binaries and sources&quot; id=&quot;BLOGGER_PHOTO_ID_5325759426661205090&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Now to the binaries and sources in the database.    Again you can find a ER diagram on the right.  The current autobuilding implementation already knows which source versions are available for each suite, &lt;span style=&quot;font-style: italic;&quot;&gt;quinn-diff&lt;/span&gt; can tell what&#39;s missing and binary versions are used to clear Dep-Waits.  Most of the information is only used during processing and not store. With the new schema all the information about the available sources and binaries, their (Build-)Depends and (Build-)Conflicts is available in the database.  I think it is currently collecting more than needed, but that&#39;s probably due to the fact that the database layout is already used for transitions tracking.  The &quot;depends in a table&quot; modelling is incomplete (and only introduced by transitions addons, to be honest), considering that there could be alternatives.  Build-Depends, on the other hand, are text fields.  We will need to evaluate which information we really need unless we really want to store the complete Sources and Packages files in the database.  What I really want to get done is a sane way to Dep-Wait packages, also with the possibility to look up how many packages are blocked by which other packages, influencing the scheduling decision.&lt;br /&gt;&lt;br /&gt;We also need to come up with a sane exclusion/inclusion scheme (based on sources and binaries). One use case is of course the denial of non-free autobuilding except for few whitelisted packages. The other would involve the porting of &lt;a href=&quot;http://git.debian.org/?p=mirror/packages-arch-specific.git;a=summary&quot;&gt;Packages-arch-specific&lt;/a&gt; into the database and enhance it with the possibility of exclusion from, say, non-Linux architectures. Also I really, really want the build slaves to have as few configuration as possible and move stuff like &quot;(weak_)no_auto_build&quot;, specifying if a package should be built on a buildd (or only if nothing else is to be done, onto the central coordinator.&lt;br /&gt;&lt;br /&gt;Another curiosity are the various architecture tables.  One table (not depicted on the diagram) holds all architectures known to the wanna-build instance.  Another table (packages_architectures) holds all architectures that are valid for package architectures.  Yet another table (source_architectures) stores which architectures a source package should be built for, refering to the packages_architectures table as foreign key.  I think we should have one global architectures table and then associate it with the suites and tell what should be autobuilt through that.&lt;br /&gt;&lt;br /&gt;I got Dato&#39;s importer running on the test host today, mirroring and importing some data from the current official wanna-build host.  Let&#39;s see if I can tweak the schema a bit in the coming days.  I also need to get an idea of PostgreSQL&#39;s performance.</content><link rel='replies' type='application/atom+xml' href='http://gsoc09-wb.blogspot.com/feeds/4809223858365855769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/wanna-build-postgresql-schema-take-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/4809223858365855769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/4809223858365855769'/><link rel='alternate' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/wanna-build-postgresql-schema-take-2.html' title='Wanna-Build PostgreSQL schema (take 2)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_4cfWN3V6z8o/Sejl-0FURGI/AAAAAAAAAO0/GfLlsWeGZ6g/s72-c/wannab_binaries_sources.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-502209917167538130.post-3956124674767282662</id><published>2009-04-17T22:15:00.002+02:00</published><updated>2009-04-17T22:27:58.789+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="design"/><category scheme="http://www.blogger.com/atom/ns#" term="schema"/><title type='text'>Wanna-Build PostgreSQL schema (take 1)</title><content type='html'>Some of you might know that there were &lt;a href=&quot;http://lists.debian.org/debian-devel/2009/01/msg00379.html&quot;&gt;efforts at the beginning of this year&lt;/a&gt; to create a DB schema for an improved &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;using&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.postgresql.org/&quot;&gt;PostgreSQL&lt;/a&gt; as its backend.  The current version uses Berkeley DBs with &lt;a href=&quot;http://search.cpan.org/perldoc?MLDBM&quot;&gt;Perl&#39;s MLDBM module&lt;/a&gt; to store the data (basically in dumped Perl hashes).  For one this is not portable to other programming languages and thus lead to ugly cronjobs dumping and re-importing the data for use with web interfaces like Jeroen&#39;s.  On the other hand it also resulted in &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;/span&gt; scaling badly with more &lt;span style=&quot;font-style: italic;&quot;&gt;buildd&lt;/span&gt;s due to locking and performance issues.  The version currently in use even tries to lock the database for read-only accesses.  History and audit trails were kept in rotated log files.&lt;br /&gt;&lt;br /&gt;Roger Leigh, Adeodato Simó and Marc Brockschmidt then &lt;a href=&quot;http://git.debian.org/?p=buildd-tools/sbuild.git;a=tree;f=db;h=ca8bf52cddd3395b9a627076f13d7d1ca8fe23ec;hb=HEAD&quot;&gt;sketched something out&lt;/a&gt; that could accommodate the current data with more accessible history and also gathers more data about the packages and binaries.  Dato subsequently used it to base his &lt;a href=&quot;https://buildd.debian.org/transitions/summary.html&quot;&gt;transition monitoring&lt;/a&gt; on it.  I was not around when it got developed, though.  So I had to dig into it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_4cfWN3V6z8o/SejcscURCfI/AAAAAAAAAOs/i9ZjGa34qXw/s1600-h/wannab_build_status.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 90px;&quot; src=&quot;http://1.bp.blogspot.com/_4cfWN3V6z8o/SejcscURCfI/AAAAAAAAAOs/i9ZjGa34qXw/s200/wannab_build_status.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5325749215439161842&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Let&#39;s start with the saving of the state data (i.e. which packages need (re)building).  On the right you can expand the &lt;a href=&quot;http://en.wikipedia.org/wiki/Entity-relationship_model&quot;&gt;ER diagram&lt;/a&gt; of the &lt;span style=&quot;font-style: italic;&quot;&gt;build_status&lt;/span&gt; part of the database (courtesy of the non-free but free as in beer DbVisualizer).  Roger Leigh&#39;s initial proposal had a &lt;span style=&quot;font-style: italic;&quot;&gt;build_jobs &lt;/span&gt;table where new records were inserted for new jobs to process. In its current form the build handling is status-based, which means that you get one record per source, suite, arch triplet.  Updated rows cause history to accumulate in a separate table &lt;span style=&quot;font-style: italic;&quot;&gt;build_status_history&lt;/span&gt;.  This is nearer to the current &lt;span style=&quot;font-style: italic;&quot;&gt;wanna-build&lt;/span&gt; as it also operates only on the current state (although it preserves exactly one state step back in its database files).&lt;br /&gt;&lt;br /&gt;I can see the merits of both approaches.  Somehow the job-based approach makes more sense to me because I wanted to have the scheduling job-(or rather task-)based anyway.  Partitioning should be able to relieve much of the pain involved with keeping history in the same table.  Additionally history would not be separated from the current state and thus requiring special-casing when representing the changes trail.  The status-based approach relies on a trigger creating history entries (with their new ctime) which is a clean approach that preserves all old entries but might fail if you want to provide more information about a change.&lt;br /&gt;&lt;br /&gt;There is one part which did not make it into this ER diagram which is &lt;span style=&quot;font-style: italic;&quot;&gt;build_states_properties&lt;/span&gt; which is intended to store additional information about source, arch, suite tuples.  It is currently used to state if a package is not yet compiled or out of date on an architecture, something &lt;span style=&quot;font-style: italic;&quot;&gt;quinn-diff&lt;/span&gt; gives us in the current system to penalize completely new packages.  Theoretically we could deduce this from the tables now anyway, probably at a higher computing cost if done on-demand.  I will evaluate that in the coming days.</content><link rel='replies' type='application/atom+xml' href='http://gsoc09-wb.blogspot.com/feeds/3956124674767282662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/wanna-build-postgresql-schema-take-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/3956124674767282662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/3956124674767282662'/><link rel='alternate' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/wanna-build-postgresql-schema-take-1.html' title='Wanna-Build PostgreSQL schema (take 1)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_4cfWN3V6z8o/SejcscURCfI/AAAAAAAAAOs/i9ZjGa34qXw/s72-c/wannab_build_status.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-502209917167538130.post-2137111228790955394</id><published>2009-04-17T02:32:00.004+02:00</published><updated>2009-04-22T00:14:03.241+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="orga"/><title type='text'>Summer of Code students to be announced soon</title><content type='html'>On &lt;a href=&quot;http://socghop.appspot.com/document/show/program/google/gsoc2009/timeline&quot;&gt;April 20th&lt;/a&gt; we will know who will take part in &lt;a href=&quot;http://code.google.com/soc/&quot;&gt;Google&#39;s Summer of Code&lt;/a&gt; this year.  Sadly student proposals are not made available for the general public, even after the submission deadline.  Thus, if you want to know more about the project I proposed, please refer to the &lt;a href=&quot;http://socghop.appspot.com/document/show/user/pkern/wb_python&quot;&gt;project proposal&lt;/a&gt; in my personal scratch space on the &lt;a href=&quot;http://socghop.appspot.com/&quot;&gt;Google Summer of Code application&lt;/a&gt;.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/2137111228790955394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/502209917167538130/posts/default/2137111228790955394'/><link rel='alternate' type='text/html' href='http://gsoc09-wb.blogspot.com/2009/04/summer-of-code-students-to-be-announced.html' title='Summer of Code students to be announced soon'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>