-
I see with the new notifications that there are three private states: pending, unread, and done. It looks to me as though notifications initially come in as "pending" (which has a single color), but if you mark them as "unread", then there is nice visual distinction between PRs of different public states. I don't get what the "pending" state is useful for, can someone enlighten me? Is it possible to have them skip the "pending" state and go to "unread"? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Below I'll be referring to these screenshots and the parts marked with red letters.
We refer to that as the private status (as opposed to the public state. I do realize that it is a bit unfortunate that these two terms, which are often used as almost synonyms, are here used to two different things. But I am not a native speaker and while I have spend considerable time looking for better terms, I could not find any. You do not have to remember which is which, as this is shown in the UI, at (a) and (b), but when having a conversation about one of these things, it would be good to use assign the terms as I have done.
The menu shown in the screenshot, as well as other menus, optionally show a legend (c), which explains the meanings of the various colors. This legend can be toggled using Issues are gray, pull-requests are colorful. The public state is shown using a shade of gray for issues, and using a color for pull-requests. The "closed" state comes in to variants "we did it" and "we have decided to not do it"; to distinguish these two, the "nope" variants additionally use strike-through. The private status is visualized using the weight of the font and by using a box. Note that we always combine a state face and a status face; that's why we to use different face attributes to signify different aspects of the topics condition. A theme may of course use different colors, but they should make semantic sense, and it is probably a bad idea, to diverge too far from what I have just outlined. You do not have to memorize this, you can just leave the legend enabled. Eventually it will become second nature but it takes a while, no need to force it.
The three private statuses are the same as used in the Github webinterface. Unread (e), pending [aka "read but still in the inbox"] (f) and done (click on (g) to see those).
The initial status is unread, not pending. This is what happens.
Unfortunately there are complications. The relevant part of Github's API is abysmal. I don't say that lightly. I generally think the API is quite good. There are of course parts that I think are suboptimal, but that's not the case here; this part is truly abysmal. The tristate unread/pending/done is represented in the API using a boolean, unread/"either pending or done, but we won't tell you". Of course this could also be represented using two booleans unread/read and pending/done, but the API doesn't do that either. As a result of this, Forge has to use heuristics to decide what a topics status likely is on Github. Further, when you change the status in Forge, only certain status changes can by synced back to Github, because the API has wholes too. (If I remember correctly "change to unread", is the only supported status change.) A completely new topic always starts out "unread". However if you look at using the web interface then you have infact already read it, and the API actually lets Forge determine that that is the case, so if you later sync Forge, it will start out "pending" there. For older topics, the heuristics are more desperate and cannot possibly always get it right. |
Beta Was this translation helpful? Give feedback.
Below I'll be referring to these screenshots and the parts marked with red letters.
We refer to that as the private status (as opposed to the public state.
I do realize that it is a bit unfortunate that these two terms, which are often used as almost synonyms, are here used to two different things. But I am not a native speaker and while I have spend considerable time looking for better terms, I could not find any.
You do not have to remember which is which, as this is shown in the UI, at (a) and (b), but when having a conversation about one of these things, it would be good to use assign …