[opensuse-buildservice] GSoC '09 proposal - git backend for OBS
Hi Folks! In the opensuse-packaging ML (http://lists.opensuse.org/opensuse-packaging/2009-03/msg00040.html) Peter Poeml encouraged people to try to hack BuildService so it would use git as its source server. I would like to work on this git backend for OBS during this year's Google Summer of Code. The idea is described here: http://en.opensuse.org/Summer_of_Code_2009#prototype_git_backend_for_OBS. As Brandon Philips correctly stated the main goal is not to provide the full-blown git integration into BuildService, but rather to create working OBS instance that uses git for storing the source files instead of currently used BSDB solution. It should be a prototype, with which we could make tests later and see the advantages (and disadvantages) of the git approach. A part of the solution is also a conversion tool which will convert sources stored in BSDB into git repositories, so the migration wouldn't be very painful. Vivid advantages of the git approach are: - standard VCS operations like diff, log or commit are offline - this decreases the server load and one could work without the network access - import/export between OBS instances is easier - gitweb allows comfortable (and anonymous) source revision browsing I am aware of the fact that only changing the backend from BSDB to git is not all what needs to be done if we want the mainline switched to git. Therefore, after successful implementation I'd like to continue to work with the OBS team on possible integration. Do you have any suggestions or hints before the project starts? Regards, Peter Libic -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thu, Apr 09, 2009 at 11:42:06AM +0200, Peter Libi?? wrote:
In the opensuse-packaging ML (http://lists.opensuse.org/opensuse-packaging/2009-03/msg00040.html) Peter Poeml encouraged people to try to hack BuildService so it would use git as its source server.
Uh huh, good luck with that one. I fear that Peter doesn't really have an overview over what needs to be done to switch to git.
Vivid advantages of the git approach are: - standard VCS operations like diff, log or commit are offline - this decreases the server load and one could work without the network access
That's just delaying the commit until you do a 'git push'. Plus, you don't really want to have just one git repository for the build service - 'git pull' always pulls the complete repository, this would mean having a local copy of *all* sources. Having a repository for each project is maybe also not enough because of projects like "openSUSE:Factory". Another big problem where I don't know how they could be implemented with git are source links. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Michael Schroeder wrote:
On Thu, Apr 09, 2009 at 11:42:06AM +0200, Peter Libi?? wrote:
In the opensuse-packaging ML (http://lists.opensuse.org/opensuse-packaging/2009-03/msg00040.html) Peter Poeml encouraged people to try to hack BuildService so it would use git as its source server.
Uh huh, good luck with that one. I fear that Peter doesn't really have an overview over what needs to be done to switch to git.
I don't expect this to be an easy task...
Vivid advantages of the git approach are: - standard VCS operations like diff, log or commit are offline - this decreases the server load and one could work without the network access
That's just delaying the commit until you do a 'git push'. Plus, you
Yes, the commit is just delaying the load - but commands like log or diff really pass the load to the client.
don't really want to have just one git repository for the build service - 'git pull' always pulls the complete repository, this would mean having a local copy of *all* sources. Having a repository for each project is maybe also not enough because of projects like "openSUSE:Factory".
In my proposal on GSoC site (not public, now also available from http://en.opensuse.org/Build_Service/Git_Backend) there is following text: "The goal of the project is not to supersede current link/branch mechanism. The project will probable create a single git repository for every package. For example, for project "KDE:KDE4:STABLE:Desktop" and package "konversation" this could mean repository git://server/KDE/KDE4/STABLE/Desktop/konversation.git. Repository for the whole project would also be an option, however there are some projects that have hundreds or thousands of packages, so this requires further research if it is plausible." I'm well aware of problems with the size of projects and that it is not possible to use single repository. Peter
Another big problem where I don't know how they could be implemented with git are source links.
Cheers, Michael.
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thursday 09 April 2009, Peter Libič wrote:
I am aware of the fact that only changing the backend from BSDB to git is not all what needs to be done if we want the mainline switched to git. Therefore, after successful implementation I'd like to continue to work with the OBS team on possible integration.
Do you have any suggestions or hints before the project starts?
I'm not sure replacing the backend is a good idea. I think it would be much
more interesting to have a git frontend to the existing backend, so you could
use git to interact with the build service, but how storage is implement
remains an implementation detail of the backend.
--
Cornelius Schumacher
Cornelius Schumacher wrote:
On Thursday 09 April 2009, Peter Libič wrote:
I am aware of the fact that only changing the backend from BSDB to git is not all what needs to be done if we want the mainline switched to git. Therefore, after successful implementation I'd like to continue to work with the OBS team on possible integration.
Do you have any suggestions or hints before the project starts?
I'm not sure replacing the backend is a good idea. I think it would be much more interesting to have a git frontend to the existing backend, so you could use git to interact with the build service, but how storage is implement remains an implementation detail of the backend.
Is it possible to generate git repositories on the fly (from sources
stored in BSDB) without taking too much disk/cpu resources?
--
Best Regards / S pozdravom,
Pavol Rusnak
Peter Libič napsal(a):
Hi Folks!
Hi! :)
I would like to work on this git backend for OBS during this year's Google Summer of Code. The idea is described here: http://en.opensuse.org/Summer_of_Code_2009#prototype_git_backend_for_OBS. As Brandon Philips correctly stated the main goal is not to provide the full-blown git integration into BuildService, but rather to create working OBS instance that uses git for storing the source files instead of currently used BSDB solution. It should be a prototype, with which we could make tests later and see the advantages (and disadvantages) of the git approach. A part of the solution is also a conversion tool which will convert sources stored in BSDB into git repositories, so the migration wouldn't be very painful.
IMO a migration tools is not really needed for a prototype or proof of concept, better spend the time designing how source links or osc integration should work. Once you show us that it can work (and how), we can start thinking about migrating the existing build service(s). Good luck! :) Michal -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (6)
-
Cornelius Schumacher
-
Michael Schroeder
-
Michal Marek
-
Pavol Rusnak
-
Peter Libic(
-
Peter Libič