Improving external coders handling
#1
Current state :

- Most of internals decisions and goal of the Xbmc Team (In terms of pure coding) are not public even if there's some better thing with the read only forum.
- The Team is made with lot's of people that don't handle the same part of the app and may have some different point of views.
- The current way to add change to Xbmc is fork / code / PR then start a discussion or not. (For both internal and external coders).
- The current dev forums are not completely read by most of the Team guys due to tons of posts and lack of time and posts in JSON thread for example can touch UPnP but the UPnP guys won't read the JSON sub forum.

This leads to lots of problems and time loss for external coders and even for the Team.

As a simple sample : https://github.com/xbmc/xbmc/pull/2773

Adding a recursive parameter to Files.GetDirectory
This feature was on the JSON Todo list : http://forum.xbmc.org/showthread.php?tid=163215 and correspond to a real and normal need.
The recursive feature is already approved and merged for all the other JSON commands.
So a PR is made since this is the way to go.

And the someone jumps in and says I don't want that without taking in account all the fact and then discussion start and nothing will goes further or the PR would be refused.
Leading to strange JSON behavior where everything does not react the same.
Leading also to time loss for all the PR participant starting with the coder of course.

Another sample could be the UPnP file listing, that was working on Frodo, that a patch break , a PR is made to correct this, but someone jumps in and says I don't want to allow this (Even if it was present in Frodo and would lead to a major change between Frodo and Gotham, just chosen by one guy on a PR because the actual way Xbmc works don't fit his needs). Luckily someone else jumps in and give a solution that was accepted (well the initial guy who refused haven't but someone have taken the responsibility to merge).

A last sample : http://forum.xbmc.org/showthread.php?tid=161770 a simple feature that is also in the Todo list and would fit some needs.
Despite multiple attempts to get an answer on this, no one takes the responsibility on it.
Since there's were posts talking about Playlist rework, but no way to get more details on it, it would be stupid to code something it if it was to change soon. So either someone knows that and can tell don't do it or do it the JSON way or do it the full way it's ok.
But impossible to have answers and to start working on it.

And since all Team members can't read all forums and check all PR that are made and all commits that are merged this lead to a terrible situation.

To avoid time loss and more efficiency I've asked multiple time to get some validation and discussion before coding without success.
The only start that was good was the apparition of the JSON Todo list, but no way to have any validation to pick any tasks.
Every asks leads to the same answer : code and see what happens.

And the code and see what happens is a major time loss for both the dev and the Team.

The solution is quite easy to that and handled by ITIL.
A simple and logical approach that would fit in can be :

A Request for Change sub forum and a simple post template, nothing more is needed. (If too many end users jumps in, perhaps a external coders group to limit spam)

Each coder post the template containing :
- What the coder want to add
- Why he want to add
- How he will achieve that

Since all Xbmc part have more or less leads, this would simplify the validations and would limit refusal of PR post coding.
This also allow Xbmc rookies to gives advices, like don't do it like that but like this. Or don't forget the impact on ...

Since all is in a same forum, it's easy for Team members to read and less miss things in the flood of Github or dispersed in the whole forums.
Add Accepted / Rejected in post prefix and it become ultra easy to read.

It also leads to a single point for coders to search history, more easily than checking closed PR or the whole forum.

This can lead to official validation and the Thread can be linked in the PR to limit flood and so each one that don't agree can read the discussion and avoid to start a new one on the same things.

There may be other ways to handle this but this proposal is easy to start and would makes lot's of people gaining lot's of time for near 0 investment.
But whatever solution would be chosen IMO something have to be done.

Long post but I really hope this time a discussion can start and find a solution Smile

PS : My english is still bad so please don't take account on formulations and errors Smile
Reply
#2
How about just a RFC prefix in the dev forum? Keep it simple.

If you're actually adding code/features/fixing bugs etc. then I'd personally prefer you post in the main development forum. The JSON-RPC forum, to my knowledge, is primarily for developers that use the API, rather than for developers wanting to adjust the API. Obviously I'd defer to Montellese on that though!

I dunno if that will actually help or not. The simple fact is that the amount of effort devs take is usually correlated with the effort taken by the person writing the code/asking the questions. Once some code is actually written, it's far easier for a developer to comment on the applicability, see complications, see potential alternates and so on. Some of these things simply cannot be foreseen in advance, regardless of good intentions. Ways around this might be to post a simple patch that gets the job done, if in a hacky way (or even hints at how the job would be done) and ask for comments on that.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
Well I was told before to use the JSON forum for FR and discussion.

The main problem in the end is not really the : you have done it wrong would be better like that, this case even if it makes everyone loose time can be hard to find before starting and help users learn as you previously said.
The problem is things that are done and someone jumps and says no.

The no answer leads to dev having lost time in finding how it works and coding so he will obviously try to argue to defends it's jobs and then start the loose of time for the Team.
This is the case that should not happens.

Another benefit of this subforum is easier tracking for example the Playlist.move that I ask a go for months now, I've discovered just after this post that someone have implemented part of if for the drag and drop thing.
You can notice in my post that I was saying my implementation would be useful for this scenario :p
And in the end his patch does not seems to handle all the necessary things for it (read my comment at : https://github.com/xbmc/xbmc/pull/2684#i...t-18912315)
My original post : http://forum.xbmc.org/showthread.php?tid=161770
Questions are quite clear on how and what Smile I even ask a question on something that may be corrected in JSON and linked to this thread about 10 times asking for answers, you can see how many I get Smile

For the I refuse sample I'll link again : https://github.com/xbmc/xbmc/pull/2773
The recursive thing is in the JSON Todo list that I fighted to get (even if impossible to have GOs on it :p)
The recursive is already merged for all other JSON commands.

But someone jumps in and says no, and then the PR will stay here for ever leading to half the JSON supporting recursive and the rest not ?


It seems currently no one have time to correct and improve JSON to get a better Xbmc eco-system.
Since Yatse is working well I find normal to pass some time to help on Xbmc since I can code and it's more profitable to everyone than just giving the Team money. (That I did too but that's not the point :p)

But as most of you my time is precious since rare and limited (Time is the only thing we can't buy) and I can't afford to do things for nothing so I won't code things that will be refused without possibility to modify to include.
And with the current way since there can't be any validation the risk is on every PR so I can't make any PR.

And I'm pretty sure you loose other devs too because of this.

My proposal is quite simple and efficient for everybody to get better not to make anyone loose time Smile
Reply
#4
Hello there, could anybody please let me know what has been the outcome of this exchange here? Any good feedback will be most appreciated. Thanks! Lola.
Reply
#5
As usual nothing Wink

https://github.com/xbmc/xbmc/pull/2773 is a good sample Smile

Closed without valid reason since all other JSON commands still have the recursive parameter that could hang Xbmc (while the PR was updated to prevent all cases ...) and yet it's still in the JSON TODO Wink http://forum.xbmc.org/showthread.php?tid=163215

I quote :

Files
[F] add recursive listing to GetDirectory (see Trac #11209)

So well for my case I stopped trying to discuss and understand the Team choices Smile
Reply

Logout Mark Read Team Forum Stats Members Help
Improving external coders handling3