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

Attachment: 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

Reply via email to