<div dir="ltr"><div>super cool!<br><br></div>replacing the current PyKF5 repo (and naming it PyKF5 surely is a possibility?<br></div><br><div class="gmail_quote"><div dir="ltr">Shaheed Haque <<a href="mailto:srhaque@theiet.org">srhaque@theiet.org</a>> schrieb am So., 3. Apr. 2016 um 14:32 Uhr:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 1 April 2016 at 23:18, Albert Astals Cid <<a href="mailto:aacid@kde.org" target="_blank">aacid@kde.org</a>> wrote:<br>
> El dijous, 31 de març de 2016, a les 23:04:07 CEST, Shaheed Haque va escriure:<br>
>> Thanks for all the feedback. Here is what I am thinking:<br>
>><br>
>> - The basic tooling might as well keep the PyKDE5 name because the<br>
>> tool is intended to be used KDE-wide. And the repo name for the tool<br>
>> is pykde5. This should not be a problem because nobody outside dev<br>
>> should see this tool. (Plus, I have little enough time as it is, and I<br>
>> have no desire to waste it on admin changes to git).<br>
><br>
> There is nothing called KDE5, do not call it PyKDE5, doesn't matter that it is<br>
> dev oriented, it's still a wrong name.<br>
<br>
OK. I'm not especially excited about this, so at some point I will<br>
have t think of a name I guess ("PythonGeneratorForKDE" is clearly too<br>
long). The good news is that progress continues. The code now:<br>
<br>
<br>
1. Creates regular SIP files from header files with non-trivial<br>
content. The output here is essentially complete and correct in many<br>
cases, but there are cases where the reconstructed SIP text is not<br>
correct yet (either due to incompleteness of libclang for this<br>
purpose, or my stupidity, or both). Also some files are seemingly<br>
ignored.<br>
<br>
2. To supplement #1, recognises the "Renaming Header" pattern where<br>
the file content is basically one #include, and generates a "Renaming<br>
SIP" to match.<br>
<br>
3. Attempts to recognise new-style output using a heuristic (e.g.<br>
uppercase first letter) to generate a "module.sip". With #1 and #2,<br>
and if only as approximation of the module file content, this does<br>
mean that we have SIP files in nominally-usable form (there is a small<br>
hack needed which I am not quite ready to commit).<br>
<br>
<br>
The next step is moderately tedious: by manual comparison with PyKDE4<br>
sources I want to fix as many of the corner cases in #1 as I can<br>
(tidying up the code where possible). Once I have made a bit of<br>
progress here, I will probably start actually checking in KF5 SIP<br>
files. (I will probably look for some basic CMake assistance from<br>
somebody who understand the KDE5 development setup/build system at<br>
this time).<br>
<br>
Then, it should be a simple (hah!) step to support, for ALL the hand<br>
annotations in PyKDE4, assuming I can work out what they are for. I am<br>
still hopeful that the rules-based approach will make this tractable<br>
(I will likely have to extend the rules engine to have rules for<br>
classes/structs and maybe typedefs too, but that should be it).<br>
<br>
Thanks, Shaheed<br>
<br>
<br>
> Cheers,<br>
> Albert<br>
><br>
>><br>
>> - In pykde5.git, the /sip folder presently contains the few<br>
>> twine2-generated and (presumably) hand-tweaked SIP files that pre-date<br>
>> the current effort. I propose to create /sip/KF5 tree based on using<br>
>> the tool to generate the KF5 support. The SIP compiled results from<br>
>> this would presumably be packaged/branded "PyKF5" as suggested.<br>
>><br>
>> - Once I cleanly separate out the rules-engine and make the driver<br>
>> code a bit more generic, each non-KF5 (KDE) project that wants to<br>
>> build its own bindings could either add itself to /sip/<project> in<br>
>> pykde5.git, or consider pykde5.git as an input, and roll-its-own SIP<br>
>> structure in its repo.<br>
>><br>
>> Also, by way of an update, I'm making steady progress. From the set of<br>
>> files that libkf5.*-dev pulls down on Ubuntu wily, I get 1733 sip<br>
>> files with less than 200 parsing errors to work through.<br>
>><br>
>> On 29 March 2016 at 09:01, Luca Beltrame <<a href="mailto:lbeltrame@kde.org" target="_blank">lbeltrame@kde.org</a>> wrote:<br>
>> > Il Sat, 26 Mar 2016 22:30:18 +0000, Shaheed Haque ha scritto:<br>
>> ><br>
>> > Hey Shaheed,<br>
>> ><br>
>> >> about 800 lines of Python code [2] which can already create 684 .sip<br>
>> >> files [3].<br>
>> ><br>
>> > As someone who occasionally worked on PyKDE4 I can say this is nothing<br>
>> > short of awesome!<br>
>> ><br>
>> >> whatever. If anybody can actually explain, that would be great. In any<br>
>> >> event, I am hopeful that the structure of the rules engine [4] will make<br>
>> ><br>
>> > Given that documentation is non-existent, I would say go with your gut<br>
>> > feeling. We start from a clean slate, let's do these things "properly"<br>
>> > from the start.<br>
>> ><br>
>> >> Anyway, comments - and help - welcome, especially on #1, #4 and #5 as I<br>
>> >> intend to focus on #2 and #3 first.<br>
>> ><br>
>> > As others have mentioned, having a rename to PyKF5 (because, like the<br>
>> > original PyKDE4 focused on kdelibs, I would argue we'd target all the<br>
>> > Frameworks in the long run) would probably be warranted once things are up<br>
>> > to speed.<br>
>> ><br>
>> > I wonder if we can get the CI system to test these things once they're<br>
>> > working, that would also help reduce regressions / breakages.<br>
>> ><br>
>> > _______________________________________________<br>
>> > Kde-bindings mailing list<br>
>> > <a href="mailto:Kde-bindings@kde.org" target="_blank">Kde-bindings@kde.org</a><br>
>> > <a href="https://mail.kde.org/mailman/listinfo/kde-bindings" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/kde-bindings</a><br>
><br>
><br>
_______________________________________________<br>
Kde-bindings mailing list<br>
<a href="mailto:Kde-bindings@kde.org" target="_blank">Kde-bindings@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-bindings" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/kde-bindings</a><br>
</blockquote></div>