[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: