[kdenlive] development synchronization

Steve Guilford s.guilford at asterionmultimedia.com
Thu Dec 18 20:55:45 UTC 2014


As you can see Vincent, pulling this off (KF5 and refactoring) is 
challenging in a open-source project.  This type of work does not lend 
itself well to tags and branches within git - or any other source 
control system for that matter.

We can not shutdown all other development work until the above was 
accomplished.  So, we have to use the build system and do the hard-work 
of setting ourselves up to make the KF5 integration easy - and refactor 
some stuff as we go.

We also must be mindful of our renewed mojo and the recovery of 
Kdenlive's reputation by being careful as we proceed.

So, here's what I'd recommend.  We need to move all of the 'K' specific 
function calls into isolated classes.  This will allow us to separate 
the KDE framework from the bulk of Kdenlive's code. Once we have created 
the required classes and moved all KDE framework calls within, we can 
take that subdirectory (e.g. ./frameworks/kde4) and use it as the basis 
of the KDE5 framework (e.g. ./frameworks/kde5).

Our commit's to the git repository during the initial phase (building 
./frameworks/kde4) will involve individual (.cpp/.h) files.  Small 
batches.  This will allow us to easily interleave our changes while 
other development activity is ongoing.  Everything will resolve nicely 
via the compiler.  We'll know that the job is complete when the baseline 
Kdenlive code does not contain any #imports from the 'kde' include 
directories.

My expectation is that the work will be relatively intensive as the 
first framework interface classes are built.  But, as we proceed, the 
process will speed up as patterns become evident and the interface 
classes mature.

Then, when it comes time to move to KDE5, we'll copy the interface 
classes, modify the build system to include a KDE4/KDE5 configuration 
option and recompile Kdenlive.  If all goes well, the recompile should 
come-off with minimal issues - if any.  With that complete we can then 
start to take advantage of KDE5 by modifying the baseline Kdenlive code 
and the interface classes as necessary. Regarding the previous KDE5 
transition work, that stuff is still worthwhile.  We'll be able to apply 
that stuff at this point in the process.

I think we'll be able to keep KDE4/KDE5 support enabled with a unified 
Kdenlive base (no branches in git) by properly utilizing the interface 
classes to resolve differences (and no-op features) between Kdenlive for 
KDE4 and Kdenlive for KDE5.

I've taken a look at main.cpp/h.  That will be the starting point. I 
will create a git clone, modify 'main', create the initial framework 
interface class and setup the pattern.  You all can then have a look and 
comment on the concept.

Steve....>>>

On 12/16/2014 11:10 PM, Vincent Pinon wrote:
> Hello,
>
> Despite the absence of news around the project, activity hasn't stopped...
> On the contrary, while I was spending (loosing?) time with unfinished
> refactoring, ttguy enrolled as a new bugkillers, steveguilford implemented new
> feature, and JBM came back to start the KF5 port!
>
> In this situation some coordination becomes necessary to avoid problems
> merging our different changes.
> As a start, it could be a good thing to get a clear idea of which branch we
> should be working on... [1]
> - master is the basis from 0.9.x releases, received several bugfix until last
> days
> - next was forked this summer in Randa to restart refactoring smoothly, as a
> basis for future
> - frameworks arrived 2 weeks back, based on next, completing the transition to
> Qt5/KF5
>
> In these 2 steps (with some script automated changes everywhere), the branches
> have diverged in such a way that merging becomes painful.
> We had in mind with JBM to release a frameworks version within few month
> (ideally on time for 15.04?)
> This means:
> - we would somehow abandon the 0.9.x support, abandoning KDE4 users [2]
> - we should put our efforts on this branch to avoid merge problems... need some
> help to setup a KF5 dev environment? [3]
> - we would need testers => KF5 based daily builds / packages: help on this?
>
> Agree with this?
>
> Should we plan IRC meetings for this discussion, or for other technical issues
> (KF5, git...)?
>
> I may not be much available for the end of the year, so I already wish you
> happy holidays!
>
> Vincent
>
> [1] I still remind of the movit branch that should return asap!)
>
> [2] and KDE5 users playing with a young port :\
> simple fixes (few lines changes) may be easily backported?
>
> [3] in kubuntu utopic + kubuntu-ppa/next (or kubuntu vivid) install
> libkf5newstuff-dev libkf5notifications-dev libkf5notifyconfig-dev
> qtscript5-dev libqt5svg5-dev libqt5opengl5-dev
>
> in opensuse 13.2 + KDE:/Frameworks5 + KDE:/Qt5 install
> knotifications-devel knotifyconfig-devel kplotting-devel
> libqt5-qtscript-devel libqt5-qtsvg-devel libQt5OpenGL-devel libQt5Test-devel
>
> then look at https://community.kde.org/Kdenlive/Development/KF5
> help to complete and ask your questions!
>
> _______________________________________________
> kdenlive mailing list
> kdenlive at kde.org
> https://mail.kde.org/mailman/listinfo/kdenlive

-- 
Steve Guilford
Founder/CTO
http://www.asterionmultimedia.com



More information about the kdenlive mailing list