[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