Fix: https://github.com/mastodon/mastodon/issues/23644
As mentioned on that other thread, the issue arise when a `Status`
is created with SHAPE_TOO_COMPLEX making the instance variable ordering
unpredictable.
But we can sidestep that issue using code inspired from Shopify/paquito.
I added some code in the test environment initializer to cause this
issue to be reproduced and prove this change fixes it.
This code is also easily converted into a monkey patch.
Since we've moved back to Ruby 3.1.3 in 9aa172f7df and the issue only occurs on Ruby 3.2.1 due to the marshaller changing the ordering of instance variables, as explained by byroot / casperisfine in https://github.com/mastodon/mastodon/issues/23644#issuecomment-1472637530.
As such, we no longer need this logging, and should be able to upgrade past Ruby 3.1 once the marshaller does ordering correctly again or Rails is changed to do custom marshalling.
Conflicts:
- `README.md`:
Upstream changed their README, we have our own.
Kept ours.
- `app/helpers/application_helper.rb`:
Minor code style fix upstream, on a line that is different in glitch-soc
due to the different theming system.
Applied the code style fix to our own code.
- `app/views/settings/preferences/appearance/show.html.haml`:
Code style fix on a line next to lines exclusive to glitch-soc.
Applied upstream changes.
- `yarn.lock`:
Upstream updated a dependency textually close to a glitch-soc-only
dependency.
Updated the dependency like upstream did.
Conflicts:
- `.github/workflows/build-image.yml`:
Upstream switched to pushing to both DockerHub and GitHub Container
Repository, while glitch-soc was already pushing to the latter only.
Updated our configuration to be slightly more consistent with upstream's
naming and styling, but kept our behavior.
- `Gemfile.lock`:
Updated dependencies textually too close to glitch-soc only hcaptcha
dependency.
Updated dependencies as upstream did.
- `README.md`:
Upstream updated its README, but we have a completely different one.
Kept our README, though it probably should be reworked at some point.
- `app/views/auth/sessions/two_factor.html.haml`:
Minor style fix upstream that's on a line glitch-soc removed because
of its different theming system.
Kept our file as is.
- `spec/controllers/health_controller_spec.rb`:
This file apparently did not exist upstream, upstream created it with
different contents but it is functionally the same.
Switched to upstream's version of the file.
- `spec/presenters/instance_presenter_spec.rb`:
Upstream changed the specs around `GITHUB_REPOSITORY`, while glitch-soc
had its own code because it's a fork and does not have the same default
source URL.
Took upstream's change, but with glitch-soc's repo as the default case.
- `yarn.lock`:
Upstream dependencies textually too close to a glitch-soc only one.
Updated dependencies as upstream did.