No description
Find a file
Tiara Rodney d5772b47d4
dev: packaging
tinkering to figure out a good way too encapsulate a foreign pip-incompatible
software library contractually.

In this case the Sphinx theme depends upon a gzip-archive (tarball) software
library of an HTML theme. The HTML theme provides static HTML assets and I
expect them to be present under _static/ in the html builder output directory of
Sphinx. The HTML theme is packaged as a gzip archive and provides a GPG
signature. That's basically the contract. But the contract becomes intransparent
as soon as the HTML assets are treated as part of the Sphinx theme project, so
decompressed and unarchived into the src/ directory of the Sphinx theme and
then handled through the sphinx-build hooks. The signature can't be verified
against single files of the archive since the compressed archive is signed.

Ideally, the archive would be decompressed and unarchived during sphinx-build,
but I'm not really happy with the fact that a temporary directory is needed for
this in order to cache as much as possible, so that decompressing isn't required
upon every built. So within the temporary directory, I would have to keep track
of the hash of the compressed archive in order to know when decompression and
unarchiving is needed again, and to store the decompressed assets. Though event
that is not quite intentful. If the performance of treating the tarball archive
as a virtual filesystem, I'd rather let the HTML theme provide an additional
signature for the tarball archive, that way I can check for the existance of
files in the sphinx-build output directory by comparing against a listing of the
tarball archive, after verifying the checksum of the archive hasn't changed.
That way the contract wouldn't be broken and transparent for the user of this
Sphinx theme.
2025-06-09 18:10:34 +02:00
src/byteb4rb1e/sphinxcontrib/theme/seaharvest dev: packaging 2025-06-09 18:10:34 +02:00
vendor chore: move project 2025-06-09 17:16:12 +02:00
.gitignore feat(build): initialize build configuration 2025-03-23 00:19:58 +01:00
.gitmodules chore: move project 2025-06-09 17:16:12 +02:00
ARCHITECTURE.md doc(ARCHITECTURE): init 2025-03-23 01:48:16 +01:00
configure chore(configure): add verbosity 2025-04-09 21:07:03 +02:00
configure.ac chore(configure): add verbosity 2025-04-09 21:07:03 +02:00
Makefile feat(build): add build target 2025-03-29 20:07:37 +01:00
Pipfile feat(build): add build target 2025-03-29 20:07:37 +01:00
Pipfile.lock feat(build): add build target 2025-03-29 20:07:37 +01:00
pyproject.toml chore: move project 2025-06-09 17:16:12 +02:00
README.md doc(README): add archival notice 2025-05-06 15:58:33 +02:00
requirements-dev.txt feat(build): add build target 2025-03-29 20:07:37 +01:00
requirements.txt chore: init base dependency management 2025-03-22 23:53:17 +01:00
setup.py init 2024-04-07 22:32:31 +02:00
TODO todo(1): in-progress 2025-06-09 18:10:15 +02:00
tox.ini init 2024-04-07 22:32:31 +02:00

Tiara's Sphinx Theme Reference Implementation

🛌 NOTICE: This project is taking a naap. It depends upon html-theme-ref, which hasn't stabilized yet. I will restart work around June '25.

Installation

The program is aimed towards UNIX/GNU in POSIX environments. NT users in PowerShell may consult configure.ac for initial configuration and Makefile for development/build targets.

Initialize the project

sh ./configure
Pipfile.lock
requirements.txt
requirements-dev.txt
configure
configure
src/sphinx_theme_ref/assets