Skip to content

chore: upgrade Elixir/OTP to match Console and switch to Mix releases - #1511

Merged
michaeljguarino merged 3 commits into
masterfrom
lukasz/prod-5133-update-pluralshplural-elixirerlang-to-match-the-console
Sep 18, 2026
Merged

michaeljguarino merged 3 commits into
masterfrom
lukasz/prod-5133-update-pluralshplural-elixirerlang-to-match-the-console

Conversation

@zreigz

@zreigz zreigz commented Sep 1, 2026

Copy link
Copy Markdown
Member

Replace Distillery with Mix releases and align Phoenix/Ecto with the Console toolchain (Elixir 1.19.4 / OTP 28.5).

Test Plan

Checklist

  • If required, I have updated the Plural documentation accordingly.
  • I have added tests to cover my changes.
  • I have added a meaningful title and summary to convey the impact of this PR to a user.
  • I have added relevant labels to this PR to help with categorization for release notes.

Replace Distillery with Mix releases and align Phoenix/Ecto with the Console toolchain (Elixir 1.19.4 / OTP 28.5).
@linear

linear Bot commented Sep 1, 2026

Copy link
Copy Markdown

PROD-5133

@zreigz
zreigz force-pushed the lukasz/prod-5133-update-pluralshplural-elixirerlang-to-match-the-console branch from c69b786 to d2d3d17 Compare September 1, 2026 14:02
@zreigz zreigz added the dependencies Pull requests that update a dependency file label Sep 1, 2026
@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown

Greptile Summary

The PR upgrades the umbrella to Elixir 1.19.4/OTP 28.5, refreshes Phoenix/Ecto and related dependencies, and replaces Distillery packaging with role-specific Mix releases.

  • Adds Mix releases and runtime configuration for API, RTC, worker, and cron roles.
  • Updates Docker, Helm, CI, and local Compose workflows for the new release layout.
  • Migrates several library integrations, including Guardian, Gettext, Waffle, Sentry, and Influx.

Confidence Score: 3/5

The PR should not be merged until the local RabbitMQ management endpoint is restricted to localhost or otherwise protected from network access.

The release conversion is internally aligned, but the newly documented local stack exposes a message-broker administrator interface with publicly known credentials, allowing network users to manipulate local queues and messages.

Files Needing Attention: docker-compose.stack.yml

Security Review

The new local Compose stack exposes RabbitMQ’s administrative interface on all host interfaces using committed administrator credentials. Restrict the binding to localhost or avoid publishing the management port before using this workflow on network-reachable hosts.

Important Files Changed

Filename Overview
mix.exs Defines four role-specific Mix releases with matching runtime configuration paths and application sets.
Dockerfile Replaces Distillery extraction with named Mix-release builds and copies the selected release into the runtime image.
rel/runtime/plural.exs Supplies environment-driven runtime configuration for the main API release while preserving the compiled endpoint server settings.
apps/core/lib/core/influx.ex Replaces the Instream connection process with a Req-based compatibility client; no concrete caller-visible regression was established.
apps/api/lib/api_web/plugs/remote_ip.ex Adapts forwarding-header parsing to RemoteIp 1.2 while retaining the pre-existing trust model and downstream IP behavior.
docker-compose.stack.yml Adds a useful local release stack, but exposes RabbitMQ administration beyond localhost using static administrator credentials.
plural/helm/plural/templates/migration.yaml Updates the database migration job to invoke the overlay command included in the plural Mix-release image.

Reviews (1): Last reviewed commit: "chore: upgrade Elixir/OTP to match Conso..." | Re-trigger Greptile

Comment thread docker-compose.stack.yml

@michaeljguarino michaeljguarino left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect this is mostly correct, we need to test it in dev for sure though, I'll handle that with the test images built.

michaeljguarino and others added 2 commits September 17, 2026 12:05
…xirerlang-to-match-the-console

Keep the Elixir/OTP 1.19/28 Mix-release stack and take master's Trivy, www, and Docker tools-stage updates. Drop master's Elixir 1.13 CVE pins and old Alpine package versions, which this upgrade already supersedes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@michaeljguarino
michaeljguarino merged commit 3ca9ef6 into master Sep 18, 2026
17 checks passed
@michaeljguarino
michaeljguarino deleted the lukasz/prod-5133-update-pluralshplural-elixirerlang-to-match-the-console branch September 18, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants