ftilmann / latexdiff

Compares two latex files and marks up significant differences between them. Releases on www.ctan.org and mirrors
GNU General Public License v3.0
513 stars 72 forks source link

conda-forge package #245

Closed tdegeus closed 2 years ago

tdegeus commented 2 years ago

It would be great to have a conda-forge latexdiff feedstock. I'm willing to do it, but since I have zero perl experience, I do need a little guidance. In particular, I see that the script has a specific shebang. However, one needs to use the perl installation in the virtual environment. So the question: how do I do that? Python has a great way to do it using entry points, is there something similar for perl?


A little context. I still want/need the feature of https://github.com/ftilmann/latexdiff/issues/66 . In particular, just modifying the header to hide removals does sometimes not suffice, in particular when equations were removed. Two things are holding me back to contribute:

  1. I have absolutely zero perl experience. So I hoped that a perl expert would do this in a few minutes only. But since it has been a while, I may have to dive into it.
  2. I have little confidence that contributions will arrive to my system soon, as distribution if latediff is bundled with LaTeX. Now, this at least should be easy to improve by adding it to conda-forge !
tdegeus commented 2 years ago

Or maybe #!/usr/bin/env perl is simply the right way to go and I worry about nothing. Actually, let me just try it.

ftilmann commented 2 years ago

Unfortunately I have essentially zero experience with conda-forge or conda so would not know where to start. If you get somewhere and it does not interfere with existing installation work flows I am happy to accommodate changs.

Sorry on zero progress with other issues. Although individuals occasionally contribute pull requests, latexdiff maintenance and improvement is unfortunately mostly a one-man show, and I have not managed to find much time lately. But if a PR request comes in I should be able to review and merge it within 2-3 weeks unless it raises issues.

tdegeus commented 2 years ago

Unfortunately I have essentially sorry experience with conda-forge or conda so would not know where to start. If you get somewhere and it does not interfere with existing installation work flows I am happy to accommodate changs.

I'll give it a shot, and we'll see

Sorry on zero progress with other issues. Although individuals occasionally contribute pull requests, latexdiff maintenance and improvement is unfortunately mostly a one-man show, and I have not managed to find much time lately. But if a PR request comes in I should be able to review and merge it within 2-3 weeks unless it raises issues.

I understand. I somehow had my hope of finding someone else with this wish that was a perl expert ;)

tdegeus commented 2 years ago

@ftilmann I'm working on the preparations for this feedstock. In particular, for the moment conda-forge is a bit thin on perl support. Could you list the perl dependencies here, such that I can add them first?

ftilmann commented 2 years ago

Sorry for slow response. The dependencies on packages are all listed in the beginning of the code.

use Algorithm::Diff qw(traverse_sequences);

use Getopt::Long ;
use strict ;
use warnings;
use utf8 ;

use File::Spec ;

These would be all the packages that are needed directly; I am not sure how to generate the tree of dependencies.

For Algorithm::Diff, there is also the alternative to use the latexdiff-so or latexdiff-fast versions of the code. These are constructed by using an inlined static version of the Algorithm::Diff package or by using a wrapper around unix diff command, respectively (see the Makefile how they are constructed from standard latexdiff simply by replacing the line where the Algorithm::Diff is imported). All the other packages are generally part of any mainstream perl distribution. I did not really pay any attention to version numbers. Generally the imported packages did not cause me any problems in this respect (with one exception: many years ago, the API of an internal function of Algorithm::Diff changed, and latexdiff had to be adopted to the new format - this was finally the motivation to develop the other versions not to have to play this game again and again, but actually Algorithm::Diff has been stable ever since). Incompatibilities did arise occasionally due to subtle changes in Perl's RegEx syntax, which led to first depracation warnings and then error messages. Generally I dealt with these in adapting perl to the versions available in current standard distributions. So old versions of latexdiff will probably not work with modern Perl's. New versions of latexdiff might or might not work older Perl's (not tested systematically). I did not take a systematic note of these changes but you can reconstruct them either from the commit log or with less granularity from the change log provided in the comments at the top of the latexdiff source.

tdegeus commented 2 years ago

Thanks, the feedstock is live : https://github.com/conda-forge/latexdiff-feedstock . Feel free to reference to it.