phabricator is yet another webapp to maintain. Every now and then an update breaks it such as recently an update broke something which worked for a long time: the outbound mailer. Other issues with phabricator: we require 3 user accounts. Forums, wiki, and issue tracker. The latter is certainly the most underused where the fewest people sign up. Also other issues.
Often we have a forum subject with the “real” discussion and then a phabricator ticket as reminder to actually implement what was being discussed, some duplication. The main feature used by phabricator: issue tracking, open/close status and tags. So I was wondering if discourse is capable to replace phabricator.
I just noticed we have “only” 100 open tickets.
Correction: I just noticed we have “only” 220 open tickets.
You can create a comment in a separate post such as:
Please open.
Please close.
Please re-open.
Please add tag testers-wanted .
Please remove tag component_security .
If appropriate, the tag will be changed by a forum moderator. Such comments might be deleted if inappropriate, duplicated or for brevity of the discussion (such as in case the status was only not updated due to as mistake).
If a forum thread is not tagged with whonix-15 (the current stable release of Whonix ™) at time of writing to whonix-16 (the next Whonix ™ release) then it is not on the roadmap. In result chances the issue will be resolved (feature implemented, research/task done, or bug fixed) is lower. Please abstain from debating priorities which issue is more/less important or when it should be implemented. (reasons)
Tags should not be appended to every discussion or question about the related subject.
The goal of forum tags is to maximize Whonix ™ forum’s usefulness as a roadmap and issue tracker for Whonix ™ project developers.
Configured the forum software to allow all members of trust level 4 group to edit forum tags.
Anyone interested in triage of tickets can request access to this group.
Eligible is everyone where it’s reasonably certain that it’s a serious contributor. Such as people with significant, long term contributions such as research, code, documentation, user support.
phabricator has to be soon disabled. I recommend to archive any tickets anyone cares about. Otherwise these might be lost. Or even better, migrating those to this forum.
do we want to migrate only the open issues? Or do we want the resolved issues too for historical purposes? how do we want is structured in discourse? Maybe we could have a readonly forum for the closed issues or something?
I successfully have the issues loaded in to JSON, now I can simply programmatically post them to discourse…just need to figure out how we want it structured
I am guessing the title can be the topic subject, and the description can be the post body. Then we just iterate through them all. My script is almost complete. Will post it here shortly
I was able to get a phabricator API key through the app, but am unable to get a discourse API key without @Patrick issuing it for me. It might be worth making a separate account to do the migration, so that not all the issues are posted from me.
Would be good if all phabricator links (or only tickets) (except spam if you can find more) would be web archived beforehand. That is so old links don’t break.
Could you check with some simple “grep” query first if there is spam in any tickets before web archiving and re-creating tickets in the forums?
Good enough.
Better.
Otherwise auto archive them on the web archive?
Difficult, time consuming? Could even be two new sub forums. Archived tickets and active tickets.
readonly not needed. But sub forums would prevent the development forum getting flooded.
if yes then not too important. Should not become a blocker. Initially would be spammy but over time old forum threads (prior tickets) would fall down in history.
Difficult to persist the status of these tickets? A simple comment that the ticket was solved, resolved, won’t fix (just it was expressed textually in phabricator) would suffice. No need to close the discussion “for real” (using the forums function) so that nobody can reply anymore. Nothing controversial in the tickets. If that was required could be done manually.
Yes. That would be great. Could you create account name:
phabricator-migration
(or so)
please? Then I upgrade the account.
If it is only a very few of these cases we could go ahead and migrate the broken ones manually. Let’s see if / how fast the new upstream phorge replies.
I might be able to pull it through the API. Will report back. Otherwise, we might be able to do some fancy SQL to generate a CSV and archive it
Pseudo code (dont know the exact data layout) but something like this:
SELECT * FROM issues
INNER JOIN users.username AS issue_user ON issues.user_id = users.id
INNER JOIN comments ON issues.id = comments.issue_id
INNER JOIN users.username AS comment_user ON comments.user_id = users.id
Then just loop through it, format, and post to discourse API