In Progress
Status Update
Comments
da...@gmail.com <da...@gmail.com> #2
> "keep in our radar"
What does would mean? Say, find-owners would be voted to be in this category: "non-core (high-priority)" and will be places on our radar.
Who would go ahead and fix broken CI (for years) for this plugin, tracked in thishttps://crbug.com/gerrit/12512 ?
I think one huge problem that can be easily fixed with the current plugin state: most of them are lucking stable branches. For one, some plugins are not maintained any more, for another, the current maintainer disagree with the idea of regularly cutting of the stable branches. We should re-consider this policy, and always create stable branch for all plugins that known to still work and be maintained.
What does would mean? Say, find-owners would be voted to be in this category: "non-core (high-priority)" and will be places on our radar.
Who would go ahead and fix broken CI (for years) for this plugin, tracked in this
I think one huge problem that can be easily fixed with the current plugin state: most of them are lucking stable branches. For one, some plugins are not maintained any more, for another, the current maintainer disagree with the idea of regularly cutting of the stable branches. We should re-consider this policy, and always create stable branch for all plugins that known to still work and be maintained.
lu...@gmail.com <lu...@gmail.com> #3
> > "keep in our radar"
> What does would mean?
IMHO keeping in our radar means two things:
1) For a stable release: validate that the plugin still works (and fix if it doesn't) when we change a Gerrit public API in a stable branch. (Dave Borowitz was used to do so with a list of plugins in his radar, which included also some of my plugins)
2) For a new release: validate that the plugins still works (and fix if it doesn't) when we make a brand-new release.
Does that make sense?
> Say, find-owners would be voted to be in this category: "non-core (high-priority)" and will be places on our radar.
This is an hypothesis of course, because my proposal is to run a survey to get that list :-)
> Who would go ahead and fix broken CI (for years) for this plugin, tracked in thishttps://crbug.com/gerrit/12512 ?
The Gerrit maintainers IMHO, what do you think?
> I think one huge problem that can be easily fixed with the current plugin state: most of them are lucking stable branches.
That's a different point I believe: does a stable branch for a plugin give any guarantee that it won't brake in stable branches *AND* it won't brake for future releases? The answer is NO in my personal experience.
If a stable branch of Gerrit makes a non compatible change on a public API or upgrade one of its dependencies (e.g. JGit), the plugins may break, also if they have a stable branch themselves.
But that will be a point of discussion *after* we agreed to make a survey and introduce a process on how to "keep in our radar" the high-priority plugins.
At the moment, we only have core (= maintained by the Gerrit maintainers) and non-core (= maintained by the plugin's maintainer).
> What does would mean?
IMHO keeping in our radar means two things:
1) For a stable release: validate that the plugin still works (and fix if it doesn't) when we change a Gerrit public API in a stable branch. (Dave Borowitz was used to do so with a list of plugins in his radar, which included also some of my plugins)
2) For a new release: validate that the plugins still works (and fix if it doesn't) when we make a brand-new release.
Does that make sense?
> Say, find-owners would be voted to be in this category: "non-core (high-priority)" and will be places on our radar.
This is an hypothesis of course, because my proposal is to run a survey to get that list :-)
> Who would go ahead and fix broken CI (for years) for this plugin, tracked in this
The Gerrit maintainers IMHO, what do you think?
> I think one huge problem that can be easily fixed with the current plugin state: most of them are lucking stable branches.
That's a different point I believe: does a stable branch for a plugin give any guarantee that it won't brake in stable branches *AND* it won't brake for future releases? The answer is NO in my personal experience.
If a stable branch of Gerrit makes a non compatible change on a public API or upgrade one of its dependencies (e.g. JGit), the plugins may break, also if they have a stable branch themselves.
But that will be a point of discussion *after* we agreed to make a survey and introduce a process on how to "keep in our radar" the high-priority plugins.
At the moment, we only have core (= maintained by the Gerrit maintainers) and non-core (= maintained by the plugin's maintainer).
ma...@gmail.com <ma...@gmail.com> #4
Plugins are of varying importance depending on everyone's deployments and diverse topologies.
Even authentication plugins are not all of equal importance to the major deployments.
I think it may be hard to come up with one community-wide prioritized list of plugins.
A survey might still reveal dominant or unanimous non-core plugins though, yes.
However that potential list should not make other plugins second-class citizens.
Less popular plugins are often still essential to some community members.
Now for the unrelated or so:
I agree with the idea that plugins should have explicit stable branches, for every supported Gerrit version of theirs.
Even if some of those branches end up being only trivial upstream merge hops.
-At least they'd explicitly state their build compatibility expectation.
This becomes necessary for plugins supporting bazel standalone, as the branch then holds a specific API version.
For in-tree, explicit stable branches would help select the proper head git ref, for each plugin under each core tree.
No branch is an all-time compatibility guarantee, but at least it makes the expectation explicit.
Branches are usable versioned references similar to tags or labels, here; with their own parts to merge up or "not".
Even authentication plugins are not all of equal importance to the major deployments.
I think it may be hard to come up with one community-wide prioritized list of plugins.
A survey might still reveal dominant or unanimous non-core plugins though, yes.
However that potential list should not make other plugins second-class citizens.
Less popular plugins are often still essential to some community members.
Now for the unrelated or so:
I agree with the idea that plugins should have explicit stable branches, for every supported Gerrit version of theirs.
Even if some of those branches end up being only trivial upstream merge hops.
-At least they'd explicitly state their build compatibility expectation.
This becomes necessary for plugins supporting bazel standalone, as the branch then holds a specific API version.
For in-tree, explicit stable branches would help select the proper head git ref, for each plugin under each core tree.
No branch is an all-time compatibility guarantee, but at least it makes the expectation explicit.
Branches are usable versioned references similar to tags or labels, here; with their own parts to merge up or "not".
ma...@gmail.com <ma...@gmail.com> #5
[Empty comment from Monorail migration]
da...@gmail.com <da...@gmail.com> #6
Consider: project-download-commands plugin.
There is no stable branches at all. I tried to figure out where it can still be built, and was
only able to create stable-3.1 branch with try-and-error approach.
Moreover, there were build jobs defined for every stable-branch. All jobs were broken.
That git reverted in this CL: [1]. Now, de-factor this plugin cannot be used, I tried to
restore stable-3.1 build job in: [2]
Problem Statement: Say my site relies on this plugin in release-2.14/2.15/2.16 branch and now I upgrade to stable-3.0, that is still supported: what should I do?
Possible solutions:
Who is the maintainer of that plugin? According to the plugin matrix, gerrit core maintainers.
Solution 1:
Make the plugin work for every stable branch. So please, can someone from core gerrit maintainers fix that plugin to build/test on stable-3.0 branch?
Solutions 2:
Abandon that plugin. One reason Google opposed to promote new plugins to become core plugins, is because core team would have to take of that plugin. But even without being core plugin, the fact that plugin matrix is claiming that the core gerrit team is maintainer of that plugin (nad my issue that is questioning that decision) was rejected by Marco, would effectively mean, that Gerrit core maintainers have to fix that plugin.
Solution 3:
Declare that plugin as unsupported and inherently broken for older branches and only support it starting frm stable-3.1 branch. But that would effectively mean, that we should create stable-3.2 and so on for this (and other plugins?) to make sure it will not break in future.
[1]https://gerrit-review.googlesource.com/c/gerrit-ci-scripts/+/268652
[2]https://gerrit-review.googlesource.com/c/gerrit-ci-scripts/+/268851
There is no stable branches at all. I tried to figure out where it can still be built, and was
only able to create stable-3.1 branch with try-and-error approach.
Moreover, there were build jobs defined for every stable-branch. All jobs were broken.
That git reverted in this CL: [1]. Now, de-factor this plugin cannot be used, I tried to
restore stable-3.1 build job in: [2]
Problem Statement: Say my site relies on this plugin in release-2.14/2.15/2.16 branch and now I upgrade to stable-3.0, that is still supported: what should I do?
Possible solutions:
Who is the maintainer of that plugin? According to the plugin matrix, gerrit core maintainers.
Solution 1:
Make the plugin work for every stable branch. So please, can someone from core gerrit maintainers fix that plugin to build/test on stable-3.0 branch?
Solutions 2:
Abandon that plugin. One reason Google opposed to promote new plugins to become core plugins, is because core team would have to take of that plugin. But even without being core plugin, the fact that plugin matrix is claiming that the core gerrit team is maintainer of that plugin (nad my issue that is questioning that decision) was rejected by Marco, would effectively mean, that Gerrit core maintainers have to fix that plugin.
Solution 3:
Declare that plugin as unsupported and inherently broken for older branches and only support it starting frm stable-3.1 branch. But that would effectively mean, that we should create stable-3.2 and so on for this (and other plugins?) to make sure it will not break in future.
[1]
[2]
ma...@gmail.com <ma...@gmail.com> #7
> One reason Google opposed to promote new plugins to become core plugins, is because core team would have to take of that plugin. But even without being core plugin, the fact that plugin matrix is claiming that the core gerrit team is maintainer of that plugin (nad my issue that is questioning that decision) was rejected by Marco, would effectively mean, that Gerrit core maintainers have to fix that plugin.
If the maintainers agree that they don't want to be listed as maintainers of gerrit plugins through their owner permission on the public plugins parent project I can change the plugins.py script to not consider the parent project for determining who is a plugin maintainer.
If the maintainers agree that they don't want to be listed as maintainers of gerrit plugins through their owner permission on the public plugins parent project I can change the plugins.py script to not consider the parent project for determining who is a plugin maintainer.
lu...@gmail.com <lu...@gmail.com> #8
A non-core plugin maintained by Gerrit maintainers is a de-facto "no man's land": if it was supposed to be actively maintained by core maintainers is because it is a core plugin, otherwise it will always be at the bottom of the maintainers talk list.
My proposal with this ticket is to prepare a survey to ask the people which ones are the plugins they *absolutely* need to for their Gerrit setup to work.
(e.g. high-availability for a user that is already using two masters in prod)
My proposal with this ticket is to prepare a survey to ask the people which ones are the plugins they *absolutely* need to for their Gerrit setup to work.
(e.g. high-availability for a user that is already using two masters in prod)
ek...@google.com <ek...@google.com> #9
> If the maintainers agree that they don't want to be listed as maintainers of gerrit plugins through their owner permission on the public plugins
> parent project I can change the plugins.py script to not consider the parent project for determining who is a plugin maintainer.
+1 I'm in favour of this solution. The inherited owner permissions just mean that Gerrit maintainers are able to approve changes, but not that they maintain the plugin.
> parent project I can change the plugins.py script to not consider the parent project for determining who is a plugin maintainer.
+1 I'm in favour of this solution. The inherited owner permissions just mean that Gerrit maintainers are able to approve changes, but not that they maintain the plugin.
lu...@gmail.com <lu...@gmail.com> #10
>> If the maintainers agree that they don't want to be listed as maintainers of gerrit plugins through their owner permission on the public plugins
>> parent project I can change the plugins.py script to not consider the parent project for determining who is a plugin maintainer.
>+1 I'm in favour of this solution. The inherited owner permissions just mean that Gerrit maintainers are able to approve changes, but not that they maintain the plugin.
+1 as well from my side. Being a "default maintainer" gives false expectations of "actively maintaining" the plugin, which is not, given the status, for example, of project-download-commands.
>> parent project I can change the plugins.py script to not consider the parent project for determining who is a plugin maintainer.
>+1 I'm in favour of this solution. The inherited owner permissions just mean that Gerrit maintainers are able to approve changes, but not that they maintain the plugin.
+1 as well from my side. Being a "default maintainer" gives false expectations of "actively maintaining" the plugin, which is not, given the status, for example, of project-download-commands.
ma...@gmail.com <ma...@gmail.com> #11
ma...@gmail.com <ma...@gmail.com> #12
Thanks guys and @Matthias.
@David, what does "(nad my issue that is questioning that decision) was rejected by Marco" mean?
What did I do, as I don't recall doing such a thing; what was that exactly?
@David, what does "(nad my issue that is questioning that decision) was rejected by Marco" mean?
What did I do, as I don't recall doing such a thing; what was that exactly?
da...@gmail.com <da...@gmail.com> #13
> @David, what does "(nad my issue that is questioning that decision) was rejected by Marco" mean?
> What did I do, as I don't recall doing such a thing; what was that exactly?
https://bugs.chromium.org/p/gerrit/issues/detail?id=12805#c1
> What did I do, as I don't recall doing such a thing; what was that exactly?
ma...@gmail.com <ma...@gmail.com> #14
>> @David, what does "(nad my issue that is questioning that decision) was rejected by Marco" mean?
>> What did I do, as I don't recall doing such a thing; what was that exactly?
>https://bugs.chromium.org/p/gerrit/issues/detail?id=12805#c1
I see now. My intention in there was not rejecting but (trying to) confirm a related conclusion on the matter.
I was not against your view as such then, David.
-My handling of that Issue was not clear enough it seems.
Next time I think we should follow-up in the tracker upfront when such misunderstandings arise.
But thanks for having clarified that now :)
>> What did I do, as I don't recall doing such a thing; what was that exactly?
>
I see now. My intention in there was not rejecting but (trying to) confirm a related conclusion on the matter.
I was not against your view as such then, David.
-My handling of that Issue was not clear enough it seems.
Next time I think we should follow-up in the tracker upfront when such misunderstandings arise.
But thanks for having clarified that now :)
lu...@gmail.com <lu...@gmail.com> #15
[Empty comment from Monorail migration]
ma...@gmail.com <ma...@gmail.com> #16
Luca, are you still willing to own this task, or should we amend the issue otherwise?
ma...@gmail.com <ma...@gmail.com> #17
Closing this, as no more feedback was provided after the above trailing one.
lu...@gmail.com <lu...@gmail.com> #18
Apologies for not answering to your previous comment: I believe the issue is still valid, as we don't have yet a priority list.
Recently the HA plugin broke in Gerrit v3.3 (project cache eviction not working) and it went unnoticed until now :-(
We should also include the priority list of plugins when validating new releases.
Going to re-open this, unless you are pointing me to another issue :-)
Luca.
Recently the HA plugin broke in Gerrit v3.3 (project cache eviction not working) and it went unnoticed until now :-(
We should also include the priority list of plugins when validating new releases.
Going to re-open this, unless you are pointing me to another issue :-)
Luca.
ma...@gmail.com <ma...@gmail.com> #19
Thanks for your follow-up @Luca, no problem.
We CMs just met and groomed this as closable, but you just confirmed that we should keep this.
Feel free to amend the Owner field if you cannot work on this any time soon or so.
We CMs just met and groomed this as closable, but you just confirmed that we should keep this.
Feel free to amend the Owner field if you cannot work on this any time soon or so.
lu...@gmail.com <lu...@gmail.com> #20
> Feel free to amend the Owner field if you cannot work on this any time soon or so.
I would like to propose this list in the forthcoming Gerrit v3.4 release, so that we have a set of plugins that we validate the new release E2E.
Using one plugin in that list would then give confidence to the users that those plugins work with the new version of Gerrit.
WDYT?
I would like to propose this list in the forthcoming Gerrit v3.4 release, so that we have a set of plugins that we validate the new release E2E.
Using one plugin in that list would then give confidence to the users that those plugins work with the new version of Gerrit.
WDYT?
ma...@gmail.com <ma...@gmail.com> #21
Sure, let's review your proposal once detailed through that upcoming v3.4 context. Thanks! :)
ek...@google.com <ek...@google.com> #22
[Empty comment from Monorail migration]
is...@google.com <is...@google.com> #23
Edits were made to reflect the following in Monorail: auto-CCs.
Description
**********************************************************************https://www.gerritcodereview.com/codeofconduct.html
*** !!!! DO NOT REPORT CODE OF CONDUCT VIOLATIONS HERE !!!!
*** How to report code of conduct violations is described at
***
**********************************************************************
What is the issue that should be resolved?
Some of the non-core plugins are fundamental for Gerrit to function properly (example: all plugins related to authentication, OAuth, SAML, GitHub, ...). At times those plugins are not upgraded or supported on a timely manner on all stable branches, because they are not core and therefore they are left to the "good will" of their maintainers.
How does it impact your experience with Gerrit?https://groups.google.com/forum/#!topic/repo-discuss/dLw_gwkdWR0 )
Migration becomes a big pain-point and Gerrit itself as a product is taking the consequences as a product.
(see the discussion at
Please include ideas on how the issue could be addressed below:
If we could create a classification of "priority list" of plugins that we should "keep in our radar", based on the feedback provided by the community, we could prioritise them when creating a new release and validating the compatibility of existing plugins.
At the moment we have only core vs. non-core.
I believe we should have three categories instead: core, non-core (high-priority), non-core (low-priority).
We could create a survey asking the people: