[prev in list] [next in list] [prev in thread] [next in thread] 

List:       calligra-devel
Subject:    Re: Calligra 3.0 for Qt 5.1?
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2013-07-29 19:22:17
Message-ID: 3988338.kZ4IAYQCpI () linux-ixka ! site
[Download RAW message or body]

On Monday 29 July 2013 Jul 19:07:45 Friedrich W. H. Kossebau wrote:
> 
> But: having this influence how Calligra is ported to Qt5/KF5 reduces my 
> happiness. 

Well, sorry, but that is unrealistic. Of course it will influence how Calligra is \
ported. You cannot gain contributions without being influenced by them.

> Especially as this currently means, at least by the result of your 
> investigations, that any nice enhancements that using kdelibs have brought and 
> that using KF5 would possibly continue to bring (unless pushed upstream into 
> Qt5) will be lost. So, in fact, Calligra will be less useful to people on 
> Linux, compared to the Qt4/kdelibs4 based version, only to please Windows 
> users and Jolla. 

And make the OSX port finally not suck. And make Android ports that aren't a hack \
possible. And yes, I want those Windows users, too. They are important.

> That would suck a lot IMVHO. And first removing all kdelibs-
> stuff, to add it back later seems like wasted effort to me, at least from the 
> POV to get a 100 % of what there is now.

I don't want to keep 100% of the KDE features we have now... Many of those features \
are only half-implemented (dbus api), barely maintained (kross scripting), buggy \
(karchive, xmlgui shortcut configuration) or deprecated since the Qt4 port (kdepim \
integration). One reason why I actually look forward to stripping down to a minimal \
set of dependencies, ideally not much more than Qt, is that it will give us a chance \
to make an informed decision on whether it is worth it to depend on e.g. kio for the \
functionality it brings us.

> So I would rather see the Jolla-funded work to go into a branch, as you 
> propsed in the second option, with just the core libs and apps as defined by 
> "core" enabled, and keep master the Qt4/kdelibs4 feature branch for now, until 
> the felt majority of contributors to Calligra (by number, not commit 
> percentage) is ready for switching their development to Qt5/KF5 as well.
> 
> Because, who will work on the port? I guess for now only those run by the 
> funding, and perhaps some. But the whole contributor crowd? Also, what does 
> "core" mean for the funding? Really the XMLGUI QWidget-based apps? 

No: the xmlgui qwidget based apps are irrelevant for Jolla. Only because of our old \
1990's era architecture, we will have to drag that into the port, so there are hidden \
XMLGuiClient-based classes all over any QML-based calligra application... I really \
want to change that.

I would like the community to work on the port as well, make sure that the other \
parts of Calligra don't fall behind. My big fear is that we'll see another fork: a \
Calligra based on Qt5 that has words, stage, sheets and Krita, and a Calligra based \
on Qt4 and that the project will tear apart.

> Would it 
> not make more sense to investigate the funding into proper porting to 
> components that can be properly used both with QML- and QWidget-based apps, so 
> be usable for other Sailfish/PlasmaActive/BB10/UbuntuTouch type of programs 
> and also still the plain old desktop style?

But that's just not realistic. The effort to come to a really nice separation into \
components will have to come from the community -- because refactoring Calligra is \
really hard. You cannot expect any organization to fund work going on in Karbon or \
Plan or so, just because those apps build on the Calligra libraries and need to be \
dragged along when refactoring, when those apps are barely maintained and, in effect, \
irrelevant for those organizations.

> It takes some effort to switch the devel environment to Qt5/KF5, 

That's why I think that sticking to a released version of Qt -- that is, 5.1 -- is \
important. Otherwise setting up a devel environment is really hard. Setting up a KF5 \
devel environment and maintaining it is already no fun at all.

> learning all 
> the new things and fighting any problems of that young version. Do you think 
> everyone can follow instantly?

No -- I don't think so. However, we should make _easy_ to help out in the Qt5 porting \
effort. Because otherwise, parts of Calligra will be left behind.

> And should master not be the always-releasable branch?

Yes, that's the argument Dmitry also makes, and it's a good argument.

> I would not join the Qt5 effort in the next few months. For one I still have 
> some old branches I would like to finally get into master. So I am actually 
> caught by surprise, would have liked to have more preplanning.

Hey, my first mail on the subject was in April! And what I'm saying here is not \
materially different in any way. And I also didn't want to bring the subject up again \
before we knew that there would be funding, either. And yes, now everything is in a \
hurry. And it's not a huge amount of funding, so it's important to spend the time it \
buys us well. It would be a big waste if the effort didn't benefit Calligra as a \
whole.

> Doing both feature development and porting does not go well, I guess everyone 
> agrees.
> 
> Also for me only Qt 5.2/KF5 is a sensible goal, as it will mean as less 
> feature-loss during the port as possible, and will also mean feedback to the 
> KF5, which I would like to give, because it is so important to the whole of 
> KDE software. Winwin.

Making using KF5 a goal in itself makes sense, but only from a restricted KDE \
developer's point of view, where the goal of a project is to write nice code. I don't \
want to restrict myself to that. I want users for Calligra, millions of users. I \
think we should write software with that goal in mind -- the goal of Calligra should \
be not to advance KF5, or be useful to the whole of KDE software, but be useful and \
attractive to users.

> So my proposal would be:
> * Do the Qt5.1 port in a branch. Take the "core" as defined by you/Jolla and 
> with that pioneer a new architecture that easily enables touch-device-style 
> and desktop-style. But do not touch the rest and lose your time there, just 
> focus on that core and make it rock. But document any porting steps, so they 
> can be replayed on the rest.
> * Feature-freeze the parts of Calligra that get actually changed a lot in your 
> port, to prevent too much work with forward porting. Reasonable exceptions of 
> course allowed ;) (me thinks of a patch of mine for KOdfWriteStore that 
> simplifies quite some code).

In that case, I would say: stop refactoring in master. A code simplication for \
KOOdfWriteStore can be a nice thing, but it's not something any user of Calligra is \
waiting for. If you want to refactor and clean up and simplify code, do it in the Qt5 \
branch, not in master.

For master, keep to features that users want and to bug fixes.
 
> * Decide that there will be another 2.8 (and 2.9?) as last feature releases of 
> Calligra based on Qt4/kdelibs4, so people can keep on rocking Krita and 
> perhaps a little the rest of the apps while you do the pioneering in Qt5 land, 
> but know that after 2.8/2.9 it is porting-only time.
> * Release any releasable result of that branch not as Calligra 3.0, but as a 
> separate product, similar to how Coffice is released. Only once all of 
> Calligra is ported we can release something called Calligra again.

I really, really am afraid that that will mean the end of the rest of Calligra. That \
the codebases diverge enough that the applications that didn't make the transition \
basically cannot be ported anymore using community resources.

> Hopefully in the time of 2.8/2.9 you have pioneered something that is 
> satisfying and stable. That would be then the time of coordinated effort to 
> port the whole of Calligra to the new groundwork you did. And perhaps already 
> to Qt 5.2 and KF5 (preview), given that time is usually flying.

We have to have a working Qt5.1 based Calligra core (libs, words, stage, sheets) in a \
month or two. That's the timeframe I'm looking at... KF5 won't be ready until 2014.

-- 
Boudewijn Rempt
http://www.valdyas.org, http://www.krita.org, http://www.boudewijnrempt.nl

_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic