texbld
Although we expect LaTeX compilation to be a declarative process (source to
PDF), the compilations for large projects eventually require a large number of
custom external programs and dependencies. For example, a compilation step might
require running a script written in haskell, piping that output into pandoc,
then putting everything into a LaTeX file for compilation with pdflatex. Good
luck installing all of those programs (ESPECIALLY the pesky ghc dependencies) in
a production system!
Furthermore, different LaTeX distributions will have ever so slightly different outputs (especially when working with biblatex), which is an issue for reproducibility.
The first take on these problems was mktex. Although it solves some dependency issues, it suffers from the various fragility and reproducibility issues that come with using pre-built docker images. Furthermore, because of its design, these images were forced to be monolithic, bloated, and ultimately inflexible. Each build should have exactly the dependencies that it requires and nothing more!
texbld aims to solve these problems by providing an environment where build
images are fully reproducible and shareable. It uses docker for absolute system
reproducibility and for usage across all platforms which it supports (MacOS, its
native Linux, and Windows (untested)).
Image hashes are used to ensure that any docker image is completely immutable, preventing dependency modification issues.
Users can specify their build image in a simple TOML file (along with associated files) and upload them to github, from which it can be inherited and used by other people in their own projects.
Images can be inherited from packages in the local filesystem, GitHub, or Docker.
Installation
The project is live on pypi.
Various installation methods are described here.
NixOS
Check the nix expressions in the release branch and configure accordingly.
In order to build the master branch, run nix-build or nix build (to use
flakes).
Setting Up This Project
NixOS
Running nix develop should set up everything. Note, however, that the
resulting poetry virtual environment will be installed in
~/.cache/pypoetry/virtualenvs, so it's not completely nix-based.
Non-NixOS
This project uses poetry as its dependency manager. Simply run poetry install
and poetry shell inside the project directory, and you should land in a
virtual environment with all of your dependencies.
Testing
In order to run tests in the virtual environment, run pytest.
The Local Environment
The project configuration file should be in (project root)/texbld.toml, while
local image configurations should be in $HOME/.config/texbld/packages.
Metadata
Release files for texbld 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| texbld-0.4.1.tar.gz | 29.5 kB | Without provenance | Details for texbld-0.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| texbld-0.4.1-py3-none-any.whl | Python 3 | none | any | Details for texbld-0.4.1-py3-none-any.whl |
Total release size: 68.8 kB
Release files / texbld-0.4.1.tar.gz
| Download URL | texbld-0.4.1.tar.gz |
|---|---|
| Size | 29.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6be620bf4d59706cf020196aa84ebdf58751789778cbd204626b80f3fec72e92
|
|
BLAKE2b-256 checksum How to use checksums |
ad274bdfd951ede1ca316af99fc5f2f1847171a60e4b5d4141a8d94e2f01c201
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.13 CPython/3.10.5 Linux/5.18.13-200.fc36.x86_64
|
Release files / texbld-0.4.1-py3-none-any.whl
| Download URL | texbld-0.4.1-py3-none-any.whl |
|---|---|
| Size | 39.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
722d7d9915ebc3e6f1a1649815e3c05ad82278df1f760cf02381803f65f4cde8
|
|
BLAKE2b-256 checksum How to use checksums |
b5ef485aeab90028b4d0b63b986bcb78ff78cd57afe8980748603c94a9c6565c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.13 CPython/3.10.5 Linux/5.18.13-200.fc36.x86_64
|
Security for texbld 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.