Update on git repository "logical" branch module groups

Michael Pyne mpyne at kde.org
Mon Aug 12 19:21:57 BST 2013


Hi all,

(please keep discussion on core-devel)

A couple of weeks ago at Akademy a decision was reached to allow for the 
changing of the kde-workspace development branch for KF5 efforts to be 
'master' (instead of 'frameworks' as in kdelibs). In exchange we would 
implement a means for users to give a high-level description of what branch 
they want in general. That is, a way to say that in general, you just want a 
"stable KDE 4", "development KDE 4", or "bleeding-edge Qt5/KF5-based desktop".

I'd like to announce that the groundwork for that system is now in place.

There is a file in the "kde-build-metadata" repository, "logical-module-
structure", which contains a high-level overview of which branch to use for 
the KDE Project git repositories, for each of the various overarching groups. 
Right now there are 3 such groups, also listed in that file.

kde-build-metadata also has a sample Python script (in the tools/ subdir) 
which can be used to verify the file remains valid JSON, and to see what git-
branch would be used for a given module and group based on the rules saved 
into the file. Please use this before committing changes to the file to ensure 
that things are as you were expecting. ;)

kdesrc-build can now also support this data (I still need to add the docs 
though). The short story is to use the "branch-group" option to name one of 
the groups listed in the JSON file, instead of the "branch" option (if both 
are set then "branch" will take precedence, though I'll have to double-check I 
actually implemented it that way).

"branch-group" obeys normal option precedence semantics within kdesrc-build, 
so you can set it globally and then override it within a module or module-set. 
Just remember that if the JSON file doesn't have any rules for a module that 
the branch 'master' will be assumed.

So you could do something like:

    global
        branch-group stable-qt4
        ...
    end global

    module-set reqs
        repository kde-projects
        use-modules qt soprano attica cagibi # etc...
    end module-set

    # List all desired modules common to KDE 4/KF5 in one file
    include common-kde-modules.ksbrc

and then have a KF5 kdesrc-buildrc with something similar but just change out 
the branch-group.

I intend on having kdesrc-build (and possibly the Python script too) warn 
about branch-groups that are not actually listed within the "layers" list of 
the JSON file as a backup against speling errors. It doesn't do this yet, 
however. But please make sure that if you decide to add a fourth group or 
rename the existing ones, that you've updated the "layers" list in the JSON as 
well.

I'd like for people (especially those working on frameworks or just trying to 
huddle to KDE 4) to go ahead and test this. On or around the __19th__ I'd like 
to "bake in" whatever we consider the names of logical groups to be, so that 
they are not modified further without discussion on kde-core-devel. (Think of 
that as a backward-compat concern).

I hope this all makes sense, if the feature seems to be evolving in a way 
other than desired during the discussion at Akademy please let me know.

You can find some further documentation on the Community Wiki: 
http://community.kde.org/Infrastructure/Project_Metadata.

Regards,
 - Michael Pyne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20130812/c74d498c/attachment.sig>


More information about the kde-core-devel mailing list