Skip to content

Require elixir >= 1.18 and OTP >= 27. Unpin all deps. - #4

Open
nathanmonteleone wants to merge 9 commits into
masterfrom
upgrade_ranch
Open

nathanmonteleone wants to merge 9 commits into
masterfrom
upgrade_ranch

Conversation

@nathanmonteleone

Copy link
Copy Markdown

No description provided.

nathanmonteleone and others added 6 commits November 10, 2026 15:48
…ests that won't run. Just use a catchall instead
- Fix map default values generating invalid AST in struct_generator: Utils.quote_value
  for maps was returning an actual %{} Elixir map rather than proper AST ({:%{}, [], pairs}).
  Elixir 1.18 introduced stricter unquote validation that rejects non-AST values.

- Fix struct update warnings in Elixir 1.19 by adding explicit %StructName{} = var
  pattern matches to function heads in ast.ex (all merge/2 clauses), generator.ex
  (generate_schema/1, generate_to_string!/1 lambda), and file_group.ex
  (set_current_module/2).

- Remove --force from mix compile --warnings-as-errors in CI: --force was causing
  the connection dependency to be recompiled under warnings-as-errors, surfacing
  its charlist deprecation warnings as errors. deps.compile handles dep compilation
  separately; without --force, mix compile only recompiles changed project files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coveralls

coveralls commented Nov 10, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 3

Coverage decreased (-1.4%) to 89.237%

Details

  • Coverage decreased (-1.4%) from the base build.
  • Patch coverage: 1 uncovered change across 1 file (3 of 4 lines covered, 75.0%).
  • 28 coverage regressions across 8 files.

Uncovered Changes

File Changed Covered %
lib/thrift/generator.ex 1 0 0.0%
Total (2 files) 4 3 75.0%

Coverage Regressions

28 previously-covered lines in 8 files lost coverage.

File Lines Losing Coverage Coverage
lib/thrift/protocol/binary/type.ex 13 45.83%
lib/thrift/ast.ex 4 94.44%
lib/thrift/generator/utils.ex 4 80.43%
lib/thrift/protocol/binary.ex 3 94.92%
lib/mix/tasks/compile.thrift.ex 1 98.21%
lib/thrift/binary/framed/client.ex 1 74.67%
lib/thrift.ex 1 0.0%
lib/thrift/parser/conversions.ex 1 84.62%

Coverage Stats

Coverage Status
Relevant Lines: 1022
Covered Lines: 912
Line Coverage: 89.24%
Coverage Strength: 365.54 hits per line

💛 - Coveralls

nathanmonteleone and others added 3 commits November 10, 2026 17:14
- Update ExUnit.Case.register_test/4 → register_test/6 in thrift_test macro
  (deprecated in Elixir 1.18, fails under --warnings-as-errors)
- Regenerate test SSL certs with a proper CA chain (ca_cert.pem + ca_key.pem)
- Update build_ssl_client/1 to pass cacertfile + verify: :verify_peer
  (OTP 25+ SSL clients default to verify_peer, requiring explicit cacertfile)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lity

The 6-arity form of register_test/6 (deprecated since 1.14) passes Macro.Env
to Module.has_attribute?/2 internally, which no longer accepts a Macro.Env
struct in Elixir 1.19 — only module atoms. Switch to the 4-arity form
register_test/4 which was designed to accept Macro.Env directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
OTP 25+ uses the connected IP address (127.0.0.1) for certificate
hostname verification when verify_peer is enabled. The old cert only
had CN=localhost with no Subject Alternative Names, causing a
hostname_check_failed error since IP-based verification requires an
IP SAN, not just a CN match.

Regenerated server cert with:
  - DNS SAN: localhost
  - IP SAN: 127.0.0.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

3 participants