RFC: support for building on remote/virtual/etc machines

Friedrich W. H. Kossebau kossebau at kde.org
Tue Sep 13 00:37:43 UTC 2016


first of all: congrats for the 5.0 release of my favourite IDE, dear 
maintainers :) So happy KDevelop exists and keeps improving.

Now, there is one issue that bugs me for years, so I want to try to get 
serious with it myself over the following months:
being able to build (and/or deploy) on machines other than the one where I run 
KDevelop on (e.g. my laptop).
Ranging from real remote machines on the other side of the planet to virtual 
local ones (VirtualBox & Co). Or just building as another user on my machine, 
so my normal user account's files are protected from some build tool/script 
going crazy on the home directory accidentally.

So some reasons for doing remote builds:
* other machine is more powerful (or even a supercomputer)
* machine has custom setup
* special build tools only available on that machine
* protection of local system from buggy installation/deployment
* saves energy/disk/memory of my laptop, no noise by fan (if real remote)

Looking at current KDevelop (from master to be sure), I found some support for 
remote systems in the Launch Configurations, incl. Remote debugging. So for 
the last part of configure/build/install&deploy/run the concept of non-local 
systems exists as a start. I want to work on extending this to the complete 
set of build actions over the next months.

For this work I would keep the assumption of KDevelop that the complete 
sources are accessible via the local filesystem and shared with the remote 
systems where the build should happen by the usual ways (mounted remote/
network filesystem or shared directories with virtual machine). So any editing 
of the sources should not be touched in this work.

But any of the steps build/install(&deploy)/run/debug, they all in the end 
should be configurable to be done on other, remote/virtual systems.

Would you welcome such work? Who else would like to work on this with me? Has 
there been some discussion on this already, any links to notes/threads? Any 
previous attempts?

First step would be collecting use-cases, for developing an abstract idea/
model of the different "build" actions (configure/build/install&deploy/test/
run/debug/?), the different target systems and the different communication/
control channels to them.
What naming pattern would you like below https://community.kde.org/KDevelop 
where I would like to do some wiki pages for organizing this work?


More information about the KDevelop-devel mailing list