On Sunday 10 November 2013 17:57:00 Kevin Ottens wrote: > Hello, > > Since there's been several times discussions about having a kind of "Tier 0" > for building our frameworks containing what is right now in ECM kde-modules > directory, but the idea was never really on the table because of the extra > dependency it'd bring, I looked a bit at the git submodule option to get > there. > > The motivation for going with a git submodule is that it would allow such a > Tier 0 to be completely transparent to third parties who would want to grab > a Tier 1 framework and not bother about installing anything else than our > main dependencies (namely Qt, CMake and ECM). > > Again: If we force third parties to install another KDE specific dependency > to build a Tier 1 framework from sources we failed. > > So after playing a bit with several solutions (I looked at git subtree too > for instance), I still think that git submodule is the solution to use if > we got for such a Tier 0... it's not perfect though. > > Indeed, submodules keep the information of the exact sha-1 used, there's no > way to have them track a branch automatically. That's likely to turn into a > problem (not for third parties this time but for our own developers) as from > the master branch of a framework we probably always want the tipping point > of the master branch of the repository containing the cmake files. > > Also git archive ignores submodules when generating the archive... But > that's easy to fix and there's a git archive-all script available which > does the recursive export. > > Now back to the submodules sha-1 update... The only thing I see to easily > overcome that for our developers, is to have a hook, which would update the > submodules for all the frameworks every time someone pushes in the tier 0 > repository. Is it something the sysadmins would agree to have on the server? > > Any opinions or thoughts on that? > > If we agree on the approach I think we have a potential solution for > injecting a tier 0 in all our frameworks that could be put into place when > we start splitting the repositories. > > Regards.
I'm about to write a blog about Kate on 5. In that context, I've quickly created the frameworks 5 diagram with TikZ (I'm very much addicted to that). Attached you can find the source code, along with the pdf file created by: pdflatex kf5.tex Feel free to put that into git, if you want. I've added a tier 0 already. There, Tier 0 is basically defined by everything that is a requirement to the other tiers. Greetings, Dominik
kf5.pdf
Description: Adobe PDF document
\documentclass{standalone} \renewcommand*{\familydefault}{\sfdefault} \usepackage{preview} \usepackage{tikz} \usetikzlibrary{calc, positioning, arrows} \newcommand{\selfcircle}[1]{ \draw[<-,scale=1.8] ($(#1.north west) + (2mm, 0)$) -- ++(0, 2mm) -- ++(-4mm, 0mm) -- ++(0mm, -4mm) -- ++(2mm, 0mm); } \begin{document} \begin{preview} \small \begin{tikzpicture}[rectangle, minimum height=1.5cm, minimum width=3cm, align=center, node distance=4cm, rounded corners=1mm, very thick, >=latex] \node[fill=green!20,draw=green!80] (t1s) {Solution\\Tier 1}; \node[fill=orange!20,draw=orange!80,align=center, right of=t1s] (t1i) {Integration\\Qt Addon\\Tier 1}; \node[fill=cyan!20,draw=cyan!80,align=center, right of=t1i] (t1f) {Functional\\Qt Addon\\Tier 1}; \node[fill=green!40,draw=green!80, node distance=3cm, above of=t1s] (t2s) {Solution\\Tier 2}; \node[fill=orange!40,draw=orange!80,align=center, right of=t2s] (t2i) {Integration\\Qt Addon\\Tier 2}; \node[fill=cyan!40,draw=cyan!80,align=center, right of=t2i] (t2f) {Functional\\Qt Addon\\Tier 2}; \node[fill=green!60,draw=green!80, node distance=3cm, above of=t2s] (t3s) {Solution\\Tier 3}; \node[fill=orange!60,draw=orange!80,align=center, right of=t3s] (t3i) {Integration\\Qt Addon\\Tier 3}; \node[fill=cyan!26,draw=cyan!80,align=center, right of=t3i] (t3f) {Functional\\Qt Addon\\Tier 3}; \node[fill=orange!80,draw=orange!80,align=center, node distance=3cm, above of=t3i] (t4i) {Look \& Feel\\Consistency\\Tier 4}; \node[fill=black,draw=black,circle, minimum size=1mm, inner sep=0mm] (pin) at ($(t3i) !0.5! (t4i)$) {}; \node[fill=black!10,draw=black, minimum width=11cm,minimum height=1cm,node distance=2cm, below of=t1i] (t0) {OS, Qt, Wayland/X11, system libraries, cmake modules, $\dots$}; % straight arrows from top to bottom \draw[->] (t3s) -- (t2s); \draw[->] (t2s) -- (t1s); \draw[->] (t4i) -- (t3i); \draw[->] (t3i) -- (t2i); \draw[->] (t2i) -- (t1i); \draw[->] (t3f) -- (t2f); \draw[->] (t2f) -- (t1f); \draw[->] (t1s.south) -- (t1s |- t0.north); \draw[->] (t1i.south) -- (t1i |- t0.north); \draw[->] (t1f.south) -- (t1f |- t0.north); % straight arrows from left to right \draw[->] (t3s) -- (t3i); \draw[->] (t3i) -- (t3f); % arrows from solution to integration, and integration to function \draw[->] (t2s) -| ($(t2s) !0.5! (t1i)$) |- (t1i); \draw[->] (t2i) -| ($(t2i) !0.5! (t1f)$) |- (t1f); % arrows from black circle \draw[->] (pin) -| (t3s); \draw[->] (pin) -| (t3f); % loops \selfcircle{t3s} \selfcircle{t3i} \selfcircle{t3f} \selfcircle{t4i} \end{tikzpicture} \end{preview} \end{document}
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel