[Kde-scm-interest] Some ideas
Lorenzo Villani
lvillani at binaryhelix.net
Sun Jun 7 21:25:03 CEST 2009
== Foreword
I tried to read most of the messages in the archive but maybe I have missed
something and/or my ideas are confused, I apologize in advance for that.
I suggest some radical changes to the way KDE releases are managed and
repositories are organized.
So... after reading the archive it seems that:
- KDE is going to move to git
- I didn't see any clear, approved, proposal for the repository layout (am I
missing something?)
- Are we going to host the repositories on gitorious?
- Scripty seems to be difficult to port
== KDE & git:
I don't see problems with that, I find git useful, powerful and I use it already
with the Subversion conduit.
== Repository layout:
It seems that we are going to keep the layout mostly untouched, this means that
we'll have pretty much the same hierarchy we have now, this means something like
KDE/
<module>/
extragear/
<category>/
project/
playground/
<category>/
project/
and so on. (Please, correct me if I'm wrong).
But I think that times are changing and both developers and users see KDE more
like a platform and not as a collection of monolithic modules.
(I know, you may argue that distributors can make so called 'split packages' but
that's another story).
So, here's my proposal:
- each individual application (okular, gwenview, etc) get its own repository,
not tied to a particular module and with its own release schedule.
- the module (i.e.: kdegraphics, etc) just becomes a way to conveniently group
applications and 'clone' them with a single shot (done via git submodules).
The whole idea behind this proposal is to show KDE more as a collection of
projects built around the KDE pillars rather than big 'blobs' of stuff.
===== How to deal with "the push bit":
Being a collection of individual projects only the 'core' developers are given
initial push access to a project's repository, they can then add more people as
they see fit. I know that KDE developers are not used to this (everyone has
commit access to each other's code) but I think that this should improve overall
code quality as new contributors are first required to submit their code for
review before inclusion.
However, if project's core developers want, they can open their project to all
kde developers. (Technical details are expressed in the "Infrastructure"
section).
===== How to deal with KDE releases:
I think that there are mainly three ways to deal with that:
- Eliminate the concept of a "KDE release" entirely
o This way each project get its own release schedule.
o More flexibility from a developer point of view (IMHO)
- Adopt the concept of "contemporary release" similar to Eclipse.
o It's just a snapshot of current projects releases
o Every project get its own release schedule.
o This way KDE releases may become difficult to manage, but some tool can be
written to ease the release process and tarballs creation.
- Restrict the concept of "KDE release" only to the Pillars of KDE
o Most of the projects get their own release schedule
o Consistent releases of the core technologies
- This way the "KDE release" becomes the "KDE platform release" or something
like that.
== Infrastructure
My opinion is that we can follow Qt software/Nokia decision to put the
repositories on gitorious and I think we can:
- Get a customized section on their website just like Qt software did (something
like kde.gitorious.org or have something like git.kde.org pointing to gitorious)
- Fund gitorious bandwidth and storage costs in some way
- Create a 'kde-developers' group which comprises all the people who have a KDE
SVN account.
- Create the individual project repositories there
- As said earlier: give initial push access only to core developers
- If the core developers want, they can give access to the 'kde-developers'
group
===== Benefits
- We leverage an existing and tested infrastructure
- Gitorious makes code review dead easy to do
- Many Qt and KDE developers already have an account on gitorious
- Lighten sysadmins' workload in some way (i.e.: I don't have to poke the
sysadmins to change the SSH key for me)
===== How to handle the migration
My proposal is to track history inside git only from KDE 4 onward and keep
earlier history in compressed tarballs of the subversion tree and make them
available somewhere.
== Scripty
My proposal is to replace scripty with another translation system which supports
git by default.
However I have no direct experiences with any of the tools around.
There's Rosetta, but that's Canonical's stuff and AFAIK it's tied to Launchpad
and bzr.
On the other side I heard of an open source project which supports many version
control systems called Transifex.
Transifex has a web interface, can work with remote repositories (git included)
and is currently used by Fedora to translate their projects.
The Transifex guys have also launched the transifex.net website which is a
Transifex instance for 3rd party projects which don't have the resources (or
don't want) to set-up a private Transifex instance.
Transifex should (I repeat *should*, because I have never used KDE's translation
infrastructure nor Transifex) be flexible enough to replace scripty.
Links:
http://transifex.org/wiki/About -- General information about Transifex
http://fedoraproject.org/wiki/Interviews/DimitrisGlezos -- Interview with
Dimitris Glezos about Transifex
== Conclusion
So, here are my proposals and I'd like to hear your comments, suggestions and
critics, this is just my $0.02.
Of course I volunteer to get the transition done.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20090607/507f9d99/attachment.sig
More information about the Kde-scm-interest
mailing list