L3BUILD(1)

πŸ’– L3BUILD πŸ’–

okay so bestie, welcome to the l3build manual page β€” it's section 1 of the General Commands Manual and it's literally the whole vibe for building, testing and shipping LaTeX packages. grab a snack, we're doing this πŸ“


✨ NAME ✨

l3build β€” no cap, that's the name, that's the whole name πŸ’…


🌸 SYNOPSIS 🌸

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

so you give it a target, then maybe some options, then maybe some names and it just… goes πŸ‘‘ the way that <names> is optional is lowkey iconic.


πŸ¦‹ DESCRIPTION πŸ¦‹

the l3build module is here to support development of high-quality LaTeX code, and it does that by providing:

  • a unit testing system πŸ§ͺ
  • automated typesetting of code sources ✨
  • a reliable packaging system for CTAN releases πŸ“¦

the bundle is made of a Lua script that runs the tasks, plus a .tex file that provides the testing environment. these were originally built for supporting LaTeX development, but they're designed so other people can readily use them too 🫢 full documentation is provided, iykyk.


πŸŽ€ 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 πŸš€

πŸ’… 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 🏷️

🌈 SEE ALSO 🌈


πŸ’œ AUTHORS πŸ’œ

Copyright (C) 2014-2025 The LaTeX Project 🫢


okay that's the whole thing bestie, you ate that πŸ’… this cutie was brought to you by LaTeX, dated 2025-05-08, and it's the l3build page from the General Commands Manual β€” go forth and build, mwah πŸŽ€βœ¨

πŸ“¦ where this page comes from