62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
# social.lumbung.space
|
|
|
|
## fork hell
|
|
|
|
- https://github.com/mastodon/mastodon/pull/16221
|
|
- https://github.com/hometown-fork/hometown/issues/1153
|
|
|
|
## release management
|
|
|
|
We're using [Hometown](https://github.com/hometown-fork/hometown) with [this PR](https://github.com/mastodon/mastodon/pull/16221) merged in. Yes, that's a fork of a fork. The process of making a new release is basically merging that PR into the latest Hometown, building, tagging & pushing a container and then updating the [hometown recipe configs](https://git.coopcloud.tech/coop-cloud/hometown/src/branch/main/compose.oidc.yml). Then deploy it and debug any issues.
|
|
|
|
How to do it, you ask? Abandon all hope. Computers were a mistake.
|
|
|
|
1. Clone hometown, `git fetch -a`, `git remote add sso https://github.com/chandrn7/smalltown.git`, `git fetch -a sso`
|
|
1. Check out the hometown tag you want, start cherrypicking the commits the PR. This [view is handiest](https://github.com/mastodon/mastodon/pull/16221/commits). You can copy/pasta each commit hash with that button and see what conflicts you need to resolve. Yep, you'll be blindly resolving conflicts between two forks.
|
|
1. If you're lucky enough to get this far, you now need to build a new container. `docker build -t <name> .` and see what happens . Add `RUN cat /etc/ssl/certs/ca-certificates.crt > /opt/mastodon/vendor/bundle/ruby/2.7.0/gems/httpclient-2.8.3/lib/httpclient/cacert.pem` to the `Dockerfile` ([ref](https://github.com/mastodon/mastodon/pull/16221#issuecomment-936108865)). You might need to do this absolutely random [step](https://github.com/hometown-fork/hometown/issues/650#issuecomment-849890952) in order to get bundler/gem/ruby to install the damn thing. Also try wiping out `RUBY VERSION` / `BUNDLED WITH` in the `Gemfile.lock` when running the build. You generally just end up reading the errors and then chaotically hacking the `Gemfile` / `Gemfile.lock` file until it works. If you get to the yarn building step, you might actually make it.
|
|
1. Push the container & update the Co-op Cloud recipe (`compose.oidc.yml`)
|
|
1. Deploy the thing & pray
|
|
1. Hope you never have to do this again
|
|
|
|
### v3.4.6
|
|
|
|
```diff
|
|
diff --git a/Dockerfile b/Dockerfile
|
|
index cbcdb2034..5dc1acc2f 100644
|
|
--- a/Dockerfile
|
|
+++ b/Dockerfile
|
|
@@ -59,6 +59,8 @@ RUN cd /opt/mastodon && \
|
|
bundle install -j"$(nproc)" && \
|
|
yarn install --pure-lockfile
|
|
|
|
+RUN cat /etc/ssl/certs/ca-certificates.crt > /opt/mastodon/vendor/bundle/ruby/2.7.0/gems/httpclient-2.8.3/lib/httpclient/cacert.pem
|
|
+
|
|
FROM ubuntu:20.04
|
|
|
|
# Copy over all the langs needed for runtime
|
|
diff --git a/Gemfile.lock b/Gemfile.lock
|
|
index a01341fc9..573c8e776 100644
|
|
--- a/Gemfile.lock
|
|
+++ b/Gemfile.lock
|
|
@@ -279,8 +279,8 @@ GEM
|
|
http-parser (1.2.1)
|
|
ffi-compiler (>= 1.0, < 2.0)
|
|
http_accept_language (2.1.1)
|
|
- httplog (1.5.0)
|
|
httpclient (2.8.3)
|
|
+ httplog (1.5.0)
|
|
rack (>= 1.0)
|
|
rainbow (>= 2.0.0)
|
|
i18n (1.8.10)
|
|
@@ -843,9 +843,3 @@ DEPENDENCIES
|
|
webpacker (~> 5.4)
|
|
webpush (~> 0.3)
|
|
xorcist (~> 1.1)
|
|
-
|
|
-RUBY VERSION
|
|
- ruby 2.6.5p114
|
|
-
|
|
-BUNDLED WITH
|
|
- 1.17.2
|
|
```
|