Page MenuHomePhabricator
Paste P8947

Wikimania 2019 Phab Session notes
ActivePublic

Authored by Aklapper on Aug 20 2019, 10:46 PM.
== SESSION OVERVIEW ==
; Title: An introduction to Phabricator, where the developers are
; Day & time: Friday 16 August, 15:00
; Session link: https://wikimania.wikimedia.org/wiki/2019:Technology_outreach_%26_innovation/An_introduction_to_Phabricator,_where_the_developers_are
; Speaker: Andre Klapper (User:AKlapper (WMF))
; Notetakers: David Richfield
; Attendees: 25- 30 individuals
...
== SESSION SUMMARY ==
[introduction]
I spend quite some time in Phabricator. Who's been on phabricator?
Almost all.
Who was confused?
About half
Will introduce what it is, why we have it, the most basid concepts about what it's used for
Also how you can use it to organise projects yourself, not necessarily enginering projects.
Title is to stress that lots of planning is organised on phabricator. Didn't wan to imply that all the devs are there, we have other stuff that's not manaaged there, e.g. gadgets etc.
It's a proj man tool for software projs
How many have seen other tools? e.g. bugzilla, trello, etc.
About 6-8
in proj man software, Try to define who does what work. What one person does is one task. Could be "issue", or "ticket" in other software. Called "task" in phab
Easier to collaborate with phab. In wmf engineering teams, every team could choose what they used internally, so was hard to work together across tasks, because some used mingle, trello, bugzilla,
In 2014 had RFC and phab was chosen.
Who uses phab?
[Slide with examples]
As high level concepts, phab has projects, tasks, users/people.
Various code projects, some specific gadgets where the devs wanted to manage them on phab,
Some teams, some chapters.
WMSE is maybe the biggest example of a chapter who uses phab.
Hackathon sessions are on phab
For people who don't write code, they can still request changes on phab, e.g. removing user account creation limit, or requesting site config changes on local wikis.
People:
Anyone who's technically intersted,
devs
product managers who prioritise work
People who test code changes
Release engineering (when code changes go live)
People doing communication, e.g. technews on Meta
Designers
Translators (e.g. if there are English strings that can't be translated to yourlanguage)
Event organisers
Things are organised around projects, tasks, people [screenshot on slide]
Task has:
Status ('open' on that example) - can change to 'resolved' or 'declined'
Priority - that's not completely objective (see below). Not everyone uses this field. Can be used to plan work by urgency.
Visibility - by default everything is public, but for example security problems must be private.
Description (not on screenshot)
Discussion (if everything isn't quite clear)
Associated projects / tags Might be:
codebase
Topics that go across codebases or teams
Team tags (which teams are involved)
Tags haveStuff in brackets which will be discussed below
Subscribers
Author (won't change once task is created)
Assigneee (might be creator, might not) who is responsible to do the task. Only one per task: not supported and probably not a good idea. Can change over time. Can split task into subtasks if you need multiple assignees.
Projects are used to organise their subtasks. Tasks can have more than one projects, and projects can have multiple tasks.
Description should explain what the project is about.
Q: Always in English?
A: Not necessarily.
Project can have members, but that's not super important.
Q: Difference between members and subscribers?
A: Subscribers are for tasks, members are for projects. Subscribers always get notifications, but members can watch or not watch a project.
Every project also has its own workboard:
Description on the left
Then 'workboard', which can be disabled.
Helps with planning and organising work
Contains columns which contain cards.
Cards can be dragged from one column to another.
Leftmost column is 'incoming'
Assignee field determines whose picture is shown on the card.
Setting priorities:
"lowest" → "unbreak now"
Some projects don't use priority field.
Sometimes creator of task sets high priority, but if they don't work on the task, it might be reset.
If two projects have the same task, but different priority in different teams, you can split the task.
Q: When you open a task on phab, and you don't know whether it's a duplicate, how do you find out?
A: If you're already technically aware of what codebase it might be related to, you can search the open task on that code project. Also search functionality on phab by keywords or by date. Not a problem to create duplicates, and developers can close duplicate tasks.
Q: If I request a config change that might affect many people, can the product manager decide whether it is a good idea?
A: On meta there's a page to request config changes. One step is to gather on-wiki consensus, and only later to raise phab ticket, and to link to consensus evidence.
Q: Can you connect task in terms of which should be done before what?
A: There is a section in every tasks which shows which tasks mention which tasks. Also concept of subtasks and parent tasks: subtasks must be completed first.
Q: If I want to look for tasks, can I use phab with my normal wikimedia account?
A: Just go to phab: it's single-sign-on. If you click login, you are presented with a 'login or register' button. Click that button and you will be redirected for oauth. On your first login you have to enter your email address (different from mediawiki sites).
Q: Can I change the email address later?
A: Yes.
Last aspect is the user profile. [slide: AKlapper's personal user profile]
Shows info, which projects you're member of, your activity log, notification settings, etc.
To report a software problem, you file a task.
Click on the bookmark icon at the top; click on 'create task'. Then you get a form to fill in. Title is necessary, there you right a short description of the task. Can fill in assignee field, but that is rude if you haven't agreed with them. Important: steps to reproduce the bug. Often not well enough described, and developer needs to get back to the task author. Please write expected result and actual result!
Can add tags. Click on search button to get suggestions.
Further down, there's a preview of the task.
Q: Certain problem on enwiki where number of pages in category is incorrectly reported, but it was marked resolved, but it isn't, and new tickets just get closed immediately.
A: I think I've seen those tasks, and it's not always clear whether it's really the same technical problem. You can change the status back to 'open', but you should give evidence if you do that. For example, it might be a different problem, or there could be more ways to reproduce it. However, if it's a really old task, rather create a new one, because the old one might not be relevant.
[something about searching tasks that I didn't get]
Following tasks:
Can receive emails or within phab: in the user settings.
Subscribers and members:
subscribe to individual tasks
"watch" project
Q: [specific issue with menus - taken offline]
More functions:
[on slide]
Help links:
[on slide]
== PRESENTATION / SLIDES / LINKS TO MATERIAL SHARED ==
https://commons.wikimedia.org/wiki/File:Introduction-to-Phabricator-WikiCon-2016.pdf