Kexi/Porting to Qt&KF 5

From KDE Community Wiki
Revision as of 20:47, 15 January 2015 by Jstaniek (talk | contribs)

Note

Draft. Based on notes from the Calligra 2014 Sprint. Each step leads to compiling (running?) state.
Started by jstaniek (talk) 19:06, 7 July 2014 (CET).


The grand plan:

  1. [in progress] Port Predicate↓ lib to Qt 5
  2. [soon] Move koproperty↓ lib to a separate repo, make it Qt-only and port to Qt5
  3. [soon] Move koreport↓ lib to a separate repo, make it Qt-only and port to Qt 5
    1. Remove scripting or port scripting?
  4. Port Kexi (without KexiDB/calligradb, reporting, KoReport) to Qt 5 and port Kexi to Predicate and the new koproperty/koreport
    1. Reimplement report scripting using a simple QtScript solution to keep backward compatibility with Kexi 2
    2. Remove then unused calligradb lib and parts of KexiDB lib
  5. Improve Kexi stability after porting
  6. -- Kexi 3.0 release here --
  7. Make koreport lib dependent on Predicate and remove code/API that becomes redundant (e.g. KoReportData)
  8. Add a new QtScript-based scripting module
  9. Use the module in Kexi Reports too, keeping backward compatibility with Kexi 2 scripting (add unit tests before porting to be very sure that compatibility is kept)

Proposed rules

  • Use personal git scratch repos to avoid stress with buildbreaks and unnecessary BUG/review notifications
  • Synchronize with (boud's?) branch of the Qt5 port. Boud's advice: My approach is more like, run each of montel's scripts, fix twhat's wrong, then go on. It's not something that's easy to paralellize.
  • Don't run astyle on the code, it pollutes history, and astyle-kdelibs is a bit broken
  • Based on "Porting notes" below, keep porting of one aspect in one commit to simplify reviews
  • Use the reviewboard for reviews
  • Use kde-dev-scripts.git porting scripts, in particular
  • Libs that are separate repos should use the framework template (see Links) and be ported to this layout (for now it's just predicate, koproperty, koreport).

TODO...

Notes and Status

Details go here

  • TODO: publish detailed checklist (in a spreadsheet?)

Predicate

  • Download/Build/Release info → Predicate.
  • Our target version is 1.0.0. To avoid conflicts, Qt 4 version kept for reference, has version 0.0.0.
  • Windows and Mac-specific matters.
  • Porting to Qt 5 started by Wojtek Kosowicz (Jan 2015)
  • Porting to Qt 5/Mac OS X started by Wojtek Kosowicz too (Jan 2015)
  • Branches:
    • qt4 - old Qt4-based master moved there, always stable
    • master - official Qt 5 branch, all platforms, always stable
    • qt5-kosowicz - Wojtek's Qt 5/Linux
    • qt5mac-kosowicz - Wojtek's Qt 5/Mac OS X

koproperty

  • Our target version is 1.0.0. To avoid conflicts, Qt 4 version kept for reference, has version 0.0.0.

koreport

  • Our target version is 1.0.0. To avoid conflicts, Qt 4 version kept for reference, has version 0.0.0.

Links

Docs

Background