Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing reproducibility error introduced by 24-CNB vs 24-Heroku #332

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

usiegj00
Copy link

The 24-Heroku stack adds a user like u12345 and a dyno user, both with HOME of /app. The 24-CNB stack breaks this convention by introducing a heroku user with a HOME of /home/heroku. This prevents packages such as fontconfig which expects .fonts to be available in HOME.

In non-CNB builds, HOME and /app are the same, so a /app/.fonts/this.ttf is available as expected at runtime.

In CNB builds, these are different, so the same font would be at /app/.fonts/this.ttf, while the runtime path searched would be /home/heroku/.fonts.

This fix has been thoroughly tested and helps Heroku customers achieve better reproducibility and alignment with open standards.

The 24-Heroku stack adds a user like `u12345` and a `dyno` user, both with HOME of /app. The 24-CNB stack breaks this convention by introducing a `heroku` user with a `HOME` of `/home/heroku`. This prevents packages such as [fontconfig which expects .fonts to be available in HOME](https://www.freedesktop.org/software/fontconfig/fontconfig-user.html). 

In non-CNB builds, `HOME` and `/app` are the same, so a `/app/.fonts/this.ttf` is available as expected at runtime.

In CNB builds, these are different, so the same font would be at `/app/.fonts/this.ttf`, while the runtime path searched would be `/home/heroku/.fonts`.

This fix has been thoroughly tested and helps Heroku customers achieve better reproducibility and alignment with open standards.
@usiegj00 usiegj00 requested a review from a team as a code owner November 12, 2024 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant