Introduction of runtimes

Authored by apol on Apr 25 2017, 5:18 PM.

Description

Introduction of runtimes

Summary:
When we develop our software, we usually don't develop the application just
for us. In the linux world we have a big problem with distributing our
software beyond software tarballs and this abstraction aims at integrating
the solutions created for deploying software so that it can be integrated
in our workflow when developing.

As you can see in the proposed IRuntime class, there's 2 main things
abstracted:

  • the file system, by converting file paths into the runtimes' back and

forth. (e.g. include directories)

  • processes, by running the processes we execute to interact and

introspect the system (i.e. cmake or gdb)

For a proof of what we're discussing, I implemented two plugins: flatpak
and docker.

  • docker: is more of a proof of concept nowadays, in general it just works

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

  • flatpak: allows us a full-featured environment for creating and deploying

desktop applications, which offers many simplifications over how we've been
working so far.

Here's a couple of videos showing the kind of things we can do and a
proposal for a workflow.

Docker: https://youtu.be/7a4qbQ1rrYc
Flatpak: https://youtu.be/Gh9nT7tFI6g

Reviewers: KDevelop

Subscribers: kdevelop-devel

Differential Revision: https://phabricator.kde.org/D5584

Details

Committed
apolMay 22 2017, 12:57 PM
Differential Revision
D5584: Introduction of runtimes
Parents
R33:bf183ce7a405: Cleanup implementation of CleanupThread
Branches
Unknown
Tags
Unknown