-
Notifications
You must be signed in to change notification settings - Fork 78
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
Add tzdata-legacy to Heroku-24 #340
base: main
Are you sure you want to change the base?
Conversation
fff1ebb
to
2d6154c
Compare
Cross linking (internal only access) tickets: I'm good with adding this in as it stops the initial pain. Here's an example error message (to possibly help with people finding the fix to use the
I think the only possible concern I have is considering how we get off this train once we're on it. i.e. what the path to detection, deprecation, and removal might look like in the future. That sounds like a relatively small problem for future-us so I'm in favor of moving forward with adding it here. Saving approval for Ed to have him look over it in the morning. |
Looking at the getting started guides:
DetailsJava MavenSeems to work:
.NET.NET fails on heroku-24:
But works on heroku-22:
PHP
GoFails in the same way
But this same code works fine on Adding
PythonFrom https://docs.python.org/3/library/zoneinfo.html
Timezones don't work out of the box and the docs say to use the library (which I've not tried, but I am guessing vendors the data rather than relying on the system) Node.jsDoes the conversion for you:
|
Ubuntu 24.04's
tzdata
package does not include older/non-standard timezones likeUS/Eastern
andUS/Central
, where Ubuntu 22.04 does. It's mentioned in the release notes here. Therefore, this is also a change between Heroku-22 and Heroku-24.Some (mostly Rails) users have these legacy timezone names stored in their application's database, which makes upgrading to Heroku-24 problematic. This PR adds
tzdata-legacy
to Heroku-24, which restores the removed timezones.Note that the
tzdata-legacy
package can't be correctly installed via a buildpack (classic or CNB), since tools likezic
andzdump
expect the data to be in/usr/share/zoneinfo
, which isn't writeable during builds or runtime. This was noted in heroku/heroku-buildpack-apt#140.I'm not sure if this is totally necessary. Ruby users can alternatively get the legacy timezones via the
tzinfo-data
RubyGem. Thetzinfo-data
gem doesn't solve the problem outside of Ruby, but I haven't seen this problem reported outside of a Ruby context.