Saturday, December 16, 2006

patchserver

so i had this crazy little idea some time ago: people who take free software and modify for their own use should have an easy way to publish patches for others to find and use.

i keep running into people who have patched kde for this or that and for one reason or other haven't submitted the patches upstream. often it's a matter of trying to figure out how to deal with each project they patch, and between the projects we tend to be a bit different. there's also an effort related problem, namely that people tend to take the path of least resistance and while they will often upload patches to their own web server that's about as far as their ambitions will take them.

i blogged about it and got a few responses, including from one
Esteban Manchado Velázquez. he said he had started a small patch server web site using ruby on rails. we discussed some possibilities and he started working on it in earnest.

you can some of the results on the patchserver screenshot page.

even better yet, you can install it on your own server and start cataloging your patches. Esteban uses the darcs rcs, so utter this command to grab a copy:

darcs get http://www.demiurgo.org/darcs/patch_server/


what all does patchserver do? well, you upload patches and then you can view and edit metadata, such as which upstream version they apply against, related patches, descriptions, etc., view the patches on-line with syntax highlighting, view the history, view patches by various parameters such as for a given app or which ones aren't applied upstream yet, subscribe to rss feeds, full text searches and more.

future ideas involve integration with other development tools such as revision control and bug tracking systems, being able to reference patches in other patchserver installations, etc...

my big hope is that enough people will start making their patches available in this manner and then we can get one of the big open source friendly search providers, such as yahoo or google, to provide a search that is customized for patchserver content.

my dream is to one day be able to type into a search box "patches plasma 4.1" and have a list of links to patches with nice descriptions come up from servers around the world.

and yes, i completely agree that it would be best if people would work with the upstreams directly. i also realize the reality is that isn't likely to happen. i also agree that it would be totally cool if people had access to tools like canonical's launchpad, but they aren't releasing the source code it seems so that's that. (i don't fault canonical for that, it's their work and therefore their decision to do with it as they see fit.)

if enough of a community builds up around patchserver perhaps we can start working on another pet idea: a distributed bug system. ooh yeah. distributed patches, distributed revision control, distributed bug tracking .... we could all work offline, online and as a big crazy hive. yee-haw!

so, thanks to Esteban for all his work to date; and to Esteban: i hope you find yourself with an unqualified success on your hands that takes off to everyone's benefit =)

5 comments:

Anonymous said...

sounds like a good idea, how about a "planetpatches" kind of thing, that gets patches from all those patch servers and allows developers to incorporate patches in upstream versions, maybe even telling the creator of the patch that it is obsolete with version xyz. I think that would really improve the work for both distributors and coders.

David Boddie said...

I can think of a project that could make good use of this, at least in the short term. ;-)

elvis said...

Definately good idea! I don't know how many times I've done:

1) Fix something.
2) (svn|cvs) diff > ~/foo.diff
3) scp foo.diff my_webserver:/www/root
4) Send the URL to maintainer on (IRC|mail).

Patch server thingie would simplify this if everyone used it. And many other benefits as well.

Aron

Chani said...

great idea.

somewhere on my computer, I have a patch someone gave me with cool stuff for kopete that wasn't allowed into svn. I never got around to actually applying it. I've no idea where it went, but I don't think I deleted it... still, it probably wouldn't work with the latest version of kopete. it's the sort of thing that really should be online somewhere.

Anonymous said...

First of all, thank you, Aaron!

About the screenshots, please skip the first row, they are rather old. The second row has a couple of interesting thing, and the third and fourth are the current interface.

I hope to get a decent website for the project somewhat soon. Right now, I have a Wiki in a RubyForge project with installation instructions. In case you need those, you can go to "patch-server" dot rubyforge.org (I'm afraid of Wiki spam and thus not linking directly, sorry).

If you use it, please send me any comments you have. I don't write that many patches, so I really need different people trying patchserver out, so I receive some feedback and ideas on how to improve it.

--Esteban