repositories beyond kde-workspace

Aaron J. Seigo aseigo at kde.org
Tue Jan 15 12:58:41 UTC 2013


here are my current thoughts on these questions:

On Monday, January 14, 2013 17:51:50 Aaron J. Seigo wrote:
> * where should the repositories live?

i'd like to see a single Workspaces category on projects.kde.org. the current 
kde-workspace repo would be moved to it, and we'd add in all the other 
repositories which also make up workspaces.

so instead of having bits in extragear as well as some in the "KDE" area on 
projects.kde.org, we'd have all of our workspace pieces in one place.

of course, projects could keep their repositories elsewhere if they wish. but 
we would only consider repositories maintained in Workspaces as candidates for 
being made a part of our desktop product. repositories elsewhere would be 
considered 3rd party add-ons that others would need to work integration 
strategies out for.

this let us define our scope clearly. right now we have repositories scattered 
in various places and it becomes very difficult to know what all ought to be a 
part of the Workspace releases and strategy.

i think it would make sense to move the Plasma Active related repositories 
there as well (plasma-mobile, plasma-active-maliit, ..)

this would imply other changes related to releases, which i'll cover below.

in the more distant future, i think it would make sense to split up the 
monolithic kde-workspace repository a bit as well .. but we can figure that 
pickle out later.

> * what should the devel strategy of these repositories be?

i'd like to see at most 2 development methods defined and used. this is to 
ballance between the idea that "one method will not fit every project" and 
"having consistency makes it easier to move between and work on different 
projects". these might be:

* "always releasable master" with an integration branch
* feature-branch based devel with merges into master

we would need to explicitly define which each repository is practicing. the 
choice woudl be up to the maintainer of the module.

coding style should also be harmonized across all repositories for similar 
reasons.

> * what should the release cycle of these repositories be?

at least for now, kde-workspace itself will need to maintain the 6 month KDE 
SC release cycle.

for smaller repositories, or repos like plasma-mobile, this just does not make 
sense. they may need to release more often or in response to different external 
needs.

however, when we do an SC release, we should try to include a tarball for 
every module based on their last stable release. the 'C' in 'SC' stands for 
"compilation", after all.

this way every module can do releases at their own pace, and we can still offer 
a twice a year drop of "everything".


i think this could have several useful effects, such as:

it will drive us to include only repositories in these "everything" releases 
that can be co-installed. so, for instance, if we want to be able to switch at 
runtime between a touch focused Plasma Active shell and a Plasma Desktop one, 
then we will need to work on making it possible to ship them together in a way 
that everything can be build accordingly.

it may also give us the needed motivation to document what we consider a 
"Plasma Desktop" configuration. downstreams may not follow this 100% in their 
packaging decisions, of course, but it will give us a clear idea of what we're 
aiming for and help downstream integrators figure out how to deliver our 
offering better as well.

> * how do we want to coordinate on direction, strategy, needs, overall
> composition, etc?

maintainers and communication ... :)

each repository must have a maintainer that needs to be kept somewhere public 
so we all know who those people are, and what their module focuses on. that 
way we can know who should be included in which discussions.

(kde-workspace is a bit complicated: it needs a few maintainers as it contains 
a number of individual projects. this is perhaps a clue that we could/should 
break it up in future.) 

projects may have their own mailing lists, but all maintainers need to be 
subscribed to (and active, as relevant) to a shared workspace mailing list. 
this could be plasma-devel@, or a new mailing list (i don't have strong 
feelings way way or the other on this).

we also should have 2-3 people who take on the role of workspace coordinators. 
one of these people needs to take on the responsibility of ensuring a process 
is carried through for a given Workspace release. they can rotate this role 
between them, and they can of course be replaced as needed. the people doing 
this need to be relatively decent at herding cats (that's us :), organizing 
and holding meetings as needed, ensuring schedules are being adhered to and 
watching goal targets. given that, those who have those skills and can put 
aside the time time and energy to do it would probably give us our 2-3 people 
pretty easily.

then we define a repeatable plan and the coordinators ensure it gets 
implemented (repeatedly :), including:

* at the start of each (shared) release cycle, an irc meeting with as many 
contributors in attendance as possible, esp maintainers. the meeting should 
result in a set of goals and expectations for the release.

* at the SC feature freeze, or if we depart from that then 2/3rd the way 
through the combined release cycle, examine those goals and expectations, see 
where we are, which needs doing, etc.

* coordinate the combined release

* keep an eye on activity in the repositories for big changes that might get 
missed as needing coordination between modules

* try to keep public communication going (e.g. encouraging people to blog ;)

* ensure that cross-repository/project topics are getting attention. 

* ensure that we have at least 1 dev sprint per year.

* ensure that we have ample opportunity to meet and coordinate at Akademy.

note that the coordinators don't necessarily need to do all of the above 
themselves, they just need to ensure that it is getting done.

maintainers would commit to:

* communicating their projects needs and goals (might make sense to gather 
this information somewhere centrally)

* communicating upcoming / ongoing changes to each other via the workspace 
mailing list so we can accomodate changes that may have impacts on others 
(among other things, e.g. they get attention in public announcements)

* contributing to Workspace goal setting exercises

* commit to having releasable results that work well with the rest of the 
Workspace components.

> Are we making a product or a toolbox? e.g.:

i'd like to see us focus more on making a product rather than a collection of 
tools. with a set of tools, you have to gather them and put them together 
yourself. there are weak guarantees that any pieces work perfectly with all 
other pieces. 

if we instead focus on making an actual product, we'll force ourselves to 
think about how things fit together, how they look together, how they work 
together. this will in turn allow our downstream partners to create much 
better results as the tools we give them will actually be designed to work 
well with each other.

we can maintain our philosophy of a highly componentized product. we benefit 
from this because it allows us to keep our product agile and easily changeable 
as needed in the future.

by creating a product, we don't need to weld everything tightly together. we 
just need to think about how things can work together and how well they each 
compliment each other. it will encourage us to build shared goals and work 
towards common results.

this is something we are lacking to some extent outside of a handful of 
projects that work very closely already for Plasma Desktop and the group that 
works on Plasma Active.

> Shared or individual vision?

i'd rather have a shared vision, and I think this will flow naturally from 
focusing on creating a "product" rather than only a "toolbox"

i think each project team needs to self-determine how to achieve that vision 
in their repository.

so we decide where we want to end up together, but we draw the path we take on 
that journey ourselves. as long as we communicate as we're doing so, we'll end 
up with the flexibility to do what we need to do in the project pieces we're 
responsible for without someone dictating to us while also heading along 
similar roads.

> What attributes in our products do we aim for?

power and beauty in a shape anyone can use.
a combination of innovative ideas and adopting best practices.

-- 
Aaron J. Seigo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20130115/25620657/attachment-0001.sig>


More information about the Plasma-devel mailing list