Improve and adapt the Gitorious Web Application for its use in the development of KDE
Evaluate the current peculiarities of Gitorious and the process or politics of the KDE development to define the new modifications needed to obtain the best integration with Gitorious.
First we need to study the KDE repository structure with Git. KDE is an umbrella of many big projects, each of them is made of several smaller parts that are projects of their own. What seems to be the current agreement is that KDE big projects would be git supermodules and KDE sub-projects would be git submodules.
This is what it looks like:
README/TODO/CMake/... includes doc ... kdecore.git (module) kdeui.git (module) kio.git (module) knewstuff.git (module) ...
README/TODO/CMake/... includes doc ... plasma.git (module) ruphy-plasma.git notmart-plasma.git chani-plasma.git someone-plasma.git ... kdm.git (module) ...
KDE has a history of being developer friendly and easily giving svn accounts to most people that apply for them. Git makes this even easier as anybody can commit to his/her own branch.
That being said, KDE is more or less a meritocracy and some developers have more power than others when it comes to administration. This is necessary but SVN can make the administration painful for admins and frustrating for wanna-be developers as they have to wait before they can commit.
Given that, we have thought of a simple user/role organization (no complicated rwx type of permissions system that nobody gets and uses).
This is what we have so far.
1) The question is to know if each submodule of a supermodule will have one or several admin or if every developers of a submodule will have the ability to accept or reject new developers?
2) If there are submodules admins, who does grant them there role? the supermodule admin?
3) Gitorious would be a websvn replacement only or will it be a bugzilla replacement too? Gitorious devs are implementing ticket tracking as of this document writing.
4) is it necesary to implement "applying for developer status" or will it continue to happen by mail as it does now?
According to Mario Ðanić:
1) suggestion: anybody will be able to create projects/repositories/forks without any permissions, those projects will be moved to kdeplayground/<submodule> with the submodule created by the superadmin. The project creator could choose the submodule by him/herself. This seems to be in the spirit of kde playground, what do you think?
2) Playground module for each supermodule(kdelibs, kdebase):
... playground/ project1.git project2.git ...
... playground/ project3.git project4.git ...
playground/ (is a supermodule)
project5.git project.6git ...
3) knewstuff2 server (git repo => knewstuff2 => user )
4) If KDE is going to keep bugzilla, we can still hook up gitorious with bugzilla in order to make them work together. As an example when a commit message has "closes #123" it will close the bugzilla bug #123, that's just an example of interaction. To have this kind of interaction, we'd need bugzilla xml-rpc web service API turned on, is that the case?
5) Automatically generate Feature Plans by mapping branches to feature, when a branch is created its status is marked as "TODO", when it starts getting some commits, its status is marked as "IN PROGRESS", when the branch is merged back in mainline its status is marked as "DONE".
trapni: thiago: I was looking for a git hosting service as my local host can't be up as good as a server, so I had to push the repo (including history, ideally) to such a service (I decided to use gitorious - hopefully it's good though :) thiago: ok trapni: thiago: finally, is kde moving from svn to git anytime soon? do you have an idea? (just to be curious) thiago: hasn't had the time to do that thiago: which means it hasn't moved, since I am the only person trying to do it trapni: i know tha lag of time, yep trapni: what are the issues? trapni: are there some? thiago: submodule support isn't good enough, we haven't finished writing the import rules, we don't know the layout of the repositories yet, we need some server software (web service) for creating and cloning repositories, setting ACLs; getting rid of svn:externals trapni: might be interesting to know wether there actually is an interest in moving from svn to git for the majority of kde devs or not thiago: ah, and support for copy-with-history trapni: ah, yeah trapni: one big lag of all those git hosting services is, that they don't provide a homepage for your project - to sad :) pygi: yet ;) thiago: we decided that all our repositories will have a mandatory wiki homepage trapni: a wiki is nice, yeah thiago: if you request a repo on the server, you have to write a wiki page saying what your repo is for trapni: on *what* server are you talking about? trapni: you mean the kde repository? thiago: git.kde.org trapni: oh, you really have one? thiago: no trapni: :( pygi: could volunteer during SoC to work with thiago to improve gitorious for kde needs ;) trapni: i also thought about having one of my libraries to be hosted at kde, in case you'd have a homepage *and* git for me (it's the capseo/libcaptury video capturing framework used by kwin) ;) trapni: pygi++ thiago: I don't see why not thiago: we also need a central DNS registry for us because of D-Bus names trapni: yep trapni: thiago: what do you need me to do got get my git repositories (and wiki pages) hosted their? trapni: i'd be glad in fullfilling the requirements though :) thiago: 1) get the server to exist thiago: 2) get the software running on the server that doesn't exist yet thiago: 3) get kde to convert trapni: aha, you mentioned the 'server' word - which i can't provide currently :D thiago: we have the machine already trapni: oh pygi: trapni, would be nice to have ability to request project addition, admins allow it, and then the space for website and git are provided for you pygi: (eventually even mailman auto-create magic even ;)) trapni: pygi: exactly thiago: in half the cases, the new repositories are project branches trapni: while i noticed very very poor feedpack performance on savannah.[non]gnu.org where I first tried to host my capturing libraries on pygi: thiago, branches can be done without approval thiago: so the software should clone and set up the alternates link trapni: they do require admin acceptance, gitorious didn't - which i quited liked pygi: thiago, yup, one would be able to see a network of folks who cloned certain repos/branches pygi: only addition of new modules (repositories) would require admin approval pygi: cloned/forked branches dont need web-space, or mailing list, or anything, anyway thiago: pygi: right thiago: but we still want to enforce a wiki page describing the project trapni: forked branches maybe do, but general purpose branches don't (they're most likely to be merged back) thiago: so that we can have a proper list of repositories with their purpose pygi: thiago, well, yes ... wiki page per project, not per branch :) thiago: instead of a "braindump" like http://git.kernel.org/ thiago: no, per *repository* trapni: thiago: i highly encourage the wiki-requirement, i guess nobody will have a problem with it, at least I were explicitely looking for a git hosting service with homepage feature (which I failed in finding yet anyways) pygi: thiago, yup pygi: trapni, that's what I meant, yes thiago: the idea of the wiki homepage is to describe what the repository is for, who's working on it, etc. pygi: yea, basic description of it and stuff thiago: exactly thiago: for separate projects (like trapni's idea), it might need some actual webspace and a domain name thiago: under the .kde.org hierarchy, so the project can have its own D-Bus namespace pygi: a lot of magic under :) pygi: so the "application" process would involve selection of services one needs, and a link to wikipage describing what the repository will be for, descriptions, and such thiago: yep thiago: the admin would also be able to select from the account list who's allowed to push there pygi: thiago, why not the repository owner? thiago: the admin = the repository owner pygi: ah, ok! I was thinking of complete system admin thiago: or anyone with push permissions. I don't see the need for making the distinction. pygi: aha, got it trapni: still admin != owner, their _maybe_ shall be a distinction, shouldn't it? thiago: I don't see the need pygi: ok, so no need for manual review process I take it thiago: whoever requests the repository is given push/admin rights over it thiago: and he can give those rights to anyone else pygi: thiago, nod, but who has the ability to approve the request? pygi: or is it approved magically? thiago: should be automatic for clones pygi: yea, but what for new repos? :p thiago: for brand-new projects, sysadmins pygi: yea, well .. that's what we're talking here =) thiago: you have to fit it into one of the supermodules anyways trapni: in my case, it's not a brand new project, I'm just looking for a sweet home :) thiago: you'd have to justify the relation to kde thiago: if it's in kdesupport, it's something kde uses thiago: if it's in extragear, it's kde-based pygi: ah, so one should be able to create project (say kdesupport) and then module under it! thiago: yeah, things have to be organised pygi: a lot of things to think about =) trapni: kdesupport is the relation thiago: my idea was to have a top-level hierarchy "stable" with kdesupport, kde, koffice and extragear supermodules thiago: then a top-level hierarchy "projects" with cloned repositories as well as new stuff (i.e., current playground) thiago: then a top-level hierarchy "users" for someone's own branches (no wiki page required) thiago: people don't get today in SVN the difference between /branches/work and /trunk/playground, so we might as well merge the concepts pygi: supermodules with projects under them pygi: joy :)