Repository navigation
Build against the local engine by default; take elixir_torrent 0.7.0 - #17
Merged
Merged
Conversation
mix.exs now resolves the engine as ELIXIR_TORRENT_PATH, then Hex when ELIXIR_TORRENT_HEX=1 or CI is set, then ../ElixirTorrent when it exists, then Hex. A machine with both repos builds the local engine with no setup, and CI keeps building the published package. A path dependency resolves the engine's own requirements, which run ahead of the committed lock as soon as the engine bumps one (hackney 4.8.4 to 4.8.5 broke mac.dmg's deps.get --check-locked). A local build therefore uses a gitignored mix.local.lock seeded from mix.lock, and the build script enforces --check-locked only for the Hex source. The script's mix config probes gained --no-deps-check, so the DMG is no longer named 0.1.0 when deps are not fetched or locked yet. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.12.5 carries EEF-CVE-2026-105659 (HTTP/2 send deadlines reset on every WINDOW_UPDATE, so a trickling stream can pin a process) and EEF-CVE-2026-105660 (unvalidated HTTP/1 request-target authority). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The debug build writes ~500-900 lines/s, above the default handler's overload protection (burst_limit_max_count 500 per second, drop_mode_qlen 200). Every line past the cap was discarded, info and warning included: a debug log read 501 lines in its median second and was missing whole events such as a magnet's metadata_ok. The debug build now disables the burst limit and lets the queue grow to 5000 before it blocks and 20000 before it drops. Production builds are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
elixir_torrent 0.7.0 is published on Hex (magnets keep their peers, per- tracker min interval, no orphaned uTP connections). The lock also moves phoenix_pubsub to 2.4.1 and the hackney chain to 4.8.5; every other dependency is already on its latest release. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Matches the engine, which moved to the latest OTP 29 patch for 0.7.0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Requested by Daniel Urumov
Before: a local build used the Hex engine unless
ELIXIR_TORRENT_PATHwas set, and setting it brokemix mac.dmgas soon as the local engine's dependencies ran ahead ofmix.lock(deps.get --check-lockedfailed). The DMG was named0.1.0whenever deps were not yet fetched, the debug build silently dropped log lines above ~500/s, bandit carried two advisories, and the app embedded engine 0.6.8.After: with both repositories side by side,
mix deps.get,mix testandmix mac.dmguse the local../ElixirTorrentwith their own gitignoredmix.local.lock, while CI (orELIXIR_TORRENT_HEX=1) builds the Hex release pinned bymix.lock. The DMG carries the real version, the debug log is complete, bandit is 1.13.1, and the app ships engine 0.7.0 on OTP 29.1.2.How:
mix.exsresolves the engine source (ELIXIR_TORRENT_PATH→ Hex whenELIXIR_TORRENT_HEX=1orCI→ sibling checkout → Hex) and selectslockfile: "mix.local.lock"for a local engine; the DMG script enforces--check-lockedonly for the Hex source, and its config probes use--no-deps-check.config/prod.exs: a debug build disables the default handler's burst limit and raises its queue limits.Checked locally in CI mode (Hex engine,
mix.lockunchanged): deps audit, format, warnings-as-errors (dev and test), Credo, Sobelow, Dialyzer, coverage run (150 tests), SwiftLint--strict, and the 3 macOS integration tests. The Codecov upload and the Windows build run only in CI.🤖 Generated with Claude Code