Skip to content

0.7.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 17:38
b4e55e5

Install

Debian / Ubuntu (.deb)

curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.0/latexml-oxide_0.7.0-1_amd64.deb
sudo apt install ./latexml-oxide_0.7.0-1_amd64.deb

Portable tarball (x86_64 Linux)

curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.0/latexml-oxide-0.7.0-x86_64-unknown-linux-gnu.tar.gz
tar xzf latexml-oxide-0.7.0-x86_64-unknown-linux-gnu.tar.gz
sudo cp latexml-oxide-0.7.0-x86_64-unknown-linux-gnu/latexml_oxide /usr/local/bin/

Tarball users also need the runtime apt deps:

sudo apt install libxml2 libxslt1.1 libkpathsea6 texlive-latex-base texlive-latex-extra texlive-science

macOS (Apple Silicon)

curl -LO https://github.com/dginev/latexml-oxide/releases/download/0.7.0/latexml-oxide-0.7.0-aarch64-apple-darwin.tar.gz
tar xzf latexml-oxide-0.7.0-aarch64-apple-darwin.tar.gz
sudo cp latexml-oxide-0.7.0-aarch64-apple-darwin/latexml_oxide /usr/local/bin/

macOS users also need the runtime libraries and a TeX distribution:

brew install libxml2 libxslt
# plus TeX Live — either Homebrew's (ships libkpathsea, fastest path):
brew install texlive
# …or MacTeX / BasicTeX, served via the subprocess-kpsewhich fallback.

Apple Silicon (arm64) only. Intel Macs are not yet a published target.

Changelog

[0.7.0] (single-binary release: portability, runtime bindings, edition 2024)

  • Self-contained, redistributable binary (#236). Engine dumps, the
    RelaxNG schema, and XSLT/CSS/JS are embedded and served from memory; the
    maxperf binary runs with no resources/ tree. A tag-driven release
    workflow builds the publish-grade artifact and attaches a portable tarball
    • Debian .deb (each with a SHA-256 sidecar) as GitHub Release assets.
  • macOS (Apple Silicon) support (#245). Full test suite green on arm64;
    the distributed binary uses the subprocess-kpsewhich backend (no
    libkpathsea ABI dependency, works on MacTeX). The release ships an
    aarch64-apple-darwin tarball alongside the Linux artifacts.
  • Runtime (Rhai) script bindings shipped in the release artifact
    (#171, #248). A shared winnow template AST backs both the compile-time
    native binding front-end and an optional runtime contributed-bindings
    front-end embedded via Rhai — customize bindings without recompiling.
    Runtime opt-in, so default conversions are unaffected.
  • Frontmatter refactor: faithful port of upstream LaTeXML PR #2767
    (#241), with a --debug NAME CLI and a deep-recursion pre-clear guard
    that surpasses the Perl original on pathological inputs.
  • Persistent server mode latexml_oxide --server (#243) for
    editor/preview integration, plus opt-in source locators (--source-map)
    and token-locators precision (#237) toward live source↔preview.
  • Post-processing: faithful MakeIndex port — see/seeonly, styles,
    anchors, placement (#244); CLI --css/--javascript resources copied and
    followed (#250); html_feedback regression fixes (#240).
  • Engine parity at scale: error-free conversion sweeps over the arXiv
    "warning" corpus scaled to 1.5M → 2M articles (#238, #242) and a third
    500K canvas at ≥99.0% success (#249). ProcessOptions keysets (#235).
  • Toolchain & quality: migrated the workspace to Rust edition 2024 and
    centralized lint enforcement (#252) — clean clippy -D warnings,
    tree-wide style_edition = "2024" formatting, a [workspace.lints]
    policy, and a CI lint gate (rustfmt + clippy + cargo-deny advisories/
    licenses + cargo-machete) plus an auto-installed pre-push hook. Three
    unmaintained/vulnerable transitive dependencies (tempdir, ansi_term) were
    dropped at the source, so the dependency audit is clean.

What's Changed

  • Update indexmap requirement from =2.13.1 to =2.14.0 by @dependabot[bot] in #234
  • feat: ProcessOptions keysets => [...] + raise ar5iv pushback/iflimit by @dginev in #235
  • single-binary distribution: embed owned assets + release-asset workflow by @dginev in #236
  • Update sha2 requirement from 0.10 to 0.11 by @dependabot[bot] in #233
  • feat(source-map): opt-in source locators + token-locators precision by @dginev in #237
  • [parity] 1,500,000 arXiv articles by @dginev in #238
  • feat(whatsout): full --whatsin/--whatsout port + fix(test-mem): per-test thread-local engine leak by @dginev in #239
  • [parity] 2,000,000 arXiv articles by @dginev in #242
  • Fix/regression reports html feedback by @dginev in #240
  • Persistent LSP server: latexml_oxide --server for editor/preview integration by @dginev in #243
  • fix(post): faithful MakeIndex port — see/seeonly, ref styles, anchors, placement by @dginev in #244
  • Add macOS portability by @dginev in #245
  • fix(biblatex): parse keyval .bbl name format; complete \endentry fields by @dginev in #246
  • Third 500K arXiv-warning canvas (≥99.0% success rate) by @dginev in #249
  • Shared winnow template AST (#171) + feature-complete Rhai binding front-end by @dginev in #248
  • Frontmatter refactor: translate upstream LaTeXML PR #2767 by @dginev in #241
  • fix(post): copy & follow CLI --css/--javascript resources to the destination by @dginev in #250
  • chore: migrate the workspace to Rust edition 2024 by @dginev in #251
  • chore: clean clippy, apply edition-2024 formatting, centralize lint enforcement by @dginev in #252
  • release: prepare 0.7.0 (runtime-bindings, .deb deps, pinned nightly, docs) by @dginev in #254
  • chore(deps): update winnow requirement from 0.7 to 1.0 by @dependabot[bot] in #253
  • ci: cache engine dumps (skip ~8-min make-formats when engine unchanged) by @dginev in #255
  • release: auto-append the merged-PR list to release notes by @dginev in #256
  • refactor: drop kpathsea from the latexml_codegen proc-macro build by @dginev in #258
  • release: statically link libkpathsea (in-process, self-contained) on both legs by @dginev in #257
  • fix(release): build cargo-deb from source (glibc 2.35 compat) by @dginev in #259

Full Changelog: 0.6.1...0.7.0