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

Upgrade Elixir to v1.15 #493

Closed
wants to merge 1 commit into from

Conversation

gerhard
Copy link
Member

@gerhard gerhard commented Dec 28, 2023

Currently mix deps.compile fails with:

│ ┃ Compiling 7 files (.erl)
│ ┃ src/ssl_verify_fingerprint.erl:15:14: can't find include lib "public_key/include/public_key.hrl"
│ ┃ %   15| -include_lib("public_key/include/public_key.hrl").
│ ┃ %     |              ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:13:14: can't find include lib "public_key/include/public_key.hrl"
│ ┃ %   13| -include_lib("public_key/include/public_key.hrl").
│ ┃ %     |              ^
│ ┃
│ ┃ src/ssl_verify_pk.erl:14:14: can't find include lib "public_key/include/public_key.hrl"
│ ┃ %   14| -include_lib("public_key/include/public_key.hrl").
│ ┃ %     |              ^
│ ┃
│ ┃ src/ssl_verify_hostname.erl:16:14: can't find include lib "public_key/include/public_key.hrl"
│ ┃ %   16| -include_lib("public_key/include/public_key.hrl").
│ ┃ %     |              ^
│ ┃
│ ┃ src/ssl_verify_fingerprint.erl:27:26: record 'OTPCertificate' undefined
│ ┃ %   27| -spec verify_fun(Cert :: #'OTPCertificate'{},
│ ┃ %     |                          ^
│ ┃
│ ┃ src/ssl_verify_pk.erl:26:26: record 'OTPCertificate' undefined
│ ┃ %   26| -spec verify_fun(Cert :: #'OTPCertificate'{},
│ ┃ %     |                          ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:23:34: undefined macro 'id-ce-subjectAltName'
│ ┃ %   23|   AltSubject = select_extension(?'id-ce-subjectAltName', Extensions),
│ ┃ %     |                                  ^
│ ┃
│ ┃ src/ssl_verify_hostname.erl:28:26: record 'OTPCertificate' undefined
│ ┃ %   28| -spec verify_fun(Cert :: #'OTPCertificate'{},
│ ┃ %     |                          ^
│ ┃
│ ┃ src/ssl_verify_fingerprint.erl:29:39: record 'Extension' undefined
│ ┃ %   29|                           {extension, #'Extension'{}}, InitialUserState :: term()) ->
│ ┃ %     |                                       ^
│ ┃
│ ┃ src/ssl_verify_pk.erl:28:39: record 'Extension' undefined
│ ┃ %   28|                           {extension, #'Extension'{}}, InitialUserState :: term()) ->
│ ┃ %     |                                       ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:9:2: function extract_dns_names/1 undefined
│ ┃ %    9| -export([extract_dns_names/1,
│ ┃ %     |  ^
│ ┃
│ ┃ src/ssl_verify_hostname.erl:30:39: record 'Extension' undefined
│ ┃ %   30|                           {extension, #'Extension'{}}, InitialUserState :: term()) ->
│ ┃ %     |                                       ^
│ ┃
│ ┃ src/ssl_verify_pk.erl:51:30: record 'OTPCertificate' undefined
│ ┃ %   51| -spec verify_cert_pk(Cert :: #'OTPCertificate'{}, Pk :: pk()) ->
│ ┃ %     |                              ^
│ ┃
│ ┃ src/ssl_verify_fingerprint.erl:52:39: record 'OTPCertificate' undefined
│ ┃ %   52| -spec verify_cert_fingerprint(Cert :: #'OTPCertificate'{}, Fingerprint :: fingerprint()) ->
│ ┃ %     |                                       ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:19:2: spec for undefined function extract_dns_names/1
│ ┃ %   19| -spec extract_dns_names(Cert :: #'OTPCertificate'{}) -> [] | [string()].
│ ┃ %     |  ^
│ ┃
│ ┃ src/ssl_verify_hostname.erl:46:36: record 'OTPCertificate' undefined
│ ┃ %   46| -spec verify_cert_hostname(Cert :: #'OTPCertificate'{}, Hostname :: hostname()) ->
│ ┃ %     |                                    ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:19:33: record 'OTPCertificate' undefined
│ ┃ %   19| -spec extract_dns_names(Cert :: #'OTPCertificate'{}) -> [] | [string()].
│ ┃ %     |                                 ^
│ ┃
│ ┃ src/ssl_verify_hostname.erl:76:38: record 'OTPCertificate' undefined
│ ┃ %   76|                              Cert :: #'OTPCertificate'{},
│ ┃ %     |                                      ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:32:26: record 'OTPCertificate' undefined
│ ┃ %   32| -spec extract_cn(Cert :: #'OTPCertificate'{}) -> {error, no_common_name} | {ok, string()} | {error, invalid}.
│ ┃ %     |                          ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:34:17: record 'OTPCertificate' undefined
│ ┃ %   34|   TBSCert = Cert#'OTPCertificate'.tbsCertificate,
│ ┃ %     |                 ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:35:32: record 'OTPTBSCertificate' undefined
│ ┃ %   35|   {rdnSequence, List} = TBSCert#'OTPTBSCertificate'.subject,
│ ┃ %     |                                ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:38:26: record 'OTPCertificate' undefined
│ ┃ %   38| -spec extract_pk(Cert :: #'OTPCertificate'{}) -> {error, no_common_name} | #'SubjectPublicKeyInfo'{}.
│ ┃ %     |                          ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:38:76: record 'SubjectPublicKeyInfo' undefined
│ ┃ %   38| -spec extract_pk(Cert :: #'OTPCertificate'{}) -> {error, no_common_name} | #'SubjectPublicKeyInfo'{}.
│ ┃ %     |                                                                            ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:40:17: record 'OTPCertificate' undefined
│ ┃ %   40|   TBSCert = Cert#'OTPCertificate'.tbsCertificate,
│ ┃ %     |                 ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:41:26: record 'OTPTBSCertificate' undefined
│ ┃ %   41|   PublicKeyInfo = TBSCert#'OTPTBSCertificate'.subjectPublicKeyInfo,
│ ┃ %     |                          ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:42:16: record 'OTPSubjectPublicKeyInfo' undefined
│ ┃ %   42|   PublicKeyInfo#'OTPSubjectPublicKeyInfo'.subjectPublicKey.
│ ┃ %     |                ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:48:24: record 'Extension' undefined
│ ┃ %   48| -spec extensions_list([#'Extension'{}] | asn1_NOVALUE) -> [] | [#'Extension'{}].
│ ┃ %     |                        ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:48:65: record 'Extension' undefined
│ ┃ %   48| -spec extensions_list([#'Extension'{}] | asn1_NOVALUE) -> [] | [#'Extension'{}].
│ ┃ %     |                                                                 ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:55:39: record 'Extension' undefined
│ ┃ %   55| -spec select_extension(Id :: term(), [#'Extension'{}]) -> undefined | #'Extension'{}.
│ ┃ %     |                                       ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:55:71: record 'Extension' undefined
│ ┃ %   55| -spec select_extension(Id :: term(), [#'Extension'{}]) -> undefined | #'Extension'{}.
│ ┃ %     |                                                                       ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:57:28: record 'Extension' undefined
│ ┃ %   57|   Matching = [Extension || #'Extension'{extnID = ExtId} = Extension <- Extensions, ExtId =:= Id],
│ ┃ %     |                            ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:57:84: variable 'ExtId' is unbound
│ ┃ %   57|   Matching = [Extension || #'Extension'{extnID = ExtId} = Extension <- Extensions, ExtId =:= Id],
│ ┃ %     |                                                                                    ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:75:15: record 'AttributeTypeAndValue' undefined
│ ┃ %   75| extract_cn2([[#'AttributeTypeAndValue'{type={2, 5, 4, 3},
│ ┃ %     |               ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:77:39: variable 'CN' is unbound
│ ┃ %   77|   ssl_verify_fun_encodings:get_string(CN);
│ ┃ %     |                                       ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:49:1: Warning: function extensions_list/1 is unused
│ ┃ %   49| extensions_list(E) ->
│ ┃ %     | ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:56:1: Warning: function select_extension/2 is unused
│ ┃ %   56| select_extension(Id, Extensions) ->
│ ┃ %     | ^
│ ┃
│ ┃ src/ssl_verify_fun_cert_helpers.erl:64:1: Warning: function extract_dns_names_from_alt_names/2 is unused
│ ┃ %   64| extract_dns_names_from_alt_names([ExtValue | Rest], Acc) ->
│ ┃ %     | ^
│ ┃
│ ┃ could not compile dependency :ssl_verify_fun, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compil
│ ┃ e ssl_verify_fun --force", update it with "mix deps.update ssl_verify_fun" or clean it with "mix deps.clean ssl_verify_fun"
┻ ┻
• Engine: f26e50975d18
• Duration: 2m25.499s
exit status 73

Follow-up to:

Signed-off-by: Gerhard Lazu <gerhard@changelog.com>
@gerhard gerhard mentioned this pull request Dec 28, 2023
gerhard added a commit that referenced this pull request Mar 27, 2024
Except Elixir... #493

Signed-off-by: Gerhard Lazu <gerhard@changelog.com>
@gerhard
Copy link
Member Author

gerhard commented Mar 28, 2024

Leaving this here: https://endoflife.date/elixir

Screenshot 2024-03-28 at 20 02 34

jerodsanto pushed a commit that referenced this pull request Mar 29, 2024
* Bump all utilities to latest 👮

Except Elixir... #493

Signed-off-by: Gerhard Lazu <gerhard@changelog.com>

* Deploy PgHero & connect to Neon.tech Postgres

- Provides insights into our Neon.tech Postgres setup
- Available on our 6PN network as http://pghero-2024-03-27.internal:8080

Signed-off-by: Gerhard Lazu <gerhard@changelog.com>

---------

Signed-off-by: Gerhard Lazu <gerhard@changelog.com>
@jerodsanto
Copy link
Member

This one is no longer necessary, as we're now running on Elixir 1.16.2 🙌

However, the build pipeline did fail to compile rebar on 2 of our 3 runners...

https://github.com/thechangelog/changelog.com/actions/runs/8806036140/job/24170012457

This is why you should always have 3 of everything. Call it The Gerhard++ Rule 😆

@jerodsanto jerodsanto closed this Apr 23, 2024
@gerhard
Copy link
Member Author

gerhard commented May 7, 2024

@jerodsanto: Call it The Gerhard++ Rule 😆

Love it! We may have found our next Kaizen episode title. Will let that be my inspiration for the next wave of improvements 🌊➕➕

@gerhard
Copy link
Member Author

gerhard commented May 7, 2024

I manually cleared the cache on the other two runners, all looking good:
image

First run is slow since there is no cache to speed things up, but subsequent runs are expected to be within that 3-4mins range. If there is no change, even quicker. Verified ✅
image

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.

2 participants