embedded svg graphics

I made some experiments and had some issues with it. I'd like to fix it on my own but need some help...
Here's the sample embedded-svg-test.txt
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="urn:oasis:names:tc:dita:rng:topic.rng:1.3" schematypens="http://relaxng.org/ns/structure/1.0"?>
<topic id="conref-topic">
	<title>Embedded SVG Test</title>
	<body>
		<fig>
			<svg-container>
				<svg xmlns="http://www.w3.org/2000/svg" width="600px" height="100px">
					<defs>
						<linearGradient id="BackgroundGradient" x1="0%" y1="0%" x2="100%" y2="100%">
							<stop offset="0%" style="stop-color:rgb(248,252,255);stop-opacity:1"/>
							<stop offset="50%" style="stop-color:rgb(228,232,255);stop-opacity:1"/>
							<stop offset="100%" style="stop-color:rgb(158,162,185);stop-opacity:1"/>
						</linearGradient>
					</defs>
					<rect x="2.5" y="2.5" width="595" height="95" rx="30" ry="30" fill="url(#BackgroundGradient)" stroke-width="5" stroke="rgb(85,90,100)"/>
					<text x="300" y="50" dy="0.3em" style="text-anchor: middle" font-size="50">Embedded SVG Test</text>
				</svg>
			</svg-container>
		</fig>
	</body>
</topic>

The 1st issue is that some preprocessing step seems to change the namespace of all child elements of svg to the default namespace. I'd appreciate some hints which step might do this - and why. I think it is wrong to change any namespaces within a foreign element!?
here's the result I found in the temp folder stage1.txt
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><topic xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/" xmlns:dita-ot="http://dita-ot.sourceforge.net/ns/201007/dita-ot" xmlns:opentopic-index="http://www.idiominc.com/opentopic/index" class="- topic/topic " ditaarch:DITAArchVersion="1.2" domains="(topic abbrev-d)                          (topic equation-d)                          (topic hazard-d)                          (topic hi-d)                          (topic indexing-d)                          (topic markup-d xml-d)                          (topic markup-d)                          (topic mathml-d)                          (topic pr-d)                          (topic relmgmt-d)                          (topic svg-d)                          (topic sw-d)                          (topic ui-d)                          (topic ut-d)                          a(props deliveryTarget)" id="conref-topic" xtrc="topic:1;3:26" xtrf="file:/C:/Entwicklung/Experiments/embedded-svg-dita-ot/embedded-svg-test.dita">
	<title class="- topic/title " xtrc="title:1;4:9" xtrf="file:/C:/Entwicklung/Experiments/embedded-svg-dita-ot/embedded-svg-test.dita">Embedded SVG Test</title>
	<body class="- topic/body " xtrc="body:1;5:8" xtrf="file:/C:/Entwicklung/Experiments/embedded-svg-dita-ot/embedded-svg-test.dita">
		<fig class="- topic/fig " xtrc="fig:1;6:8" xtrf="file:/C:/Entwicklung/Experiments/embedded-svg-dita-ot/embedded-svg-test.dita">
			<svg-container class="+ topic/foreign svg-d/svg-container " xtrc="svg-container:1;7:19" xtrf="file:/C:/Entwicklung/Experiments/embedded-svg-dita-ot/embedded-svg-test.dita">
				<svg xmlns="http://www.w3.org/2000/svg" contentScriptType="text/ecmascript" contentStyleType="text/css" height="100px" preserveAspectRatio="xMidYMid meet" version="1.1" width="600px" zoomAndPan="magnify">
					<defs xmlns="">
						<linearGradient xmlns:ns1="http://www.w3.org/1999/xlink" id="BackgroundGradient" ns1:actuate="onLoad" ns1:show="other" ns1:type="simple" x1="0%" x2="100%" y1="0%" y2="100%">
							<stop offset="0%" style="stop-color:rgb(248,252,255);stop-opacity:1"/>
							<stop offset="50%" style="stop-color:rgb(228,232,255);stop-opacity:1"/>
							<stop offset="100%" style="stop-color:rgb(158,162,185);stop-opacity:1"/>
						</linearGradient>
					</defs>
					<rect xmlns="" fill="url(#BackgroundGradient)" height="95" rx="30" ry="30" stroke="rgb(85,90,100)" stroke-width="5" width="595" x="2.5" y="2.5"/>
					<text xmlns="" class="- topic/text " dy="0.3em" font-size="50" style="text-anchor: middle" x="300" y="50">Embedded SVG Test</text>
				</svg>
			</svg-container>
		</fig>
	</body>
<opentopic-index:index.groups/></topic>

There's a workaround to add a prefix to all svg elements that leads to the next issue: svg-container is not supported by the pdf plugin. But I could easily add an appropriate template.

I can't reproduce that stage1.xml with 2.2.1 or develop, I just get this:
[java]  [gen-list] [DOTJ013E][ERROR] Failed to parse the referenced file 'topic1.dita'.: topic1.dita Line 10:Element type "svg" must be declared.

And topic1.dita isn't even generated in the temp directory. I don't really know whether it should work without the prefix.
An additional issue for implementing PDF support for inline SVG images is that the topicmerge phase not only rewrites the @id attributes of DITA elements but of SVG elements as well.
One possible solution might be to pass through descendants of topic/foreign elements in topicmergeImpl.xsl:
diff --git a/src/main/plugins/org.dita.pdf2/xsl/common/topicmergeImpl.xsl b/src/main/plu
index d93ddac..46b0e02 100644
--- a/src/main/plugins/org.dita.pdf2/xsl/common/topicmergeImpl.xsl
+++ b/src/main/plugins/org.dita.pdf2/xsl/common/topicmergeImpl.xsl
@@ -309,4 +309,8 @@ See the accompanying license.txt file for applicable licenses.

     <xsl:template match="*[contains(@class, ' map/reltable ')]" mode="build-tree"/>

+  <xsl:template match="*[contains(@class, ' topic/foreign ')]//node()" mode="#all">
+    <xsl:sequence select="."/>
+  </xsl:template>
+
 </xsl:stylesheet>

876517a has a starting point for <svg-container> and <svgref> support for the PDF transtype.
It doesn't add support for @keyref in <svgref> — that should be done in preprocessing, right? Just asking because @keyref on <term> and <keyword> is handled in transtype-specific code — not sure why.

I could solve the namespace problem. By default the DocumentBuilderFactory has namespace awareness deactivated so I had to add factory.setNamesapceAware(true); multiple times.

1123a38f33e68eba2630ab217d5d545f238ee526  adds support for namespace aware DOM parsing. Will still need to make sure SAX parsing is namespace aware.

Please note that there are multiple places where the DocumentBuilder is created without using XMLUtils so these places need to be changed as well. I created a pull request for that: #2176
Of course it might prefer to rewrite the code to call XMLUtils.getDocumentBuilder instead, But as my first commit I tried to keep the modifications as small as possible.
With my modifications plus some handling for svg-container I could already successfully publish the sample file. So at least in this case the SAX parsing seems to be no issue!?

I just found another minor related bug: The pdf i18n-postprocessing generates a warning like "[PDFX008W][WARN]: Font definition not found for the logical name or alias 'Arial'."
I could solve this by adding this to the stylesheet i18n-postprocess.xsl:
<xsl:template match="svg:svg" xmlns:svg	= "http://www.w3.org/2000/svg">
		<xsl:sequence select="."/>
	</xsl:template>


Thanks for tool

Can i use command line without GUI?

Hi Bro,
I am so sorry to tell you that it can't.

Hi.
Maybe in the next version?

Hi. Maybe in the next version?

Haha, Maybe😊...


C++ tests for promise+scalar type fail with the -O1, O2, O3 options

Hello,
I've noticed that C++ test programs for promise+scalar type fail when optimization options are specified.
The problem
Consider the following program (test/cpp/future1.cpp):
  constexpr int SIGNAL_VALUE = 42
  hclib::promise_t<int> *event = new hclib::promise_t<int>();
  hclib::async([=]() {
   // T1
    int signal = event->get_future()->wait();
    assert(signal == SIGNAL_VALUE);
    printf("signal = %d\n", signal);
  });
  hclib::async([=]() {
    // T2
    sleep(1);
    event->put(SIGNAL_VALUE);
  });

Task T1 waits on a promise with scalar type (promise_t<int>) which is put by Task T2 (event->put(SIGNAL_VALUE)) and we expect that Task T1 receives 42. However, if this program is compiled with optimization options (-O1, -O2, -O3), the assertion fails (or a wrong value is printed).
Steps to reproduce the problem
I confirmed I can reproduce the problem on my laptop (Apple LLVM 8.0.0) and davinci (g++ 6.2.0). Also, It's worth noting that HClib itself is built with the -O3 option (by install.sh). The problem is more about a compiler option you give when compiling test programs.
$ git clone git@github.com:habanero-rice/hclib.git
$ ./install.sh
$ source ./hclib-install/bin/hclib_setup_env.sh
$ cd test/cpp
$ emacs Makefile # add the -O3 option
$ ./test_all.sh # or make -j
$ ./future1

The Cause
The root cause is the current implementation of future_t::wait() (get() has the same issue).  Here is the implementation (hclib-future.hpp):
 T &&wait() {
  _ValUnion tmp;
  tmp.vp = hclib_future_wait(this);
  return std::move(tmp.val);
}

The problem is , since the variable tmp is allocated on stack,  the value can be easily lost at the end of wait even though the returned value is a rvalue reference.
Possbile Solutions
Here are possible solutions. I'd vote for 1 because 2 would prevent compilation optimizations. However, If returning a rvalue reference is important and/or there are any other solutions, please let me know. Also, if the performance is the case (e.g., A scenario where T is not a primitive type and the overhead of copy constructor would not be small),  I'd be happy to try to come up with a better solution and/or create synthetic benchmarks to discuss the performance.
1. Return by value
 T wait() {
  _ValUnion tmp;
  tmp.vp = hclib_future_wait(this);
  return tmp.val;
}

2. The use of volatile
volatile T&& wait() {
  volatile _ValUnion tmp;
   tmp.vp = hclib_future_wait(this);
   return std::move(tmp.val);
}

Thanks,
Akihiro

@ahayashi Thanks for all the debugging! I'm fairly confident this was a pain for you to figure out, but really appreciate it. I think we're just running into my own lack of expertise on some of the subtler features on C++ - I think this code was just copied over from some changes that Nick made in the past. I agree that option #1 is the simplest and best approach. Do you want to make a pull request on my branch, or would you like me to?

@agrippa Thanks! Yea, that was hard, but I'm very glad that I finally figured it out :)  Yes, I'd be happy to make a pull request. I'd like to make sure which branch I should make it against. Your branch means resource_workers branch, right?

@agrippa, just created a pull request for this. Please let me know if you there is any problem.


Dynamic stack allocations surviving in inner loops to runtime, causing 💀

While trying to fix our stack size in #11867 I found that posenet and efficientnet in our integrations tests were failing with anything but 512KB of stack. That's a lot of stack and surprising to me as the model itself barely has any tensors that are that size. Looking through the IR produced it looks like instead of the stack allocation getting hoisted it ends up on the innermost loop. Because LLVM's alloca by default has function lifetime this means each loop iteration we're allocating more stack space and whether it blows the stack is dependent on the stack size and the shapes used by the model.
// -----// IR Dump After EmptyTensorToAllocTensor (empty-tensor-to-alloc-tensor) //----- //
module {
  func.func @main_dispatch_18_matmul_2304x144x24() {
    ...
    %6 = affine.apply affine_map<()[s0] -> (s0 * 256)>()[%workgroup_id_y]
    %7 = affine.apply affine_map<()[s0] -> (s0 * 256)>()[%workgroup_count_y]
    %8 = affine.apply affine_map<()[s0] -> (s0 * 72)>()[%workgroup_id_x]
    %9 = affine.apply affine_map<()[s0] -> (s0 * 72)>()[%workgroup_count_x]
    scf.for %arg0 = %6 to %c2304 step %7 {
      %10 = flow.dispatch.tensor.load %0, offsets = [%arg0, 0], sizes = [256, 24], strides = [1, 1] : !flow.dispatch.tensor<readonly:tensor<2304x24xi8>> -> tensor<256x24xi8>
      scf.for %arg1 = %8 to %c144 step %9 {
        %11 = flow.dispatch.tensor.load %5, offsets = [%arg0, %arg1], sizes = [256, 72], strides = [1, 1] : !flow.dispatch.tensor<writeonly:tensor<2304x144xi8>> -> tensor<256x72xi8>
        %12 = flow.dispatch.tensor.load %2, offsets = [%arg1], sizes = [72], strides = [1] : !flow.dispatch.tensor<readonly:tensor<144xi32>> -> tensor<72xi32>
        %13 = flow.dispatch.tensor.load %1, offsets = [0, %arg1], sizes = [24, 72], strides = [1, 1] : !flow.dispatch.tensor<readonly:tensor<24x144xi8>> -> tensor<24x72xi8>
        %14 = flow.dispatch.tensor.load %3, offsets = [%arg1], sizes = [72], strides = [1] : !flow.dispatch.tensor<readonly:tensor<144xi32>> -> tensor<72xi32>
        %15 = flow.dispatch.tensor.load %4, offsets = [%arg1], sizes = [72], strides = [1] : !flow.dispatch.tensor<readonly:tensor<144xi32>> -> tensor<72xi32>
        %extracted_slice = tensor.extract_slice %cst[%arg1] [72] [1] : tensor<144xi8> to tensor<72xi8>
        %16 = scf.for %arg2 = %c0 to %c256 step %c8 iter_args(%arg3 = %11) -> (tensor<256x72xi8>) {
          %extracted_slice_0 = tensor.extract_slice %10[%arg2, 0] [8, 24] [1, 1] : tensor<256x24xi8> to tensor<8x24xi8>
          %17 = scf.for %arg4 = %c0 to %c72 step %c32 iter_args(%arg5 = %arg3) -> (tensor<256x72xi8>) {
            %18 = affine.min affine_map<(d0) -> (-d0 + 72, 32)>(%arg4)
            %extracted_slice_1 = tensor.extract_slice %12[%arg4] [%18] [1] : tensor<72xi32> to tensor<?xi32>
            %extracted_slice_2 = tensor.extract_slice %13[0, %arg4] [24, %18] [1, 1] : tensor<24x72xi8> to tensor<24x?xi8>
            %19 = bufferization.alloc_tensor(%18) : tensor<8x?xi32>
            %20 = linalg.fill ins(%c0_i32 : i32) outs(%19 : tensor<8x?xi32>) -> tensor<8x?xi32>

// -----// IR Dump After IREEComprehensiveBufferize (iree-codegen-iree-comprehensive-bufferize) //----- //
module {
  func.func @main_dispatch_18_matmul_2304x144x24() {
    ...
    %13 = affine.apply affine_map<()[s0] -> (s0 * 256)>()[%workgroup_id_y]
    %14 = affine.apply affine_map<()[s0] -> (s0 * 256)>()[%workgroup_count_y]
    %15 = affine.apply affine_map<()[s0] -> (s0 * 72)>()[%workgroup_id_x]
    %16 = affine.apply affine_map<()[s0] -> (s0 * 72)>()[%workgroup_count_x]
    scf.for %arg0 = %13 to %c2304 step %14 {
      %subview = memref.subview %1[%arg0, 0] [256, 24] [1, 1] : memref<2304x24xi8, #hal.descriptor_type<storage_buffer>> to memref<256x24xi8, strided<[24, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>
      scf.for %arg1 = %15 to %c144 step %16 {
        %subview_0 = memref.subview %11[%arg0, %arg1] [256, 72] [1, 1] : memref<2304x144xi8, #hal.descriptor_type<storage_buffer>> to memref<256x72xi8, strided<[144, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>
        %subview_1 = memref.subview %5[%arg1] [72] [1] : memref<144xi32, #hal.descriptor_type<storage_buffer>> to memref<72xi32, strided<[1], offset: ?>, #hal.descriptor_type<storage_buffer>>
        %subview_2 = memref.subview %3[0, %arg1] [24, 72] [1, 1] : memref<24x144xi8, #hal.descriptor_type<storage_buffer>> to memref<24x72xi8, strided<[144, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>
        %subview_3 = memref.subview %7[%arg1] [72] [1] : memref<144xi32, #hal.descriptor_type<storage_buffer>> to memref<72xi32, strided<[1], offset: ?>, #hal.descriptor_type<storage_buffer>>
        %subview_4 = memref.subview %9[%arg1] [72] [1] : memref<144xi32, #hal.descriptor_type<storage_buffer>> to memref<72xi32, strided<[1], offset: ?>, #hal.descriptor_type<storage_buffer>>
        %subview_5 = memref.subview %0[%arg1] [72] [1] : memref<144xi8> to memref<72xi8, strided<[1], offset: ?>>
        %17 = scf.for %arg2 = %c0 to %c256 step %c8 iter_args(%arg3 = %subview_0) -> (memref<256x72xi8, strided<[144, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>) {
          %subview_7 = memref.subview %subview[%arg2, 0] [8, 24] [1, 1] : memref<256x24xi8, strided<[24, 1], offset: ?>, #hal.descriptor_type<storage_buffer>> to memref<8x24xi8, strided<[24, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>
          %18 = scf.for %arg4 = %c0 to %c72 step %c32 iter_args(%arg5 = %arg3) -> (memref<256x72xi8, strided<[144, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>) {
            %19 = affine.min affine_map<(d0) -> (-d0 + 72, 32)>(%arg4)
            %subview_8 = memref.subview %subview_1[%arg4] [%19] [1] : memref<72xi32, strided<[1], offset: ?>, #hal.descriptor_type<storage_buffer>> to memref<?xi32, strided<[1], offset: ?>, #hal.descriptor_type<storage_buffer>>
            %subview_9 = memref.subview %subview_2[0, %arg4] [24, %19] [1, 1] : memref<24x72xi8, strided<[144, 1], offset: ?>, #hal.descriptor_type<storage_buffer>> to memref<24x?xi8, strided<[144, 1], offset: ?>, #hal.descriptor_type<storage_buffer>>
            %alloca = memref.alloca(%19) {alignment = 64 : i64} : memref<8x?xi32>

```mlir
        llvm.func @main_dispatch_18_matmul_2304x144x24(%arg0: !llvm.ptr<struct<"iree_hal_executable_environment_v0_t", (ptr<i32>, ptr<func<i32 (ptr<func<i32 (ptr<i8>, ptr<i8>, ptr<i8>)>>, ptr<i8>, ptr<i8>, ptr<i8>)>>, ptr<ptr<func<i32 (ptr<i8>, ptr<i8>, ptr<i8>)>>>, ptr<ptr<i8>>, struct<"iree_hal_processor_v0_t", (array<8 x i64>)>)>> {llvm.align = 16 : i64, llvm.noalias}, %arg1: !llvm.ptr<struct<"iree_hal_executable_dispatch_state_v0_t", (i32, i32, i16, i16, i32, i32, i16, i8, i8, ptr<i32>, ptr<ptr<i8>>, ptr<i64>)>> {llvm.align = 16 : i64, llvm.noalias}, %arg2: !llvm.ptr<struct<"iree_hal_executable_workgroup_state_v0_t", (i32, i32, i16, i16, i32, ptr<ptr<i8>>, i32)>> {llvm.align = 16 : i64, llvm.noalias}) -> i32 {
          ...
          %75 = llvm.mul %74, %5  : i64
          %76 = llvm.mul %74, %4  : i64
          %77 = llvm.mul %72, %14  : i64
          %78 = llvm.add %76, %77  : i64
          llvm.br ^bb1(%15 : i64)
        ^bb1(%79: i64):  // 2 preds: ^bb0, ^bb25
          %80 = llvm.icmp "slt" %79, %13 : i64
          llvm.cond_br %80, ^bb2, ^bb26
        ^bb2:  // pred: ^bb1
          %81 = llvm.mul %79, %10  : i64
          %82 = llvm.add %75, %81  : i64
          llvm.br ^bb3(%15 : i64)
        ^bb3(%83: i64):  // 2 preds: ^bb2, ^bb24
          %84 = llvm.icmp "slt" %83, %14 : i64
          llvm.cond_br %84, ^bb4, ^bb25
        ^bb4:  // pred: ^bb3
          %85 = llvm.mul %83, %3  : i64
          %86 = llvm.add %85, %14  : i64
          %87 = llvm.icmp "slt" %86, %12 : i64
          %88 = llvm.select %87, %86, %12 : i1, i64
          %89 = llvm.add %77, %83  : i64
          %90 = llvm.mul %88, %11  : i64
          %91 = llvm.mlir.null : !llvm.ptr<i32>
          %92 = llvm.getelementptr %91[%90] : (!llvm.ptr<i32>, i64) -> !llvm.ptr<i32>
          %93 = llvm.ptrtoint %92 : !llvm.ptr<i32> to i64
          %94 = llvm.alloca %93 x i32 {alignment = 64 : i64} : (i64) -> !llvm.ptr<i32>

The two tflite models I noticed exhibiting this:
https://storage.googleapis.com/iree-model-artifacts/tflite-integration-tests/posenet_i8.tflite
https://storage.googleapis.com/iree-model-artifacts/efficientnet_lite0_int8_2.tflite
I passed those through pre-release iree-import-tflite and then iree-compile with https://reviews.llvm.org/D141981 applied (as otherwise they can't compile at head),

Here's one of the executables:
#map = affine_map<(d0) -> (d0)>
#map1 = affine_map<(d0, d1) -> (d1, d0)>
#map2 = affine_map<(d0, d1) -> (d0)>
#map3 = affine_map<(d0, d1, d2, d3) -> (d3)>
#map4 = affine_map<(d0, d1, d2, d3) -> (d0, d1, d2, d3)>
#map5 = affine_map<(d0, d1) -> (d1)>
#map6 = affine_map<(d0, d1) -> (d0, d1)>
#map7 = affine_map<(d0) -> ()>
#map8 = affine_map<(d0, d1) -> ()>
#map9 = affine_map<() -> ()>
#map10 = affine_map<(d0, d1) -> (d0 + d1 * 2)>
  flow.executable private @main_dispatch_18 {
    flow.executable.export public @main_dispatch_18_matmul_2304x144x24 workgroups(%arg0: index, %arg1: index) -> (index, index, index) {
      %x, %y, %z = flow.dispatch.workgroup_count_from_dag_root %arg0, %arg1
      flow.return %x, %y, %z : index, index, index
    }
    builtin.module {
      func.func @main_dispatch_18_matmul_2304x144x24(%arg0: !flow.dispatch.tensor<readonly:tensor<2304x24xi8>>, %arg1: !flow.dispatch.tensor<readonly:tensor<24x144xi8>>, %arg2: !flow.dispatch.tensor<readonly:tensor<144xi32>>, %arg3: !flow.dispatch.tensor<readonly:tensor<144xi32>>, %arg4: !flow.dispatch.tensor<readonly:tensor<144xi32>>, %arg5: !flow.dispatch.tensor<writeonly:tensor<2304x144xi8>>) {
        %c0_i32 = arith.constant 0 : i32
        %c12_i32 = arith.constant 12 : i32
        %c-128_i32 = arith.constant -128 : i32
        %c127_i32 = arith.constant 127 : i32
        %cst = arith.constant dense_resource<__elided__> : tensor<144xi8>
        %0 = flow.dispatch.tensor.load %arg0, offsets = [0, 0], sizes = [2304, 24], strides = [1, 1] : !flow.dispatch.tensor<readonly:tensor<2304x24xi8>> -> tensor<2304x24xi8>
        %1 = flow.dispatch.tensor.load %arg1, offsets = [0, 0], sizes = [24, 144], strides = [1, 1] : !flow.dispatch.tensor<readonly:tensor<24x144xi8>> -> tensor<24x144xi8>
        %2 = flow.dispatch.tensor.load %arg2, offsets = [0], sizes = [144], strides = [1] : !flow.dispatch.tensor<readonly:tensor<144xi32>> -> tensor<144xi32>
        %3 = flow.dispatch.tensor.load %arg3, offsets = [0], sizes = [144], strides = [1] : !flow.dispatch.tensor<readonly:tensor<144xi32>> -> tensor<144xi32>
        %4 = flow.dispatch.tensor.load %arg4, offsets = [0], sizes = [144], strides = [1] : !flow.dispatch.tensor<readonly:tensor<144xi32>> -> tensor<144xi32>
        %5 = tensor.empty() : tensor<2304x144xi8>
        %6 = tensor.empty() : tensor<2304x144xi32>
        %7 = linalg.fill ins(%c0_i32 : i32) outs(%6 : tensor<2304x144xi32>) -> tensor<2304x144xi32>
        %8 = linalg.matmul ins(%0, %1 : tensor<2304x24xi8>, tensor<24x144xi8>) outs(%7 : tensor<2304x144xi32>) -> tensor<2304x144xi32>
        %9 = linalg.generic {indexing_maps = [#map5, #map6, #map5, #map5, #map5, #map6], iterator_types = ["parallel", "parallel"]} ins(%2, %8, %3, %4, %cst : tensor<144xi32>, tensor<2304x144xi32>, tensor<144xi32>, tensor<144xi32>, tensor<144xi8>) outs(%5 : tensor<2304x144xi8>) {
        ^bb0(%in: i32, %in_0: i32, %in_1: i32, %in_2: i32, %in_3: i8, %out: i8):
          %10 = arith.muli %in_1, %c12_i32 : i32
          %11 = arith.subi %in_0, %10 : i32
          %12 = arith.addi %in, %11 : i32
          %13 = "tosa.apply_scale"(%12, %in_2, %in_3) {double_round = true} : (i32, i32, i8) -> i32
          %14 = arith.addi %13, %c-128_i32 : i32
          %15 = arith.cmpi slt, %14, %c-128_i32 : i32
          %16 = arith.select %15, %c-128_i32, %14 : i32
          %17 = arith.cmpi sgt, %14, %c127_i32 : i32
          %18 = arith.select %17, %c127_i32, %16 : i32
          %19 = arith.trunci %18 : i32 to i8
          linalg.yield %19 : i8
        } -> tensor<2304x144xi8>
        flow.dispatch.tensor.store %9, %arg5, offsets = [0, 0], sizes = [2304, 144], strides = [1, 1] : tensor<2304x144xi8> -> !flow.dispatch.tensor<writeonly:tensor<2304x144xi8>>
        return
      }
    }
  }

Thanks Ben, so looking at the codegen it seems like this dispatch is actually not vectorized (which is why there is a stack allocation). Looking through the history, tracked it down to this change
https://github.com/llvm/llvm-project/commit/72fd36448d7c97c9dab094d6deda401d97baf0ef#diff-be7661e240d890a641a87f194bbb12e84a340b4a7f408865d5b89082123e24fbR1095
At Line 1095, the initial state that is being checked returns false and vectorization fails. @dcaballe any idea whats happening here. I think fixing that should make the stack go away.
Ill work on a change to make our checks more robust (plus bufferization change to insert end of scope though that will be a bit more involved).

Moving to @dcaballe for now....

This seems to be a side effect of fusing matmul with its consumers. The test provided has partially dynamic shapes (e.g., tensor<8x?xi32>) and it goes through the matmul pipeline so no padding/peeling applied. Masking only supports fully dynamic cases so it fails to vectorize. It can take me a week or two to enable masking for this. Would that work?

Sounds like that'd be the right solution - to relieve some pressure on you is there any workaround you see in the interim that isn't just as much work as the right thing? We're currently crashing on some platforms and succeeding by chance on others based on user inputs so it'd be nice to get to a correct/stable state even if it means a performance hit until the proper fix can be made. If we could apply the workaround then we could add the check Mahesh has mentioned that ensures we have no dynamic stack allocations and make it easier to verify the proper fixes work across the zoos.

I dont think we need padding/peeling. I think this used to work before the masking changes.... I think the vector size chose is 8x32 for the i and j loops. Issue is that 32 doesnt divide 144. WIthout masking/peeling/padding/etc. we would need to ensure that the tile size divides problem size. That seems to have changed (I believe unintentionally) when the masking change landed (let me know if that is wrong). So I would try to get back to the original state (I think the tile size for vectorization was 8x16 which divides the problem size). With that the problem should go away.
@dcaballe what you are suggesting is probably true long term, but this is a regression for now till the complete solution can take its place.

Part of the masking work landed last year so I may have some memory gaps but I'm almost certain that I haven't changed anything related to tile size selection or the vectorization pre-processing strategy in IREE, to the point that the element-wise cases I'm currently enabling masking for have padding enabled and the tile size for vectorization is set to 1! Changes impacting matmuls are even less likely as we use DoubleTilingPadExpert by default for x86 for them.
This is what I can see in the debug information:
[kernel-dispatch] Vector pre-processing strategy: Padding
[kernel-dispatch] Matmul workgroup sizes: 8 32 16
[kernel-dispatch] Vector pre-processing strategy: Padding
[kernel-dispatch] Flow tile sizes: 256 72 0
[kernel-dispatch] Workgroup tile sizes: 8 32 16
[kernel-dispatch] Vector size: 4

So padding is enabled for this case but it doesn't kick in because it's not supported for dynamic shapes, IIRC. @hanhanW can confirm that. I moved the repo back to January 6th and December 1st and the reproducer is not vectorized either and the debug information is identical...
A quick short-term workaround would be to enable peeling for matmuls with dynamic shapes. I should be able to remove that in a few weeks.

I dont think enabling peeling for matmuls with dynamic shape is necessarily short term. I see it as long term.... I am saying that the tile sizes you are seeing are not what they were.

Adding @hanhanW as well. It seems like the matmul pad + hoist is not kicking in for i8 types. This is resulting the alloc not being static.
I am planning to strengthen the compile time check to only allow buffers of static shape in the entry block. Thats the only way to ensure static bounded allocations.

It should go with padding approach. The padding approach works for all dynamic cases.
I looked into the IR and found that the padding does not work for i8xi8->i32 because extract_slice(empty) could be folded into a single empty op, which blocks boundary computation. I have a local patch that enhances the padding pattern, and will send it out for review.

https://reviews.llvm.org/D143043 can fix the issue

Thats great, but we shouldnt be padding an empty tensor. Do you know why that is happening?

Good point - isn't a padded empty tensor just a slightly larger emtpty tensor? :P

The IREE ConvertToDPSPass does not convert the tensor.empty op into a flow.dispatch.tensor.load because the types mismatch. Because we can't reuse the destination buffer for quantized cases. In this case, there are tensor.empty ops.
Tiling introduces an affine_min op to clamp it within the bound, e.g.,
%20 = affine.min affine_map<(d0) -> (-d0 + 72, 32)>(%arg4)
%21 = tensor.empty(%20) : tensor<8x?xi32>

We should pad it to a static shape. The smallest bounded size is 32 in this case, which is the tiling size. This is the cost for padding approach. We allocate a small stack buffer for handling in-complete tiles in padding approach.

Only concern here is that we are padding a tensor that is empty. So there are parts of the tensor that has effectively undef values...

Only concern here is that we are padding a tensor that is empty. So there are parts of the tensor that has effectively undef values...

It is fine in this case because it will be filled into zeros immediately.


LUCENE-10551: try to improve testing of LowercaseAsciiCompression

Description
Just improving testing based on the user-reported IllegalArgumentException, but the new tests seem to pass in my few runs ... maybe Jenkins CI builds will uncover an interesting failing seed?

And to improve testing we should add a higher level test indexing "difficult" terms through IW/blocktree so that the invocations in the test (via blocktree and not the direct low-level API) match what we saw LUCENE-10551.


[Question] access DroidCam

Is it possible to access and take picture from a phone connected through DroidCam using this project?

Hi @reginavaleria96,
It seems you can, but I don't know the exact URL to be used with IPCamDevice. This is the claim from their web page:

When you already know what is the URL to access MJPEG stream from the camera you can take a look at the IP camera examples of Webcam Capture to learn more on how to integrate it into your solution:
https://github.com/sarxos/webcam-capture/tree/master/webcam-capture-drivers/driver-ipcam/src/examples/java
Please let me know if you have any further questions.

@reginavaleria96, FYI, I found information on MJPEG here:
https://www.dev47apps.com/droidcam/connect/
Check this section: Connect via Internet Browser or another Device (IP Camera).

@sarxos Just out of curiosity: Would it be able to getImageBytes from such a cam?

@neilyoung, yes, but the performance will be much below what you can get with UVC (USB). This is due to:

MJPEG frame rate is much lower than UVC (usually ~2 FPS),
The getImageBytes() invokes getImage() and converts it to RGB bytes adding some few milliseconds on top of this.

In addition to 2, you can skip this and get RAW bytes, but these won't be RGB, but a JPEG frame, which you will have to convert to RGB to have compatibility with getImageBytes() (thus doing the same what getImageBytes() is doing underneath).

@sarxos Clear and understandable. Thanks for the explanations. Merry Christmas to you and thanks too for all your efforts.


Merging from master

Codecov Report

:exclamation: No coverage uploaded for pull request base (data-tabula-senis-muris@3ed0416). Click here to learn what that means.
The diff coverage is n/a.

@@                    Coverage Diff                     @@
##             data-tabula-senis-muris     #265   +/-   ##
==========================================================
  Coverage                           ?   92.38%
==========================================================
  Files                              ?       69
  Lines                              ?     1418
  Branches                           ?       89
==========================================================
  Hits                               ?     1310
  Misses                             ?       80
  Partials                           ?       28

Flag
Coverage Δ

unittests
92.38% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

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 3ed0416...0ae39db. Read the comment docs.


style(pvlib.data.variables_style_rules.csv): fixed power typo

[x] Closes #2155
[x] I am familiar with the contributing guidelines
[x] Pull request is nearly complete and ready for detailed review.

i just fixed a typo

Thanks @Metal-Bat


CC0017 wrong change with explicitly implemented properties, but can be fixed

Hi.
I came across some code, that I didn't even know was possible, but there it gives wrong output after fix with CC0017. See:
		interface ITranslucent
		{
			float Alpha { get; set; }
		}

		class Foo : ITranslucent
		{
			private float _alpha;
			float ITranslucent.Alpha
			{
				get
				{
					return _alpha;
				}

				set
				{
					_alpha = value;
				}
			}

			public Foo()
			{
				_alpha = 0.0f;
			}
		}

Translates into:
		interface ITranslucent
		{
			float Alpha { get; set; }
		}

		class Foo : ITranslucent
		{
			float ITranslucent.Alpha { get; set; }

			public Foo()
			{
				Alpha = 0.0f;
			}
		}

And that gives me error in constructor, that Alpha doesn't exist in current context.
But when this Interface isn't implemented it gives me 2 options:

and

When the property is not implemented explicitly like this:
		interface ITranslucent
		{
			float Alpha { get; set; }
		}

		class Foo : ITranslucent
		{
			private float _alpha;
			public float Alpha
			{
				get
				{
					return _alpha;
				}

				set
				{
					_alpha = value;
				}
			}

			public Foo()
			{
			}
		}

It translates into:
		interface ITranslucent
		{
			float Alpha { get; set; }
		}

		class Foo : ITranslucent
		{
			public float Alpha { get; set; }

			public Foo()
			{
			}
		}

Which is correct.
So I wound suggest to implement into CC0017 to change Explicit properties to public ones, which should be equivalent think.

Bug confirmed. We cannot change the property to public, that would change the meaning of the program. The correct way it to cast this, like so:
class Foo : ITranslucent
{
    float ITranslucent.Alpha { get; set; }

    public Foo()
    {
        ((ITranslucent)this).Alpha = 0.0f;
    }
}


Basic data exploration of story data

Stories data and content from the file stories_content.csv is used for basic data exploration.

@githubssn Thank you!


entrypoint: fix activate with OSD_JOURNAL

Previously, the partition would be added onto OSD_DEVICE which is already assumed to contain the partition, causing activate to fail if OSD_JOURNAL is specified (see #313)

Thanks @immesys


Integrate DataFrames.jl

It would be nice to have some built-in support for DataFrames, a bit like the clip() function for GBIF occurrences and possibly a convert() method to easily switch between layers and DataFrames. I'm thinking of some kind of optional dependency, like for GBIF (if possible, not sure if it can easily be done). I have some code I'll try to port here as soon as I can.

You can use the Require package to add additional functions when a package is loaded. Rather than convert, we can also declare new methods for DataFrame, SimpleSDMResponse, and SimpleSDMPredictor


NuGet Package

...I would love to see one for this!

I've never created a NuGet package but if you want to put one together and send a pull request, I'll be happy to merge it.
Sam

You have to sign up for NuGet, which I can't do for you. But it's really easy to do, and it will make your open source projects so much easier for people to discover and use. Another nice thing is that you can see how many downloads you're getting... I have one that has a thousand downloads, I never would have known it was even being used without NuGet. ;)

Easiest way: https://docs.nuget.org/Create/using-a-gui-to-build-packages
You pretty much drag and drop your assembly in, paste in your NuGet key, fill out some really basic details, and it uploads everything for you. Happy to help if you decide to do this and have questions.

OK, I'll take a look when I get some free time.

@samuelneff: Thank you for your Stack Overflow answer and for publishing this useful bit of functionality!
I'd be happy to create and publish a simple NuGet package containing your class, if you'd like. I will list you as the Author, but if I'm the one publishing the package, the NuGet Gallery is going to show me as the Owner. If that's ok with you, let me know and I'll take care of this.

@william-gross great, that's fine with me. I appreciate you contributing this part.

Sweet. Go internet! Now you just have to make sure it remains updated.

@samuelneff I just created a pull request with the NuGet package info, and I've published a prerelease package here: https://www.nuget.org/packages/MediaTypeMap/1.0.0-pr1. As soon as you merge the PR I'll publish version 1.0 of the package.

@william-gross many thanks, merged.


HandTracking

hello again,
can you use your hands instead of the controls to manipulate the webview? When I switch to hands only, the hands do not appear and the laser point is upside down

Sorry for the late reply. I'll add a hand tracking sample later.

Bro you amazing, thnksss!!


Dependency upgrade

Will let this slow burn for up to a week or two if needed.
Notable

Typescript 4.1.5
Lerna 4.0
React 16
Turf 6.3.0

Turf modules all brought up to matching 6.3.0, they were out of sync which seems problematic if they rely on one another, could produce inconsistencies.  Not clear if any versions held back previously for any particular reason but it's been mentioned by @underbluewaters.

Node types upgraded to 14.x to match new support for Node 14+
wasn't obvious that @shelf/jest-dynamodb was being used, but tasks.test.ts does via jest config preset
@types are matched to their counterpart library major/minor version or approximate release date when possible to not be out of sync/ahead.

Removed

jest-dynalite, appeared unused
styled-components-table, appeared unused

Held back

ts-loader - webpack 5 hold
val-loader - webpack 5 hold
webpack - webpack 5 hold
webpack-bundle-analyzer - webpack 5 hold
webpack-cli - webpack 5 hold
html-webpack-plugin - webpack 5 hold
React: upgraded only to 16.x, 17.x wasn't well supported across libs including react-table, storybook, etc.
Inquirer: left on 7.x because inquirer-autocomplete-prompt doesn't support peerDependency of 8.x

Be on the lookout, in attempting to update just react deps and react-table, the client project builds would then error in building the client with the following.
Building client...

 2 assets

ERROR in ./src/components/ReportError.tsx 31:8
Module parse failed: Unexpected token (31:8)
File was processed with these loaders:
 * ../../babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|
| export class ReportError extends React.Component {
>   state = {
|     hasError: false,
|     error: {

The gp package-lock change a lot in bumping those, so it's possible something funny is going on, perhaps balking on typescript or jsx.  Doing a larger rebuild of the lockfile and upgrading more deps to latest may be fruitful but more time is needed.

Rolling back gp deps and lockfile didn't resolve.  had to roll back the bermuda project lockfile, which had been significantly changed in its bumping of dependencies.
It looks like the verison of babel-loader that was installing was 8.2.3 instead of 8.2.2 as noted in gp paackage.json due to ^ fuzzy matching.
Possible issue also here and deduping the lockfile may help - https://github.com/webpack/webpack/issues/8656.  as noted creating fresh lockfile in gp and client, deduping with acorn, may be the solution.
also locking down the versions and removing fuzzy may help once it is stable.


Bump k8s version in kind e2e

This patch updates k8s version in kind e2e.
The min k8s version of knative v0.21.x is v1.18. Please refer to Knative Serving Version Table.
Eventing already uses these versions.
/kind cleanup
Release Note
NONE

/cc @dprotaso

/lgtm
/approve

/assign @tcnghia @ZhiminXiang
Could you please approve this?

/lgtm
/approve

Hmm.... This PR is not merged :thinking: Victor is in the list, though.
https://github.com/knative-sandbox/net-istio/blob/master/.github/CODEOWNERS#L6
https://github.com/knative/community/blob/master/peribolos/knative-sandbox.yaml#L1030


Test More Laws!

Adds more Applicative, Monad, and Comonad law tests

This is ready for review.

:+1: from me, although I skimmed a few parts in the interests of time.

:boat:


Geospatial ingestion - WIP

For sc-38757
@sgillies @ktsitsi
The get_metadata groups the source files by destination raster block which is scalable for task graphs. For point clouds and geometries it will return the filtered input files. I checked the test results against expected outputs with GDAL using QGIS.
@sgillies can we review the use of nodata in the raster ingest from rasterio? I am not able to override nodata for the destination raster and this may need a change in the GDAL driver.
Geometries and point clouds are simpler and I will add these as a separate commit.

Thanks @sgillies, I will make these changes and run black before adding more support for point clouds and geometries.

Items ToDo;

[ ] Add more tests
[ ] singular usage of rasterio.merge rather than warpedvrt
[ ] check nodata is propagated for rasters
[ ] Geometries (need pyopener or similar)

Can I get a review of the new code before I add these items?

Ingestion of geometries requires an update to use a tiledb VSI opener (a parameter).

Added dynamic node expansion from the result of a previous UDF when ingesting the data.

@thetorpedodog Can you help with https://github.com/TileDB-Inc/TileDB-Cloud-Py/pull/507#discussion_r1493017230 so that the tests pass? We are missing the geospatial library dependencies.

@thetorpedodog Can you help with #507 (comment) so that the tests pass? We are missing the geospatial library dependencies.

The thing to do here would be to add a new optional-dependencies section with the geospatial libraries:
https://github.com/TileDB-Inc/TileDB-Cloud-Py/blob/09240abf512ff6636ad2aa036b2cd7c2bde70cc7/pyproject.toml#L25-L28
Then, we can introduce a new workflow into the GitHub CI that runs just the geospatial tests with those extra dependencies.

The latest code has been tested with rasters and point clouds on TileDB Cloud.
pyopener is required for geometries in object storage which will be added in a separate PR but the code is stubbed out for geometry ingestion.
This PR inlines the new utility functions, after the PR is merged another PR will be issued to remove them and use the updated tiledb-cloud-py.


[Bug Report] form digital type verification logic error, The form type validation logic is incorrect numeric

Element UI version
1.3.1
OS/Browsers version
Mac OS Chrome 57.0.2987.133 (64-bit) / Safari 10.1 (126<IP_ADDRESS>.34)
Vue version
2.3.3
Reproduction Link
http://element.eleme.io/#/zh-CN/component/form#shu-zi-lei-xing-yan-zheng
Steps to reproduce
输入 123abc
input 123abc
What is Expected?
不通过校验
no pass
What is actually happening?
通过数字校验
pass

#4340


particle compile: Setting output filename doesn't work

The help content says:
USE:
    particle compile device_type firmware.bin
    particle compile device_type source_folder
    particle compile device_type file1.ino file2.cpp file2.h file3.cpp

The first one seems to indicate that I can specify the output filename.
If i run particle compile photon foo.bin I get the following output:
Compiling code for photon
I couldn't find that: foo.bin
Compile failed. Exiting.
undefined

Am I doing something wrong or is the compile command broken?

We need to fix the help. The syntax to specify the filename is --saveTo filename.bin
If you're compiling the current folder do particle compile photon . --saveTo filename.bin


Delay initialization of frame compressors (JAVA-697).

Trivial fix to avoid warnings about compression dependencies if compression isn't going to be used.
This also logs the LZ4 implementation if LZ4 is loaded.

LGTM :+1:.  I noticed we didn't have a test covering LZ4 so I added one.  Also validated that warning is now logged and IllegalStateException is raised when attempting to build with a compression that is not in the classpath.  It would be nice if we can validate that the exception is raised when not in classpath with in the scope of our tests, I'll think on that, but is not a high priority.  Maybe we could utilize pax-exam to do that.


set default extras as empty array to prevent compact() errors

Hello,
PHP compact() function at line 413 will create php error when $args is an empty array:
https://github.com/zendframework/zend-view/blob/34babb457c8e38c64415b8615de39f9b3b5dcfbc/src/Helper/HeadLink.php#L379-L416
I have found this error in this travis build:
https://travis-ci.org/cross-solution/YAWIK/jobs/453775095#L1805
To reproducing error just simply execute this function HeadLink::prependStylesheet('/some/foo.css')
I think this compact() error only occurs in php 7.3, but the code is buggy too. We need to define default value for $extras variables.

Reference for this change in PHP 7.3: http://php.net/manual/en/function.compact.php#refsect1-function.compact-changelog

Duplicate of #167


initial vim script support

i'll put this in for now, in case anybody else will use it but I'll certainly make more improvement next time I have to write some them script


Not working

Hello,
after many months using your integration, for first time it is not working.
Error: Config entry 'GegoSK' for duolingo integration not ready yet: None; Retrying in background
Hope you look at it.
Thank you for integration!

Thanks for letting me know! I just tried a reload of my integration and now I'm seeing the same thing. I'll look into it when I have a chance.

Unfortunately, this issue seems to occur when just using the API caller I'm dependent on. As best I can tell, Duolingo may have changed their login mechanism - the calls being made by that library no longer seem sufficient to log in. Unless someone else figures out how to headlessly auth with Duolingo, it's unlikely that this is going to be something I can resolve. Apologies, and thanks for using my little project!

Thanks for your package. I also use and also noticed that it does not work for the last 2-3 days.

Yes, they may have changed their authorization procedure. Even in their library, people write about the authorization error.
https://github.com/KartikTalwar/Duolingo/issues/128

Someone published a solution in link, which mentioned @dontbug. I do not know if help you @sphanley.

Any chance of an update? Children are out of control ;-)

I would love to see this work

I tried to add my HA, but
Config flow could not be loaded: {"message":"Invalid handler specified"}
Home Assistant 2023.7.3

I've got this integration working again using tier61wro's fix.
Raised a PR in case we want to merge it. The fix may not work forever, but it's an improvement on the current state...

Hi everyone! Thanks for all the discussion, apologies for taking so long to chime in. Unfortunately, at this point, I'm not really inclined to make any updates to this project. It's something I mostly developed as a way to learn about making a custom integration, and I don't feel great about continuing to try and circumvent Duolingo's API access controls given that they seem to have intentionally tried to restrict unapproved access. Obviously folks can fork this project and do with it what they will, but I'm probably going to archive my copy of it, unless Duolingo eventually releases a sanctioned way to consume their APIs.


Use on static images processing in NodeJS

Is it possible to use this library on static images with a chroma key backdrop in Nodejs? Thanks!

Check out headless chrome.
https://developers.google.com/web/updates/2017/04/headless-chrome


Add a handful of files to trigger more analyses.

.codecov.yaml - Enable codecov.io coverage reports
.golangci.yaml - Enable the enumerated checks in golangci-lint
boilerplate.*.txt - Enable file header boilerplate checks for these extensions

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@bd3f1cb). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #197   +/-   ##
=========================================
  Coverage          ?   37.82%
=========================================
  Files             ?       33
  Lines             ?     1380
  Branches          ?        0
=========================================
  Hits              ?      522
  Misses            ?      768
  Partials          ?       90

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 bd3f1cb...8b2e74f. Read the comment docs.


Option to exclude items from Git branch checkout list #13506

Here are my proposed changes to solve issue #13506.. This is an implementation of what @joaomoreno proposed in the ticket.. I've added a setting named checkoutType which controls what is listed inside the quick open panel for the git checkout command (all is as it is today, local is only local branches, tags is local branches and tagged commits, remote is local branches and remote branches... Happy to change names/descriptions of anything :) ).
I believe these are the minimal amount of changes to do this. Poking around, I could see a couple other ways you'd do it, either getting the config service into the CheckoutCommand (which seemed like a large refactor) or using the setting as a filter on the GitService for what's exposed as model/head/refs (which also seemed like a large refactor and could change other consumers).. If one of those are the desired approach, I think that my changes should be abandoned and someone else would have to take over that effort (as I'm not familiar enough with the larger application).
There's still some things I'm unsure of. For example, we could branch inside the CheckoutCommand's getResult method instead of using empty arrays for tags/remoteHeads (I just thought it added an unnecessary level of complexity). Another example is maybe using a private _checkoutType on the GitService and set it as part of the onDidUpdateConfiguration handler (this would be more similar to allowHugeRepositories, but since there isn't an override I don't know that it's necessary (and very possible I'm misunderstanding some intents here).. It's also very possible there's other completely different things I overlooked/you guys would know more about.
I looked for tests related to either the CheckoutCommand or the git settings and had trouble finding anything that I could base things on. If you had any suggestions or places to look at for similar tests, I'd be happy to take a stab at automating something. I did run all local tests and linting and they passed and reported nothing (respectively).
I did test this locally with this repo to ensure that 1) The setting existed/had the description and options I expected 2) The drop down respected the settings I picked (and that it updated without restarting) 3) I could still switch branches
Thanks for the great product!
Edit: reread this this morning and noticed I had some bad English in some places.. Also signed the CLA (and got confirmation from it), but the bot hasn't updated this. Is there anything else I should do for that? I wasn't expecting one line for the address, so maybe I messed it up.

Hi @ryapapap, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

Hi, I am closing and re-opening this PR to bump the CLA bot. Sorry for the inconvenience!

Hi @ryapapap, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

This solves my issues with having millions of tags for npm release (e.g. "v1.0.5" tags). I'd be happy if this gets approved.
I was thinking of doing a pull request where tags existed in a new section at the bottom (image below), but this is probably better if anyone would (for some reason) prefer to have tags sorted with local branchnames.

My motivation was the same as yours (too many tags in the way). What I saw in the animation would also solve my issue... I also don't really understand when/why someone would want the tags and local branches combined (fwiw)

Thanks for the PR! I've done a small change: directly use the configuration service from within the CheckoutCommand. 👍


Fix "last seen date" for connected peers api route.

Currently api route /peers/connected returns list of objects with lastSeen field. This field is being filled with now() timestamp instead of correct last seen date. However class Handshake has its own time field. Maybe we should consider use this field instead of now()?

@ceilican What do you think about it? I can easily implement this changes, but firstly I need to swagger-api branch to be merged.

It sounds reasonable to me. @kushti implemented the handshaking only recently, and I guess the population of lastSeen with now() precedes Handshake.  What do you think, @kushti?

I think if you seed this peer right now, then you should now as last time :)

In principle, I think lastSeen should be neither now() nor the handshake time, but rather something between the two: the last time we have interacted with the peer (e.g. the last time we have received a modifier (or anything else) from the peer).
Both now() and the handshake time are just approximations of the true lastSeen time.
Do we currently have a way to track the true last time we interacted with the peer? If not, we could consider implementing it.
If we need to choose between the now() and handshake time approximations, I think I prefer the handshake time, because it is a conservative estimation: we are sure that we have seen the peer at the handshake moment, but we are not sure that we have seen the peer now.  On the other hand, now may be a more precise estimation.

Now() is just a time when we request 'connected peers' api, it hasn't any relation to real last seen date. On the other hand it's truly non-deterministic behaviour when you try to test routes with now() cause it's nearly impossible to predict what we will finally get from api. One more concern here is about that Http layer has influence on a result. I think there should not be any code inside route definition other than checking input data, asking inner services to respond, forming service's answer into response. And last, at some moment in the past handshake time was the true last seen date =) I think we need to consider implement this 'lastSeen' or remove it from api completely, cause it's really confusing. Or just move this now() generation into service instead of route.

@kushti @ceilican  I think in this case this field shouldn't be called lastSeen. Cause in my opinion last seen date means the time when we got last messages from peer. I think we should rename this field to be handshakeTime or something like this and keep this first handshake timestamp as a value for this field. Cause for now using 'now()` is meaningless. I can do it on client instead. Or we can just throw it away.

New issue: https://github.com/ScorexFoundation/Scorex/issues/378


Update the NEVRA regex used by patch-package issue handler

Adapted regex from source code of libdnf. Should allow thbrough a few packages which are currently not
Secure Coding Practices Checklist GitHub Link

https://github.com/RedHatInsights/secure-coding-checklist

Secure Coding Checklist

[x] Input Validation
[ ] Output Encoding
[ ] Authentication and Password Management
[ ] Session Management
[ ] Access Control
[ ] Cryptographic Practices
[ ] Error Handling and Logging
[ ] Data Protection
[ ] Communication Security
[ ] System Configuration
[ ] Database Security
[ ] File Management
[ ] Memory Management
[ ] General Coding Practices

There also seem to be a few linting issues being caught by our PR checks.
/tmp/workspace/insights-remediations/insights-remediations-pr/src/issues/index.js

  13:1   error  Line 13 exceeds the maximum line length of 130  max-len

  13:20  error  Operator '=' must be spaced                     space-infix-ops


feat(GitOpsConfig): release apiVersion 2

I did some tests:
https://github.com/baloise-incubator/gitops-nginx-demo/pull/56
https://github.com/baloise-incubator/gitops-nginx-demo/pull/55
https://github.com/baloise-incubator/gitops-nginx-demo/pull/54
The one with the short preview hash is not reachable (ns and route seem to be fine, is healthy synce), i am still looking into it. Rest (no api version, beta api version) seems to work fine.

Works like a charm - awesome work @christiansiegel!
I would add the generator and also the changes between the versions somewhere in the docs and maybe also in the release notes?
What about the following release procedure?

release this change as 5.0.0 with API version 2 -> is a compatibility release that makes migrating to v2 easier
release 6.0.0 with API version 1 and unversioned config support removed as a breaking change

I amended the previous commit with

updated commit message (major release + mentioned converter)
added info box to doc

Great, thx a lot - ready to release :-)

:tada: This PR is included in version 5.0.0 :tada:
The release is available on:

v5.0.0
GitHub release

Your semantic-release bot :package::rocket:


Use up-to-date configuration reference in callbacks

Summary
Callbacks are registered during afterInit, however they were using a fixed reference to the dragData object using the chart instance object at time of initialization. That's fine only if the configuration options never change. However if, as was the case for me, the user is changing their callback definitions and updating the options object accordingly, the new callbacks would never be used by this plugin.
Test Plan

Instantiate a chart with one set of callbacks
Rerender the chart with a new set of callbacks
Plugin uses the most recent callbacks

@chrispahm any thoughts on this?

Hey @mf-bruce,
I'm sorry for taking so long to answer, I don't work with Chart.js anymore so this work just comes on top of the other things... If you're interested in maintaining this repo (maybe @artus9033?) please write me a short mail (see profile)!
Note that there are still a lot of test cases missing (see https://github.com/chrispahm/chartjs-plugin-dragdata/issues/40), plus there are no unit test at all! This is the main reason why I started lagging behind all these PRs and issues, as all options need to be tested manually after each update. Maybe Github Copilot / ChatGPT could be of help writing these test but I wouldn't be too sure about it...

This change is already present in the current v3.0.0, I implemented it in a very similar way during rewrite in TS in #146


Split the canvas into zones and attempt to find a free zone for a joining bot

This PR will add a feature in the registration phase of a bot.
When a new bot joins, the canvas will be split into separate regions.
The logic then attempts to find a free area that has no bots already.
Finally, the joining bot will be given a coordinate inside a free area
If there are no free areas, the bot will be assigned a random coordinate on the canvas.
This reduces the potential overlap of bots during the registration phase and gives the joining bots more space around them.

Example:


BasicAuthenticationSecretParser does not handle empty client_secret

Thanks for contributing to Swashbuckle.AspNetCore! As per the contributing guidelines, please adhere to the following rules of thumb before submitting your issue:

If it's not a bug report, feature request or PR, don't submit it here. Post to Stackoverflow instead.
If your issue is specifically a UI concern, don't submit it here. Post to the swagger-ui repo.
For bug reports, specify the version your using and provide clear repro steps.

wrong repo for the issue, apologies.


Small fix on toMap function

The executedQueryType fields makes for intrinsically distinct queries. For a potential, say, cache implementation using the toMap map to distinguish different queries, not having this field there will cause it to confuse different queries and return incorrect cached results.

Coverage increased (+0.07%) to 64.237% when pulling 36edcce49cf7332a372f27f6543a2693d8e32185 on fix-to-map-function into 6f324aec57a8341aeb3f3311ee2d28b6b8a9c583 on master.


Dynamic root partition size

I'm trying to build an image bigger than 2GB with bootc-image-builder.
The fixed size is specified here: https://github.com/osbuild/bootc-image-builder/blob/aaa2f5b/bib/cmd/bootc-image-builder/partition_tables.go#L53
The size of an image with layers combined can be found like so
crane manifest quay.io/fedora-ostree-desktops/silverblue:39 | jq '([.layers[].size] | add)'

or
skopeo inspect docker://quay.io/fedora-ostree-desktops/silverblue:39 | jq '([.LayersData[].Size] | add)'

and then converted from bytes into Gibibytes.
Using the manifest data could be an automatic way to figure out the disk size, otherwise a manual override flag could be helpful.
Let me know your thoughts, cheers!

Partitioning is planned and something we can do relatively easily for some base cases (resizing the image, adding extra partitions, etc).  There's also a plan to read partitioning metadata from the container image itself, but that needs more work.

I would like to echo the value of this issue. We are looking at using this as a way to generate images for https://github.com/ublue-os and currently creating https://github.com/ublue-os/bazzite images does not work due to the size of the bazzite image.

This relates strongly to https://github.com/containers/bootc/issues/287 which depends on https://github.com/osbuild/bootc-image-builder/issues/18

I briefly looked at trying to add a "just double the input container size" in the existing logic and it seems like this fundamentally clashes with the existing osbuild model of having the manifest be "on top", right?  The osbuild-mpp thing seems to add some dynamism that doesn't exist quite in what is in the Go code today.
I'm willing to try to implement this with some pointers.  Maybe we should do the install-to-filesystem first, as that will end up potentially leading towards a path where the container input drives more things.

So we landed the doubling in https://github.com/osbuild/bootc-image-builder/issues/52 which is good, but we very much still need both configuration and better defaults, because the use case of embedding container images (referenced dynamically via quadlet) is very important.
And what I'd like to at least consider doing here (this strongly relates to https://github.com/containers/bootc/issues/128 ) is that bootc install actually by default looks at your quadlet files, finds their sizes, and adds that into the defaults.  (And we'd need to bikeshed whether those sizes are doubled...)
Short term though, it seems fine to me to add a minimum root size into the blueprint we have today right?  This touches on https://github.com/osbuild/bootc-image-builder/pull/124 most quickly - and perhaps we should focus on that for now.

We rebased https://github.com/osbuild/bootc-image-builder/pull/124 which would allow resizing / and /boot as a starting point.


Set and Get gain won't work in Ui12 and Ui16

The RAW message in the Ui12 and Ui16 seems to be
SETD^i.0.gain^0
Which is different in the case of the Ui24 where you can patch inputs to different channels.

The same applies when subscribing to gain$ or gainDB$,
Thanks in advance!

@NaturalDevCR  Do you have a Ui12 available for testing? Can you confirm that the gain messages are the same as for the Ui16? Is the gain range also -40...50 dB?

@fmalcher I have an U12 and I am working on it. On the web interface of the Ui12, the gain goes from -40dB to +50dB.
If I subscribe to "gainDB" (that can be done with your code now, with 3 line changes in hw-channel.js and state-selectors.js and it really works with Ui12), your code sends me values from -6 to 57.
I think this calculation is made by your code, so, the answer is: Yes, the Ui12 originally sets gain from -40 to 50dB

@gaborveszpremi Thank you so much! Then there's everything clear to me. A PR will land soon. 🙂

I released v1.3.0 yesterday with this feature included. It was more than a fix, actually. Thanks for reporting!
If anybody has time to confirm things are working correctly, I'm happy about feedback.

Hi! It works perfectly with my Ui12.
I upgraded to v1.3.0 and I tested all the listeners (gain$, gainDB$, phantom$) and all the set... change... toggle.... etc functions of HwChannels that are documented in README.md, and I found all of them working fine. Also, gain Db values are in sync with the web UI of the device. Thanks for your great work!


in Cloudflare Access Application URL doesn't work

Which Cloudflare product does this pertain to?
Zero Trust
Existing documentation URL(s)
https://developers.cloudflare.com/cloudflare-one/policies/access/app-paths/
Section that requires update
Section doesn't exist yet
What needs to change?
When using a # in the Cloudflare Access Application URL,, e.g. app.example.com/#settings, this app matches as if the part behind the / wasn't there, so on app.example.com alone.
How should it change?
Either document clearly that a # in the application URL is not supported or correct the backend programming to support a # in the app URL.
Maybe the #settings is currently parsed as a comment in the code and therefore ignored.
I know however of some apps that use this URL scheme in production so supporting it in CF One would be great.
Additional information
No response

# in URLs are not sent to the server - it is impossible for Cloudflare to have any knowledge of them.
https://datatracker.ietf.org/doc/html/rfc3986#section-3.5

# in URLs are not sent to the server - it is impossible for Cloudflare to have any knowledge of them.
https://datatracker.ietf.org/doc/html/rfc3986#section-3.5

In that case, how do apps like Uptime Kuma, Zammad or simple anchor links utilizing browsers using # in their URLs work?

Anchor links are processed by the browser - this is not a server-side thing.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#linking_to_an_element_on_the_same_page

Anchor links are processed by the browser - this is not a server-side thing.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#linking_to_an_element_on_the_same_page

Still, my other statements still stand.

@kennyj42 wdyt?

As @KianNH mentioned we won't be able to truly support them because we don't get the # in the request. @ranbel Lets add some documentation to point that we won't support apps domains like example.com/#settings.


feat(helm): support override admission control namespace selector

Description

this is a dummy PR to run tests for https://github.com/stackrox/stackrox/pull/12641

The original PR is merged, this is no longer needed.


Honeywell internal sever error

2023-07-17 07:30:48: (tstat:honeywell, zone:0, session:5, poll:131) COOL_MODE [following schedule] act temp=70.0°F, act humidity=54% RH, set point=72.0°F, tolerance=2.0°F, override=72.0°F
revert_thermostat_mode: target_mode='UNKNOWN_MODE', doing nothing.
Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/pi/github/ThermostatSupervisor/thermostatsupervisor/supervise.py", line 133, in <module>
    exec_supervise(debug=True, argv_list=argv_inputs)
  File "/home/pi/github/ThermostatSupervisor/thermostatsupervisor/supervise.py", line 113, in exec_supervise
    supervisor(api.uip.get_user_inputs(api.uip.parent_keys[0],
  File "/home/pi/github/ThermostatSupervisor/thermostatsupervisor/supervise.py", line 76, in supervisor
    measurement = Zone.supervisor_loop(Thermostat, session_count,
  File "/home/pi/github/ThermostatSupervisor/thermostatsupervisor/thermostat_common.py", line 1054, in supervisor_loop
    self.refresh_zone_info()
  File "/home/pi/github/ThermostatSupervisor/thermostatsupervisor/honeywell.py", line 719, in refresh_zone_info
    all_zones_info = self.pyhtcc.get_zones_info()
  File "/home/pi/github/ThermostatSupervisor/thermostatsupervisor/honeywell.py", line 218, in get_zones_info
    return_val = super().get_zones_info()
  File "/home/pi/.local/lib/python3.9/site-packages/pyhtcc/pyhtcc.py", line 711, in get_zones_info
    **self._get_outdoor_weather_info_for_zone(device_id),
  File "/home/pi/.local/lib/python3.9/site-packages/pyhtcc/pyhtcc.py", line 577, in _get_outdoor_weather_info_for_zone
    result.raise_for_status()
  File "/home/pi/.local/lib/python3.9/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://mytotalconnectcomfort.com/portal/Error?aspxerrorpath=/portal/Device/Control/1457408

added retries for requests.exceptions.HTTPError, leaving issue open for now to see if this resolves the issue.


Graphics (aesthetics)

[x] Basic grid

Glow grid

[x] Red

Animations:

[x] Grid

[x] Slider

[x] Collect

Graphics connecting to the score bar.

good to go


Feature/use persist query client core

Codecov Report
Base: 96.36% // Head: 96.63% // Increases project coverage by +0.27% :tada:

Coverage data is based on head (262b90e) compared to base (eab6e2c).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4231      +/-   ##
==========================================
+ Coverage   96.36%   96.63%   +0.27%
==========================================
  Files          45       73      +28
  Lines        2281     2969     +688
  Branches      640      817     +177
==========================================
+ Hits         2198     2869     +671
- Misses         80       98      +18
+ Partials        3        2       -1

Impacted Files
Coverage Δ

src/core/queriesObserver.ts

src/react/useInfiniteQuery.ts

src/core/queryClient.ts

src/devtools/useLocalStorage.ts

src/devtools/theme.tsx

src/core/queryObserver.ts

src/core/mutationCache.ts

src/devtools/tests/utils.tsx

...rc/createWebStoragePersistor-experimental/index.ts

src/react/useIsFetching.ts

... and 108 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fixed shellcheck warning SC2004, SC2006, SC2129, SC2219. Issue #1233.

SC2004: "$/${} is unnecessary on arithmetic variables."
SC2006: "Use $(...) notation instead of legacy backticked ...."
SC2129: "Consider using { cmd1; cmd2; } >> file instead of individual redirects."
SC2219: "Instead of 'let expr', prefer (( expr ))."

Do you want one error code per pull request or multiple error codes in one go?


tedlium3 prepare.sh FileNotFoundError

I am trying to download and train tedlium recipe, but I cannot successfully run prepare.sh
2022-09-06 21:38:54 (prepare.sh:51:main) Stage 0: Download data
2022-09-06 21:38:54 (prepare.sh:74:main) Stage 1: Prepare tedlium3 manifests
2022-09-06 21:38:54 (prepare.sh:85:main) Stage 2: Prepare musan manifests
2022-09-06 21:38:54 (prepare.sh:96:main) Stage 3: Compute fbank for tedlium3
2022-09-06 21:38:54 (prepare.sh:106:main) Stage 4: Compute fbank for musan
2022-09-06 21:38:54 (prepare.sh:115:main) Stage 5: Prepare phone based lang
2022-09-06 21:38:54,348 INFO [prepare_transcripts.py:84] Generating train.text
2022-09-06 21:38:54,348 INFO [prepare_transcripts.py:66] Loading data/manifests/supervisions_train.json!
Traceback (most recent call last):
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 95, in
main()
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 85, in main
prepare_transcripts(manifests_dir, lang_dir)
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 67, in prepare_transcripts
with open(supervisions_train, "r") as load_f:
FileNotFoundError: [Errno 2] No such file or directory: 'data/manifests/supervisions_train.json'
How can I fix this error?

Please use
ls -lh data/manifests

to find the exact name for  supervisions_train.json and replace the one used in
prepare_transcripts.py:66.

The code is outdated. After you fix it, would you mind creating a PR for it?

12K Aug 15 15:18 musan_recordings_music.jsonl.gz
15K Aug 15 15:18 musan_recordings_noise.jsonl.gz
6.0K Aug 15 15:18 musan_recordings_speech.jsonl.gz
9.5K Aug 15 15:18 musan_supervisions_music.jsonl.gz
488 Aug 15 15:17 tedlium_recordings_dev.jsonl.gz
570 Aug 15 15:17 tedlium_recordings_test.jsonl.gz
67K Aug 15 15:17 tedlium_recordings_train.jsonl.gz
44K Aug 15 15:17 tedlium_supervisions_dev.jsonl.gz
72K Aug 15 15:17 tedlium_supervisions_test.jsonl.gz
14M Aug 15 15:17 tedlium_supervisions_train.jsonl.gz
This is the list I got when I use ls -lh data/manifests. I guess "tedlium_supervisions_train.jsonl.gz" is the corresponding file.
Should I extract this before replacing it?
PS: Just to be clear, if PR stands for a pull request, yes I can make a pull request after fixing this issue.

Should I extract this before replacing it?

No, you don't need to extract it.
please change the following code to
https://github.com/k2-fsa/icefall/blob/e18fa78c3a010fac4e6d3e83bdcff28197df04dc/egs/tedlium3/ASR/local/prepare_transcripts.py#L63-L71
to
import lhotse # move this line to the beginning of the file

train_text = Path(lang_dir) / "train.text"
sups = lhotse.load_manifest("data/manifests/tedlium_recordings_train.jsonl.gz")
for s in sups:
  texts.append(s.text)

Also, I think you can remove the variable texts and write s.text to the file directly.

PS: Just to be clear, if PR stands for a pull request, yes I can make a pull request after fixing this issue.

Yes, please create a pull-request to fix it.
Thanks!

(prepare.sh:115:main) Stage 5: Prepare phone based lang
INFO [prepare_transcripts.py:88] Generating train.text
Traceback (most recent call last):
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 99, in
main()
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 89, in main
prepare_transcripts(manifests_dir, lang_dir)
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 68, in prepare_transcripts
texts.append(s.text)
AttributeError: 'Recording' object has no attribute 'text'
Ok now I am getting this error...

Sorry, I have updated the code, please use
sups = lhotse.load_manifest(f"{manifests_dir}/tedlium_supervisions_train.jsonl.gz")

What is the difference between that and the third line of this code? They look the same to me.
import lhotse # move this line to the beginning of the file

train_text = Path(lang_dir) / "train.text"
sups = lhotse.load_manifest(f"{manifests_dir}/tedlium_supervisions_train.jsonl.gz")
for s in sups:
  texts.append(s.text)

I was using tedlium_recordings_train, not tedlium_supervisions_train.

You can check the edit history.

I see. Now I am getting this error message:
(prepare.sh:115:main) Stage 5: Prepare phone based lang
INFO [prepare_transcripts.py:88] Generating train.text
INFO [prepare_transcripts.py:70] Loading data/manifests/supervisions_train.json!
Traceback (most recent call last):
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 99, in
main()
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 89, in main
prepare_transcripts(manifests_dir, lang_dir)
File "/icefall/egs/tedlium3/ASR/./local/prepare_transcripts.py", line 71, in prepare_transcripts
with open(supervisions_train, "r") as load_f:
FileNotFoundError: [Errno 2] No such file or directory: 'data/manifests/supervisions_train.json'

Could you show your changes, i.e., the output of git diff?

diff --git a/egs/tedlium3/ASR/local/prepare_transcripts.py b/egs/tedlium3/ASR/local/prepare_transcripts.py
index 416264e..f867b4d 100755
--- a/egs/tedlium3/ASR/local/prepare_transcripts.py
+++ b/egs/tedlium3/ASR/local/prepare_transcripts.py
@@ -23,6 +23,7 @@ consisting of supervisions_train.json and does the following:
 1. Generate train.text.

 """
+import lhotse
 import argparse
 import json
 import logging
@@ -62,6 +63,9 @@ def prepare_transcripts(manifests_dir: str, lang_dir: str):

     supervisions_train = Path(manifests_dir) / "supervisions_train.json"
     train_text = Path(lang_dir) / "train.text"
+    sups = lhotse.load_manifest(f"{manifests_dir}/tedlium_supervisions_train.jsonl.gz")
+    for s in sups:
+       texts.append(s.text)

     logging.info(f"Loading {supervisions_train}!")
     with open(supervisions_train, "r") as load_f:

Should I extract this before replacing it?

No, you don't need to extract it.
please change the following code to
https://github.com/k2-fsa/icefall/blob/e18fa78c3a010fac4e6d3e83bdcff28197df04dc/egs/tedlium3/ASR/local/prepare_transcripts.py#L63-L71
to

import lhotse # move this line to the beginning of the file

train_text = Path(lang_dir) / "train.text"

sups = lhotse.load_manifest(f"{manifests_dir}/tedlium_supervisions_train.jsonl.gz")

for s in sups:

  texts.append(s.text)

Please see the above comments. You have not DELETED the original code yet.

I see. Thanks!
Now I am having an issue with prepare_lexicon.py...
INFO [prepare_lexicon.py:66] Loading data/manifests/supervisions_train.json!
Traceback (most recent call last):
  File "/icefall/egs/tedlium3/ASR/./local/prepare_lexicon.py", line 100, in <module>
    main()
  File "/icefall/egs/tedlium3/ASR/./local/prepare_lexicon.py", line 90, in main
    prepare_lexicon(manifests_dir, lang_dir)
  File "/icefall/egs/tedlium3/ASR/./local/prepare_lexicon.py", line 67, in prepare_lexicon
    with open(supervisions_train, "r") as load_f:

Do you think it will be helpful to create a PR before fixing prepare_lexicon.py?

Now I am having an issue with prepare_lexicon.py...

That is the same issue. Could you change its code by following https://github.com/k2-fsa/icefall/issues/566#issuecomment-1240197489 ?

Do you think it will be helpful to create a PR before fixing prepare_lexicon.py?

I suggest that you create a PR to fix both of them as they have the same issue.

I edited prepare_lexion.py regarding the changes that I made in prepare_transcripts.py and it seems like it works! I will create a PR soon. Thank you very much for your help!


Hide auto generated properties and fields

Reflection will expose backing fields for auto-implemented properties and getter/setter methods for all properties that have them by default.
As we expose properties for editing having these automatically generated fields/methods is clutter that isn't particularly useful. We should hide them by default.

Fixed in bc88ffba82bd675f3fd4b482469e74d93fb8aca4


Support OGC WKT proj4 def.units and def.to_meter

Fix for https://github.com/openlayers/ol3/issues/4233
Depends on https://github.com/proj4js/proj4js/pull/157 (Will not pass tests without this change).

Updated to be compatible with different DATUMs (don't store unit name as key value, just use conversion factor)

Thanks, this change looks good. Only thing is we have a very picky linter, which does not like the formatting of your changes:
Running gjslint...
----- FILE  :  /home/travis/build/openlayers/ol3/src/ol/proj/proj.js -----
Line 157, E:0110: Line too long (84 characters).
----- FILE  :  /home/travis/build/openlayers/ol3/test/spec/ol/proj/proj.test.js -----
Line 498, E:0110: Line too long (82 characters).
Line 498, E:0002: Missing space before "+"
Line 499, E:0110: Line too long (81 characters).
Line 499, E:0002: Missing space before "+"
Line 500, E:0002: Missing space before "+"
Line 501, E:0002: Missing space before "+"
Line 504, E:0110: Line too long (84 characters).
Line 504, E:0002: Missing space before "+"
Line 505, E:0002: Missing space before "+"
Line 506, E:0002: Missing space before "+"
Line 534, E:0002: Missing space before "*"
Line 534, E:0002: Missing space after "*"
Line 536, E:0002: Missing space before "*"
Line 536, E:0002: Missing space after "*"
Line 536, E:0110: Line too long (82 characters).
Found 16 errors, including 0 new errors, in 2 files (484 files OK).

This is why the CI tests fail for this pull request. Are you able to update it? If not let me know, and I'll do it before I merge it.

I can update it.

Cool, thanks. For the paper work, since this appears to be your first contribution, can you also sign a CLA please?

Linting fixed, ICLA signed.
Build is now failing due to https://github.com/proj4js/proj4js/pull/157

I just published proj4.js v2.3.12. If you set that version in package.json, the build should pass again.

Updated package.json

Nice, thanks for this great first-time contribution @tbarsballe.

Agreed, a very nice contribution, thanks!


missing aggr metrics in Rest

Possibly verified earlier but needs to be rechecked with AFF250 9.12
aggr_hybrid_cache_size_total
aggr_snapshot_inode_used_percent  (used in dashboard)
aggr_space_reserved
aggr_space_used_percent (used in dashboard)

Check if aggr_snapshot_inode_used_percent or aggr_space_reserved are available via private CLI. If not, close.

Checked on 9.12.1 cluster <IP_ADDRESS>,
Both the above fields aggr_snapshot_inode_used_percent and aggr_space_reserved aren't available via private CLI (api/private/cli/storage/aggregate).


Broken link in documentation

Page: https://turing.ml/dev/tutorials/6-infinitemixturemodel/
Section: "Finite Mixture Model": https://turing.ml/dev/tutorials/6-infinitemixturemodel/#finite-mixture-model
The link Gaussian mixture model tutorial is broken.

This one is currently going to be tricky to fix in a good way, since we can't currently weave a lot of the tutorials (see https://github.com/JunoLab/Weave.jl/issues/290).
I'll see if there's something I can do. Thanks!

I fixed this upstream in TuringTutorials. Should show up on the site in a day or two. Thanks, @DilumAluthge!


[spring-boot.txt] Add new endpoints

Hi,
This PR use this documentation to add the prefix management/ to endpoints list from this documentation:

Command used to extract endpoints:
curl -sk https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/production-ready-endpoints.html | grep -Po '([a-z]+)' | cut -d'>' -f2 | cut -d'<' -f1 | sort -u

Thanks in advance 😃

Good stuff @righettod

Thank you very much @ItsIgnacioPortal  👍

Thanks @righettod .
Great suggestion - as all the others <3
_and I love how detailed the pull request is!)

Thank you very much ❤


schema missing pinouts

lets say i wanted to use my own module. What pinouts from the module would go to what pins on the flipper. i cant find this information anywhere on your repo

Have you tried looking at the official Flipper docs?
https://blog.flipper.net/content/images/size/w2400/2020/12/GPIO.jpg


[Gatus chart] extraLabels not working on all resources

Hi!
We are trying to apply labels to all resources using your extraLabels.
It seems like it does parse the extraLabels to the deployment but not down to the replicaset/pod.
Potential bug
I believe there is a bug in the chart (if it is not by design).
I believe the 'baseLabels' should be added to the template labels here;
https://github.com/minicloudlabs/helm-charts/blob/96ec8a780929011dab14ee5528e15dee65262873/charts/gatus/templates/deployment.yaml#L24
Technical
We use https://minicloudlabs.github.io/helm-charts
Version: 3.4.0

I believe this is by design. extraLabels appear to be strictly for k8s metadata. If you want to add labels to the pods, then you probably want to use podLabels in values.

Ah! I was looking for a object to add labels to for all resources I have both extra and pod labels for now


bug: Open a form in modal and the keyboard pops up

Type: bug
Platform: ios 7 webview
I have a form in a modal. When I open the form sometimes (1 in 10 times) the keyboard pops up and it will only close if you then put your focus in a text field and then move out.
If you just close the modal the keyboard stays open and does not shut until you change states.
Note: normal behavior (if the keyboard is activated by focusing on a text box) is that when the modal closes the keyboard also closes - it does not work this way when the keyboard is popped open on opening the modal.

Are you using the latest Ionic (either rc3 or rc4)?
if you could post a codepen reproducing the issue I'll take a look, thanks!

Here is a codepen. http://codepen.io/pattyok/pen/ZGzPxx
I am on rc1. I only see it on the client, on ios.  Several others have reported this in the forums. It does not repro consistently, but I get it often enough to be troublesome.

Does it still happen with the latest Ionic? We refactored a lot of keyboard code, a fair amount of it dealing with modals.

We are on RC1...

Not sure what you'd like to happen, if it's fixed in the latest Ionic then there's no bug?

Ok I see it if I spam click the modal button :) Looks similar to why we added https://github.com/driftyco/ionic/commit/a416c66d8aede50fcf91cc569681a6d163e37cbc because the same thing was happening when closing the modal over the top of an input.  This looks like it's the reverse, you click on the button to open the modal and the ghost click (or whatever is causing it, still not sure) hits the input after the modal is opened.
Also I noticed you had an ion-view and ion-content wrapping your modal (maybe left there from editing the tabs project?), but it was doing some funky stuff so I removed them: http://codepen.io/tlancina/pen/xGxGoY.

Should be fixed, thanks for the report! Let us know if you're still having issues.

I updated to rc4 and am still seeing the issue...
On Tue, Apr 21, 2015 at 11:24 AM, Tim Lancina<EMAIL_ADDRESS>wrote:

Should be fixed, thanks for the report! Let us know if you're still having
issues.
—
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ionic/issues/3569#issuecomment-94895446.

You'll need to use nightly, not rc4.


Can't run examples because lack of .fit() method

When running the example, I run into the following error
Traceback (most recent call last):   File "/home/luis/Projects/toys/main.py", line 12, in <module>     reg.fit(X, y)   File "/home/luis/Projects/toys/.venv/lib/python3.10/site-packages/m5py/main.py", line 214, in fit     super(M5Base, self).fit(X, y, sample_weight=sample_weight, check_input=check_input) AttributeError: 'super' object has no attribute 'fit'
It seems the class BaseDecisionTree doesn't have a fit() method, however replacing it with _fit() it seems to work. I'm not sure if I should simply replace it or if the class should inherit from something like DecisionTreeRegressor (which would necessitate changing the criterion).

Thanks for reporting this @lccatala ! Most probably this is a change due to a newer sklearn version. Could you please find out at which version this BaseDecisionTree.fit disappeared ? We'll then be able to implement a legacy-compliant PR to fix this.
Thanks!

Hi @smarie it seems it was in version 1.3
[https://github.com/scikit-learn/scikit-learn/blob/9aaed498795f68e5956ea762fef9c440ca9eb239/sklearn/tree/_classes.py#L176](Version 1.2,2)
[https://github.com/scikit-learn/scikit-learn/blob/7f9bad99d6e0a3e8ddf92a7e5561245224dab102/sklearn/tree/_classes.py#L221](Version 1.3)
I've opened a PR with a quick fix, though I'm not sure if it's the best way of implementing it


Bits missing in PRESETCTRL register

According to the user manual, PRESETCTRL should contain the following bits, that are not available in the SVD file:

ADC_RST_N
DMA_RST_N

I plan to contact NXP about this, but haven't gotten to it yet.

This problem has been fixed here, but has yet to be reported upstream.

I've reported this issue to NXP: https://community.nxp.com/thread/465465

Migrated to new repository: https://github.com/lpc-rs/lpc-pac/issues/17


Expose a configuration option to optionally keep Google Cloud Storage buckets when channel is deleted

The current behaviour when deleting channels for Quetz deployed with GCS storage backend is to delete the bucket. It'd be helpful to expose a configuration to optionally keep the bucket when the channel associated with it is deleted.

I think we can close this now since this has been merged. Thanks!


feat(plugin-shiki): add logLevel option

I believe this is a better approach

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

6 of 15 (40.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 56.514%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

plugins/markdown/plugin-shiki/src/node/markdown/applyHighlighter.ts
6
15
40.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
1008

Relevant Lines:
1596

💛  - Coveralls


SSCS-5030 Non-compliant case letter - approval to proceed

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

Closing and reopening the PR


Add french language

Thanks a lot @coco-perso 😄

Hello @coco-perso! Just pinging you since I added a new line to the translations file: https://github.com/hacdias/filemanager/commit/889871ec0a1fac26dee1b3152d0f87e2a7af2c65#diff-fe6ccd8f0bf41f00b9ff5d61b8e0e3e9 😃


FinancialActivityData class bug fixed

Hi, I have seen FinancialActivityData This class doesn't have a constructor but 'convertToFinancialActivityData(final FinancialActivity type)' this method is try to inject value by constructor so I have created customer please merge this changes
Thank you

@SubhamKrGuptaDev please provide the Fineract Jira ticket as a prefix in your PR title ("FINERACT-1234: ...")

@SubhamKrGuptaDev please look at the other PRs and follow the same pattern for the PR title... "FINERACT-XXXX: Title of the Jira ticket"

The code change seems to have no consequences (i. e. is not used anywhere). Note: we are already using Lombok annotations here; if we really wanted  an all args constructor we should use the Lombok annotation (one liner).


IFrame example inside Docker does not work

Describe the bug
I followed the video classifier example to play around with iframes inside Label Studio. Using the Docker setup, the iframe isn't shown, instead an error appears on the console TypeError: Cannot read properties of null (reading 'dataObj').
To Reproduce
Steps to reproduce the behavior:

Start Label Studio with Docker
Go to http://<IP_ADDRESS>:8080/ and create a new project.
Use the data and view template from here (the iframe example data)
Try labeling - the video embed isn't shown.

Expected behavior
The video embed should be shown just like in the online playground
Environment (please complete the following information):

MacOS Monterey
Label Studio Version 1.3
Browsers: latest Chrome/Firefox

@chauff Thank you for your report. Please, check this video classifier template again, it's fixed now.