It's been very quiet since we released 1.3.6. I've had other things to
do and I'm sure others been busy as well. But I was hoping to get Licq
moving again with the new year.
I've been having some thoughts about the future of Licq which I would
like to share with you in this mail.
Note that this is only my view on what needs to be done, it's not meant
as a work assignment, and I would like to hear what you guys think think
so we can have a discussion on how to continue and in which direction.
I think we should try to keep this discussion on what to do and let
details on how to do it be left for separate discussions later by
however will be doing it.
Firstly, Licq 2.0:
I think we can all agree that Licq needs a make over on many levels and
a redesign is needed. However, with the current activity, it will take
ages before we have Licq 2 as a replacement for Licq 1.
So I think we should instead focus on Licq 1 and change it one bit at a
time. This way we can get a redesign done over time but still work with
a product that's usable and deliverable along the way. I know this will
require more work, take longer time and probably break the API between
every release we make, but I can see this happening whereas Licq 2 would
require more dedication, organization and planning than we currently have.
So what should be done with Licq 1?
The following are the major things I think needs to be worked with. I've
ordered them in accordance with how important I think they are.
1) Protocol support
The ICQ support in Licq covers a lot, but unfortunately it has gone a
few years since it was last up to date. Getting ICQ/AIM support for the
latest protocol will give Licq more of the functionallity available in
the protocol.
I would also like to see a more complete MSN support, there are a lot of
holes in the protocol implementation and I think here also we're using a
protocol version that's a few years old.
Will anyone maintain and update the protocol support we have or is it
maybe time to start looking at libraries for the protocols instead of
having our own implementations?
It would of course also be great to have support for more protocols, but
I think it's more important to have a few good implementations than
having many half implemented ones.
2) Daemon and plugin API
It would be nice to get all the ICQ code moved from the daemon to a
separate ICQ plugin as this would make the daemon cleaner and easier to
work with. Doing this would also force additions to the protocol plugin
API for everything it's currently missing.
The plugin API could also do with some major changes to make way for
supporting more protocols, make it easier to use, etc.
Most of the plans and ideas for Licq 2 will of course also fit into this
category.
3) GUI
We have Qt4-Gui which I think works fine, even the old Qt-Gui is still
usable. However I think we need to start look at appearance and usability.
The one thing I would like most for Qt4-Gui is new skins, the existing
skins work but they are old. The desktop systems have evolved over the
years so our look and feel probably should too. Maybe we should look at
making other dialogs skinnable as well.
The second thing here would be KDE support for Qt4-Gui. There are still
some things to fix before we can release a Kde4-Gui that has all the KDE
integration of Kde3-Gui.
More translations would always be nice too but I consider this lower
priority than functionallity, appearance and usability.
4) Tickets
There are currently 185 open tickets. Many of these are old and probably
not reproducable or has too little information for troubleshooting.
The list needs to be reduced. I think we need to define a guideline for
how long we wait for an answer to a problem before we close a ticket
that needs more information.
Also, I've seen several tickets which ends with something like "I'll
take a look at this later" and then nothing more has happened. I
understand that everyone here has other things in their lives than Licq
but please avoid taking on work that you won't actually do.
I think we at least should start to look at ticket assignments, so if
you have tickets assigned to you I would like you to either try to find
the time take care of them, or remove yourselves as owner to mark that
you're not working with it.
5) Other UIs
The old console plugin needs to be updated, probably even replaced
entirely. The console plugin has an IRC feeling to it with the command
input at the bottom. Maybe a more windowed approach would be better if
redesigning.
The web plugin I haven't even looked at but I know it's had no commits
for at least two years so it probably could do with some freshening up
as well.
Well that's my list for now, I'm sure there's more that I've forgotten
but those are the major things I see right now.
To get things done, someone also needs to do it, so here is what I feel
that I can contribute with to the above work:
1) I'm not very home with protocol implementations so this is probably
not for me, at least not by myself. But I'll be happy to help if someone
else takes the lead.
2) I have some ideas on what to do with the API that I'm working on and
I'll be happy to discuss these with anyone interested. However I don't
think I'll move the ICQ implementation by myself.
3) I've looked a bit at the Kde4-Gui but I'm stuck, and I'm not one for
making skins, but I have planned to make all shortcut keys user
configurable and I'm always looking for other improvements to throw in.
4) I go through the list sometimes and try to find tickets to close but
I don't know how to handle many of them. Guidelines for ticket handling
would help.
5) I could probably do a new console plugin, but right now It's more
likely that I'll spend my time with the daemon and API work.
/Anders