-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: prefer tectonic-biber
as the biber executable
#1166
base: master
Are you sure you want to change the base?
Conversation
db2aeb1
to
e026202
Compare
To go on a moderate tangent ... I have been thinking that maybe a good solution for the biber problem, and other issues I see farther down the line, is to provide some lightweight integration with various package managers as you mention here. This would be most useful for systems where packages can be installed, and their associated environments can be activated, very "locally"; I don't know if Nix is like that. The idea is that V2
... where might be something like "nix", "venv", "nodejs", or "pixi". The last of these (Pixi) is a Conda-based system which explicitly targets local configuration and install, which is exactly what we would want for reproducibility, and it looks like it would be a great fit for this use case. Perhaps Nix would be as well. Tectonic would only have to integrate with any of these in a lighweight way: basically to be able to set up its executable search path for shell-escape operations. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1166 +/- ##
==========================================
+ Coverage 46.41% 46.42% +0.01%
==========================================
Files 176 176
Lines 65118 65136 +18
==========================================
+ Hits 30222 30242 +20
+ Misses 34896 34894 -2 ☔ View full report in Codecov by Sentry. |
Yes, Nix is precisely like that! Everything is defined in the local
This is an interesting idea! Perhaps an easier way to implement this is to accept a shell command to activate / source the environment, e.g. |
My intuition is that a bit tighter integration could be helpful; e.g. it would be nice for Tectonic to know how to run (e.g.) environment = { customActivation: "conda activate" } seems like it could work. |
When an executable called `tectonic-biber` is found, either in the current working directory or in `$PATH`, prefer that as the biber executable over the plain old `biber`. This may help resolve possible version mismatch between `biber` and the bundled `biblatex` files when there are multiple TeX installations on a system.
In particular, refactor the biber tests in tests/executable to reduce duplicated code.
307d676
to
e45284f
Compare
I came here after finally figuring out how to address #893 (new tectonic user; did no realize the version mismatch originated from tectonic using texlive's This patch works for me, but I'd like to suggest including the paths specified in For instance, I have a git submodule set up with the class I'm using under |
This PR provides a proposal to finally tackle #893.
tectonic-biber
is found, either in the current working directory or in$PATH
, prefer that as the biber executable instead ofbiber
. Since V2 CLI: Add external commands #1103, thetectonic-biber
override can also be invoked withtectonic -X biber
.tests/executable
are refactored to reduceduplication.
I tried my best to document things in the tectonic book, but I'm a terrible writer so there is definitely room for improvement!