Task list for site reorganization

This is my plan for implementing the site reorganization. I’m posting it here mostly for myself, but also if anyone has feedback (or really wants to help execute!), I’m all for it!

Items with :robot: are for things I plan to use the API (and scripting python requests!) to handle. Other things will be done by hand in the UI.

I had this temporarily over on Ask Fedora, but as this site is now up and going again, I’m moving it back for the final items.

Test/Devel Tasks

1. [x] Set up temporary site 1. [x] Ask Discourse support to replicate this site there for experimentation. 1. [x] **Turn off all email on the test site!** 1. [x] Set up local admin login. 1. [x] Generate an API key for the scripts 1. [x] Set [max edits per day](https://discussion.fedoraproject.org/admin/site_settings/category/all_results?filter=%20max%20edits%20per%20day) to something ridiculously high 1. [x] 📝 Write script to save category watch/track/first/mute state for all users * [x] 📝 Update script to save category numeric id to name/slug mappings * [x] 🤖 Run that script * [x] verify that it looks... right? 1. [x] delete all tags groups 1. [x] 📝 Write script to delete all tags * [x] 🤖 ~~kill all humans~~ delete all tags 1. [x] Turn on `disable category edit notifications` and `disable tags edit notifications` 1. [x] 📝 Write script to tag all posts based on the category they're in with the category slug * skip #commblog, #mods, #site-feedback, #lounge, #staff -- these categories will remain separate * skip #projects-in-copr, a) it will remain that's staying a separate category and b) that's over 30,000 posts, and we're limited to 60 API calls per second, so it'd take a long time!) * [x] 🤖 run script to tag all of those posts. 1. [x] 📝 Write script to restore category watch/track/first/mute state for all users to equivalent for _tags_ (with one exception of posts in Copr categories) * [x] this should also remove any existing category notification settings * [x] 🤖 Run that script * [x] validate that it looks right 1. [x] play around with tag renaming, update plan below based on that according to whims 1. [x] create tag groups 1. Mess around with category naming and stuff. Does not need to be final, just need to change them some. 1. [x] 📝 Write script to move all topics in a category to another category. * [x] 🤖 run that script to move one category to Project Discussion to test * [x] make list of categories to actually move * [x] 🤖 move stuff from those categories 1. [x] 📝 Improve script so it can move posts by tag * [x] 🤖 run that script to move #friends, #off-topic-fun, and #off-topic-tech from Project Discussion to Water Cooler 1. [x] Figure out what to do about unlisted posts 1. [x] 📝 Write script to mark notifications read for all users. * [x] 🤖 run that script 1. That's all the scripty parts, actually. Mess around with other stuff, if I feel like it, while I've got a test site.

Main Site Prep

  1. December 20 or so: post to #site-feedback that this is happening.
    • note key things like: new categories, tag-focused approach, turning off mailing list mode, future merge of Ask Fedora
    • pin it!
  2. December 23 or so: post global banner that STUFF WILL BE HAPPENING
  3. Post commblog post
  4. devel list post
  5. Verify with Discourse hosting that we have a good backup
  6. December 27 or so: actual work start
    • Change global notice to STUFF IS HAPPENING
  7. Turn on review every post to catch anything coming in while I’m messing with the site
  8. Ask Discourse to make the site Read Only
  9. Ask Discourse to clear the test site and make it like the main site again

Now back on the test site…

1. [x] Set up local admin login. 1. [x] Generate an API key for the scripts 1. [x] DISABLE ALL EMAIL site_settings/category/email?filter=disable%20emails 1. [x] Set [max edits per day](https://discussion.fedoraproject.org/admin/site_settings/category/all_results?filter=%20max%20edits%20per%20day) to something ridiculously high 1. [x] 🤖 Get and save category watch/track/first/mute state for all users 1. [x] Turn on `disable category edit notifications` and `disable tags edit notifications` 1. [x] Rename Tags menu item to "Teams (by tag)"? * this would have been _great_ if we were _just_ doing the one "Discussion" category, but ... that's not how the plan ended up. So maybe "Teams & Tags"? 1. [x] Clean up / remove the various moderator groups. (See [this post](https://discussion.fedoraproject.org/t/hey-machine-learning-mods-magazine-editors-turning-on-fas-group-sync/25873). 1. [x] Delete all tag groups 1. [x] 🤖 Delete all existing tags 1. [x] 🤖 Automatically tag all posts based on the category they are in (category slug is fine) 1. [x] 🤖 Run script to set _tag_ watch/track/first/mute for all users based on saved category preferences (from the previous step where we saved that). Note: do _before_ any tag renames! 1. [x] Create tag groups and include related tags * [x] "1. Fedora Teams and Interest Groups" * [x] "2. News and Announcements" * [x] "3. Social and Fun" * [x] "4. CentOS Teams and Interest Groups" 1. [x] Rename some tags * [x] rename #project tag -> #mindshare * [x] rename #council-discuss to #council * [x] #desktop -> #workstation * [x] #audio -> #jam (because it's about teams, not tech concepts) * [x] #pgm-team -> #program-management * [x] #rpm-packaging -> package-maintainers * [x] #technical-contributors -> engineering * [x] rename #off-topic-fun to #social * [x] rename #off-topic-tech to just #off-topic 1. [x] Create some new key tags for parts of the org chart not currently represented by categories * because general use is the goal! * use either the CSV upload feature or create as part of tag groups * [x] #objectives * [x] #diversity-and-inclusion * [x] #mindshare-committee * [x] #fesco * [x] #design * [x] #quality-assurance * [x] #release-engineering * [x] #cpe * [x] #join 1. [x] Alias some tags * [x] #apps -> #workstation (category is "desktop apps" and that seems like the closest team) 1. [x] Create some tags and immediately alias them * [x] #devel -> #engineering * [x] #test -> #quality-assurance * [x] #qa -> #quality-assurance * [x] #rel-eng -> #release-engineering * [x] #packaging -> #rpm-packagers? 1. [x] look at some of the now-less used tags and consider whether to keep, merge (and remove) or merge and make permanent alias. 1. [x] Rename some categories to keep their nice low numbers * [x] rename coreos (category #5) to **News & Announcements** (`news`) * [x] rename siverblue (category #6) to **Ask Fedora** (`ask`) * [x] rename iot (category #7) to **Project Discussion** (`project`) * [x] rename desktop (category #8) to **The Water Cooler** (`fun`?) * [x] rename desktop apps (category #9) to **Team Workflows** (`workflows`) 1. [x] Fix the permissions and settings for those categories * [x] News & Announcements * all posts moderated * require a tag from the Announcements tag group * [x] make that group: #events, #releases, #social, #project-news, #testdays, #polls, add more if needed * allow other tags (including the Fedora and CentOS team tag groups) * [x] Ask Fedora * hide this for now * [x] Project Discussion * require a tag from the "fedora teams and interests" tag group * allow tags from announcements tag group? I don't think so, but maybe * [x] Water Cooler * [x] possibly a tag group here? #social, #introductions, #off-topic, #random * [x] Team Workflows * no posting in top-level category * [x] CentOS * not sure, check and makes sure seems sane 1. [x] Set category notifications for all users to * Tracked: Community Blog * First: News & Announcements * Muted: Team Workflows, Projects in Copr * _note: admin UI has option to apply this to all users — use that!_ 1. [x] Install [default category theme component](https://meta.discourse.org/t/default-composer-category-component/148048), set to Project Discussion 1. [x] Change the descriptions for * [x] News & Announcements * [x] Ask Fedora * [x] Project Discussion * [x] Team Workflows * [x] The Water Cooler * [x] CentOS 1. [x] Remove any category logos (may ask design team for some later!) 1. [x] Move News & Announcements sub-categories * [x] Move Community Blog to live under News & Announcements * [x] Same with Podcast 1. [x] Move Workflows sub-categories * [x] Magzine -> Magazine Article Proposals * [x] Projects in Copr * [x] Fedora Classroom 1. [x] Move Water Cooler sub-categories * [x] this is just Site Feedback -> Site Help & Feedback * [x] pin some posts in that category 1. [x] 🤖 Move all topics _except_ those in the categories below to Discussion #7 * not those in News & Announcements #5 * not those in Ask Fedora #6 (if any) * not those already in Project Discussion #7, obviously * not those in The Water Cooler #8 * not those in Workflows #9 * not those in Fedora Classroom #20 * not those in CentOS #71 * not those in Projects in Copr #54 * not those in Magazine #57 * not those in Community Blog #61 * not those in Podcast #67 1. [x] Look for posts with no tags in Project DIscussion, fix. 1. [x] Delete the categories we don't want anymore. For each such category: 1. * Open the about this category post 1. * Delete the category 1. * Undelete, unpin, close, and set the topic timer for the "about" post. 1. * Rename "about this category" post to "about this tag" 1. * Move the about post to Project Discussions (or Watercooler) 1. * Make sure the post is tagged properly 1. * edit the post as needed 1. [x] Make and link sidebar tag descriptions for all tags * [x] did letters a-e, got bored * [x] I guess... f-m? * [x] n-z * [x] news * [x] social * [x] centos 1. [x] Make tag descriptions for all tags * [x] a-e * [x] f-m * [x] n-z * [x] news * [x] social * [x] centos 1. [x] 🤖 Move #friends, #social, and #off-topic posts to the Watercooler. * [x] consider fate of #friends tag — add #features #freedom #first? 1. :memo: Write script to tag posts based on keywords in subject (interactively?) * [x] use that script to tag #introductions posts * [x] others? 1. [x] Sort out some topics manually * [x] :memo: Consider hacking move-post script to query on each post, for help in filtering, sorting these * [x] Magazine (move the not-an-article-proposal topics to Project Discussion) * [x] Podcast (move the not-an-announcement topics to Project Discussion) 1. [x] Create **New Topics by Email** sub-category of Workflows * [x] fedoraproject+discussion@discoursemail.com * [x] all new posts moderated * [x] write descriptive text, link to [interacting with this site by email](https://discussion.fedoraproject.org/t/guide-to-interacting-with-this-site-by-email/25960) * [x] Include note about this in [interacting with this site by email](https://discussion.fedoraproject.org/t/guide-to-interacting-with-this-site-by-email/25960) 1. [x] Make sure start-by-mail is off everywhere else 1. [x] Change [email subject](https://discussion.fedoraproject.org/admin/site_settings/category/email?filter=email%20subject) to include tags instead of categories * `%{optional_re}%{topic_title} [Fedora] %{optional_pm}%{optional_tags}` 1. [x] Disable [mailing list mode](https://discussion.fedoraproject.org/admin/site_settings/category/all_results?filter=mailing%20list%20mode) * because this is a trap, really. It's "subscribe to all mailing lists ever and turn off the option for me to make any granular choices". "Watching" a tag is the best way to subscribe. * [x] remove section on mailing list mode from "[interacting with this site by email](https://discussion.fedoraproject.org/t/guide-to-interacting-with-this-site-by-email/25960)" post * [x] update that with a note about subscribing to tags 1. Group for these "watch everything" users [x] Create group `discussion-watch-all` [x] Set the group category watches [x] For good measure, set some tag watches too [x] Add everyone from the list stored previously [x] Now delete the group, since its job is done. 1. [x] Install and play with tag theme components * https://meta.discourse.org/search?q=tag%20%23theme-component * https://meta.discourse.org/t/add-a-tag-column-to-your-categories-page/212102 1. [x] Play with front page organization / appearance in general * set category slug colors from Fedora colorblindness-friendly palette 1. [x] While I'm at it, fix the themes to use theme components instead of stuff edited into main theme CSS/HTML 1. [x] Make Site Help & Feedback topics for tag-related requests * [x] how to request a new tag (and guidelines for tl4 + moderators!) * tags are for teams (SIGs, WGs, etc) not subjects * reflect the org chart: #engineering and #mindshare as broad general buckets * [x] how to get a tag description added or updated * [x] automated tagging via watched words: yea or nay? 1. [x] Add permalinks https://discussion.fedoraproject.org/admin/customize/permalinks for any moved pages (categories, mostly) which now don't exist and which had significant incoming traffic * [x] or fix page pointing to that, if it's on our side 1. [x] Write post on creating tags 1. [x] Write doc on using site with tags as categories * [x] change Project Discussion about page to point to these various docs. 1. [x] Change site banner to point to new docs on using site 1. [x] Set bookmark to remove that site banner (since it can't be expired automatically unlike a pinned post) 1. Do this again, because I messed with some groups and should reset it: [x] Create group `discussion-watch-all` [x] Set the group category watches [x] For good measure, set some tag watches too [x] Add everyone from the list stored previously [x] Now delete the group, since its job is done. 1. [x] Reset [max edits per day](https://discussion.fedoraproject.org/admin/site_settings/category/all_results?filter=%20max%20edits%20per%20day) 1. [x] Copy useful posts from Ask Fedora "Start Here" section to Site Help & Feedback 1. [x] Turn OFF `disable category edit notifications` and `disable tags edit notifications` 1. [x] Ask Discourse to delete all of the notifications that got created. * [x] If they can't do that, 🤖 mark notifications read for all users, because all of this moving around may have created thousands 1. [x] Turn off [review every post](https://discussion.fedoraproject.org/admin/site_settings/category/posting?filter=review%20every%20post) 1. [x] Verify that it all looks good and stuff. 1. [x] Delete the API key I made for this 1. [x] Ask Discourse staff to copy from test site to main site

Finally on the (new) main site!

1. [x] Ask discourse to verify that it looks good and then make new main site read-write again 1. [x] Test that the SSO still works 1. [x] Turn off local password login 1. [x] Turn off [disable emails](https://discussion.fedoraproject.org/admin/site_settings/category/email?filter=disable%20emails)


  1. Fix the email address for the “email in” category.
  2. Check with other site mods and admins if they can create tags accidentally (bad) or intentionally in the Proper Way As Documented (good, obviously, if they can — bad if it needs to be an admin)
  3. Clean up any posts that came in while moderation-for-all was in effect
  4. Post something telling people to flag old posts they happen to notice that seem miscategorized or wrongly tagged
  5. Post call-for-new-mods message
  6. Post message about “about this tag” post ownership
  7. Check with Fedora Magazine folks about how they want to use their category
  8. Ditto Fedora Classroom
  9. Check with the Fedora Podcast folks about whether a category makes sense, or whether an announcements tag would actually be better.
  10. Replace global banner with a banner topic.
  11. Create single topic for (each) fedocal mail under Fedora Discussions
    • update the Fedocal meeting invites
      1. Set their preferences to get email for everything in the topic temporarily
      2. Create the topic
    • make little bot which replies to the Fedocal replies with the date in the Discourse format
    • add a calendar to the top of the topic
    • set that topic to auto-delete replies after a month
    • to appease my sense of order, move all old reminder topics with replies to a single thread collecting them, and just delete ones with no replies.
  12. Post about whether maybe Site Help & Feedback actually should be a top level
  13. Update Council docs
  14. Archive old and no-longer relevant posts in Site Help
  15. Close the docs mailing list, point to new docs tag!
  16. (Try to) convince Fedora Join that this is the way to go too :classic_smiley:
  17. Work with people to update all of their docs
  18. Post announcement to CommBlog and devel list that it’s done
  19. Get a little Community Blog logo that isn’t just the RSS icon
  20. Go through “about this tag” posts, add badge icons and link to relevant badge
  21. Ask Discourse about making the … at the end of long category descriptions be a link.
  22. Ask Discourse about category colors and style “none” when Category Icons is active.
  23. Write Fedora Magazine post about the forum
  24. Sleep
1 Like

Will Fedora Magazine still have a “Meeting and Publication Schedule” calendar in the new organization? If so, you can probably disable the Fedocal meeting reminders for Fedora Magazine.

Also, the last bullet of item 39 looks interesting to me. I don’t know how tags work. Will the posters be required to know to tag their new posts or will there be some special prompting for that? If they have to know to do something special and the defaults send the post to the wrong place, then it might be good to automatically tag posts with subjects that begin “[Article Proposal] …” (case-insensitive) as magazine proposals.

For the calendar reminders, my thought was to, instead of each reminder starting a new topic, collecting them as replies to one. (With a separate topic for each group.) This could be a topic with a calendar at the top like Meeting and Publication Schedule.

The problem with just using that and ignoring Fedocal is that Fedocal is the project mechanism for not double-booking meeting rooms, and unless we come up with a different solution for that, it seems like it’s best to keep that authoritative so there’s just one place to edit.

So my thought was to have that send the meeting reminders to the calendar topic (but set that topic to auto-delete replies to keep it uncluttered). The only catch is that Fedocal doesn’t put dates in the right format. We could either patch it to do that, or we could make a bot that follows the message bus messages Fedocal generates and posts based on those.

1 Like

On tags: on Discourse, tags are really just a different type of category. You can watch, track, or mute them just like a category, and they appear on the navigation bar to the right of categories — like a subcategory.

And although they aren’t displayed this way, you can actually “nest” them — it would be possible to have a “hardware” tag and then if you pick that it follows up with a choice of “CPU” / “GPU” / “RAM” / etc. But I’m not thinking currently that we’ll use that here — seems too complicated.

Anyway, unlike categories, a post can have multiple tags — both “cloud” and “server”, for example.

Tag policy is by category — you can make a category require a tag or not, and you can restrict groups of tags to particular categories. In the plan above, I’m planning for there to be a bunch of tags representing team names in Project Discussions (and require one of those), while there will be more descriptive tags in Announcements.

The feature I’m talking about in the above point is a thing where Discourse will automatically add a tag if there is a keyword match in the text. We have this on Ask Fedora, in an experimental state — see Use this thread to request automatic tagging - Ask Fedora for more on that.

1 Like

A post was split to a new topic: Fedora Magazine fedocal calendar reminders on Fedora Discussion