Making settting up a development environment quick and easy
Open, Needs TriagePublic

Description

During the goals office hour that took place on IRC on 15 March 2018, the issue came up of making it as easy as possible for new contributors to setup a development environment so they can start working on all things KDE.

The main idea that surfaced during the initial discussion was to use some sort of virtual environment, you will find the relevant chat text at 17:21:48 to 17:43:28 of the log. The suggestions were about using either a virtual machine or a docker image. The discussion continued on the mailing list, and this time it was about using janitor. There is an ongoing effort to update the KDE container offered there.

I'm starting this issue so we can continue the discussion and properly track our progress. What is the current status? Can we distinguish any requirements that an ideal implementation would fulfill?

Pinging @ngraham, @Fuchs, @sebas and @adridg as they are the ones I recognize from the people that took part in the discussions so far. Please further ping people I missed or might be interested.

richardbowen added a subscriber: richardbowen.EditedTue, Apr 10, 4:37 PM

On the web side of things, a Dockerfile per web{site, application} would be helpful. That way, those who use docker can do isolated development from containers.

I finally had an "ah-hah!" moment a few weeks ago (thanks to the patience of @hein) when I finally got my development setup properly configured. Eike's gentle but direct question of "didn't we cover this on your last patch?" made me sit back down and follow all the documented steps one by one. With the addition of the right environment variables, I can now download and compile virtually any source module I need.

There are good, detailed directions already on the Community wiki, but the big picture of how everything interlocks remained a little mysterious.

Perhaps I can contribute some kind of flow chart or dependency diagram to illustrate how tools like kdesrc-build operate. The concepts aren't hard, but I clearly "had a moment" when it all suddenly snapped into focus. I'd like to share that for other incoming members.

I'd like to point out again the talk we delivered at Akademy 2017 with @dfaure (it is referred to in the parent task of that one). For most cases we should strive at not forcing people to use a VM or a container. Especially if we want to make it easier for people on non-Linux platforms to contribute. The highest potential solution is the one using conan but since @fredrik prototype no activity has happened in that direction.

@ervin I think you are confusing me with someone else here.

ervin added a subscriber: gladhorn.Sat, Apr 21, 8:06 PM

Good point, I was thinking @gladhorn in fact. Sorry. :-)