<table><tr><td style="">apol created this revision.<br />Restricted Application added a subscriber: kdevelop-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D5584" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>When we develop our software, we usually don't develop the application just<br />
for us. In the linux world we have a big problem with distributing our<br />
software beyond software tarballs and this abstraction aims at integrating<br />
the solutions created for deploying software so that it can be integrated<br />
in our workflow when developing.</p>

<p>As you can see in the proposed IRuntime class, there's 2 main things<br />
abstracted:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">the file system, by converting file paths into the runtimes' back and</li>
</ul>

<p>forth. (e.g. include directories)</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">processes, by running the processes we execute to interact and</li>
</ul>

<p>introspect the system (i.e. cmake or gdb)</p>

<p>For a proof of what we're discussing, I implemented two plugins: flatpak<br />
and docker.</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">docker: is more of a proof of concept nowadays, in general it just works</li>
</ul>

<p>in terms of running processes but there we don't (yet?) have integration<br />
with the file system.</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">flatpak: allows us a full-featured environment for creating and deploying</li>
</ul>

<p>desktop applications, which offers many simplifications over how we've been<br />
working so far.</p>

<p>Here's a couple of videos showing the kind of things we can do and a<br />
proposal for a workflow.</p>

<p>Docker: <a href="https://youtu.be/7a4qbQ1rrYc" class="remarkup-link" target="_blank" rel="noreferrer">https://youtu.be/7a4qbQ1rrYc</a><br />
Flatpak: <a href="https://youtu.be/Gh9nT7tFI6g" class="remarkup-link" target="_blank" rel="noreferrer">https://youtu.be/Gh9nT7tFI6g</a></p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R33 KDevPlatform</div></div></div><br /><div><strong>BRANCH</strong><div><div>runtimes</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D5584" rel="noreferrer">https://phabricator.kde.org/D5584</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>interfaces/CMakeLists.txt<br />
interfaces/icore.h<br />
interfaces/iruntime.cpp<br />
interfaces/iruntime.h<br />
interfaces/iruntimecontroller.cpp<br />
interfaces/iruntimecontroller.h<br />
language/backgroundparser/backgroundparser.cpp<br />
outputview/outputexecutejob.cpp<br />
outputview/outputexecutejob.h<br />
plugins/CMakeLists.txt<br />
plugins/docker/CMakeLists.txt<br />
plugins/docker/Messages.sh<br />
plugins/docker/dockerplugin.cpp<br />
plugins/docker/dockerplugin.h<br />
plugins/docker/dockerpreferences.cpp<br />
plugins/docker/dockerpreferences.h<br />
plugins/docker/dockerpreferences.ui<br />
plugins/docker/dockerpreferencessettings.kcfg<br />
plugins/docker/dockerpreferencessettings.kcfgc<br />
plugins/docker/dockerruntime.cpp<br />
plugins/docker/dockerruntime.h<br />
plugins/docker/kdevdocker.json<br />
plugins/docker/kdevdockerplugin.qrc<br />
plugins/docker/kdevdockerplugin.rc<br />
plugins/executescript/scriptappjob.cpp<br />
plugins/flatpak/CMakeLists.txt<br />
plugins/flatpak/Messages.sh<br />
plugins/flatpak/flatpakplugin.cpp<br />
plugins/flatpak/flatpakplugin.h<br />
plugins/flatpak/flatpakruntime.cpp<br />
plugins/flatpak/flatpakruntime.h<br />
plugins/flatpak/kdevflatpak.json<br />
plugins/flatpak/kdevflatpakplugin.qrc<br />
plugins/flatpak/kdevflatpakplugin.rc<br />
shell/CMakeLists.txt<br />
shell/core.cpp<br />
shell/core.h<br />
shell/core_p.h<br />
shell/runtimecontroller.cpp<br />
shell/runtimecontroller.h<br />
shell/runtimesmodel.cpp<br />
shell/runtimesmodel.h</div></div></div><br /><div><strong>To: </strong>apol, KDevelop<br /><strong>Cc: </strong>kdevelop-devel<br /></div>