Bug#911185: commit hash not found in translation-check header breaks the wml build
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;
}
Reply to: