langsci / CTAN

The LangSci LaTeX class for CTAN roll-out
0 stars 0 forks source link

Old (buggy) version of biblatex-sp-unified takes precedence over version in a user's TEXMFHOME when compiling with XeLaTeX #2

Closed adamliter closed 7 years ago

adamliter commented 7 years ago

Most of this is more or less verbatim what I said over in https://github.com/langsci/latex/issues/50, which was the wrong location ... 😝


langsci is distributing an old version of bibliatex-sp-unified.bbx and sp-authoryear-comp.cbx which breaks with versions of Biblatex 3.5 and newer (cf. https://github.com/semprag/biblatex-sp-unified/issues/23, https://github.com/semprag/biblatex-sp-unified/issues/24). I do have versions of the newest biblatex-sp-unified files in my TEXMFHOME. However, because you've chosen to place these files in tex/xelatex/, these broken versions of the file get picked up before the one in my TEXMFHOME when compiling with XeLaTeX (see, e.g., this answer to Why isn't kpathsea picking up my local version of a file?).

So the first point is that .cbx and .bbx files really should not be going in tex/xelatex. I've never distributed a package myself, so I'm not totally sure how it works, but I think you should be able to distribute the package across different directories of the TeX Directory Structure, correct? The .cbx files should go in tex/latex/biblatex/cbx, and the .bbx files should go in tex/latex/biblatex/bbx. (see below) If you fix this, this will not break things for users who might have different versions of the files in their TEXMFHOME that they might wish to use when compiling with XeLaTeX. Currently, the only options are to either move the stuff distributed in langsci out of the way, modify texmf.cnf (probably a bad idea), or not use XeLaTeX.

In addition to putting the bibliography files in the appropriate place, it would probably also be better if you weren't distributing something that has the same name as something that is being maintained by someone else. I know it's unfortunate that the S&P folks have not put this on CTAN so distributing it yourselves is convenient, but I suspect it could lead to more headaches in the long run. Perhaps @fintelkai and @chbrown could be convinced to release biblatex-sp-unified on CTAN. I know the Glossa folks also rely on it (cc: @guidovw).

Anyway, there are a few reasons why it could possibly lead to more headaches in the long run. For example, because you're distributing something with the same name, @fintelkai and @chbrown could conceivably get bug reports about things that they've already fixed but are still broken/buggy in an older version that you're distributing. This would be something that could take a while for an end user to debug and figure out. Relatedly, it would probably also be confusing/misleading for anyone who is trying to help an end user, whether it's in person or someone on TeX.SX. The person providing assistance might also be confused by the fact that there are now effectively two copies of the same files being maintained but that aren't necessarily being kept in sync.

And, related to that last point, I was wondering what's going on with the biblatex-langsci-unified.bbx and langsci-authoryear-comp.cbx symlinks. I see that they're not currently being used in langscibook.cls, but if you do use either of those names to specify the bibstyle or citestyle, you'll end up with both that name and the name of the file to which it is a symlink in the log file. This could complicate debugging unless someone knows to look for this.

Anyway, like I said, I don't mean to butt in here. This is all meant as friendly advice 😸, and I've never distributed a package myself before, so I'm not entirely sure how it works, but it seems like there might be some things that could be improved. At the very least, it would be nice if the biblatex-sp-unified files that you're distributing don't take precedence over my local copies in TEXMFHOME when compiling with XeLaTeX.


So I just learned that CTAN has a strong preference for submissions where everything is in the same directory. Perhaps a possibility would be to distribute the bibliography stuff as a separate package (it looks like other Biblatex-based packages just put all the .bbx and .cbx files in a single directory underneath tex/latex/biblatex)? Or, if the S&P folks can be convinced to release biblatex-sp-unified to CTAN, then that problem goes away (unless you want to make any modifications to the bibliography, of course, but it doesn't look like langsci currently does that?).


One last point that I did not make over at https://github.com/langsci/latex/issues/50 is that it's probably not the best idea to have three different .bbx files that all say \ProvidesFile{sp-biblatex.bbx}. This is something that will likely also only make debugging harder.

fintelkai commented 7 years ago

I just looked at the langsci code on CTAN. As far as I can tell the documentclass actually loads the renamed files (biblatex-langsci-unified.bbx, langsci-authoryear-comp.cbx) and so the presence of biblatex-sp-unified.bbx and sp-authoryear-comp.cbx is unnecessary. Since the versions of our files that are in the langsci CTAN distribution are seriously outdated and since they aren't actually used by the package, I think they should be removed. This will then not create issues for users who use the up-to-date github versions of our files.

In the medium term, we will provide our files on CTAN and then langsci can decide whether to build their system on ours (in which case, there should be a better solution than renaming whenever we have a new version) or distribute a bibliographic style that, like now, is a variant of ours.

But for now, the problem is solved by removing the outdated version of our files (which are idle) from the langsci distribution.

Glottotopia commented 7 years ago

removed the offending files from CTAN

adamliter commented 6 years ago

The day might be coming: https://github.com/semprag/biblatex-sp-unified/issues/42