L3BUILD(1)

πŸ“¦ version 2026.0, in alpine 3.24

πŸ’… L3BUILD(1) β€” General Commands Manual, bestie edition πŸŽ€

okay so this is l3build, and no cap, it's the manual page for it. Like, from the General Commands Manual section, iykyk. Grab a snack, we're gonna get into it. ✨


🌸 NAME 🌸

l3build β€” that's her. That's the whole name section. Iconic, honestly.


✨ SYNOPSIS ✨

Usage l3build <target> [<options>] [<names>]

so like, target first, then options, then names. In that order. The vibes must be respected. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

The l3build module is literally designed to support the development of high-quality LaTeX code, and it does that by giving you:

  • A unit testing system πŸ’–
  • Automated typesetting of code sources ✨
  • A reliable packaging system for CTAN releases πŸ‘‘

The bundle consists of a Lua script to run the tasks, plus a .tex file which provides the testing environment. These were originally developed for supporting LaTeX development, but they're designed such that they can be readily used by others β€” yes, that includes you, bestie. Full documentation is provided. πŸŽ€


πŸ”₯ COMMANDS πŸ”₯

Valid targets are:

  • check β€” Runs all automated tests
  • clean β€” Cleans out directory tree
  • ctan β€” Creates CTAN-ready archive
  • doc β€” Typesets all documentation files
  • install β€” Installs files into the local texmf tree
  • manifest β€” Creates a manifest file
  • save β€” Saves test validation log
  • tag β€” Updates release tags in files
  • uninstall β€” Uninstalls files from the local texmf tree
  • unpack β€” Unpacks the source files into the build tree
  • upload β€” Sends archive to CTAN for public release

eleven targets, all accounted for, we do not skip. periodt. πŸ’…


πŸ’œ OPTIONS πŸ’œ

Valid options are:

  • --config|-c β€” Sets the config(s) used for running tests
  • --date|-d β€” Sets the date to insert into sources
  • --debug β€” Runs target in debug mode
  • --dev β€” Use the development LaTeX format
  • --dirty β€” Skips cleaning up the test area
  • --dry-run β€” Dry run for install or upload
  • --email β€” Email address of CTAN uploader
  • --engine|-e β€” Sets the engine(s) to use for running test
  • --epoch β€” Sets the epoch for tests and typesetting
  • --file|-F β€” Takes the upload announcement from the given file
  • --first β€” Name of first test to run
  • --full β€” Installs all files
  • --halt-on-error|-H β€” Stops running tests after the first failure
  • --help|-h β€” Prints this message and exits
  • --last β€” Name of last test to run
  • --message|-m β€” Text for upload announcement message
  • --quiet|-q β€” Suppresses TeX output when unpacking
  • --rerun β€” Skips setup: simply reruns tests
  • --show-log-on-error β€” Shows the full log of the failure with --halt-on-error
  • --show-saves|-S β€” Shows the invocation to update failing .tlg files
  • --shuffle β€” Shuffles order of tests
  • --stdengine|-s β€” Run tests with the std engine (config dependent)
  • --texmfhome β€” Location of user texmf tree
  • --version β€” Prints version information and exits

twenty-four options, all present and accounted for, she ate. πŸ“


🧚 SEE ALSO 🧚

Full manual available via texdoc l3build. (yes, go read it, it's giving thorough.)

Repository : https://github.com/latex3/l3build

Bug tracker : https://github.com/latex3/l3build/issues


🌈 AUTHORS 🌈

Copyright (C) 2014-2025 The LaTeX Project


and that's the page!! 🫢 this version is the 2025-12-24 one, dated 2025-12-24, coming at you under the LaTeX source, and it's L3BUILD(1) all day. lowkey obsessed with this manpage fr fr. bye bestie, go run some targets πŸ’–πŸŽ€

πŸ“¦ where this page comes from