Releases: digineo/texd
v0.8.1
Notable Changes
This is mainly a bugfix release: In 0.8.0 the reference store implementations were missing due to an refactoring oversight.
This also switches the logger from Uber's zap to the log/slog from Go's standard library. The output should not have changed, apart from some formatting.
Changelog
v0.8.0
New flag: --[no-]shell-escape
From the README:
By default, (La)TeX allows some "trusted" binaries, e.g.
bibtexandkpsewhich, to be executed during the compilation process, since these are sometimes required for packages to work.If you want to prohibit the execution of these programs, pass
--no-shell-escapetotexd. Note that, as mentioned, some packages will stop working.On the other hand, if you want to allow arbitrary command execution (!), for example with
os.executeinlualatex, you may pass--shell-escape. Be careful, here be dragons.Also note that
--shell-escapeand--no-shell-escapeare mutually exclusive.
New CLI flag parsing
We've migrated the library used to parse CLI flags (from github.com/spf13/pflags to github.com/urfave/cli/v3).
This was done mostly for developer ergonomics, but as an additional benefit, the --help output now groups flags by category, instead of printing them in alphabetical order.
Changelog
- a7fd146 - refactor: migrate spf13/pflags to urfave/cli
- d8dc250 - refactor: split main.go in digestable chunks and add tests
- f10d3cc - feat: add --[no-]shell-escape flag
- 9afdded - ci: skip goreleaser step when Github release exists
- 37c896d - update README
- 3a0693c - chore(deps): bump actions/github-script from 8 to 9
- b156604 - chore: update more dependencies
- 8605fcb - chore: update dependencies
v0.7.1
v0.7.0
v0.6.3
v0.6.0
Maintenance release.
(No new features, only dependency updates.)
Going forward, we're using Github Packages for the Docker images.
To migrate, pull ghcr.io/digineo/texd instead of digineode/texd, for example:
$ docker pull ghcr.io/digineo/texd:v0.6.0v0.5.1
Maintenance release. An update is strongly recommended.
(No new features, only dependency updates.)
Contains a security fix for CVE-2022-41723 (GHSA-vvpx-j8f3-3w6h).
A maliciously crafted HTTP/2 stream could cause excessive CPU consumption in the HPACK decoder, sufficient to cause a denial of service from a small number of small requests.
v0.5.0
This release adds a Memcached adapter for the reference store.
To use this adapter, start your texd instance like so:
$ texd [other options] --reference-store=memcached://cache.example.com:11211To use this adapter in a Docker container, you need to make sure texd and Memcached operate on the same network. Use this Docker Compose file as guidance:
version: '3'
services:
texd:
image: digineode/texd:latest
command: --reference-store=memcached://memcached:11211?expiration=5s
depends_on:
- memcached
ports:
- 127.0.0.1:2201:2201
links:
- memcached
memcached:
image: memcached:1-alpine
command: memcached -m 16 -vvSee Go docs for supported features of this adapter.
v0.4.1
This release adds a retention policy to the reference store, which allows to (optionally) keep the size of the stored files within limits. From the README:
texd supports three different retention policies:
keep(ornone) will keep all file references forever. This is the default setting.purge-on-start(or justpurge) will delete file references once on startup.accesswill keep an access list with LRU semantics, and delete file references, either if
a max. number of items is reached, or if the total size of items exeedes a threshold, or both.To select a specific retention policy, use the
--retention-policyCLI flag:$ texd --reference-store=dir://./refs --retention-policy=purgeTo configure the access list (
--retention-policy=access), you can adopt the quota to your needs:$ texd --reference-store=dir://./refs \ --retention-policy=access \ --rp-access-items=1000 \ --rp-access-size=100MBNotes:
- The default quota for the max. number of items (
--rp-access-items) is 1000.- The default quota for the max. total file size (
--rp-access-size) is 100MB.- Total file size is measured in bytes, common suffixes (100KB, 2MiB, 1.3GB) work as expected.
- To disable either limit, set the value to 0 (e.g.
--rp-access-items=0).- It is an error to disable both limits (in this case just use
--retention-policy=keep).