This workflow is meant to not lose product in the publishing process, to make checking easier, and finally to keep people updated of the status of their project. Indeed the persons implicated with the google/fonts repo are working remotely from different timezones and sometimes not even knowing each others. It seemed also important to avoid the multiplication of apps to organize the worklow, and to keep all in one place — mostly to avoid copy-pasting PR’s links all the time.
PRs and Issues are monitoring in 2 differents github projects. Then, each font engineers contracted by GF have a personal board to manage their own project. Then we gladly use labels to make commication more efficient within the team, and to help reminding the content of the issues/PRs. I tried to categorize the labels title using prefixes, significant colors and definitions (this is still in progress though, I haven’t finished sorting the issue tracker). Dave can assign people direclty to issues and PRs, or font engineers can assign themselves if they want to complete their priority line.
The Pipeline Overview project is initially meant to be managed by Dave. This is still widely a construction site since I first focus on sorting the PRs.
The idea is to categorize the issues between:
This should give a first sorting of what is relevant to look in the long and wild list of issues. Then, they can be attached to Milestones to give a better prospect view, and we can add labels directly to the issues to give more details about the job.
For the time being, the Milestones and the Pipeline Overview are redundant and unsynchronized. IMO we should either stop using one, or find a way to make them complementary. For eg. Milestones could have a timeline (with not-too-ambitious and regularly-updated quaterly goals), and only contains issues that are meant to be solved short terms — backlog being in the Pipeline Overview.
In a second time, I plan to create templates for issues to help users in defining them and spare us some research time.
The Traffic Jam project is managed by me. It is meant to follow PR from submission to publication, knowing that its content is supposed to be pushed to 3 different servers: the developper sandbox, the sandbox, and finally Google Font API.
Font engineers submit a PR which is then reviewed by Marc and/or me on Tuesdays and Wenesdays. According to the result of this review, the PR is merged or not. The columns of Traffic Jams indicates the PR status and in which server the PR stands. Even though these columns exists, I created redundant labels (to sandbox, to production, live) to allow engineers to be aware of the PR status without checking Traffic Jam, or to have a good overview just by looking at the PR section.
—This can be done directly in the PR
In order for the process to be transparent and efficient, we add the labels below.
Let’s take the example of my board: Rosa’s Roadmap. The board shows issues related to each project (one font = one issue.
You can access a lot of the issue’s informations from the board. Particularly the first comment, in which you can add the link to the upstream repo and a to-do list to keep an archive of the progress of the project. When a PR is opened, we need to link it to its related issue: then the board is automated to move the issue from “in progress” to “done” when the PR is merged.
These boards are of course useless if they are not updated reguarly.
The prohibition of using third-part plug-in to improve the github projects makes this workflow more laborious than it could. Manual stuff could be spared thanks to some plugins — like the interaction between different project boards. It could also help to improve clarity and readability.
Finally, the fact that google/fonts repo is watched by a large audience leads to people commenting our actions in a regular basis. Some interventions are welcome and are actually helping, but most of the time it is making our work a bit more harder and the space of a bit more unsafe. After discussing with the team we thought it would be a good idea to create a “code of conduct” where it could be explained that google/fonts is actually a workspace and therefore needs to be respected as such.