Tech WG
Description | Keeping neuromatch.social running, coordinating work on our fork |
---|---|
Members | Jonny Saunders, Manisha Sinha, Lina Lina |
Projects | Mastodon/Hacking, Access Policy |
Part of | Mastodon |
Active Status | Active |
Up to Mastodon
Subpages
- Mastodon:Tech WG/TODO
- Administrators - Who has access/control over the various technical components?
- Access Policy
- Mastodon/Admin
- Mastodon/Debugging
- Mastodon/Docs - Documenting the parts of masto that aren't documented!
- Maintenance
- Performance
- Storage
Guides
- Upgrade Mastodon
- Intro To Mastodohacking - Where to start with the software!
TODO
Mastodon/Tech WG#TODO: Change the favicon i have way too many instances open in my tabs for this
Mastodon/Tech WG#TODO Mastodon/Storage#TODO investigate Wasabi for storage 🙂
Mastodon/Tech WG#TODO change default email notifications to turn off new follow notifs
Mastodon/Tech WG#TODO: - Fix semantic wikilinks in the WikiBot#TODO, - Allow `:` prefixed wikilinks to link to a page without embedding the post in that page (and then ofc stripping the colon) - this would trade off with n-back wikilinks because it wouldn't make sense to archive a series of posts at the same time as not embedding the posts into a page
Mastodon/Tech WG#TODO Mastodon/Social WG#TODO Look into setting up Relays https://neuromatch.social/@manisha/109523786200081610
Mastodon/Tech WG#TODO: increase the size of collapsed messages: https://neuromatch.social/@PessoaBrain/109530080695260906
Mastodon/Tech WG#TODO Translation services! can we do something like Kolektiva does: https://kolektiva.social/@subMedia/109531114768269437 isn't there some fancy new offline/self-contained translation network thing??? I don't want to make any calls to Google from the instance but translation would be great
Mastodon/Tech WG#TODO: why are follow buttons not present for all instances for user accounts on the notification feed?
Mastodon/Tech WG#TODO: Secrets manager/password manager so we can have shared accounts better 🙂
Mastodon/Tech WG#TODO Make a Hacking Masto guide including setting up a Mastodon/Dev Environment and a Hack Merging Policy
<@540104559079456770> I think you should have permissions to do a code review on the PR itself, do you know how to do one of those? we should add that to the Hack Merging Policy - a guide on how to do code review. Mastodon/Tech WG#TODO
yes agreed we should make a wiki guide to updating the instance.
I need to log off for the day bc am visiting friends, but in short it's - start backup in linode (reminder to also set you up with an account there and add that to Tech WG#TODO Tech WG/Onboarding docs - do all the git work that we're familiar with to prepare the new deploy - check upgrade notes, usually on base masto release notes, to see if anything out of the ordinary is required - pull down new changes to server - potentially recompile yarn assets - potentially run database migrations - restart mastodon-* services
and that's usually it. downtime is usually on the order of a few seconds (and we could explore how to make that zero, I think that's how the pros do it with like multiple servers)
Project Ideas
Mastodon/Tech WG#Project Ideas: Collapse long lists of @'s in posts. see https://scholar.social/@neuralreckoning/109501954921707960
Done
Mastodon/Tech WG#Done changed default email notifications in config/settings.yml to turn off new follow notifs and restarted services
Discord
@lina gathering some stuff here: Mastodon/Tests Mastodon/Tech WG Exclusive Lists Ruby Spec Ruby spec for home feed: https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/home_feed_spec.rb for public feed: https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/public_feed_spec.rb that gives more examples on how feeds are supposed to be filtered tag feed: https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/tag_feed_spec.rb in case we might want to add exclusive tag feeds (I personally do, self interested bc monsterdon lol) account filter (looks like for blocks): https://github.com/NeuromatchAcademy/mastodon/blob/main/spec/models/account_statuses_filter_spec.rb
and so on
the question to me is basically how these things are structured: you have some fabricator steps that set up the conditions for the test, but then you also have these `context` statements that looks like plain English strings to me? like how do those and the `describe` fields map onto the code? like is their testing system so good that you can really just write `it {is_expected.to be_filtered }` and that just works???? or how do you define all those.
Also u mentioned they are using a separate JavaScript testing framework? Jest ? that looks like it's configured here: https://github.com/NeuromatchAcademy/mastodon/blob/main/jest.config.js and doesn't cover the glitch flavours, just the mastodon folder. it seems like that is for testing the appearance and function of the JS? not sure how it interacts with the ruby tests.
So for the sake of us learning to write tests here, I don't think we need to aim for full adversarial coverage of the feature, but just get the basics: "when an account is in an exclusive list, their posts dont show up on the home feed." judging from the other tests, it looks like we'll have to also test for boosts from them, but since it's not like a block we don't have to test a bunch of edge cases like interactions.