Looking around and thinking ahead

Sebastian Kügler sebas at kde.org
Thu Dec 12 01:26:42 UTC 2013


Hi all,

I thought I'd share a braindump with you how I can imagine the coming year in 
Plasma. I'll outline the current state "a bit more detailed", and will offer 
ideas how we're scheduling the coming months up to a stable, brand-spanking 
new Plasma, as well as outlining work we have ahead of us.

Today, I'm running Plasma 2 almost exclusively on my laptop. The most 
important features are there, and it's definitely dogfoodable for me without 
huge impact on my productivity, and it's getting noticeably better by the day. 
That's quite a milestone, and I'd like to thank everybody for getting it this 
far. With Qt arriving at a stable 5.2, and us having ironed out quite some 
stability problems in the past weeks (hello switching QML engine and scene 
graph renderer in QtQuick/QtQml!), it now runs stable, I haven't seen a 
crasher during normal usage in a few days (but I know how to trigger one :P). 

Most of the infrastructure has been ported and made to work, but we're not 
quite there, yet. The move to sddm hasn't materialized yet (upstream presence 
has been a bit spotty, so we might need to take a more active role in making 
this happen). Other options are also still on the table, so this needs nailing 
down a strategy. The display manger topic bleeds into the startup procedure, 
and especially the splash handling, and of course the Wayland topic. 

The above is one example of architectural things we need to sort out. We have 
others, such as the startup (startkde) where we have a working port now, but I 
think we can do much better there. Options on the table are using systemd for 
it, start-active which could be up to the task, or possibly a hybrid solution. 
Also, can we make login really fast? :D

We have some fallout in systemsettings, especially the Locale module needs 
more porting (porting away from KDE4Support & KLocale, using the new Qt APIs 
we've merged), and making all those little setting buttons everywhere work 
correctly.

In plasma-shell, we have some construction sites as well. Kickoff still feels 
quite unfinished (some would say broken ;)), configuration of Plasmoids isn't 
complete in many cases, and it's not yet visually pleasant. There's good 
progress there, and I think Plasma 2 can look visually more stunning than 
Plasma 1 (I'm especially excited about Marco's translucency/contrast 
improvements, and the stronger accentuation of typography and cleaner and 
better aligned default look we're moving towards, getting styling of QtQuick 
Controls fully fixed will contribute to this as well). 

We're also missing a few things, such as KRunner, which isn't finished yet, 
and along with it a slew of runners (which should be relatively easy to port 
in the end, and we do pretty well in parallelized, small tasks, so that I 
guess won't be too much of a headache).

plasma-framework needs some work on APIs, too. With large version number 
change, we can reduce the delta between libplasma and our declarative imports. 
There are some candidates which currently use quite some glue code for our 
declarative bindings. Can cook this down and maybe move some implementations 
into libplasma, or adding necessary Q_PROPERTYs to our API? The scriptengine 
has quite a large bunch of code as well. Does it make sense to move the 
plasmoid. object (offered to our Plasma/Applets) into libplasma, it's pretty 
much core of our current API, but otoh is currently fixed to QML.

Wayland. Martin has focused on the Qt5 and XCB port, which is also preparatory 
for running kwin on Wayland. This is likely the major part of the graphics 
stack we need to care about, but there is a number of X11 calls in our further 
basic workspace stack that we need to sort out in order to provide a full-
fledged user experience in a post-X11 scenario. There's a slew of IPC things 
that might need API work on both sides, especially between plasma-shell and 
kwin. There's some serious work ahead, but I think the base is really good. 
I'm running kwin\5 extensively, and it works and performs well.

We have a large amount of regressions, still. This can be larger things, like 
the above, but also all kinds of smaller regressions, which often stem from 
API changes in our scriptengine, that we need to catch and fix.

In that regard, we've started shifting bugs into bugzilla, so we don't lose 
track of the whole slew of issues we see. In many cases, it's easy fixes, but 
probably about a thousand of them, so this needs tools and workflows. Is 
bugzilla good enough for us, do we want to invest time, switching costs and 
possible disappointment with other tools? How agile do we want to be? How 
formal should our processes be?

Then, apart from the technical bits, there is the user point of view, which 
should become our guiding light. We've concentrated a lot on the technical 
bits, but haven't looked further into our vision towards the user, workflows 
we want to make as smooth as possible, UI concepts, integration of new things 
like KPeople, KDE Connect, and so on. That's quite natural, as revamping our 
architecture to work on top of the new, fully accelerated graphics stack was 
the base work we had to lay. The UI side is where we can really make a 
difference, we've built quite an awesome base, but we need to turn this into 
real, added value for our users.

We're not very well equipped in the artwork department. Perhaps we can try to 
find artists more actively. I think we have some very exciting work to be 
done, with a large audience. There *must* be good designers around who want to 
help us making Plasma beautiful.

So, our coming milestone is to prepare a tech preview for our users. This 
could be in the form of a set of tarballs. We also have the Neon5 image, which 
should be in pretty good shape. I'm personally also cool with not rolling 
tarballs, but offering git tags. Our packager audience, to my knowledge is 
quite fine with using git as source, and it should be cryptographically sound 
to offer them a git tag to pull from. (Packagers: please correct me if I'm 
wrong.) Bottom line: there's a mild amount of release management to do. Also 
some PR work is needed, a video, screenshots, a text explaining the status, 
direction, progress and plans. Something exciting for our users while they 
chew on the proven and stable long term maintenance release. :)

Part of this communication is that we should settle the name question. We had 
a good discussion about that some time ago, but it died out before reaching a 
conclusion. Let's put the options back on the table, and come to a decision 
there. (Relevant thread is "naming the next major release" on 19th August on 
plasma-devel.)

Following that, I think the following roadmap makes sense. (This is rough, and 
up for discussion, but I think a solid base to know what's coming.)

Next week: tech preview of our current state, ready to try

Early January: Tokamak 7, focusing on high-level view and how to realize that

Q1/2013 Focus on Wayland, completing the workspace infrastructure, completing 
API reviews and changes, and looking into kdelibs improvements we want to get 
in before KF 5.0. (Hello, KNotifications, KService, etc.!)

End of Q1: Solid beta, again something that shows visible progress and promise

Q2: Polish, take a step back and fix bugs, make it work as smooth as possible, 
extra-mile and papercuts work, but still concentrate on the desktop basics and 
especially avoid regressions in primary workflow and functionality. This leads 
to a stable release of at least the desktop shell towards the end of Q2.

Q3 and 4, I imagine, could shift the focus from the bare basics to a more 
complete product. Multi-device usecases realized by different shells, meaning 
porting and integrating the Plasma Active UI, Plasma Mediacenter, and making 
the whole device morphing scenario useful. Integration of PIM data via 
kpeople, telepathy, inter-device communication (KDE connect could play a major 
role here). There has been some very exciting stuff in the making, which is 
coming to fruition and ready to shine.

Many of us will meet in January for Tokamak, that's a wonderful opportunity to 
nail down many of the higher and lower level issues. And Tokamaks are fun.

To conclude this epic email, and perhaps provide a bit of balance: I am 
utterly impressed of where we stand right now. Just a few weeks ago, a 
smoothly running desktop seemed far, far away. Today, I'm running Plasma 2 on 
my laptop comfortably, with smoothly wobbling windows, but without being too 
afraid to lose this long email thanks to some major nasty crash. 
Chapeau to everyone who has contributed to us getting there! Let's turn this 
base into the most awesome workspace we can imagine!

So, there's my braindump, thanks for bearing with me so far. What are your 
ideas? :)
-- 
sebas

http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9


More information about the Plasma-devel mailing list