[Spice-devel] SPICE: contributor guidelines

2020-06-11 Thread Francesco Giudici

Hi SPICE community!
   After thinking a while on the discussion in the thread:
"SPICE: changing the merge rules - a proposal"
I would like to come back on the topic and make explicit the way merge 
requests, changes and reviews are expected to be managed in our 
community. The core points that seems to me all of us want and agree 
upon are:


* Each merge request / patch should get a review (trivial patches may be 
an exception and be merged without review).


* Each merge request / patch should get a review in a timely manner.

Note that the meaning of "timely" and what a "trivial" patch is are not 
defined: I think this is exactly the point for an open source community. 
We don't want strict rules that force people to contribute in a specific 
way or under a strict time-frame and I (we) trust each other to do the 
right thing in respect of the project and the community. This is enough 
once there are clear guidelines.
There could be errors from time to time, sure... but as long as we stay 
together and collaborate as a community, they can be easily fixed.


Unfortunately enforcing some strict rules was exactly what I tried to do 
in my previous mail. It may have brought tension to our community and 
that was not my intention, sorry for that.


So, for the sake of clarity for actual and future contributors, if we 
want to write down a short and simple list of "rules" (guidelines) for 
contributing to the SPICE project, I would say they could be:


1) Get a review before merging a non-trivial patch
2) Keep asking reviews more and more if not getting one
3) Ensure each one asking a review gets one in a timely manner

I would love to read your comments, opinions and ideas.

Francesco

___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] SPICE: changing the merge rules - a proposal

2020-05-18 Thread Francesco Giudici

Hi,

On 18/05/20 12:56, Daniel P. Berrangé wrote:

On Fri, May 15, 2020 at 07:05:50PM +0200, Francesco Giudici wrote:

Hi,
   the community around the SPICE project always tried to follow one
fundamental, implicit rule for accepting code contributions to the project:
every merge request (beside trivial patches) should be reviewed and acked at
least by one before getting merged.
While everyone agrees with this fundamental rule, the actual status of some
SPICE projects makes the rule impractical to let the project move forward.
Let's consider the spice/spice project as an example: the number of
contributions is very low, both on the commit side (only 4 different
contributors with more than 1 commit from the beginning of the year, and a
single contributor with 90% of commits) and on the review side (in the last
40 merge requests before the C++ switch one, 21 had no comments).
The x11spice project is another example: we have only 4 contributors from
the beginning of the year (and a single contributor holding 70% of the
commits) and the reviews on the gitlab merge requests have been provided by
two people only, each one reviewing the merge requests of the other.


I think these paragraphs here are the highlighting the key issue. There
just is not sufficient contribution to SPICE in general. I think the most
important thing is to consider why the SPICE project has such a low rate
of contribution, and more importantly what steps can be done to make SPICE
more interesting to attract contributors.

I like your analysis, thanks for sharing it. I agree the best solution 
would be to attract contributors (we need to find some ideas on how to 
do this and act on them btw!) but my point is also: let's try to keep 
the contributors we already have in the meanwhile. I would like to avoid 
issues about contributions not merged (or merged without agreement) 
causing us to start arguing among us. This could led to a not-so-happy 
environment that may harm the project and the community.



For a project that has such a large codebase and featureset, it is not
healthy to have such a small community. The "bus factor" is waay too
low here, such that SPICE would be in serious trouble as a project if
one or two main contributors moved onto to different work.

So for any changes in process, it is wise to consider what effects those
change have on people SPICE would like to attract as new contributors.


Agreed. I would also add we don't want any change that may also make 
current contributors lose love or even leave the project. Hope this is 
not the effect of this draft "proposal" on anyone, as my intent is 
exactly the opposite!




For example, if new feature work by an existing contributor is discussed
out of band between two contributors, instead of via merge request comments
this sets up new contributors up as second class citizenships - the out of
band discussions are essentially invisible to them, so they can't see or
understand the rationale for decisions. This makes it harder for them to
learn how to effectively contribute to the project.

This is the big thing that concerned me about the merge request that adopted
C++. Reading between the lines I get the impression this was indeed discussed
between the several contributors but out of band, instead of on the merge
request which had no comments. Thus that discussion is invisible to any 3rd
party contributor interested in SPICE. I think this risks discouraging people
from contributed to SPICE, so it is something to be wary of doing too often,
especially for really big technical changes.


Thanks for sharing this! AFAIK, this did not happened: no out of band 
discussion at all about the C++ branch merging. Glad you brought this up.
There were two legitimate competing desires in that situation: one was 
to have a big rework merged by the main contributor to the project. The 
other was to have proper review and agreement before performing such a 
merge.
My personal point is that such a rework, moving to C++, with so low 
review effort on the spice/spice project, would have caused the branch 
to stay there without getting a fair review for a very long time... btw, 
a warning that it was going to be merged if no reviews would have had 
not harmed.
This is why I think would be good to have rules that help on what to do 
in such cases: committer asks for reviews for few weeks before merging. 
The other contributors will know that if they don't reply, the merge 
will happen. They will have at least to put a comment there asking for 
more time if they are interested in reviewing. Wouldn't be a fair 
"game"? ;-)





For the sake of having the projects being able to move forward with a
reduced number of contributors/reviewers, the proposal is to *allow* a
maintainer to merge a Merge Request without an explicit ack if the three
following conditions are met:
1) The Merge Request has been pending for at least 3 weeks without getting
new comments
2) The Me

Re: [Spice-devel] SPICE: changing the merge rules - a proposal

2020-05-18 Thread Francesco Giudici

Hi,

On 15/05/20 23:58, Marc-André Lureau wrote:

Hi

On Fri, May 15, 2020 at 7:06 PM Francesco Giudici <mailto:fgiud...@redhat.com>> wrote:


Hi,
    the community around the SPICE project always tried to follow one
fundamental, implicit rule for accepting code contributions to the
project: every merge request (beside trivial patches) should be
reviewed
and acked at least by one before getting merged.
While everyone agrees with this fundamental rule, the actual status of
some SPICE projects makes the rule impractical to let the project move
forward.


I wasn't aware of a maintenance problem. Perhaps we should first list 
the projects that have maintenance issues & discuss our options, before 
changing the common rule.


The idea of this e-mail is exactly this: let's discuss. But starting 
with a proposal and not only the issue seems to me the best way to try 
to move things forward (also if in the end the proposal my be completely 
changed it would have reached the goal).




Let's consider the spice/spice project as an example: the number of
contributions is very low, both on the commit side (only 4 different
contributors with more than 1 commit from the beginning of the year,
and
a single contributor with 90% of commits) and on the review side (in
the
last 40 merge requests before the C++ switch one, 21 had no comments).


You are omitting the passive reviewers. I consider myself as one of 
them. If you need people to be more proactive, you could at least reach 
me & probably others past contributors.


Great to know that you are looking at the contributions, also if not 
sure what a "passive" reviewer does. In this case anyway I think if you 
add a comment to the branch you looked at it will be much better. I'm 
pretty sure the submitter will be happy that someone looked at it. So, 
reaching out right now: if there are people looking at the branches and 
not commenting, please start doing. Also partial comments (not full 
reviews) may help I would say.




The x11spice project is another example: we have only 4 contributors
from the beginning of the year (and a single contributor holding 70% of
the commits) and the reviews on the gitlab merge requests have been
provided by two people only, each one reviewing the merge requests of
the other.


As projects become more specific/marginal, it's clear that the number of 
maintainers is lower. Yet, we have those projects under the same 
umbrella, and I don't think they should be treated differently.


Sorry, maybe I was not clear: projects under the same umbrella should be 
treated equally. So, the rules will be the same for every project, and 
can be used to address situations where contributions (reviews) are 
missing. This is something that the number above suggests.


 2 active
developers/maintainers can be very healthy, I would say. So do we have a 
maintenance issue with x11spice? Do we want to move the project out of 
the "Spice-space" projects for ex? What is the problem exactly?


I think you are not getting the point, maybe I was not clear: as long as 
we have at least 2 contributors we get a review there. Perfect, nothing 
changes.
What if one of the two developers/maintainers gets sick? For months? Or 
stops for his own reasons to contribute to the project? Should the 
project stop?
Problem is: if there is low contribution we don't want that active 
contributors face even more obstacles to keep contributing. We want to 
keep the project healthy and alive as much as possible.





For the sake of having the projects being able to move forward with a
reduced number of contributors/reviewers, the proposal is to *allow* a
maintainer to merge a Merge Request without an explicit ack if the
three
following conditions are met:
1) The Merge Request has been pending for at least 3 weeks without
getting new comments
2) The Merge Request submitter has kept asking a review on a weekly
basis
3) There are no pending nacks on the Merge Request


It's hard to define a delay to bypass a reviewing & consensus rule. In 
general, it should really be frowned upon.


I understand your feeling and I feel the same at least in part: but the 
rules we are talking about apply only when a project doesn't get reviews 
and gets paralyzed. Also notice that it *allows* a *maintainer* to merge 
the branch, it is not automatic. We give more freedom and trust to 
maintainers over strict rules when contributions are low.


There is clearly more than 
one person interested and using Spice. If the issue is important, it 
should be fairly easy to get someone else to look at the issue in a 
timely manner.


I like your optimism here, but honestly I don't think this is true. But 
anyway, checking if someone will give the review is already part of the 
proposal: the "asking a review on a weekly basis"

[Spice-devel] SPICE: changing the merge rules - a proposal

2020-05-15 Thread Francesco Giudici

Hi,
  the community around the SPICE project always tried to follow one 
fundamental, implicit rule for accepting code contributions to the 
project: every merge request (beside trivial patches) should be reviewed 
and acked at least by one before getting merged.
While everyone agrees with this fundamental rule, the actual status of 
some SPICE projects makes the rule impractical to let the project move 
forward.
Let's consider the spice/spice project as an example: the number of 
contributions is very low, both on the commit side (only 4 different 
contributors with more than 1 commit from the beginning of the year, and 
a single contributor with 90% of commits) and on the review side (in the 
last 40 merge requests before the C++ switch one, 21 had no comments).
The x11spice project is another example: we have only 4 contributors 
from the beginning of the year (and a single contributor holding 70% of 
the commits) and the reviews on the gitlab merge requests have been 
provided by two people only, each one reviewing the merge requests of 
the other.
For the sake of having the projects being able to move forward with a 
reduced number of contributors/reviewers, the proposal is to *allow* a 
maintainer to merge a Merge Request without an explicit ack if the three 
following conditions are met:
1) The Merge Request has been pending for at least 3 weeks without 
getting new comments

2) The Merge Request submitter has kept asking a review on a weekly basis
3) There are no pending nacks on the Merge Request

Note that having patches reviewed would still be the preferred way. If 
at any time the number of contributors would raise again, we can switch 
back to the mandatory review rule. Until then the priority is to allow 
the project to move forward.


What do you think? Please share your thoughts and/or contribute with 
your own ideas.


Thanks

Francesco

___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] About decisions and reviews

2020-05-12 Thread Francesco Giudici



On 12/05/20 19:13, Marc-André Lureau wrote:

Hi

On Tue, May 12, 2020 at 5:07 PM Francesco Giudici  wrote:




On 12/05/20 11:24, Daniel P. Berrangé wrote:

On Mon, May 11, 2020 at 12:16:24PM +0200, Marc-André Lureau wrote:

Hi,

About "Move code to C++":
https://gitlab.freedesktop.org/spice/spice/-/merge_requests/62

I would like to know how the decision happened. As long as I have been
involved in the Spice project, we had open discussions and did
mandatory review for anything non-trivial.

This change is substantial, and impacts the work and contribution of
others. Where did the discussion happen? Who reviewed the code
changes?


Looking at that merge request, it is pretty surprising to see a 100
patch long series merged with no review comments visible on the code
from other maintainers.

Regards,
Daniel



I see your points: a proper discussion and fair review on the branch
would have been the way to go.
To have a fair overall picture btw, I think we should also consider some
other points:
$> git shortlog --since 01/01/2019 -s -n
 411  Frediano Ziglio
  29  Victor Toso
  20  Uri Lublin
  14  Francois Gouget
  11  Christophe Fergeau
  10  Snir Sheriber
   6  Eduardo Lima (Etrunko)
   6  Jonathon Jongsma
   6  Kevin Pouget
   6  Lukáš Hrázký
   5  James Le Cuirot
   3  Thiago Mendes
   2  Rosen Penev
   1  Benjamin Tissoires
   1  Christian Ehrhardt
   1  Douglas Paul
   1  Gilmar Santos Jr
   1  Jeremy White
   1  worldofpeace
   1  谢 昆明


To be "fair", the number of commits in spice server alone over 1.5y is
not a very good metric. Certainly, Frediano's work is consequent,
thank you, but it's also part of his job afaik.
My point here is that in the last 1.5y there was very little 
contribution to the project apart from Frediano. Same on the review 
side. In this context, I can understand why the branch was merged. I 
have my opinion, but here I don't want to say he did it right or he did 
it wrong: I'm just saying I can understand why he did.






Frediano's branches don't get much reviews (if any... see the full list
of merged/closed MR in gitlab for the spice/spice project). I think we
all agree that his intention is good, which is to just move the project
forward. Wondering who would have looked into his 100 patches branch to
do a fair review in a reasonable time-frame.
I feel (at least partially) guilty for this situation.

That said... at this point the branch has been merged. What are the
proposals now?

Draft a more formal review/commit policy? What if a branch doesn't get a
fair review in an acceptable time-frame? Who will have the last word if
unanimity is not reached?


What does an acceptable time-frame mean? If the work is important, the
project maintainers should do a review in a timely manner. If nobody
has enough time to review changes, isn't it because we, collectively,
have more important things to do? The contributor who proposed such a
change in the first place should realize that.


Well, agreeing on what is "important" is not easy, as it is personal. 
Any contribution is important to the submitter ;-)
But my point is, let's make the rules clearer, so to try to avoid 
similar situations in the future.






Do you want to do a post-merge review to consider reverting the commits?
Do you want to have a detached "C" branch with the former code to be
kept as a "stable C" one?
Or what else?


I am a past contributor to the Spice server, but I regularly have to
read or debug the code. I keep co-maintaining the spice-gtk client,
although it seems others are doing a pretty good job at helping me. Is
there a problem with the Spice server maintenance? I don't know.

What do you want me to say... I am disappointed by this change, the
nature of the change, switching to c++, and the way it happened. It
doesn't reflect practices I like in open-source projects and the way
the Spice project has been developed in the past.

Overall, the way it happened is detrimental to the project imho, and I
would indeed revert the change if nobody reviewed it openly. The spice
server should not to be taken so lightly, it doesn't deserve it
either.


I like the love you have for the project. Really, great to see it. It is 
also ok to disagree and argue. But when you say "taken so lightly, it 
doesn't deserve it" you are putting blame there... Hey, we have all the 
same goal to make SPICE better and better. Frediano merged the branch to 
improve the project, not to make it worse... and he proved to love the 
project too. We are all on the same side!
So, let's move forward... Frediano merged it, this is done. What would 
you propose to do now? Let's move the discussion on what to do now :-)


Francesco

___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] About decisions and reviews

2020-05-12 Thread Francesco Giudici



On 12/05/20 11:24, Daniel P. Berrangé wrote:

On Mon, May 11, 2020 at 12:16:24PM +0200, Marc-André Lureau wrote:

Hi,

About "Move code to C++":
https://gitlab.freedesktop.org/spice/spice/-/merge_requests/62

I would like to know how the decision happened. As long as I have been
involved in the Spice project, we had open discussions and did
mandatory review for anything non-trivial.

This change is substantial, and impacts the work and contribution of
others. Where did the discussion happen? Who reviewed the code
changes?


Looking at that merge request, it is pretty surprising to see a 100
patch long series merged with no review comments visible on the code
from other maintainers.

Regards,
Daniel



I see your points: a proper discussion and fair review on the branch 
would have been the way to go.
To have a fair overall picture btw, I think we should also consider some 
other points:

$> git shortlog --since 01/01/2019 -s -n
   411  Frediano Ziglio
29  Victor Toso
20  Uri Lublin
14  Francois Gouget
11  Christophe Fergeau
10  Snir Sheriber
 6  Eduardo Lima (Etrunko)
 6  Jonathon Jongsma
 6  Kevin Pouget
 6  Lukáš Hrázký
 5  James Le Cuirot
 3  Thiago Mendes
 2  Rosen Penev
 1  Benjamin Tissoires
 1  Christian Ehrhardt
 1  Douglas Paul
 1  Gilmar Santos Jr
 1  Jeremy White
 1  worldofpeace
 1  谢 昆明

Frediano's branches don't get much reviews (if any... see the full list 
of merged/closed MR in gitlab for the spice/spice project). I think we 
all agree that his intention is good, which is to just move the project 
forward. Wondering who would have looked into his 100 patches branch to 
do a fair review in a reasonable time-frame.

I feel (at least partially) guilty for this situation.

That said... at this point the branch has been merged. What are the 
proposals now?


Draft a more formal review/commit policy? What if a branch doesn't get a 
fair review in an acceptable time-frame? Who will have the last word if 
unanimity is not reached?


Do you want to do a post-merge review to consider reverting the commits? 
Do you want to have a detached "C" branch with the former code to be 
kept as a "stable C" one?

Or what else?

best,
Francesco

___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel