Package: www.debian.org Severity: wishlist Dear all When there is a mistake in the hash of the translation-check header in a wml file, the build fails. Here's an example when doing "make" with a wml file with a translation-check header containing "test" instead of the git hash:
wml -q -D CUR_YEAR=2018 -o UNDEFuES:index.es.html@g+w index.wml ePerl:Error: Perl runtime error (interpreter rc=0) ---- Contents of STDERR channel: --------- count_changes() ERROR: commit rev1 test not found in revisions of ../..//english/reports/index.wml ------------------------------------------ ** WML:Break: Error in Pass 3 (rc=1). ../../Makefile.common:119: recipe for target 'index.es.html' failed I wonder if we'd like that instead of failing, the script would handle this issue and build the page using the tag "originalolder" (then, the translated file would be available, with a warning "Wrong translation version!"). I'm attaching a patch that generates this behavior, but I have some concerns: * I'm not sure if we should change all the occurrences in the code where a commit is not found from failure to this behaviour (see the diff, 4 occurrences) * I'm not sure if we want that, or we prefer that the build fails and make the CI not ignore these errors (then I guess the person committing the file with wrong translation hash would get a mail, and hopefully fix the file. If the page is built, maybe these kind of issues pass by unnoticed). Comments? -- Laura Arjona Reina https://wiki.debian.org/LauraArjona
diff --git a/Perl/Local/VCS_git.pm b/Perl/Local/VCS_git.pm index 9c76c0ba969..6f065f290a3 100644 --- a/Perl/Local/VCS_git.pm +++ b/Perl/Local/VCS_git.pm @@ -467,12 +467,12 @@ sub cmp_rev } if ($pos1 == -1) { # Not found - print STDERR "ERROR: commit rev1 $rev1 not found in revisions of $file\n"; - $ret = undef; + $self->_debug("WARNING: commit rev1 $rev1 not found in revisions of $file\n"); + $ret = -1; } elsif ($pos2 == -1) { # Not found - print STDERR "ERROR: commit rev2 $rev2 not found in revisions of $file\n"; - $ret = undef; + $self->_debug("WARNING: commit rev2 $rev2 not found in revisions of $file\n"); + $ret = -1; } elsif ($pos1 == $pos2) { $ret = 0; } elsif ($pos1 < $pos2) { @@ -562,12 +562,12 @@ sub count_changes } if ($pos1 == -1) { # Not found - print STDERR "count_changes() ERROR: commit rev1 $rev1 not found in revisions of $file\n"; - $ret = undef; + $self->_debug("count_changes() WARNING: commit rev1 $rev1 not found in revisions of $file\n"); + $ret = -1; } elsif ($pos2 == -1) { # Not found - print STDERR "count_changes() ERROR: commit rev2 $rev2 not found in revisions of $file\n"; - $ret = undef; + $self->_debug("count_changes() WARNING: commit rev2 $rev2 not found in revisions of $file\n"); + $ret = -1; } else { $ret = $pos1 - $pos2; }