Tech WG: Difference between revisions

From neuromatch
m (Jonny moved page Mastodon:Tech WG to Mastodon/Tech WG)
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Working Group
|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 [[Part Of::Mastodon]]
Up to [[Part Of::Mastodon]]


== Members ==


* [[Has Member::Jordan Matelsky]]
== Subpages ==
* [[Has Member::Jonny Saunders]]
* [[Has Member::Manisha Sinha]]


* [[Has Part::Mastodon:Tech WG/TODO]]
* [[Has Part::Administrators]] - Who has access/control over the various technical components?
* [[Has Part::Access Policy]]
* [[Has Part::Mastodon/Admin]]
* [[Has Part::Mastodon/Debugging]]
* [[Has Part::Mastodon/Docs]] - Documenting the parts of masto that aren't documented!
* [[Has Part::Mastodon/Hacking]] - What we gone and changed!
* [[Has Part::Maintenance]]
* [[Has Part::Performance]]
* [[Has Part::Storage]]


== Subpages ==
== Guides ==


* [[Has Part::Mastodon:Tech WG/TODO]]
* [[Has Part::Upgrade Mastodon]]
* [[Has Part::Intro To Mastohacking]] - Where to start with the software!




[[Category:Mastodon]]
[[Category:Mastodon]]
[[Category:Working Group]]
 
== TODO ==
 
{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-10 06:24:49
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#TODO]]: Change the favicon i have way too many instances open in my tabs for this
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1051021656660905994
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-14 08:21:18
|Channel=Perf & Resource Management
|Text=[[Mastodon/Tech WG#TODO]]
[[Mastodon/Storage#TODO]] investigate [[Wasabi]] for storage 🙂
|Link=https://discord.com/channels/1049136631065628772/1052450923244425278/1052500522139144202
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-15 21:59:34
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#TODO]] change default email notifications to turn off new follow notifs
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1053068831490310264
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-15 22:57:13
|Channel=wiki
|Text=[[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
|Link=https://discord.com/channels/1049136631065628772/1050218978703843368/1053083337876570142
}}{{Message
|Author=mannaz
|Avatar=https://cdn.discordapp.com/avatars/540104559079456770/12ce492294d6a3cd6f1ea00cbe8edb04.png?size=1024
|Date Sent=22-12-16 14:51:09
|Channel=social-wg
|Text=[[Mastodon/Tech WG#TODO]] [[Mastodon/Social WG#TODO]] Look into setting up Relays https://neuromatch.social/@manisha/109523786200081610
|Link=https://discord.com/channels/1049136631065628772/1049184264832417823/1053323403156787253
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-17 22:13:21
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#TODO]]: increase the size of collapsed messages: https://neuromatch.social/@PessoaBrain/109530080695260906
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1053797075894140968
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-18 00:23:06
|Channel=technical-wg
|Text=[[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
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1053829729079279696
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-18 21:14:38
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#TODO]]: why are follow buttons not present for all instances for user accounts on the notification feed?
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1054144686505328682
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-22 18:51:13
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#TODO]]: Secrets manager/password manager so we can have shared accounts better 🙂
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1055558146938126437
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-27 19:53:46
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#TODO]] Make a [[Hacking Masto]] guide including setting up a [[Mastodon/Dev Environment]] and a [[Hack Merging Policy]]
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1057385828478894141
}}{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=23-01-02 22:37:52
|Channel=technical-wg
|Text=<@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]]
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1059601450793173042
}}{{Message
|Author=sneakers.the.rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=23-07-04 21:16:38
|Channel=technical-wg
|Text=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)
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1125897989177753600
}}
 
== Project Ideas ==
 
{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=22-12-12 18:51:13
|Channel=technical-wg
|Text=[[Mastodon/Tech WG#Project Ideas]]: Collapse long lists of @'s in posts. see https://scholar.social/@neuralreckoning/109501954921707960
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1051934268982566942
}}
 
== Done ==
 
{{Message
|Author=mannaz
|Avatar=https://cdn.discordapp.com/avatars/540104559079456770/12ce492294d6a3cd6f1ea00cbe8edb04.png?size=1024
|Date Sent=22-12-24 09:07:52
|Channel=change default email notifications to turn off follow notifs
|Text=[[Mastodon/Tech WG#Done]] changed default email notifications in config/settings.yml to turn off new follow notifs and restarted services
|Link=https://discord.com/channels/1049136631065628772/1053068831490310264/1056136118409633792
}}
 
== Discord ==
 
{{Message
|Author=sneakers-the-rat
|Avatar=https://cdn.discordapp.com/avatars/305044217393053697/2970b22bd769d0cd0ee1de79be500e85.png?size=1024
|Date Sent=23-03-18 21:48:09
|Channel=testing
|Text=@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.
|Link=https://discord.com/channels/1049136631065628772/1086754322433450075/1086768028085141535
}}

Revision as of 02:13, 5 December 2023

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

Guides

TODO

sneakers-the-rat#technical-wg22-12-10 06:24:49

Mastodon/Tech WG#TODO: Change the favicon i have way too many instances open in my tabs for this

sneakers-the-rat#Perf & Resource Management22-12-14 08:21:18

Mastodon/Tech WG#TODO Mastodon/Storage#TODO investigate Wasabi for storage 🙂

sneakers-the-rat#technical-wg22-12-15 21:59:34

Mastodon/Tech WG#TODO change default email notifications to turn off new follow notifs

sneakers-the-rat#wiki22-12-15 22:57:13

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

sneakers-the-rat#technical-wg22-12-17 22:13:21
sneakers-the-rat#technical-wg22-12-18 00:23:06

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

sneakers-the-rat#technical-wg22-12-18 21:14:38

Mastodon/Tech WG#TODO: why are follow buttons not present for all instances for user accounts on the notification feed?

sneakers-the-rat#technical-wg22-12-22 18:51:13

Mastodon/Tech WG#TODO: Secrets manager/password manager so we can have shared accounts better 🙂

sneakers-the-rat#technical-wg22-12-27 19:53:46
sneakers-the-rat#technical-wg23-01-02 22:37:52

<@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

sneakers.the.rat#technical-wg23-07-04 21:16:38

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

sneakers-the-rat#technical-wg22-12-12 18:51:13


Done

mannaz#change default email notifications to turn off follow notifs22-12-24 09:07:52

Mastodon/Tech WG#Done changed default email notifications in config/settings.yml to turn off new follow notifs and restarted services


Discord

sneakers-the-rat#testing23-03-18 21:48:09

@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.