Hi Gerrit Devs,
A few years ago, our engineers implemented a great (IMHO) Label/Tagging system for Gerrit [1]. This feature would allow the users to append generic string based metadata to changes via UI/SSH/RestAPI.
[1] https://gerrit-review.googlesource.com/#/q/topic:edit-labels-in-change-screen
The “tags” (sorry, I know the word is reserved for other purposes) or labels could be used for searches (and dashboards), classifying changes with company specific data or helping teams organizing their work/workflow.
Examples:
* Tagging changes with build labels.
* Tying Gerrit to an ALM, allowing us to create dashboards for high priority changes thus making it easier for teams to plan their reviews.
* Help teams tag changes with meta data from the backlog stories: Prio/Size/Sprint No/Issue Nr/Etc.
* Classify changes around affected areas. E.g. Core, UI, Backend etc.
* Allowing the Gerrit-Trigger Plug-In to tag chances currently building or completed building.
I made a quick mockup how the feature could look in the new change screen:
http://i.imgur.com/OgJhG8v.png
And when adding new tags/labels:
http://i.imgur.com/T1azkvk.png
I am certain teams will find other and even better ways to use the tagging system. If the feature is not wanted by the organization, reading/writing tagging rights could be controlled and disabled through capabilities.
The first time around, this feature was pretty much completed but never merged. One of the reasons was the need for a new database schema, which was not really popular since work had just begun to migrate from a database approach to storing meta data in Gits.
However, nowadays it seems reasonable to implement the feature using Git Notes tied to the Change and then index the data using the secondary index, like Lucene or Solr.
So before we restart the work on this feature:
* Is this something the community want to see in Gerrit?
* Is there any reason not to make it a core functionality?
* Is the UI design reasonable?
Please give us your thoughts on this.
Cheers
Gustaf
--
--
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi Luca,
Thanks for your comments!
> Possibly would be nice in the "changes" list to have a list of labels to select (default all selected) so that one can enable / disable the display of changes belonging to certain labels.
Sorry, I’m not really sure exactly what you mean here. Could you perhaps attach a sketch or elaborate a little bit?
Gustaf
Thanks. Perfectly clear now.
I agree, a label cloud (I think that’s the common name for that feature) makes sense and would serve as a nice starting point for browsing changes.
/Gustaf
Thanks. Perfectly clear now.I agree, a label cloud (I think that’s the common name for that feature) makes sense and would serve as a nice starting point for browsing changes./GustafFrom: Luca Milanesio [mailto:luca.mi...@gmail.com]
Sent: den 8 augusti 2014 09:39
To: Lundh, Gustaf
Cc: repo-d...@googlegroups.com
Subject: Re: Labels/Tagging Feature - ReloadedHi Gustaf,from my (social) point of view of Code Review, it is like the "blog" of your project.In order to understand what's going on on Gerrit, I typically go through the changes list as I would read a blog ;-)Changes are the chapters organised sometimes in topics and your proposed "labels" are exactly the labelling of the Blog posts.Having then a "side" panels like this (with "Tags" word replaced by "Label"):
<image001.png>
Hi Deniz,
Long time no see :)
> I think it would be great not to lock such a feature to gerrit and keep it really simple.
Perhaps I am misunderstanding you; Could you please elaborate? Do you mean that this feature is not a good match for Gerrit? I would certainly want to be able to add this kind of easy/searchable metadata without editing the commit message (adding patchsets) to update #tags. What happens if you want to add #tags after the commit is merged?
Best regards
Gustaf
Hi Deniz,
Long time no see :)
> I think it would be great not to lock such a feature to gerrit and keep it really simple.
Perhaps I am misunderstanding you; Could you please elaborate? Do you mean that this feature is not a good match for Gerrit? I would certainly want to be able to add this kind of easy/searchable metadata without editing the commit message (adding patchsets) to update #tags. What happens if you want to add #tags after the commit is merged?
No, I guess people that only push to refs/heads/* would not benefit as the feature is described today. And since you cannot search/query Gerrit for commits that is not tied to Changes/PatchSets, the usability of the “stamps” would quickly diminish regardless.
> Can we really ignore this use case?
Personally, I think we can. This is an enhancement of the review parts of Gerrit. It is there to help classify changes and for users to structure their review workflow. I don’t really see the need to be able to apply stamps to all commits, but I would certainly be happy to get some more inputs on this.
/Gustaf
From: repo-d...@googlegroups.com [mailto:repo-d...@googlegroups.com] On Behalf Of David Ostrovsky
Sent: den 19 augusti 2014 10:46
To: repo-d...@googlegroups.com
Cc: de...@spotify.com; tswi...@cisco.com; Selberg, Sven; mf...@codeaurora.org; Luca.Mi...@gmail.com
Subject: Re: Labels/Tagging Feature - Reloaded
--
No, I guess people that only push to refs/heads/* would not benefit as the feature is described today.
And since you cannot search/query Gerrit for commits that is not tied to Changes/PatchSets, the usability of the “stamps” would quickly diminish regardless.
Hi,
“Gerrit in unaware of this changes at all”
I’m guessing you are referring to commits here.
This suggests to me that you think it is necessary to implement the ‘stamp’ support on a commit level. In the eventuality that Gerrit, in the future, might become aware of all commits in the repositories. Since Gerrit must be aware of non-change-commits in order for “stamp”s for these commits to be useful in Gerrit. Are there any plans for gerrit to become aware of all commits?
This feels like a quite huge implementation. I would dread running reindex on our instance if all commits would be indexed, it would probably take days.
“What happens if Gerrit users that don't enforce review policy, allowing to bypass gerrit review branches, would also want to benefit from this feature?”
What other Gerrit feature except for the ACL, stream-events and replication are they benefiting from today when they bypass review?
If you bypass review you are practically using Gerrit as a git-daemon.
“Can we really ignore this use case?”
Well, whoever chooses not to use the full power of Gerrit probably made a educated decision not to do so. There are other useful features that they have chosen not to use.
“As you described the feature, UI and Lucene integration: 70% of all changes in such projects aren't stampable and only 30% are. Is that what you want? Does it make sense?”
Presently you are not able to comment on ~95 percent of the commits in our gits through Gerrit, and you can’t display them in the side-by-side view either.
“How it is currently implemented, i guess you are right, but every implementation can be changed.”
Amen to that!
However you must weigh the probability of those changes taking place, the effort and cost that is needed to take height for them and the complexity that such concerns introduces to the code base.
Last but not least:
The feature that we proposed is on a change-level, because that matches our use cases. Bringing this feature to a commit level does not.
Even if it would be decided to implement a stamp-support on commit level. To fulfill the use cases, we have brought forth in previous emails, would call for a way to force these ‘stamps’ to behave as if they were on a change-level.
/Sven
From: repo-d...@googlegroups.com [mailto:repo-d...@googlegroups.com] On Behalf Of David Ostrovsky
Sent: den 19 augusti 2014 15:47
To: repo-d...@googlegroups.com
Subject: Re: Labels/Tagging Feature - Reloaded
Am Dienstag, 19. August 2014 15:20:51 UTC+2 schrieb Gustaf Lundh:
No, I guess people that only push to refs/heads/* would not benefit as the feature is described today.
>What happens if Gerrit users that don't enforce review policy, allowing to bypass gerrit
>review branches, would also want to benefit from this feature? If i've understood your UI
>suggestion right, Gerrit in unaware of this changes at all, so how tags should be changed
>for these changes? Can we really ignore this use case? As i've understood from the last
>Gerrit User Conference, tons of Gerrit power users don't enforce review policy on their
>projects (ask Edwin, for example).
>I think wording "only" in this statement is wrong. By not enforcing review policy by project in this context meant the
>change owner may or may not bypass review branch for specific change at hand. That's her decision: if she thinks
>it is harmless change she may bypass the review (well we know, that always the trivial changes that always break
>master). In practice, for many projects that means, that you have 30%/70% (or other way around) relation between
>changes.
>As you described the feature, UI and Lucene integration: 70% of all changes in such projects aren't
>stampable and only 30% are. Is that what you want? Does it make sense?
And since you cannot search/query Gerrit for commits that is not tied to Changes/PatchSets, the usability of the “stamps” would quickly diminish regardless.
>How it is currently implemented, i guess you are right, but every implementation can be changed.
--
--
To unsubscribe, email repo-discuss...@googlegroups.com
I think if this feature is implemented in the refs/notes space, you would have the best of all worlds: labels can be added locally; labels can be searched locally; labels can be applied after the commit is created; labels can be applied to merged commits; labels are not dependent on Gerrit; labels can be grouped by user, group, etc. What did I miss?
With the right sort of controls, I suppose most metadata could be considered special cases of the same space. Reviewed, verified, abandoned, open, branch, etc. Yeah, ok, maybe that's going a bit too far.
But I'm serious about the notes space. What's not to love?
Phil
P.s. for a minute i thought maybe this thing should be called a hash; then I realized that's overloading TWO already common Git words.
--
--
To unsubscribe, email repo-discuss+unsubscribe@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
--- You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss+unsubscribe@googlegroups.com.
On Aug 19, 2014 4:30 AM, "Zu, Bruce" <Bruc...@sonymobile.com> wrote:
>
> Is it bad to call it ‘mark’?
> /Bruce
It seems to me like this is so commonly called a "tag" in the rest the world (as in "tag cloud") that using any other term is going to cause confusion[*]. Of course we can't use "tag", but maybe something close like "flag", "f-tag", "g-tag", etc.
[*] Consider the confusion for new and casual users around "merge" and "submit"; "commit" and "change"; "spin" and "patchset"; and so on.