This repository hosts the scripts used to package the contents of the ConTeXt Standalone Distribution into TeX Live and CTAN.
Specifically, this is the source of the CTAN package
context, which contains the TeX
Live packages context (ConTeXt MkXL/LMTX
runtime TeX files), context.ARCH (LuaMetaTeX binaries),
context-legacy (ConTeXt MkII runtime TeX files), and mptopdf
(mptopdf command-line script), and the
TLContrib package context-nonfree
(ConTeXt runtime files that are not free software).
The primary goal of this project is to make an installation of TeX Live
with scheme-context (plus context-nonfree from
TLContrib) behave identically to the
ConTeXt Standalone Distribution
with all modules
installed.
Note that scheme-full (AKA the default “Full” TeX Live
installation) is a superset of scheme-context, which means that most
users will have a complete ConTeXt installation by default.
-
The ConTeXt Standalone Distribution always sets the default paper size to A4; TeX Live allows users to configure this to either A4 or Letter. Regardless, users may (and should) configure this for each individual document with
\setuppapersize. -
The ConTeXt Standalone Distribution frequently updates its LuaTeX binaries to the latest release; TeX Live only updates its LuaTeX binaries once per year. LuaTeX is mostly frozen, so this should generally make no difference. Regardless, the distinct LuaMetaTeX engine will be updated multiple times per year in TeX Live, just like the ConTeXt Standalone Distribution.
-
The ConTeXt Standalone Distribution permits documents to run arbitrary executables while compiling; TeX Live attempts to restrict this to a handful of known-safe programs. Note that this is provided as a convenience feature only, and is NOT a security feature. Users must not compile untrusted ConTeXt documents without using external sandboxing mechanisms (Docker, Bubblewrap, systemd-run, etc.).
-
The ConTeXt Standalone Distribution distributes lexers/themes/plugins for various editors; TeX Live omits these files since editor support is outside its purview.
Any other differences from the ConTeXt Standalone Distribution are considered bugs, so if you find any deviations in this package, please let me know, and I will fix it for the next release.
-
Every day, my server updates its standalone ConTeXt installation.
-
Afterwards, the
daily-checkworkflow in this repository runs. It extracts the version number of the current ConTeXt installation, and then attempts to make a corresponding Git tag. If it fails (because the tag already exists), it gracefully exits; if it succeeds, it pushes the tag to this repository. -
Whenever a tag is pushed, the
make-releaseworkflow in this repository runs. It reorganizes and zips the contents of the ConTeXt standalone distribution into the format expected by TeX Live. Afterwards, it uploads the.zipfiles into a new GitHub release. -
Whenever a new release is created, GitHub emails me. Then, I will manually download the
.zipfiles from the release and upload them to CTAN.
Note that steps 2 and 3 (where all the important stuff happens) are executed on Woodpecker CI, so the full build logs are publicly available.
A few TeX Live-specific files for ConTeXt are contained in the
files/ directory. Check the comments in each file for more
details.
If you have a problem with ConTeXt itself, it is best to report it to
the official
[email protected]
mailing list.
If you notice that ConTeXt is mispackaged in TeX Live, then please open
a new issue on
GitHub,
email the public
[email protected]
or [email protected]
mailing lists, or email me privately at [email protected]. Pull
requests
are also gladly accepted.
ConTeXt is a fairly complex package to install—if at all possible,
please use tlmgr (TeX Live) or mpm (MikTeX), since manually
unpacking and installing the files is error-prone and complicated. But
if you insist on installing manually, please refer to
INSTALLING.md.
The vast majority of files in the zip archives originate from ConTeXt
itself; please see
doc/context/documents/general/manuals/mreadme.pdf for
details on their licensing. The files directly contained in this
repository are placed in the public domain.