deps: make :cmark optional (native NIF out of the core) + bump all deps - #141
Merged
Conversation
:cmark ships native code the core has no reason to carry. It now follows the established optional-backend shape (:postgrex/sql, :explorer/pandas): `optional: true`, the markdown module compiles only when the dep is present, and `import markdown` degrades to a clean Python ImportError otherwise. consumer_smoke.sh now proves the bare package excludes Cmark and degrades correctly. Bump every other dep to the latest the constraints allow (req 0.6, bandit 1.12, decimal 2.4.1, jason 1.4.5, postgrex 0.22.2, tz 0.28.2, …). decimal 3.x remains blocked by postgrex/jason/explorer requirements. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KuxYKoh8pXEna5ohZUgJsn
…nhenge The fixture's default 5s wall-clock timeout flaked on a starved 1.19 CI runner (passed on rerun, and on both sibling matrix jobs from the same commit). Same deflake shape as #137 and the existing options.json users. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KuxYKoh8pXEna5ohZUgJsn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
:cmarkis now an optional dependency. It ships native code (the C CommonMark NIF) that the core has no reason to force on every consumer. It follows the repo's established optional-backend shape (:postgrex/sql,:explorer/pandas):optional: truein mix.exs,Pyex.Stdlib.Markdownwrapped inif Code.ensure_loaded?(Cmark), andimport markdowndegrading to a clean PythonImportErrorviaPyex.Stdlib.fetch/1. Consumers who wantmarkdown.markdown(...)add{:cmark, "~> 0.10"}and the feature lights up unchanged.scripts/consumer_smoke.shnow also assertsCmarkis absent from the bare package and thatimport markdownraisesImportError— so the consumer-smoke CI job guards this the same way it guards sql/pandas.decimal3.1.1 is not taken: blocked bypostgrex(~> 1.5 or ~> 2.0),jason(~> 1.0 or ~> 2.0), andexplorer(~> 2.1) requirements — revisit when the ecosystem moves.Notes
req0.6 (backsPyex.Stdlib.Requests); the full suite including the bypass-based HTTP tests and the External HTTP Integration CI jobs cover it.lib/pyex/interpreter{,/assignments}.exappear only on local Elixir 1.20.2 (CI's 1.19.5/1.20.0-rc.4 don't emit them) and exist onmain— untouched here.Test plan
mix format --check-formattedmix compile --warnings-as-errors(modulo the pre-existing 1.20.2-local warnings noted above)mix test— 6492/6493 (the one failure is the known local-OTP zipfile CRC-message artifact, present on main)mix dialyzer— cleanscripts/consumer_smoke.sh— bare package compiles;Cmarkabsent;import markdown→ clean ImportError🤖 Generated with Claude Code
https://claude.ai/code/session_01KuxYKoh8pXEna5ohZUgJsn