Tech WG: Difference between revisions

add Ops Diary as a subpage
(→‎Done: new section)
(add Ops Diary as a subpage)
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Working Group
{{Working Group
|Description=Keeping neuromatch.social running, coordinating work on our fork
|Description=Keeping neuromatch.social running, coordinating work on our fork
|Members=Jonny Saunders, Jordan Matelsky, Manisha Sinha
|Members=Jonny Saunders, Manisha Sinha, Lina Lina
|Projects=Mastodon/Hacking, Access Policy
|Projects=Mastodon/Hacking, Access Policy
|Part of=Mastodon
|Part of=Mastodon
Line 14: Line 14:
* [[Has Part::Administrators]] - Who has access/control over the various technical components?
* [[Has Part::Administrators]] - Who has access/control over the various technical components?
* [[Has Part::Access Policy]]
* [[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]]
* [[Has Part::Tech_WG/Ops_Diary]]
== Guides ==
* [[Has Part::Upgrade Mastodon]]
* [[Has Part::Intro To Mastohacking]] - Where to start with the software!




Line 86: Line 99:
|Text=[[Mastodon/Tech WG#TODO]]: Secrets manager/password manager so we can have shared accounts better 🙂
|Text=[[Mastodon/Tech WG#TODO]]: Secrets manager/password manager so we can have shared accounts better 🙂
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1055558146938126437
|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
}}
}}


Line 108: Line 154:
|Text=[[Mastodon/Tech WG#Done]] changed default email notifications in config/settings.yml to turn off new follow notifs and restarted services
|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
|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
}}
}}