Patches in mediawiki/extensions/VisualEditor have been recently failing CI with errors like this:
```
21:39:56 Running "git-status" task
21:39:56 >> Unstaged changes in these files:
21:39:56 >> lib/ve
21:39:57 --- a/lib/ve
21:39:57 +++ b/lib/ve
21:39:57 @@ -1 +1 @@
21:39:57 -Subproject commit 1f76dea7e63ca6b7bd5f1ef6a372c1878429f973
21:39:57 +Subproject commit 3891890c29a72941b0eae1bfd7b3b829bc58b343
21:39:57 Warning: Task "git-status" failed. Use --force to continue.
```
This is despite the patch not touching the lib/ve submodule.
Examples:
* https://gerrit.wikimedia.org/r/c/mediawiki/extensions/VisualEditor/+/698547
* https://gerrit.wikimedia.org/r/c/mediawiki/extensions/VisualEditor/+/698597
Timing seems to match the switch to Node 12 from Node 10 (T284345). No idea how it could be related.
`git-status` comes from:
```
name=Gruntfile.js,lang=js
grunt.registerTask( 'git-status', function () {
var done = this.async();
// Are there unstaged changes?
require( 'child_process' ).exec( 'git ls-files --modified', function ( err, stdout, stderr ) {
var ret = err || stderr || stdout;
if ( ret ) {
grunt.log.error( 'Unstaged changes in these files:' );
grunt.log.error( ret );
// Show a condensed diff
require( 'child_process' ).exec( 'git diff -U1 | tail -n +3', function ( err2, stdout2, stderr2 ) {
grunt.log.write( err2 || stderr2 || stdout2 );
done( false );
} );
} else {
grunt.log.ok( 'No unstaged changes.' );
done();
}
} );
} );
```
And the CI job did:
```
14:49:01 + git submodule update --init --remote
14:49:06 Submodule path 'lib/ve': checked out '3891890c29a72941b0eae1bfd7b3b829bc58b343'
```
But the submodule got set to 1f76dea7e63ca6b7bd5f1ef6a372c1878429f973 by a previous change: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/VisualEditor/+/698062