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:
- `.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.
Conflicts:
- `README.md`:
Upstream README has been changed, but we have a completely different one.
Kept our `README.md`.
- `lib/sanitize_ext/sanitize_config.rb`:
Upstream added support for more incoming HTML tags (a large subset of what
glitch-soc accepts).
Change the code style to match upstream's but otherwise do not change our
code.
- `spec/lib/sanitize_config_spec.rb`:
Upstream added support for more incoming HTML tags (a large subset of what
glitch-soc accepts).
Kept our version, since the tests are mostly glitch-soc's, except for cases
which are purposefuly different.