Skip to content

gucci-on-fleek/context-packaging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConTeXt Packaging Scripts

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).

Goals

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.

Known Deviations

  1. 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.

  2. 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.

  3. 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.).

  4. 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.

Architecture

  1. Every day, my server updates its standalone ConTeXt installation.

  2. Afterwards, the daily-check workflow 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.

  3. Whenever a tag is pushed, the make-release workflow 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 .zip files into a new GitHub release.

  4. Whenever a new release is created, GitHub emails me. Then, I will manually download the .zip files 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.

Files

A few TeX Live-specific files for ConTeXt are contained in the files/ directory. Check the comments in each file for more details.

Support and Contributing

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.

Installing

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.

Licence

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.

About

Scripts used to package ConTeXt for TeX Live

Resources

Stars

Watchers

Forks