text:
Build failure

I can't seem to build souper on my Linux machine. I'm not sure whether this is an LLVM problem or a cmake problem. I am but a humble Rust developer
Consolidate compiler generated dependencies of target souperCodegen
Consolidate compiler generated dependencies of target souperPassProfileAll
Consolidate compiler generated dependencies of target souperKVStore
Consolidate compiler generated dependencies of target souperInst
Consolidate compiler generated dependencies of target profileRuntime
Consolidate compiler generated dependencies of target souperPass
Consolidate compiler generated dependencies of target souperSMTLIB2
Consolidate compiler generated dependencies of target kleeExpr
[  2%] Building CXX object CMakeFiles/souperPassProfileAll.dir/third_party/klee/lib/Expr/Constraints.cpp.o
[  3%] Built target profileRuntime
[  4%] Building CXX object CMakeFiles/souperCodegen.dir/lib/Codegen/Codegen.cpp.o
[  4%] Building CXX object CMakeFiles/souperPassProfileAll.dir/third_party/klee/lib/Expr/ExprBuilder.cpp.o
[  6%] Building CXX object CMakeFiles/souperKVStore.dir/lib/KVStore/KVStore.cpp.o
[  6%] Building CXX object CMakeFiles/souperInst.dir/lib/Inst/Inst.cpp.o
[  6%] Building CXX object CMakeFiles/souperSMTLIB2.dir/lib/SMTLIB2/Solver.cpp.o
[  7%] Building CXX object CMakeFiles/souperPass.dir/third_party/klee/lib/Expr/Constraints.cpp.o
[  7%] Building CXX object CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/Constraints.cpp.o
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/ExprBuilder.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/ExprBuilder.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/StringRef.h:12,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/SmallString.h:17,
                 from /home/isaacm/souper/lib/SMTLIB2/Solver.cpp:18:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/Constraints.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/Constraints.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/StringRef.h:12,
                 from /home/isaacm/souper/include/souper/KVStore/KVStore.h:18,
                 from /home/isaacm/souper/lib/KVStore/KVStore.cpp:15:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/souperPassProfileAll.dir/build.make:90: CMakeFiles/souperPassProfileAll.dir/third_party/klee/lib/Expr/ExprBuilder.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[  8%] Building CXX object CMakeFiles/souperPass.dir/third_party/klee/lib/Expr/ExprBuilder.cpp.o
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/Constraints.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/Constraints.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/Constraints.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/Constraints.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/DenseMapInfo.h:18,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/DenseMap.h:16,
                 from /home/isaacm/souper/include/souper/Inst/Inst.h:19,
                 from /home/isaacm/souper/lib/Inst/Inst.cpp:15:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/DenseMapInfo.h:18,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/DenseMap.h:16,
                 from /home/isaacm/souper/include/souper/Inst/Inst.h:19,
                 from /home/isaacm/souper/include/souper/Codegen/Codegen.h:18,
                 from /home/isaacm/souper/lib/Codegen/Codegen.cpp:17:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/souperSMTLIB2.dir/build.make:76: CMakeFiles/souperSMTLIB2.dir/lib/SMTLIB2/Solver.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:348: CMakeFiles/souperSMTLIB2.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  8%] Building CXX object CMakeFiles/souperPass.dir/third_party/klee/lib/Expr/Expr.cpp.o
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/ExprBuilder.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/ExprBuilder.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/Expr.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/souperPass.dir/build.make:76: CMakeFiles/souperPass.dir/third_party/klee/lib/Expr/Constraints.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[  9%] Building CXX object CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/ExprBuilder.cpp.o
make[2]: *** [CMakeFiles/souperPass.dir/build.make:90: CMakeFiles/souperPass.dir/third_party/klee/lib/Expr/ExprBuilder.cpp.o] Error 1
[ 10%] Building CXX object CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/Expr.cpp.o
make[2]: *** [CMakeFiles/souperKVStore.dir/build.make:76: CMakeFiles/souperKVStore.dir/lib/KVStore/KVStore.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:240: CMakeFiles/souperKVStore.dir/all] Error 2
[ 11%] Building CXX object CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/ExprEvaluator.cpp.o
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/ExprBuilder.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/ExprBuilder.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/souperInst.dir/build.make:76: CMakeFiles/souperInst.dir/lib/Inst/Inst.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:296: CMakeFiles/souperInst.dir/all] Error 2
[ 11%] Building CXX object CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/ExprPPrinter.cpp.o
make[2]: *** [CMakeFiles/kleeExpr.dir/build.make:76: CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/Constraints.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 11%] Building CXX object CMakeFiles/souperCodegen.dir/lib/Codegen/MachineCost.cpp.o
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/Expr.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/souperPassProfileAll.dir/build.make:76: CMakeFiles/souperPassProfileAll.dir/third_party/klee/lib/Expr/Constraints.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:458: CMakeFiles/souperPassProfileAll.dir/all] Error 2
make[2]: *** [CMakeFiles/souperPass.dir/build.make:104: CMakeFiles/souperPass.dir/third_party/klee/lib/Expr/Expr.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:432: CMakeFiles/souperPass.dir/all] Error 2
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/util/ExprEvaluator.h:13,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/ExprEvaluator.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/kleeExpr.dir/build.make:90: CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/ExprBuilder.cpp.o] Error 1
make[2]: *** [CMakeFiles/kleeExpr.dir/build.make:118: CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/ExprEvaluator.cpp.o] Error 1
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/APFloat.h:20,
                 from /home/isaacm/souper/third_party/klee/include/klee/Expr.h:17,
                 from /home/isaacm/souper/third_party/klee/include/klee/util/PrintContext.h:4,
                 from /home/isaacm/souper/third_party/klee/lib/Expr/ExprPPrinter.cpp:10:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
In file included from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/ArrayRef.h:15,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/DenseMapInfo.h:18,
                 from /home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/DenseMap.h:16,
                 from /home/isaacm/souper/include/souper/Inst/Inst.h:19,
                 from /home/isaacm/souper/include/souper/Codegen/Codegen.h:18,
                 from /home/isaacm/souper/lib/Codegen/MachineCost.cpp:15:
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected unqualified-id before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                  ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1823:18: error: expected ‘)’ before ‘const’
 1823 |   result_pair<R>(const result_pair<R> &Other)
      |                 ~^~~~~
      |                  )
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected unqualified-id before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                      ^~~~~
/home/isaacm/souper/third_party/llvm-Release-install/include/llvm/ADT/STLExtras.h:1873:22: error: expected ‘)’ before ‘const’
 1873 |   enumerator_iter<R>(const enumerator_iter<R> &Other) : Result(Other.Result) {}
      |                     ~^~~~~
      |                      )
make[2]: *** [CMakeFiles/kleeExpr.dir/build.make:104: CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/Expr.cpp.o] Error 1
make[2]: *** [CMakeFiles/souperCodegen.dir/build.make:76: CMakeFiles/souperCodegen.dir/lib/Codegen/Codegen.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/kleeExpr.dir/build.make:132: CMakeFiles/kleeExpr.dir/third_party/klee/lib/Expr/ExprPPrinter.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:155: CMakeFiles/kleeExpr.dir/all] Error 2
make[2]: *** [CMakeFiles/souperCodegen.dir/build.make:90: CMakeFiles/souperCodegen.dir/lib/Codegen/MachineCost.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:406: CMakeFiles/souperCodegen.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

And in case you need it,
CMakeCache.txt

Some more info about my system
[isaacm@ACERLaptop build]$ pfetch
       /\         isaacm@ACERLaptop
      /  \        os     Arch Linux
     /\   \       host   Swift SF314-42 V1.04
    /      \      kernel 5.17.1-zen1-1-zen
   /   ,,   \     uptime 9h 32m
  /   |  |  -\    pkgs   1625
 /_-''    ''-_\   memory 1698M / 7374M

[isaacm@ACERLaptop build]$ gcc --version
gcc (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[isaacm@ACERLaptop build]$ g++ --version
g++ (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[isaacm@ACERLaptop build]$ make --version
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[isaacm@ACERLaptop build]$ cmake --version
cmake version 3.23.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).

thanks for this report. I might not be able to look into it right away but we're definitely due for some souper love and care. it's a little disturbing that the first error is in an LLVM header, if there's nothing else wrong there might not be anything to try other than you use an older GCC or we bump souper to latest LLVM. bumping souper is in the plan but it's definitely not happening before the end of spring semester a few weeks from now.

repo: google/souper


text:
header guards from different files might be the same?

cpplint uses a specific pattern for the header guards of a file. It looks to me that this pattern can lead to the same PP variable for different headers (with different names and paths).
Let me describe a simple scenario with two files:

include/foo_bar/baz.h
include/foo/bar_baz.h

Following cpplint rules both of them would end up using the header guard variable FOO_BAR_BAZ_H_.
Am I missing something or is this really the case? If it is, wouldn't it be better to change the rule to make these two result in different variables? E.g. a path separator could be transformed into a double underscore which would result in two different variables:

FOO_BAR__BAZ_H_
FOO__BAR_BAZ_H_

Then, how about:
foo__bar.h
foo/bar.h

There are only two options:

either choose a separator which can not occur in a file name or
choose a sequence (like double underscore) which is a) uncommon in file names and b) should be discourage to use in http://google.github.io/styleguide/cppguide.html#File_Names

Since I don't see which character would be allowed in a preprocessor name which isn't in a filename I suggested a double underscore. But any sequence would be subject to a potential collision if it is allowed in a filename.

source: gharchive/issue

repo: google/styleguide

license_type: permissive

license_source: bigquery


text:
executor: don't exit if NETLINK_GENERIC isnt' supported

NETLINK_GENERIC isn't supported in gVisor.
Fixes: c5ed587f4af5 ("wireguard: setup some initial devices in a triangle")

Codecov Report

Merging #1620 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1620   +/-   ##
=======================================
  Coverage   56.23%   56.23%
=======================================
  Files         146      146
  Lines       27320    27320
=======================================
  Hits        15363    15363
  Misses      11176    11176
  Partials      781      781

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 251aabb...33558f9. Read the comment docs.

source: gharchive/pull-request

authors: avagin codecov-io

repo: google/syzkaller


text:
ImportError: cannot import name 'insert_grad_of'

unable to import : from tangent import insert_grad_of

Thanks for catching this. Fixed.

repo: google/tangent


text:
Update look & feel for TCMalloc documentation set

Add navigation header
Override default template to add navigation header
Implement minimal theme
provide CSS overrides to create more content layout

Would it be possible to squash this commit history?  The commits changing the theme look redundant after squashing.

authors: ckennelly manshreck

repo: google/tcmalloc


text:
Windows Support

I was thinking to build something like this in the last day, but luckily I found Dart Test Runner. Seems promising, and I look forward for a version that supports Windows.
Looks like the main problem is the detection of the binaries using which? Replacing it with for %G in (pub.bat) do @echo.%~$PATH:G on Windows seems to be already sufficient (requires runInShell: true). The problem is that you need to know the extension of executable. While pub and dart2js use batch files  (bat)  on Windows, is content_shell an executable (exe). Either one checks for both exe and bat extension or passes the expected Windows extension to the _checkBinary method. Not sure which one to choose?
In addition, I found a problem expecting the path seperator to be /:
  String get testFileName {
    String absFilePath = new File(testFilePath).resolveSymbolicLinksSync();
    String absDirPath = dartProject.testDirectory.resolveSymbolicLinksSync();
    // Current code:
    return absFilePath.replaceFirst("$absDirPath/", "");
    // Can be replaced with:
    return absFilePath.replaceFirst("$absDirPath${Platform.pathSeparator}", "");
  }

Maybe using the ``path` package can resolve these sort of problem.
I can send a PR adding support for Windows.

Then we can close this, too :)

Thanks! Would you mind adding Content Shell install instructions for Windows? I've created a section specific to Content Shell in the docs because installing and finding it has been an issue for lots of people:
https://github.com/google/test_runner.dart#content-shell
If you know how to fill the Windows section don't hesitate! :) (You can have a look at the Mac OSX section which I've just filled)

Would be something like:

Download and unpack into a folder
Add that folder to PATH

I don't think that this is a good way, but the only I'm aware of. Not sure if there is any tool to make that easier.
A pub global activate content_shell would be nice and easy :smile:, is platform independent and solves the PATH problem. But that would be a feature request for the Dart team.

Yes that's great. I just wasn't sure it was that easy :) (in mac for some reasons and in some cases we need to create an intermediary shell script rather than a soft link... also the name of the executable on Mac: "Content Shell" is different to what's done on other platform "content_shell")
Maybe you can add the instruction/command about how to add a folder to the PATH (just to be thorough... even if that's easy).

pub global activate would be nice but unfortunately it only works for Dart project (right now :))

license_source: github-api


text:
For each question, write a Karma integration test to ensure that all the tasks can be passed.

In order to make sure that at least the demo questions are playable end-to-end, as well as guard against possible errors on the part of the question author, it might be nice to write a Karma test (for each question) that mimics a complete answer/feedback flow, all the way to the completion of all the tasks in the question. This would ensure that each question is completable, and help guard against errors arising during content development.
It might also be helpful to have one e2e Protractor test that mimics an end-to-end playthrough of a single question and checks that the right things get displayed in the right places.

Note: This might be as straightforward as specifying a "correct answer" in each question schema, which would pass all the tests.

repo: google/tie


text:
Turbinia worker fails when DOCKER_ENABLED=True and there is no docker deamon

Add exception handling to docker code to avoid breakage Stacktrace:
Traceback (most recent call last):
  File "/usr/local/bin/turbiniactl", line 33, in <module>
    sys.exit(load_entry_point('turbinia==20210208.3', 'console_scripts', 'turbiniactl')())
  File "/usr/local/lib/python3.6/dist-packages/turbinia-20210208.3-py3.6.egg/turbinia/turbiniactl.py", line 662, in main
    jobs_denylist=args.jobs_denylist, jobs_allowlist=args.jobs_allowlist)
  File "/usr/local/lib/python3.6/dist-packages/turbinia-20210208.3-py3.6.egg/turbinia/client.py", line 1261, in __init__
    check_docker_dependencies(dependencies)
  File "/usr/local/lib/python3.6/dist-packages/turbinia-20210208.3-py3.6.egg/turbinia/client.py", line 145, in check_docker_dependencies
    images = docker_manager.DockerManager().list_images(return_filter='short_id')
  File "/usr/local/lib/python3.6/dist-packages/turbinia-20210208.3-py3.6.egg/turbinia/lib/docker_manager.py", line 84, in __init__
    self.client = self._create_client()
  File "/usr/local/lib/python3.6/dist-packages/turbinia-20210208.3-py3.6.egg/turbinia/lib/docker_manager.py", line 99, in _create_client
    docker_client = docker.from_env()
  File "/usr/local/lib/python3.6/dist-packages/docker/client.py", line 101, in from_env
    **kwargs_from_env(**kwargs)
  File "/usr/local/lib/python3.6/dist-packages/docker/client.py", line 45, in __init__
    self.api = APIClient(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py", line 197, in __init__
    self._version = self._retrieve_server_version()
  File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py", line 222, in _retrieve_server_version
    'Error while fetching server API version: {0}'.format(e)
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

Add exception around https://github.com/google/turbinia/blob/508c796ff2ea2dd7e4ba7b1cfdc1e5fd7db2cc97/turbinia/client.py#L145

This happens when DOCKER_ENABLED=True, there is no docker daemon installed. In this case the code will try to connect to the docker manager, urllib will retry and docker will think it's in error and restart itself creating a loop of error/restart

authors: alimez hacktobeer

repo: google/turbinia


text:
Collection of issues i faced while using the plugin

Hello,
I want to share my issues experience with the plugin!
i'm using the last version of wordpress and web stories plugin, here some issues i faced (Sorry if just reported)
Test link i used: https://claudia-makeup.com/stories/trucco-anni-70-webstory/)

Edit view is different from the final result

Edit view:

Mobile online view:

Desktop online view:

The height seems a little larger from edit view, expecially compared with the online mobile view where i can't even see the bottom pink line

There is a weird bug where some text is over the original text on mobile view, but there isnt on desktop online view and on edit view, another case on the last page of the webstory

Sometimes my wordpress editor is zoomed, sometimes not, this issue also change single elements ratio. It's hard to duplicate, i try to attach some screenshots

No zoom:

Zoom:

Basically the zoomed version is almost similar to the final result, the unzommed editor is like the 1 screenshot. When i experience this change i also see that elements inside the story editor move their position inside the frame (its not a proportional scale)

Cover image stories

Google search console report me an error with cover image size, but i can't see any note on the editor that suggest the right size to use. Is it possible to know the right size (So i can fix this issue) and have a little note about it into the backend?

I hope all it's clear, thanks in advice!

Hi @Dennis-95! Thanks again for sharing your feedback and findings!

Edit view is different from the final result

Could you share the following about both your Mobile and Desktop device:
Plugin Version: [ex: Beta-1.2]
Browser: [ex: Chrome, Safari, Edge]
Device: [ex: iPhone 6, MacBook Air]
Operating System: [ex: MacOS, Windows]
We'll continue to  investigate this further on our side.

Cover image stories

This looks related to a similar issue reported, which we are investigating. The specification is for the cover image (poster image) can be found here. Note the following recommended minimum requirements:

Each poster image should meet the recommended minimum size:
Portrait: 640px x 853px
Landscape: 853px x 640px
Square: 640px x 640px

Could you share the following about both your Mobile and Desktop device:

Plugin Version: 1.0.0-beta.1
Browser desktop: Chrome on windows 10
Browser mobile: Chrome
Mobile Device: One plus 5t
Operating System: Windows 10, Android 9.0

This looks related to a similar issue reported, which we are investigating. The specification for the cover image (poster image) > can be found here. Note the following recommended minimum requirements

My images are 1200x600, do you even suggest to wait your fix?
Thanks a lot for your work!

Sometimes my wordpress editor is zoomed, sometimes not, this issue also change single elements ratio. It's hard to duplicate, i try to attach some screenshots

Curious, in  those cases, is your browser zoomed? Does pressing Ctrl+- (make everything smaller) or Ctrl+0 (reset zoom to 100%) help? See https://support.google.com/chrome/answer/96810?hl=en for the keyboard shortcuts.

My images are 1200x600, do you even suggest to wait your fix?

Yes, please wait until we've implemented a fix on our side. We'll post an update here once the issue has been addressed. It's a rather high priority thing as it breaks discovery, so it should be soon.

Curious, in those cases, is your browser zoomed? Does pressing Ctrl+- (make everything smaller) or Ctrl+0 (reset zoom to 100%) help? See https://support.google.com/chrome/answer/96810?hl=en for the keyboard shortcuts.

Nope it's always 100%! But today, opening the editor, here the zoomed version of the editor:

My images are 1200x600, do you even suggest to wait your fix?

Yes, please wait until we've implemented a fix on our side. We'll post an update here once the issue has been addressed. It's a rather high priority thing as it breaks discovery, so it should be soon.

Thanks a lot!
About the over text / different results deom editor to live version do you have any idea if it's a bug or an isoleted problem?

PS: I'm actually adding a new story, the editor started like always with the zoomed version (I think the right one), after a draft save and a vorswer windows change now i see the unzoomed editor
An interesting thing is that after this "minimize" the element height, at first inside the webstory frame, it's now outside the frame (red paint on my screenshot)

@Dennis-95 thanks for the additional info!

Edit view is different from the final result

a)  I've been trying to recreate the issue with the overlapping text (second page and last page of story) on mobile using the Chrome browser and emulating the One Plus 5T, but haven't seen it yet.
Are you still experiencing the issue? Would you happen to have another device to confirm if the issue occurs there too?

The height seems a little larger from edit view, expecially compared with the online mobile view where i can't even see the bottom pink line

b) I will confirm this, but the view in the editor and the story preview may not match exactly in scale (the preview provides a good idea of how things will look in the final result). With that said, you could be experiencing the effects some elements being outside of the Safe-Zone. When you toggle the Safe-Zone, guides will appear to show the areas of the page to place important elements to guarantee their visibility (Screenshot.

Sometimes my wordpress editor is zoomed, sometimes not, this issue also change single elements ratio. It's hard to duplicate, i try to attach some screenshots

c) Thanks for the screenshots and details! A few more questions:

What is the size of your monitor and are you working with the browser at full screen?

Is this consistent with your experience:

When the editor is zoomed in, you cannot see the thumbnails: Screenshot
When the editor is zoomed out (at 100%) you can see the thumbnails: Screenshot

You mentioned the ratio changes for elements. Do you mean the numeric value of the ratio displayed on the Design panel to the right of the in the editor like the for the text element in your screenshot?

a) I've been trying to recreate the issue with the overlapping text (second page and last page of story) on mobile using the Chrome browser and emulating the One Plus 5T, but haven't seen it yet.

Actually i can't test in another device, could you? this is the link: https://claudia-makeup.com/stories/trucco-anni-70-webstory/
Here the video from my one plus 5t (Chrome broswer): https://drive.google.com/file/d/1Rv3a3mgr-mTW0fn5-JG5bqLwc_1WFXaX/view?usp=sharing. Yes i still experience this issue

b) I will confirm this, but the view in the editor and the story preview may not match exactly in scale (the preview provides a good idea of how things will look in the final result). With that said, you could be experiencing the effects of some elements being outside of the Safe-Zone. When you toggle the Safe-Zone, guides will appear to show the areas of the page to place important elements to guarantee their visibility (Screenshot).

i can't see all your screenshot but i assume that it exist a safezone where to place elements, but probably in this case it's a bug, because i see cutted text like this:

c) Thanks for the screenshots and details! A few more questions:

What is the size of your monitor and are you working with the browser at full screen?

1920x1080

Is this consistent with your experience:

When the editor is zoomed in, you cannot see the thumbnails: Screenshot
When the editor is zoomed out (at 100%) you can see the thumbnails: Screenshot

I can see only the 2 screen, but indeed the effect it's the same if i zoom at 100%, but when it happens the zoom is always 100%. I randomly experience this after refresh the editor or change broswer window

You mentioned the ratio changes for elements. Do you mean the numeric value of the ratio displayed on the Design panel to the right in the editor like for the text element in your screenshot?

No i meant that the width and height of the text frame seems keep the zoomed size, so when the bug happens (and the editor is smaller) i can see the text element get out of editor lines
Hope it's clear, thanks a lot

Actually i can't test in another device, could you?

Yes, I have viewed the story in another type of Android device and I do not see the issue. Thanks for the video!

i can't see all your screenshot but i assume that it exist a safezone where to place elements, but probably in this case it's a bug, because i see cutted text like this:

Is this also from your mobile view of the story?

Yes, I have viewed the story in another type of Android device and I do not see the issue. Thanks for the video!

Oh nice, probably a bug from my side only?

Is this also from your mobile view of the story?

Nope, this screen is from windows 10 google chrome!

Hi @Dennis-95 !

Oh nice, probably a bug from my side only?

We're not sure just yet. We're working on trying to recreate the issue on our side to see. Really appreciate the information you have provided so far.
I was wondering if you could test something when you have a moment?
For the pages with the issues with:

the text overlapping in mobile (Chrome/ OnePlus 5T)
missing/ cut text on desktop (Chrome/ Windows 10)

Could you try to place all the elements/ layers inside the safe-zone and check if the issues continues in the devices when previewing the story?
I'm not sure if you could view my screenshot before, but this is the toggle and guides for the safe-zone:

If you could attempt to place/ resize the elements/ layers inside the safe-zone that may help determine if this is a factor or not in the display issues:

Hi @Dennis-95 !

Oh nice, probably a bug from my side only?

We're not sure just yet. We're working on trying to recreate the issue on our side to see. Really appreciate the information you have provided so far.
I was wondering if you could test something when you have a moment?
For the pages with the issues with:

the text overlapping in mobile (Chrome/ OnePlus 5T)
missing/ cut text on desktop (Chrome/ Windows 10)

Could you try to place all the elements/ layers inside the safe-zone and check if the issues continue in the devices when previewing the story?

The text-cut seems fixed, the overlapping text on mobile still up!
https://claudia-makeup.com/stories/trucco-anni-70-webstory/
Thanks a lot!

PS: Check also: https://claudia-makeup.com/stories/trucco-anni-40-webstory/ on 2) story, the text is in the center of the story, but the text is cutted anyway

^ @merapi perhaps you know it, is the above something that #3184 covers?

It seems happens Aldo with images
https://claudia-makeup.com/stories/trucco-anni-30-webstory/

Interesting how that white box over the image is exactly the same for both stories:
https://user-images.githubusercontent.com/45852903/89522166-0df51380-d7e1-11ea-8c55-5ea72706691b.jpg
https://user-images.githubusercontent.com/45852903/88290313-db362000-ccf6-11ea-80e9-82571e39a72e.jpg
The behavior is quite similar throughout the whole story in the video you've shared: https://drive.google.com/file/d/1Rv3a3mgr-mTW0fn5-JG5bqLwc_1WFXaX/view
So.... some follow-up questions from my side:

Does this also happen when you create a new blank story, without a template?
Does this also happen when viewing other web stories? Here are some other web stories in the wild:
https://edition-cnn-com.cdn.ampproject.org/c/s/edition.cnn.com/ampstories/world/protecting-the-antarctic-a-journey-to-a-continent-in-distress
https://www-usatoday-com.cdn.ampproject.org/c/s/www.usatoday.com/amp-stories/beyonce-rule-the-world/
https://www-wired-com.cdn.ampproject.org/c/s/www.wired.com/amp-stories/space-photos-of-the-week-111817/
https://expansion.mx/ampstories/2018/12/12/nueve-hoteles-para-dormir-antes-de-morir
What version of Chrome are you running on your One Plus? Can you update it?
Can you ask a friend or family member to view your story on their mobile device? Do they see the same issue?

It really feels like an issue specific to your device, as I can't reproduce it. But hopefully the answers to these questions will help us narrow this down.

Does this also happen when you create a new blank story, without a template?
I have to test this! i will update it in the next days
Does this also happen when viewing other web stories? Here are some other web stories in the wild:
Nope, they works perfectly for both desktop and mobile
What version of Chrome are you running on your One Plus? Can you update it?
Last one, but it's almost the same i nall broswer, i attach some test i collected:

Test from google news app mobile: https://drive.google.com/file/d/16lwUQmHU15_xkTg54rAffTxTFyjjQLzG/view?usp=sharing
Test from google chrome mobile in 2 different ways, embed and direct link: https://drive.google.com/file/d/16vmcJSsj3M4sK0GKgPRGbqj8G7EgS03z/view?usp=sharing
Test from firefox mobile: https://drive.google.com/file/d/16vsCsTigumLYhEav5L5N2qqy8hDT3Qi2/view?usp=sharing
Test from desktop both chrome and firefox: https://drive.google.com/file/d/1Sc2o63jlziIpDB6pkEePXXO8EeePWvKd/view?usp=sharing

Can you ask a friend or family member to view your story on their mobile device? Do they see the same issue?
Yes, i tried from a lot devices, the only bug it persist in all device is the cutted text in the bottom, the rest seems all fixed! (Probably my device bugs only as you mentioned)

Hope it helps! @swissspidy

Does this also happen when you create a new blank story, without a template?

I have to test this! i will update it in the next days

Here we go! A ew story, made from 0 and with all elements built inside the suggested area: https://claudia-makeup.com/stories/come-preparare-pelle-makeup-webstory/
It seems way better, i can see only the text cut on slide 8 and 10!
@swissspidy

Hi @Dennis-95 !  I believe you've been able to give the recent version 1.0.0-rc.1 a try.
Could you let us know if you're still seeing any of the issues mentioned above? It may be device related, but this is helpful info to keep on our radar. Thanks!

Hi @Dennis-95 ! I believe you've been able to give the recent version 1.0.0-rc.1 a try.
Could you let us know if you're still seeing any of the issues mentioned above? It may be device related, but this is helpful info to keep on our radar. Thanks!

@ernee Let me congratulates first wit the team for the awesome work on plugin and github!
We can definitely sat that all problems are fixed, i've actually only one report but i don't really know how it works, i try to explain:
In my websites i use this plugin https://wordpress.org/plugins/gn-publisher/, so basically every time i update a post automatically my publish center recognize the update, and update also my google news feed.
This it seems not happen for web stories, for example times ago i forgot in 1 webstory to add the cover image before publishing, and even if i added it after the publish there was no way to modify the publish center feed to show the cover image.
Do you know something about this? Thanks a lot!

@Dennis-95 thank you for all your helpful feedback, requests, and bug reports during this time!
There is an ongoing discussion about Google News support in this feature request: https://github.com/google/web-stories-wp/issues/3107
So support for this and with other plugins is still being reviewed, but your use case would be helpful to add to the request. I'll link to your inquiry there and feel free to add your feedback as well.
I'll close this issue currently.

authors: Dennis-95 ernee swissspidy

repo: google/web-stories-wp


text:
Page Layouts: Remove Feature Flag

Remove Feature Flag and experiment for page layouts as it is an active feature now.

@BrittanyIRL  Don't think we need UAT if there were no user-facing changes, this just removed some code.

@BrittanyIRL  Don't think we need UAT if there were no user-facing changes, this just removed some code.

authors: BrittanyIRL swissspidy


text:
Tooltips: Watch position while open

A while back @BrookeGraham fixed an issue that was newly exposed with dropdowns where they should switch positions while expanded because their position on the page changed and obscured the menu. That was here: #9060
We should do the same for tooltips. @miina pointed out here: https://github.com/google/web-stories-wp/issues/9460#issuecomment-956072696 that there's a few tooltips that are encountering the same problem.
Acceptance criteria:

If a tooltip, while open, changes position and is obscured by the end of the browser window or app space it should automatically move positions so that it is not obscured. Places this happens: toggle consistent corner radius

Related: #8945

When I click on the tooltip for the radius lock, the tooltip remains onscreen until user clicks somewhere. Can this be set to disappear after a few seconds?:

When I click on the tooltip for the radius lock, the tooltip remains onscreen until user clicks somewhere. Can this be set to disappear after a few seconds?

Hey @csossi  I am a little confused here. The tooltip should be disappearing after toggling the radius lock icon. If you aren't seeing this, can I get some more details?
https://user-images.githubusercontent.com/1820266/142008477-ca6b5618-ef14-4bef-b2b0-93d6f682101c.mov

@csossi the tooltip should no longer appear after you click the lock icon. 👍 Let me know if I missed anything. I can hop on a call too if that helps.

Verified in QA

authors: BrittanyIRL BrookeGraham csossi swissspidy


text:
Editor: Fixed updating existing resource when retrimming a video

Context
When retrimming a video, the logic that updated properties on the element already on stage was broken, as it tried to update properties of an element with the resource id of the original video that this instance is a trimmed version of.
This was evident from the fact, that when retrimming, the current video on-stage never changed to be in trimming state nor did the trim button disable for the element. And finally, then trimming was done, the on-stage element was not correctly updated to refer to the newly created trim video.
User-facing changes

Before
After

Testing Instructions
This PR can be tested by following these steps:

Add an original video to a canvas
Trim it to a new length and observe that the trim button in the design panel is disabled while trimming
Trim the newly created video again and observe that the trim button in the design panel is once again disabled while trimming
Start trimming the new-newly created video and observe, that the trim handles are correctly placed as you placed them after the second trim.

Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This code is covered by automated tests (unit, integration, and/or e2e) to verify it works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #9878

I strongly recommend reviewing my PR https://github.com/google/web-stories-wp/pull/9785 and not to merge this PR until that one is merged as well.

I strongly recommend reviewing my PR #9785 and not to merge this PR until that one is merged as well.

This is a small functionality fix here specific to trimming that could be brought over to the other PRs, doesn't seem to make sense to hold off a small change like this, as opposed to #9785 that's a massive PR and touches all parts of media processing.
If you see specific places in this PR that will be influenced / invalid, please leave comments into the relevant files.

Tested on stories-qa-server using #9945 code base
Status: Passed with Comments ❓
Notes:

Trim it to a new length and observe that the trim button in the design panel is disabled while trimming ✔

-- There was new console error observed with trimming ❌

Trim the newly created video again and observe that the trim button in the design panel is once again disabled while trimming ✔
Start trimming the new-newly created video and observe, that the trim handles are correctly placed as you placed them after the second trim. ✔

Side Effects:

When a video is trimmed, it creates a new upload entry in the media library ✔
However, when the 1st trimmed video is re-trimmed (i.e. a 2nd trim), the 1st embedded video is ALSO trimmed ❓
-- as a end user, if I trim a new embed, i would expect the original embed to retain its original trim. but it looks like the same reference is maintained and a re-re-trim affects both embeds ❗

@kkalarickal (cc @swissspidy, @miina)

There was a new console error observed with trimming

Hmm, not seeing this locally. Not sure why it only happens in the QA environment. But it seems like this also happened before, no? If I go to the QA env on the main branch and (re)trim any video, I'm seeing the same console error.

However, when the 1st trimmed video is re-trimmed (i.e. a 2nd trim), the 1st embedded video is ALSO trimmed ❓

As far as I can see, that is not a new bug introduced by this PR? And it even exists for a non-trimmed video as well:

Add a completely new video (dragged from desktop) to a page
Add one more instance of the same video (dragged from the library)
Trim one instance
Observe that both are now trimmed once completed

So I don't think neither of these bugs should hold up this PR. Though I agree both are bugs, the latter being the more important one.

There are tons of outstanding media-related PRs which might inadvertently fix that bug.
Let's re-evaluate once they're merged.

authors: barklund kkalarickal miina spacedmonkey swissspidy


text:
refactor tests in python plugin lib, and run with travis

There are currently a number of tests in the python plugin lib that I was running manually with py.test during development. These should be pulled out into their own file(s), and travis should be configured to run them automatically.

I could help with. Where are the exisiting tests?
And do you have a kind of test plan in mind already?

all tests are currently in cache.py. Not sure I know what you mean by test plan? For additional tests, going forward?

For additional tests, going forward?

Yes exactly

yea we haven't gone into that in too much depth. We would definitely like to do more testing. @cbrewster was talking about this a bit a while ago, in #193.
One thing that I would like is regression tests against the RPC protocol itself, and eventually for the plugin protocol. Then there's lots of room for testing movement and edits, but we'd need some sort of harness such as discussed above. There might be simpler approaches, but I haven't looked into it too closely.

@cmyr  Does this still need to be worked on? I'd like to help out!

@Melvie sure! The python plugin lib is going to be getting a bunch of attention in july, so setting up proper testing for it would be welcome.

@cmyr  Awesome. I've never used travis before so I'll have some learning to do there. But you mentioned all the tests being in cache.py and braking them up into their own files. Any advice as to how you'd break them up at all?

@Melvie iirc there is currently exactly one test. I'm not sure what best practices are for pytest, to be honest? but I suspect there should be a top level 'tests' directory? And I'd probably just add a single new file called like test_cache.py or something. But I'd personally just do some googling. I'm also not super familiar with travis, but there's lots of info available. :)

@cmyr So, I have the travis yml set up properly and the pytests will run locally. But when rust builds on travis and  locally I get the following error after it runs cargo build || exit:
error[E0599]: no function or associated item named `load_defaults` found for type `syntect::highlighting::ThemeSet` in the current scope
   --> core-lib/src/styles.rs:156:22
    |
156 |         let themes = ThemeSet::load_defaults();
    |                      ^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error(s)
error: Could not compile `xi-core-lib`.
To learn more, run the command again with --verbose.

Is this something I am doing wrong, or something else?

@Melvie This error message is just saying that compilation is failing. That particular method is behind a feature flag in syntect. Can you run cargo check in rust/core-lib? If it fails try cargo clean and try again? And make sure you're up to date on master?

This should be considered 'on hold' for now, the python plugin lib is stale.

🐍🔫

authors: Melvie cmyr little-dude

repo: google/xi-editor


text:
Fix dismiss find causing overscroll

Currently on master, if the find view is opened and quickly dismissed without typing anything, the view is scrolled beyond the window. This PR fixes that issue.

Can you explain what the bug was? I couldn't figure it out when I was playing around...

authors: cmyr nangtrongvuon

repo: google/xi-mac


text:
Research Project: derive Fuzz Testing

Co-authored with @joshlf.
Overview
Create a library for fuzz-testing proc macro derives.
Background
Zerocopy is a crate that provides safe abstractions over transmutation (i.e., reinterpreting the bits of a type as if they belong to another type). Zerocopy provides four core traits, each of which can only be derived for a type with a procedural macro (e.g., #[derive(FromZeroes)]):

FromZeroes indicates that a sequence of zero bytes represents a valid instance of a type
FromBytes indicates that a type may safely be converted from an arbitrary byte sequence
AsBytes indicates that a type may safely be converted to a byte sequence
Unaligned indicates that a type’s alignment requirement is 1

When a user derives one or more of these traits for their types, zerocopy must prove that the properties associated with the traits actually hold. It does so in two stages. First, zerocopy analyzes the syntax tree of the type definition. If any required elements are missing (e.g., the type is not annotated with an appropriate #[repr(...)]), zerocopy produces an error that halts compilation.
Otherwise, zerocopy proceeds to emit both the requesite trait implementation and a type-level proof of soundness. For instance, for a type to be soundly FromBytes, each of its fields must also be FromBytes. Zerocopy emits code that, at type-checking time, asserts that each field implements FromBytes.
We currently use a small number of UI tests (using the trybuild crate) to assure ourselves that these analyses are correct. For each test, we craft a stand-alone Rust file that contains an unsound derive for a hand-written type definition. Our testing harness compiles each of these files, and confirms that the expected compilation error is produced.
For code that is known to compile, we also use miri, a Rust interpreter, to run the code and detect undefined behavior.
Motivation
Zerocopy's current UI testing approach offers a high degree of control (e.g., we are able to track minute changes in error messages), but only with a large amount of labor. It is sufficiently difficult to create and maintain these tests that zerocopy does not have many of them.
To remedy this, we would like to augment our small set of fine-grained, hand-written UI tests with a large, dynamically-generated set of coarse-grained UI tests.
Design
We would like to write fuzz tests using the cargo-fuzz testing framework. A zerocopy fuzz test will randomly generate a Rust datatype, derive zerocopy traits for that datatype, and then use miri to run methods from those traits. The test passes if this process produces either a compile error, or runs under miri-successfully. It fails if miri detects unsoundness.
A sample cargo-fuzz fuzzing harness might look like this:
#![no_main]
#[macro_use] extern crate libfuzzer_sys;
extern crate arbitrary_typedef;

use arbitrary_typedef::AdtDef;

fuzz_target!(|adt_def: AdtDef| {
    assert!(compile_error_or_miri_success(format!(r#"
        use zerocopy::FromZeroes;

        #[derive(FromZeros)]
        {adt_def}

        fn main() {
            let value = FromZeroes::new_zeroed();
        }
    "#);
});

For this, we need to define:

arbitrary_typedef::AdtDef, which abstractly describes a data type definition, and implements Arbitrary for it, allowing AdtDef to be automatically generated.
compile_error_or_miri_success, a function that compiles its argument, produces true if it compile-errors, otherwise runs it under miri, and produces true if it doesn't fail (or otherwise produces false).

The first item is the primary research challenge: How do we randomly generate interesting (compositions of) Rust datatypes?
Related Work

PLT Redex's generate-term randomly generates a programming language 'term' of a given size.

Assigning this to @maemre!

It took me a while to collect different approaches we might take. I'm sorry about the delay.
I think using Arbitrary (anything QuickCheck-like) is a good start. I have a few questions to define the scope:

Are there any context-dependent features for FromZeroes to work? To elaborate, are there any constraints that need to be maintained among different parts of the ADT that we wouldn't capture with a context-free grammar (e.g., any lifetime bounds shared by two types).
Are we looking for exercising particular types more than others? In that case, we can use something like a weighted tree.

Beyond Arbitrary, there are also these pieces of relevant work:

MiMIs implement an efficient way to generate structured data that has complex invariants. The authors use it to generate ASTs too. I can look into porting it to Rust if need be.
Another relevant tool is AFLSmart which is an extension of AFL that always produces mutants that are valid according to a grammar.

These test generation tools would be useful for generating code with additional constraints. For example, we can try generating data structure definitions that should always compile, so that we can also catch bugs where the derive macro produces code that doesn't compile.

I updated the issue text to mention this, but I'll put it here too for more visibility: this could have prevented the bug that is fixed in https://github.com/google/zerocopy/pull/672.

Credit to @glpesk for this idea
We could seed the fuzzer using types scraped from existing codebases, such as those which are public on GitHub.

authors: joshlf jswrenn maemre

repo: google/zerocopy


text:
OptimizeHuffmanForRle

When compiling zopfli for Win64 using MINGW-W64, I got a warning about invalid typecasting and a malloc value being out of potential range.  I fixed this issue with a patch I'm proving.  Please feel free to use it.  The thing is that in Win64, malloc takes an 8-byte unsigned value while in Win32, it takes a 4-byte value
.  Int is always 4 bytes even in  Win64.  That effects OptimizeHuffmanForRle mostly.
win32-fixes.patch.txt

I don't think so.   When I compiled for Win32 using GCC, I got this:
42%] Building C object CMakeFiles/zopflilib_obj.dir/src/zopfli/lz77.c.obj
D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.c: In function 'OptimizeHuffmanForRle':
D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.c:452:16: warning: argument 1 value '4294967292' exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
good_for_rle = (int*)malloc((unsigned)length * sizeof(int));
In file included from D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/lz77.h:28:0,
              from D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.h:28,
              from D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.c:20:
D:/msys64/mingw32/i686-w64-mingw32/include/stdlib.h:503:17: note: in a call to allocation function 'malloc' declared here
void *__cdecl malloc(size_t _Size);
              ^~~~~~
[ 47%] Building C object CMakeFiles/zopflilib_obj.dir/src/zopfli/util.c.obj
[ 52%] Building C object CMakeFiles/zopflilib_obj.dir/src/zopfli/zlib_container.c.obj
[ 57%] Building C object CMakeFiles/zopflilib_obj.dir/src/zopfli/zopfli_lib.c.obj
[ 57%] Built target zopflilib_obj

I'm rather surprised by this considering I was compiling a version for the 32-bit version of Windows.  My build process builds for both using two separate toolchains.  The thing you have to keep in mind is that in Windows 64 bit, the pointer is 8-bytes wide as well as size_t and ptrdiff_t but the "int" is always 4-bytes wide.

Isn't the problem rather that in the loop right above length is counted down until it reaches -1. The compiler cannot see if the loop will always break early, so it warns that multiplying -1 with sizeof(int) is unlikely to be meaningful?

I still have to run a test, but I have to ask this question, why does the procedure have this declaration?
void OptimizeHuffmanForRle(int length, size_t* counts)
The problem in Windows 64-bit is that an int can only accommodate 2GB's of data (2 to 31's power).  If you use a size_t for the length parameter, you could get up 2 to the 63rd power as a maximum data size.

I would think the correct type might be a ssize_t (signed size_t).

Well, anyway, I did test your proposed loop with the compiler and it doesn't give warnings.  But I still don't like that procedure because of that concern I mentioned.   I'm going to look at something else.

Please forgive any confusion on my part since I don't know the algorithm.  But the reason I was thinking some things needed to be 8 bytes was that I know  that an "int" is 8-bytes wide on many 64-bit systems (not 4-bytes like Windows).

8 bytes are definitely not needed in this algorithm, a cast to fix the warning is good here.
Does changing
good_for_rle = (int*)malloc((unsigned)length * sizeof(int));
into
good_for_rle = (int*)malloc((unsigned)(length * sizeof(int)));
or
good_for_rle = (int*)malloc((size_t)(length * sizeof(int)));
fix the warning in both win64 and win32 for you?
Thanks

good_for_rle = (int*)malloc((unsigned)(length * sizeof(int)));
Gives warning for Win32 but not Win64.
D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.c: In function 'OptimizeHuffmanForRle':
D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.c:452:16: warning: argument 1 value '4294967292' exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
good_for_rle = (int*)malloc((unsigned)(length * sizeof(int)));
In file included from D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/lz77.h:28:0,
              from D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.h:28,
              from D:/msys64/home/jpmugaas/exp/mingw-w64-zopfli/src/zopfli-zopfli-1.0.2/src/zopfli/deflate.c:20:
D:/msys64/mingw32/i686-w64-mingw32/include/stdlib.h:503:17: note: in a call to allocation function 'malloc' declared here
void *__cdecl malloc(size_t _Size);
              ^~~~~~
===
good_for_rle = (int*)malloc((size_t)(length * sizeof(int)));

Gives warning in Win64 and Win32:

zopfli/src/zopfli/deflate.c:452:24: warning: argument 1 range [18446744065119617024, 18446744073709551612] exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
good_for_rle = (int*)malloc((size_t)(length * sizeof(int)));
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from zopfli/src/zopfli/lz77.h:28,
              from zopfli/src/zopfli/deflate.h:28,
              from zopfli/src/zopfli/deflate.c:20:
D:/msys64/mingw64/x86_64-w64-mingw32/include/stdlib.h:503:17: note: in a call to allocation function 'malloc' declared here
void *__cdecl malloc(size_t _Size);
              ^~~~~~

Win32 warning:
zopfli/src/zopfli/deflate.c: In function 'OptimizeHuffmanForRle':
zopfli/src/zopfli/deflate.c:452:16: warning: argument 1 value '4294967292' exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
good_for_rle = (int*)malloc((size_t)(length * sizeof(int)));
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from zopfli/src/zopfli/lz77.h:28:0,
              from zopfli/src/zopfli/deflate.h:28,
              from zopfli/src/zopfli/deflate.c:20:
D:/msys64/mingw32/i686-w64-mingw32/include/stdlib.h:503:17: note: in a call to allocation function 'malloc' declared here
void *__cdecl malloc(size_t _Size);

At this point, I'm thinking that maybe the problem isn't with the unsigned parameter to malloc but what malloc may be returning which is a pointer.

Here's the definition for Microsoft's website:

void *malloc(
size_t size
);

I got a ping from a comment on the related commit, which made me take another look at this. I realized OptimizeHuffmanForRle is only ever called with fixed values as length of either ZOPFLI_NUM_LL (288) or ZOPFLI_NUM_D (32). So we could use a fixed size array like in TryOptimizeHuffmanForRle to avoid the malloc in the first place.
I have a branch with the change here. Happy to make a PR if there is any interest, but it's only 3 lines changed.

authors: JPeterMugaas jibsen lvandeve

repo: google/zopfli


text:
Progress bar has delay

Currently there is a big delay between ad time and progress bar.
For example ad is already done playing and the progress bar is not even at full width yet. By the looks of if there is something like 1s delay without using any css transition. If you add css transitions to make the progress bar look smooth and not buggy then the delay is even bigger.

Is it possible to adjust this with any property ?

For example the ad is done playing and it closes and the progress bar is still not fully expanded like this:

Simple example:
https://codepen.io/imasdk/pen/wpyQXP

Why is this an issue?
If someone is looking at the progress bar, they might think that you are closing the ad before the player even finishes playing the ad.

Browser: chrome 108.0.5359.125
"videojs-ima": "^2.1.0"

Just an idea:
src\client-side\ad-ui.js
  // Update UI
  //add configurable property so if user uses css like for ex. ".ima-progress-div { transition: width 1s ease; }"
  //so that he can add this 1s for the animation delay
  const userConfigurableDelay = 0; //default 0s and passed into the function as a parameter
  const animationDefaultDelay = 0.5; //by default there seems to be 0.5s animation delay

  currentTime += animationDefaultDelay + userConfigurableDelay;

  const playProgressRatio = currentTime / duration;
  const playProgressPercent = playProgressRatio * 100;
  this.progressDiv.style.width = playProgressPercent + '%';

Just for reference to see which lines are changed:

Hello @damjan25 ,
Using your sample app, I see the progress bar nearly full right as the ad is nearly finished playing, see attached screenshot. Let me know if there is anything additional needed to be done to reproduce the issue.

Jackson
IMA SDK team

@Kiro705 This is the issue, that it does not go all the way. Looks like it just depends on player size.
On my laptop screen there seems to be much more space left (like on my 1st screenshot) but on my pc screen it looks the same as on your screenshot.
Would it be possible to add this so that the bar goes all the way ?

Hello @damjan25 ,
Would it be possible to share a screen-size I can emulate with Chrome inspector tools that can reproduce the issue?
Thank you,
Jackson
IMA SDK team

24' 1080p 100% zoom  => looks like on my first screenshot
27' 1440p 125% zoom => looks the same as on my first screenshot
16' 1200p 150% zoom (laptop) => looks the same as on your screenshot (progress bar does not go all the way but there is not that much space left)
Problem is that if you add any css animation/transition on progress bar to make it smoother it will add that delay :(

Hello @damjan25 ,
It is my understanding that the bar fills up at the same rate, and the last image of the progress bar will be roughly 95%-97% full. On larger players, the gap will appear larger, but will still be only 3-5% of the total length of the bar.
As far as I can tell, the bar is accurately representing the remaining time of the ad. At 100% the player will have already transitioned back to content or gone to the next ad.
Right now, we are considering this as 'working as indented'.
Please let me know if you have any follow-up questions.
Thank you,
Jackson
IMA SDK team

Here is where the css percentage is calculated:
https://github.com/googleads/videojs-ima/blob/main/src/client-side/ad-ui.js#L300
Either
// Update UI
  const playProgressRatio = currentTime / duration;
  const playProgressPercent = (playProgressRatio * 100) + 5;
  this.progressDiv.style.width = playProgressPercent + '%';

or
// Update UI
  const playProgressRatio = currentTime / duration;
  const playProgressPercent = (playProgressRatio * 100);
  if (playProgressPercent > 90) {
    playProgressPercent = 100;
  }
  this.progressDiv.style.width = playProgressPercent + '%';

would result in making sure the progress bar reaches 100% while the ad is still playing.

repo: googleads/videojs-ima


text:
npm - version not found error

npm install videojs-ima or npm update returns "No matching version found for videojs-ima@1.5.2"
Thanks,
D

Hi @dilburt ,
Just tested npm install videojs-ima and v1.7.2 successfully installed.
Closing the issue, but please reopen if the problem persists.


text:
Catch AttributeError; set None-valued var to empty list before appending

Catch AttributeError in case there is an attempt to read non-existent attribute in the params to_grpc_metadata()
if metadata is None, set metadata to empty list before appending to it

See https://github.com/GoogleCloudPlatform/google-cloud-python/pull/5472 as a example of using this PR (on top of the latest gapic-generator:master) to update the IOT python client.
Resolves https://github.com/googleapis/gapic-generator/issues/2015 and https://github.com/googleapis/gapic-generator/issues/2014.

PTAL

Codecov Report

Merging #2061 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2061   +/-   ##
=========================================
  Coverage     86.82%   86.82%
  Complexity     4985     4985
=========================================
  Files           448      448
  Lines         19709    19709
  Branches       2079     2079
=========================================
  Hits          17112    17112
  Misses         1889     1889
  Partials        708      708

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2e9892f...6f9375d. Read the comment docs.

Thanks for the suggestions! PTAL

authors: andreamlin codecov-io

repo: googleapis/gapic-generator


text:
WatchDog shuts down ExecutorService from FixedExecutorProvider

#838 modified WatchDog to implement BackgroundResource and to track a Future for the work scheduled via the ExecutorService so that it can be cancelled. This is perfectly reasonable, but WatchDog.shutdown also calls ExecutorService.shutdown
This is problematic when you provide a FixedExecutorProvider to ClientContex.create since it uses the same ExecutorService instance (from the ExecutorProvider) for the WatchDog, which makes FixedExecutorProvider practically useless (since the ExecutorService that it provides can no longer be shared between clients, as shutting one down will shut down the ExecutorService)
I noticed this issue in our application while attempting to upgrade to google-cloud-core 1.92.5. We use java-pubsub 1.102.1 and we share the same ExecutorService among multiple dynamically-created Publisher instances. As soon as one is shut down, they all become inoperable since the underlying ExecutorService that they share is shut down.
Obviously, I could work around this by using an InstantiatingExecutorProvider, but I don't want to allocate new threads for every Publisher that my application creates (since the java-pubsub library requires the creation of a Publisher per topic and we publish to dynamically-created topics).
Possible solutions:

Remove the call to executor.shutdown in WatchDog.shutdown
Modify WatchDogProvider such that it accepts (and uses) an ExecutorProvider and checks ExecutorProvider.shouldAutoClose before calling shutdown on the ExecutorService
Something else?

I think the first option makes the most sense. ClientContext should be the primary owner of the executor

Should executor.shutdownNow() be removed from Watchdog.shutdownNow() as well ?
Since fix of #22, exactly this line, Subscriber.doStop is calling background resources shutdown, resulting  with Watchdog.shutdownNow() being executed and ExecutorService being shutdown.

Yes, that was an oversight. Thanks for pointing it out.

authors: chrisribble igorbernstein2 rgrebski

repo: googleapis/gax-java


text:
Credential fetching exceptions aren't being handled

Package name and version: google/gax:1.20.2, google/auth:1.28.0
In CredentialsWrapper, exceptions thrown from google/auth aren't being handled (annotated or converted to ApiException).
Example stack trace:
GuzzleHttp\Exception\ConnectException:
cURL error 7: Failed to connect to oauth2.googleapis.com port 443: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://oauth2.googleapis.com/token

  at /app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:210
  at GuzzleHttp\Handler\CurlFactory::createRejection()
     (/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:158)
  at GuzzleHttp\Handler\CurlFactory::finishError()
     (/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:110)
  at GuzzleHttp\Handler\CurlFactory::finish()
     (/app/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php:47)
  at GuzzleHttp\Handler\CurlHandler->__invoke()
     (/app/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php:28)
  at GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}()
     (/app/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php:48)
  at GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}()
     (/app/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php:64)
  at GuzzleHttp\PrepareBodyMiddleware->__invoke()
     (/app/vendor/guzzlehttp/guzzle/src/Middleware.php:31)
  at GuzzleHttp\Middleware::GuzzleHttp\{closure}()
     (/app/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php:71)
  at GuzzleHttp\RedirectMiddleware->__invoke()
     (/app/vendor/guzzlehttp/guzzle/src/Middleware.php:63)
  at GuzzleHttp\Middleware::GuzzleHttp\{closure}()
     (/app/vendor/guzzlehttp/guzzle/src/HandlerStack.php:75)
  at GuzzleHttp\HandlerStack->__invoke()
     (/app/vendor/guzzlehttp/guzzle/src/Client.php:331)
  at GuzzleHttp\Client->transfer()
     (/app/vendor/guzzlehttp/guzzle/src/Client.php:107)
  at GuzzleHttp\Client->sendAsync()
     (/app/vendor/guzzlehttp/guzzle/src/Client.php:123)
  at GuzzleHttp\Client->send()
     (/app/vendor/google/auth/src/HttpHandler/Guzzle6HttpHandler.php:47)
  at Google\Auth\HttpHandler\Guzzle6HttpHandler->__invoke()
     (/app/vendor/google/auth/src/OAuth2.php:566)
  at Google\Auth\OAuth2->fetchAuthToken()
     (/app/vendor/google/auth/src/Credentials/UserRefreshCredentials.php:114)
  at Google\Auth\Credentials\UserRefreshCredentials->fetchAuthToken()
     (/app/vendor/google/auth/src/CredentialsLoader.php:221)
  at Google\Auth\CredentialsLoader->updateMetadata()
     (/app/vendor/google/auth/src/FetchAuthTokenCache.php:229)
  at Google\Auth\FetchAuthTokenCache->updateMetadata()
     (/app/vendor/google/gax/src/CredentialsWrapper.php:216)
  at Google\ApiCore\CredentialsWrapper->Google\ApiCore\{closure}()
  at Grpc\Call->startBatch()
     (/app/vendor/grpc/grpc/src/lib/UnaryCall.php:44)
  at Grpc\UnaryCall->start()
     (/app/vendor/grpc/grpc/src/lib/BaseStub.php:295)
  at Grpc\BaseStub->Grpc\{closure}()
     (/app/vendor/grpc/grpc/src/lib/BaseStub.php:545)
  at Grpc\BaseStub->_simpleRequest()
     (/app/vendor/google/gax/src/Transport/GrpcTransport.php:223)
  at Google\ApiCore\Transport\GrpcTransport->startUnaryCall()
     (/app/vendor/google/gax/src/GapicClientTrait.php:751)
  at Google\Cloud\Retail\V2\Gapic\PredictionServiceGapicClient->Google\ApiCore\{closure}()
     (/app/vendor/google/gax/src/Middleware/CredentialsWrapperMiddleware.php:61)
  at Google\ApiCore\Middleware\CredentialsWrapperMiddleware->__invoke()
     (/app/vendor/google/gax/src/Middleware/FixedHeaderMiddleware.php:69)
  at Google\ApiCore\Middleware\FixedHeaderMiddleware->__invoke()
     (/app/vendor/google/gax/src/Middleware/RetryMiddleware.php:88)
  at Google\ApiCore\Middleware\RetryMiddleware->__invoke()
     (/app/vendor/google/gax/src/Middleware/OptionsFilterMiddleware.php:63)
  at Google\ApiCore\Middleware\OptionsFilterMiddleware->__invoke()
     (/app/vendor/google/gax/src/GapicClientTrait.php:726)
  at Google\Cloud\Retail\V2\Gapic\PredictionServiceGapicClient->startCall()
     (/app/vendor/google/cloud-retail/src/V2/Gapic/PredictionServiceGapicClient.php:352)

Hi @tscni, thanks for raising this.
Can you please provide a repro case for this error so that I can try this out at my end?
Also, can you try doing this with latest versions of gax-php and auth and see if the error exists?

Sure (I'm using google/cloud-retail as an example here)

Use PHP 8.1 (the version shouldn't matter) + necessary common extensions (like curl)
Create the following files in a new direfctory

composer.json{
   "require": {
       "google/auth": "1.28.0",
       "google/cloud-retail": "1.4.0",
       "google/gax": "1.21.1"
   }
}

index.php<?php

use Google\Cloud\Retail\V2\PredictionServiceClient;
use Google\Cloud\Retail\V2\UserEvent;

require __DIR__ . '/vendor/autoload.php';

$client = new PredictionServiceClient([
    'credentials' => [
        'type' => 'authorized_user',
        'client_id' => 'invalid',
        'client_secret' => 'invalid',
        'refresh_token' => 'invalid',
    ],
]);
try {
    $client->predict('placement', new UserEvent());
} catch (Throwable $exception) {
    var_dump($exception->getMessage());
    var_dump(get_class($exception));
}

Run composer install in that directory
Run php index.php
Observe expected (-) vs. actual (+) output string(190) "Client error: `POST https://oauth2.googleapis.com/token` resulted in a `401 Unauthorized` response:
 {
   "error": "invalid_client",
   "error_description": "The OAuth client was not found."
 }
 "
-string(36) "GuzzleHttp\Exception\ClientException"
+string(27) "Google\ApiCore\ApiException"

Remove your internet connection
Run php index.php
Observe expected (-) vs. actual (+) output string(156) "cURL error 6: Could not resolve host: oauth2.googleapis.com (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
 for https://oauth2.googleapis.com/token"
-string(37) "GuzzleHttp\Exception\ConnectException"
+string(27) "Google\ApiCore\ApiException"

Thanks for more info.
What's happening here is that error is being thrown from auth library as part of the GRPC Transport when it's trying to fetch the auth token. Doing so, it will always use HTTP (hence REST).
Exceptions are wrapped as ApiCore\ApiException so that they don't differ with transport (GRPC or REST). But since auth calls are always HTTP and they don't change based on transport so they are not wrapped.
It's not intuitive but it's still Working as Intended.

repo: googleapis/gax-php


text:
feat: service sccount to service account impersonation to support universe domain

for context: b/340602527
Changes in this pr:

Override getUniverseDomain() to grab source credentials’s universe domain (UD) by default. Always use source credentials UD, not explicit provided UD. (In current design, impersonated credentials may not have universe domain in the outer layer. relay on UD from source credential. This may change in future)

Fix isDefaultUniverseDomain() in GoogleCredentials to account for getUniverseDomain() overrides in child classes.

In refreshAccessToken(), use endpoint url pattern to account for TPC case.

note that I choose to bypass this refreshIfExpired step because it wrongly steps into code path meant only for OAuth2 token request (GDU flow). Filed #1534 to address this separately. But for GDU flow here, this refresh step is redundant because the SSJ will get re-generated at initialize request. Also skip this step for SA GDU with SSJ flow.

Throw IllegalStateException if UD is explicitly set (with parent class setter) and not matching source credential's UD

Fix toBuilder() to invoke super, and fix related issue with createScoped. (see #1489, #1428); Also fix equals() to compare super first.

Not in this pr:

idtoken and signBlob endpoint changes are out-of-scope for this pr, will raise separate pr for it.

sa-to-sa impersonation is successfully E2E tested for TPC usage according to go/prptst-testing-service-account-impersonation.

@blakeli0 @TimurSadykov Can you please take another look? Changes since you last reviewed:
Updated with changes to reflect internal discussion to throw for explicit set universe domain not matching source credential's ud.
Also updated condition to skip refreshIfExpired() to include gdu w/ ssj flow.
Added tests for these changes.

repo: googleapis/google-auth-library-java


text:
feat: implement spanner_read_{only,write}_transaction samples.

This fixes #180 and fixes #181.
I also implemented the spanner_update_data sample, there was no
issue for it, but we need to prepare the database state for these samples.
I refactored some of the support code because it was getting tedious.

This change is

PTAL.

repo: googleapis/google-cloud-cpp-spanner


text:
Create a CI build for 32-bits on Linux

Motivated by #10772.  I think there are multiple little errors we will need to fix.  It may take a while to clean up these errors so I propose we do the following:

[ ] Introduce the CI build, but ignore build and test failures in the driver script (e.g., cmake ... || true).
[ ] Note all the errors in this issue
[ ] Fix them
[ ] Change the script to fail when something breaks

FAILED: google/cloud/storage/tests/CMakeFiles/storage_object_read_large_integration_test.dir/object_read_large_integration_test.cc.o
/usr/bin/ccache /usr/bin/g++ -DGOOGLE_CLOUD_CPP_HAVE_GETRUSAGE=1 -DGOOGLE_CLOUD_CPP_HAVE_RUSAGE_THREAD=1 -DGTEST_LINKED_AS_SHARED_LIBRARY=1 -I/workspace -isystem /workspace/cmake-out -m32 -Wall -Wextra -Wconversion -Wno-sign-conversion -Werror -MD -MT google/cloud/storage/tests/CMakeFiles/storage_object_read_large_integration_test.dir/object_read_large_integration_test.cc.o -MF google/cloud/storage/tests/CMakeFiles/storage_object_read_large_integration_test.dir/object_read_large_integration_test.cc.o.d -o google/cloud/storage/tests/CMakeFiles/storage_object_read_large_integration_test.dir/object_read_large_integration_test.cc.o -c /workspace/google/cloud/storage/tests/object_read_large_integration_test.cc
/workspace/google/cloud/storage/tests/object_read_large_integration_test.cc: In function 'std::size_t google::cloud::storage::v2_8_0::{anonymous}::CurrentRss()':
/workspace/google/cloud/storage/tests/object_read_large_integration_test.cc:43:33: error: conversion from 'long long unsigned int' to 'std::size_t' {aka 'unsigned int'} may change value [-Werror=conversion]
   43 |   return std::stoull(fields[1]) * 4096;
      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
cc1plus: all warnings being treated as errors

FAILED: examples/CMakeFiles/grpc_credential_types.dir/grpc_credential_types.cc.o
/usr/bin/ccache /usr/bin/g++ -DGOOGLE_CLOUD_CPP_HAVE_GETRUSAGE=1 -DGOOGLE_CLOUD_CPP_HAVE_RUSAGE_THREAD=1 -DGTEST_LINKED_AS_SHARED_LIBRARY=1 -I/workspace -isystem /workspace/cmake-out/examples -isystem /workspace/cmake-out -isystem /workspace/cmake-out/external/googleapis -m32 -Wall -Wextra -Wconversion -Wno-sign-conversion -Werror -MD -MT examples/CMakeFiles/grpc_credential_types.dir/grpc_credential_types.cc.o -MF examples/CMakeFiles/grpc_credential_types.dir/grpc_credential_types.cc.o.d -o examples/CMakeFiles/grpc_credential_types.dir/grpc_credential_types.cc.o -c /workspace/examples/grpc_credential_types.cc
/workspace/examples/grpc_credential_types.cc: In lambda function:
/workspace/examples/grpc_credential_types.cc:106:76: error: conversion from 'int64_t' {aka 'long long int'} to 'time_t' {aka 'long int'} may change value [-Werror=conversion]
  106 |         std::chrono::system_clock::from_time_t(token->expire_time().seconds());
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/workspace/examples/grpc_credential_types.cc: In function 'void {anonymous}::UseAccessTokenUntilExpired(google::cloud::iam::v2_8_0::IAMCredentialsClient, const std::vector<std::__cxx11::basic_string<char> >&)':
/workspace/examples/grpc_credential_types.cc:135:73: error: conversion from 'int64_t' {aka 'long long int'} to 'time_t' {aka 'long int'} may change value [-Werror=conversion]
  135 |       std::chrono::system_clock::from_time_t(token.expire_time().seconds());
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
cc1plus: all warnings being treated as errors

FAILED: google/cloud/storage/benchmarks/CMakeFiles/storage_aggregate_upload_throughput_benchmark.dir/aggregate_upload_throughput_benchmark.cc.o
/usr/bin/ccache /usr/bin/g++ -DGOOGLE_CLOUD_CPP_HAVE_GETRUSAGE=1 -DGOOGLE_CLOUD_CPP_HAVE_RUSAGE_THREAD=1 -DGTEST_LINKED_AS_SHARED_LIBRARY=1 -I/workspace -isystem /workspace/cmake-out -isystem /workspace/cmake-out/external/googleapis -m32 -Wall -Wextra -Wconversion -Wno-sign-conversion -Werror -MD -MT google/cloud/storage/benchmarks/CMakeFiles/storage_aggregate_upload_throughput_benchmark.dir/aggregate_upload_throughput_benchmark.cc.o -MF google/cloud/storage/benchmarks/CMakeFiles/storage_aggregate_upload_throughput_benchmark.dir/aggregate_upload_throughput_benchmark.cc.o.d -o google/cloud/storage/benchmarks/CMakeFiles/storage_aggregate_upload_throughput_benchmark.dir/aggregate_upload_throughput_benchmark.cc.o -c /workspace/google/cloud/storage/benchmarks/aggregate_upload_throughput_benchmark.cc
/workspace/google/cloud/storage/benchmarks/aggregate_upload_throughput_benchmark.cc: In function '{anonymous}::UploadDetail {anonymous}::UploadOneObject(google::cloud::storage::v2_8_0::Client&, const google::cloud::storage_benchmarks::AggregateUploadThroughputOptions&, const UploadItem&, const std::string&, int)':
/workspace/google/cloud/storage/benchmarks/aggregate_upload_throughput_benchmark.cc:323:43: error: conversion from 'long long unsigned int' to 'std::streamsize' {aka 'int'} may change value [-Werror=conversion]
  323 |     if (!stream.write(write_block.data(), n)) break;
      |                                           ^
cc1plus: all warnings being treated as errors

FAILED: google/cloud/spanner/CMakeFiles/spanner_value_test.dir/value_test.cc.o
/usr/bin/ccache /usr/bin/g++ -DGOOGLE_CLOUD_CPP_HAVE_GETRUSAGE=1 -DGOOGLE_CLOUD_CPP_HAVE_RUSAGE_THREAD=1 -DGTEST_LINKED_AS_SHARED_LIBRARY=1 -I/workspace -isystem /workspace/cmake-out -isystem /workspace/cmake-out/external/googleapis -m32 -Wall -Wextra -Wconversion -Wno-sign-conversion -Werror -MD -MT google/cloud/spanner/CMakeFiles/spanner_value_test.dir/value_test.cc.o -MF google/cloud/spanner/CMakeFiles/spanner_value_test.dir/value_test.cc.o.d -o google/cloud/spanner/CMakeFiles/spanner_value_test.dir/value_test.cc.o -c /workspace/google/cloud/spanner/value_test.cc
/workspace/google/cloud/spanner/value_test.cc: In member function 'virtual void google::cloud::spanner::v2_8_0::{anonymous}::Value_BasicSemantics_Test::TestBody()':
/workspace/google/cloud/spanner/value_test.cc:189:8: error: conversion from 'long long int' to 'time_t' {aka 'long int'} may change value [-Werror=conversion]
  189 |        }) {
      |        ^
/workspace/google/cloud/spanner/value_test.cc: In member function 'virtual void google::cloud::spanner::v2_8_0::{anonymous}::Value_ProtoConversionTimestamp_Test::TestBody()':
/workspace/google/cloud/spanner/value_test.cc:763:8: error: conversion from 'long long int' to 'time_t' {aka 'long int'} may change value [-Werror=conversion]
  763 |        }) {
      |        ^
cc1plus: all warnings being treated as errors

I'm also seeing exceptions thrown in pubsub_internal_subscription_message_queue_test.

I'm also seeing exceptions thrown in pubsub_internal_subscription_message_queue_test.

Yup, and I disabled the integration tests because they freeze.  Added both to the list at the top of this issue.

---------------------------------------------------------
|   Running Pub/Sub integration tests (with emulator)   |
---------------------------------------------------------
2023-02-09T07:39:40Z (+59s): Launching Cloud Pub/Sub emulator in the background
2023-02-09T07:40:40Z (+119s): Cannot determine Cloud Pub/Sub emulator port.
Executing: /usr/local/google-cloud-sdk/platform/pubsub-emulator/bin/cloud-pubsub-emulator --host=localhost --port=8085
[pubsub]
[pubsub] ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
[pubsub]
[pubsub] Please set the JAVA_HOME variable in your environment to match the
[pubsub] location of your Java installation.
[pubsub]
Killing Pub/Sub Emulator [17954] /workspace//google/cloud/pubsub/ci/lib/pubsub_emulator.sh: line 90: kill: (17954) - No such process
-. done.

And yet, when I add some debugging information:
DEBUG DEBUG
PATH=/h/.local/bin:/workspace/ci/lib:/usr/local/google-cloud-sdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
JAVA_HOME=
java is /usr/bin/java
openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment (Red_Hat-19.0.2.0.7-1.rolling.fc37) (build 19.0.2+7)
OpenJDK 64-Bit Server VM (Red_Hat-19.0.2.0.7-1.rolling.fc37) (build 19.0.2+7, mixed mode, sharing)

LOL, I forgot to install which.  The script that starts the emulator uses it to find the javac path.

authors: coryan devbww

repo: googleapis/google-cloud-cpp