Summary
    Labels
    Empty

    Overview

    labels are meant to be a lightweight, dynamic, cross services and cross project way to group things together

    • Lightweight: easy to set (one click), via comments or through API automation. No history, No ownership
    • Dynamic: labels can be set for a couple of minutes / hours to indicate that some attentions are needed or to flag something that is not validated by CI. It can also be used to indicate what is part of a release.
    • Cross services: artifacts, pull requests, documents, etc.
    • Cross projects: a label can be used across projects

    Labels by themselves are not that much useful, they are really meant to be dashboarded (either Project or Personal Dashboard).

    Principles

    Labels are a new element of information that comes in addition to existing metadata (descriptions, titles, fields, etc). For instance we don't intend to "merge" them with "Open list" fields of trackers. In the same way, there won't be a new changeset in artifact history when someone use a given label.

    Cross project handeling

    For cross project management, the proposal is to use the "Duck typing" approach. If 2 projects use "Emergency" label, and if we dashboard informations from those 2 projects, we assume it's the same thing.

    Nevertheless, labels will be managed projects by project. If one of the 2 projects decide to rename "Emergency" into "Urgent", then the cross project dashboard will no longer work.

    To avoid any information leakage between projects, when someone sets a label, the autocompletion of proposed label will only propose the label of the current project.

    First steps

    While the feature is meant to be global, the first step is to be able to dashboard pull requests easily

    On each pull request, it's possible to set a label (Emergency, UI, Need DB expert, etc). Anyone who can edit the PR can set or remove labels. When adding a new label, the list is autocompleted with label already used. If someone in the project already used "Need DB expert", when I start typing "Need", I'll be proposed "Need DB expert". The autocompletion is based on current project labels.

    On project dashboard, one can add a new widget to display what is labelled with certain labels. For instance, admin can decide to see:

    • "Review requested"
    • "Need DB export" AND "Emergency"

    When several labels are selected, it's automatically a AND between the elements:

    • If a PR has "Review requested", "Need DB expert", "Emergency" it will be displayed in both lists
    • If a PR has "Review requests", "Need DB expert" it will be displayed only in the first one.
    • If a PR has "Need DB expert" it won't be show.

    As a project administrator, in project admin section. I have a view where I can:

    • See all used labels
    • Create labels in advance
    • Remove some labels
    • Rename labels
      • On rename, if the new name already exists, the Tuleap propose to merge the 2 labels
      • Eg. Given I have "Emergency" and "Emergencies", When I rename "Emergencies" in "Emergency", all items labeled "Emergencies" will now be labeled "Emergency"

    On project duplication from template, existing labels are duplicated

    On project XML import/export labels are exported/imported

    Next

    • On pull requests
      • Replace "CI status" information by labels (CI: OK, CI: KO)
      • Add label of "Mergeability" of a PR
    • Manage new items
      • Apply labels on artifacts, documents, file releases, milestones.
    • Freeze a label
      • Once freezed a label can no longer be added/removed on corresponding items (however items might be deleted)
    • Cross project label dashboards
      • Pretty much like Cross project widget, one can select several projects on which label will be queried
      • The label can also be managed across project (to ensure all projects use the same labels and rename if needed)
    • Label customization
      • Ability to choose colors of labels
    • Label navigation
      • Click on a label gives the list of all items that also use this label
    Denis PILAT (denis_pilat), Laurence Terrien (ltn)
    Progress
    Empty
    Empty
    Closed
    Details
    #10452
    Manuel Vacelet (vaceletm)
    2018-07-17 11:29
    2017-07-13 11:32
    Attachments
    Empty
    References

    Follow-ups

    User avatar
    Laurence Terrien (ltn)2017-07-18 18:20
    last edited by: Laurence Terrien (ltn) 2017-07-20 15:01

    Hi

    I have submitted to developpers, first feedback is good, I will come back to you if comments are raised.

    OK is confirmed by Guillaume Chatelet

    Thanks

     

     

    User avatar

    About document, can we put a label on a version of a document ?

    Yes but we should find a way to distinguish the 2 cases:

    • I want to label a document, whatever version it is (:latest)
    • I want to label a specific version of the document

    Any suggestion for that ?

    Is there a notion of timestamp for lable ? Ie when an artifact, a FRS, a doc is "labellised", will is be possible to see when it has been labelised (if above question's answer is "no", at leat time setamp can be used to determine version.

    ATM there is not "history" information associated to label addition/removal.

    Could you describe a concrete use case where this information would be useful ?

    User avatar
    About document, can we put a label on a version of a document ?
    Is there a notion of timestamp for lable ? Ie when an artifact, a FRS, a doc is "labellised", will is be possible to see when it has been labelised (if above question's answer is "no", at leat time setamp can be used to determine version.
    User avatar
    • Description
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    • CC list set to Laurence Terrien (ltn), Denis PILAT (denis_pilat)