java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY

Attempted to use db.findByIndex("{ "selector": { "studyID": "s12345", "siteID": "si1234", "username": "user" } }"), we are getting the  following error, java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY. We also tried without the outer { } in the above string. Using Cloudant.Local and cloudant-client for Java

CloudantClient (java-cloudant) version(s): 2.3
GSON: 2.2.2
Java version (including vendor and platform). 1.8.0_71, Linux OS 2.6.32, Apache Tomcat 6.0.24
If you're using the optional okhttp dependency: No
A small code sample that demonstrates the issue: See below

Btw, after getting the connection working, we were able to assert the existing document, by using db.contains("") method. But when we attempted to use db.findByIndex("{ "selector": { "studyID": "s12345", "siteID": "si1234", "username": "user" } }"), we are getting the  following error, java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY. We also tried without the outer { } in the above string. Wondering if there is mismatch between the cloudant.local and cloudant-client versions.
Here is the stacktrace:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:795)
at com.google.gson.Gson.fromJson(Gson.java:761)
at com.google.gson.Gson.fromJson(Gson.java:710)
at com.google.gson.Gson.fromJson(Gson.java:682)
at com.cloudant.client.api.Database.getFindByIndexBody(Database.java:1188)
at com.cloudant.client.api.Database.findByIndex(Database.java:380)
at com.cloudant.client.api.Database.findByIndex(Database.java:342)

Our dependency tree has GSON 2.2.4 which is what is tested.

We upgraded the GSON to version 2.2.4  and the issue was resolved.
Thanks for helping with this !
  From: Rich Ellis<EMAIL_ADDRESS>
To: cloudant/java-cloudant<EMAIL_ADDRESS>Cc: jponth<EMAIL_ADDRESS>Sent: Friday, March 11, 2016 10:31 AM
Subject: Re: [java-cloudant] java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY (#232)
Our dependency tree has GSON 2.2.4 which is what is tested.—
Reply to this email directly or view it on GitHub.

Great to hear that's fixed.


d-flex and grid

To use flexbox, we need to write "d-flex".
To use grid, we need to just write "grid".
Why not just use "flex" instead of "d-flex" ?

Hi,
d- is a dynamic utility used to set the display property. However grid is a static utility that, in addition to setting the display property also sets other properties necessary for grid layout. You can also use d-grid when you just need to set display: grid.


object with type any cannot be called with type parameters

From the docs:
 In these cases, we want to opt-out of type-checking and let the values pass through compile-time checks. To do so, we label these with the any type
So I would expect that an object explicitly declared with type any not to fail when tsc checks its types. This is true in general but not when called with type parameters:
function f(Something: any): void {
  const a = new Something<string>()
}

Example project: https://github.com/cancerberoSgx/suitecommerce-types/tree/master/tests/ts-any-issue
I know probably this is a fact of life and in that case I have the following question: is there any way of creating a type that is like any and also supports function call expressions with type arguments ?
Thanks
(feel free to close this issue and sorry for the noise, but this is blocking a project where ts code is transpiled to intermediary .ts code before emitting .js files and in that one I really need to skip typechecking. I tried with several combinations like "any|{new()}), etc without luck.)

So the error that gets raised is Untyped function calls may not accept type arguments.. To me this makes sense - generics are only useful when the compiler knows something about the underlying type.
This works:
function f(Something: new<T>() => any): void {
    const a = new Something<string>()
}

But I would suggest having your code generator not include generics if possible.
Also I would say this is more of a stack overflow-type question rather than an issue with TypeScript :)


Remove internal smart polling for mined transactions

Currently there's some weird behavior going on -> deploying contracts and mutating contract state doesn't callback in 100% cases, so we had to resort to internal polling of the blockchain. Find the main issue and fix the polling, and in the future rely instead on push callbacks from the node.

Here's another team that has issue with subscribing to block events and instead opted to poll:
https://github.com/jpmorganchase/quorum/issues/86#issuecomment-315965611
I don't think this is the bug that we're hitting, but this might be indicative of a more endemic issue with web3.


Add missing resource types in IAM Scanner documentation

This PR has been open for a long time. Are you able to resolve the issues or can you close it?


AgentOps Integration

Implemented better LLM tracking and agent monitoring using AgentOps integration

Thank you, i will solve the confict and approve.


Improve plugin loading mechanism

Description
At the moment, plugins are loaded from their JARs by the order of their names (e.g. ABC.jar will be loaded before BCD.jar). This is not exactly what we want, however, as this makes using plugin APIs very unreliable, since the classes that are dependencies of a plugin may not actually be on the class path when that plugin is loaded.
So, we need a new system, and I think the best way to do this is to implement a dependency system, just like Bukkit, Sponge, Velocity, etc. do, where you can define plugins that you depend on, and those plugins will get loaded before yours, so that you can use their APIs.

Done in 78fc69b8a50c02fe9aadd98ef595962ba3ceefc0


SSE EventSource 'text/event-stream' MIME type should be implicitly set

Firstly, thanks for this great library!
I noticed a slight inconsistency of the SSE EventSource implementation where the text/event-stream MIME-type is being checked for the event receiving path
https://github.com/square/okhttp/blob/e31cb03d86b9c4daf2124c6e62e218b32e72e056/okhttp-sse/src/main/kotlin/okhttp3/internal/sse/RealEventSource.kt#L58-L62
but not the initial request ('Accept' 'header-ist' of the EventSource) as done e.g. in browsers such as Firefox and Chrome etc.  A more detailed description can be found here.
As a workaround the following is possible:
OkHttpClient okClient = new OkHttpClient();
Request request = new Request.Builder().url(path).addHeader("Accept", "text/event-stream").build();

EventSource.Factory factory = EventSources.createFactory(okClient);
EventSource sseEventSource = factory.newEventSource(request, EVENT_SOURCE_LISTENER);

It would be nice if this could be kept consistent and the MIME-type text/event-stream be set implicitly by the EventSource constructor, in the `connect(...)' call, its Factory, or equivalently.
Many thanks in advance for your consideration.
P.S. out of curiosity: why is EventSourceListener an abstract class and not an interface.

We use an abstract class so we can add new events without breaking clients built against older versions.
See a similar changes in EventListener https://github.com/square/okhttp/commit/8cebf9012bbdfdbad6b833effc545ff5b8b8e48b#diff-5ca874acb455fb0ee586729d2fb6a89d

This seems like a sensible change if the Accept header isn't already set in the request.  It clearly shows the intention of the request.  There is some risk for setting it when older clients were not, but it likely shows a flaw in the server implementation and the workaround would be easy.

Thanks for the clarification and your consideration.
N.B. the origin for the "text/event-stream": our service can serve replies using different user-defined/preferred protocols for 'GET' (and other) calls for each of its tree-like structured endpoints. Depending on the 'Accept' header the reply is served either as an html (e.g. for web-browsers), binary, json, xml, yaml, ..., via long-polling and/or SSE notifications on content change followed by a user-driven pull using one of the previously mentioned formats.
Presently, as mentioned above, setting the Accept header explicitly works and I feel is better than defining yet another endpoint just for SSE-ing. My reasoning for this issue was -- since other clients already implicitly already set this header info -- that this would simplify life for other end-users that do not necessarily use our wrapper around your lib.

@yschimke thanks for the quick follow-up, much appreciated. :+1:


Meme Customization Feature: Develop features allowing users to add and customize text on the meme image within the allocated time.

The other part of this task was solved in https://github.com/sopra-fs24-group-15/client/issues/57 since it was only backendconnection trouble shooting.


Content not switching when using components within TabsContent

For some reason the tabs are not switching content when you use a component within TabsContent. For example if you have something like the following you will see the same  component content when you select either tab. It only shows the first tab content's header even when you click the second tab, but the content within the p tag will switch.
<Tabs defaultValue="register">
        <TabsList>
          <TabsTrigger value="register">Register</TabsTrigger>
          <TabsTrigger value="games">Past Games</TabsTrigger>
        </TabsList>
        <TabsContent value="register">

            <Heading
              title='Register for the next upcoming game'
              text='Dolor elit voluptate proident incididunt labore sint cillum.'
            />

Tab One

        </TabsContent>
        <TabsContent value="games">

            <Heading
              title='View Previous Games'
              text='Dolor elit voluptate proident incididunt labore sint cillum.'
            />

Tab Two

        </TabsContent>
      </Tabs>

screen-capture.webm
Hi, I think we had the same problem

This works perfectly fine on chrome, i think it is a browser issue

Same for me, works on the Documentation page of shadcn-ui, but locally the tab switch is not working

@brentrobbins. I am experiencing the same issue. were you able to resolve it?

@brentrobbins. I am experiencing the same issue. were you able to resolve it?

Not yet.

I was experiencing this today due to hydration issues - had to enable "client:load" in astro for it to work, keep up the good work :)

Same issue, using Nextjs.

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.

Same problem +1. Is there any Python implementation for this solution?

This works perfectly fine on chrome, i think it is a browser issue

I'm on chrome and not working


0.20 backports

Waiting for https://github.com/gtk-rs/gir/pull/1610 and https://github.com/gtk-rs/gir-files/pull/213

you need this commit https://github.com/gtk-rs/gtk-rs-core/commit/f27194b7aee1459103835c3cd42d2e288d7081f1 as well


Add IntSet to DataStructures

This moves my work at JuliaLang/julia#10065 into DataStructures.  I don't export the name DataStructures.IntSet since I'm not sure what the best way to do this would be.  Please feel free to push modifications to this branch.  We could either rename the type in DataStructures, or we could export it (forcing folks to manually choose Base.IntSet or DataStructures.IntSet), or we could leave it as is (which means that you use Base.IntSet by default unless you explicitly import DataStructures.IntSet).
Note that this is the pure Julia refactor, not the current Base implementation (which relies upon some C code in base).  That means that it's a little slower in a few cases, but for the most part it's very competitive or way faster.
We could also easily add a second BitVector to the type in the future to add support for negative Ints, making this a true IntSet (well, except we still wouldn't be able to reach typemax(Int) or typemin(Int), but you can't do that on a 64 bit machine and it's a terrible idea in any case).

Cc: @StephenVavasis

Note that this behaves way better than Base with regards to complement IntSets:
Base:
julia> c = complement(IntSet(0:255))
WARNING: storing zero in IntSets is deprecated
 in depwarn at /Users/mbauman/Applications/julia-0.4/lib/julia/sys.dylib
 in push! at /Users/mbauman/Applications/julia-0.4/lib/julia/sys.dylib
 in call at intset.jl:10
while loading no file, in expression starting on line 0
WARNING: complement IntSets are deprecated
 in depwarn at /Users/mbauman/Applications/julia-0.4/lib/julia/sys.dylib
 in complement! at deprecated.jl:732
 in complement at deprecated.jl:739
while loading no file, in expression starting on line 0
IntSet([256, ...,<PHONE_NUMBER>854775806])

julia> pop!(c, 256)
ERROR: InexactError()
 in sizehint! at /Users/mbauman/Applications/julia-0.4/lib/julia/sys.dylib
 in pop! at intset.jl:80
 in pop! at intset.jl:101

julia> pop!(c, 256)
256

julia> c
IntSet([384, ...,<PHONE_NUMBER>854775806])

julia> first(c)
ERROR: ArgumentError: set must be non-empty
 in first at intset.jl:186

This PR:
julia> using DataStructures
       const IntSet = DataStructures.IntSet
DataStructures.IntSet

julia> c = complement(IntSet(0:255))
IntSet([256, 257, 258, ...,<PHONE_NUMBER>854775806])

julia> pop!(c, 256)
256

julia> c
IntSet([257, 258, 259, ...,<PHONE_NUMBER>854775806])

julia> first(c)
257

It looks good to me, but shouldn't it be documented in DataStructures' README.rst?  Can the IntSet documentation from the Julia manual just be copied and pasted?

Yes, definitely.  The language should be tightened up as compared to the base documentation, but it can serve as a good start.
This version doesn't hold non-negative integers, it holds Ints from 0 to typemax(Int)-1.  It's pedantic, but having that well-defined makes the implementation and behavior much more sane.

Alright, I've added a blurb to README.rst.  Any thoughts about the name and/or export?  It's actually a sorted set — should it be called SortedIntSet?  That would avoid the clash with base.  I don't feel strongly any which way.

Matt,
IntSet is not a sorted set in the sense of the sorted containers of DataStructures.jl.  A sorted container has the property that its entries can be enumerated in sort-order in time proportional to O(n) or O(n log n), where n is the number entries.  To enumerate an IntSet in order requires O(m), where m is the maximum entry.
But meanwhile, I am confused about the general question of renaming.  I thought that the point of moving IntSet to DataStructures was because you and others are designing a new 'core' bitvector type for managing indices, but you want to leave the old IntSet around for users who depend on it in their codes.  In this case, we should preserve the same name IntSet and give a different name to the new bitvector type?

The elements are enumerated in sorted order, but you're right that the algorithmic complexities are different from the other Sorted* types here.
Like I said, I don't feel strongly.  I'm just trying to find a solution that will work the best during this migration time where there's both Base.IntSet and an implementation here.  As I see it, the options are:

Call this DataStructures.IntSet, but don't export it.  This means that users that run into the IntSet deprecations on master will have to using DataStructures; import DataStructures.IntSet in order to get the old un-deprecated behaviors.
Call this DataStructures.IntSet and export it.  This means that all users who use both DataStructures and IntSet will need to explicitly choose which one they want, whether they need complements and stored zeros or not.  This seems messy to me.
Call this something else entirely.  As folks run into deprecation warnings in Julia, they can be pointed here and rename their type to the exported name in DataStructures (whatever that may be).

In any of the cases above, compatibility is pretty straight-forward… just use DataStructures version if you want stored zeros and complements.  Otherwise, Base's version will do you just fine.
Eventually, Base's name will be changed to IndexSet, but that rename will probably wait until the implementation changes.

UIntSet ?

I'd rather an Int16Set that covered both positive and negative numbers near zero.  There are 2^64-1 UInt64s, which means we can't use a bit vector to address them all with an Int64 index.  It also makes things like length of complements messy - do they return an Int128?

I vote for Matt's first option (call it DataStructures.IntSet but don't export it).  It is easier to add two statements to each module than to change a name everywhere it occurs.  In addition, that option is easier on people writing packages that are supposed to support Julia 0.3, 0.4 and 0.5.  Package writers could simply start their program with
@compat import DataStructures.IntSet

and the compat package would do the right thing.  (@stevengj?)

No need for @compat since this is in a package.  If you want to use this just update your packages and use it!  I agree that it seems like the path of least resistance — it's what's implemented and documented right now.

Matt,
I think that compat or something similar will be needed for a package-writer who wants to use IntSet and wants his/her program to work correctly for 0.3, 0.4, 0.5.  In 0.3 and earlier 0.4 masters, IntSet is in Base.  In upcoming 0.4 masters, it will issue deprecation warnings, In 0.5, it may be gone from Base completely and only in DataStructures.  So it is seems like some metaprogramming is necessary for a package that uses IntSet and is supposed to work in all three Julia versions.  Note that my sorted containers code falls into this category.

Right, my point is that regardless of the Julia version, folks should just to use this implementation if they rely on 0s or complements. In fact, that's what happens for the sorted containers here. On both 0.3 and 0.4, they use this implementation.
There's no reason to use Base.IntSet on 0.3 and this on 0.4 -- just use this on both! Then even if it disappears from base in 0.5, you'll already have been using the replacement.

As far as I'm concerned, this is ready to merge.  I'm not a heavy user of or contributor to DataStructures, however, so I'd prefer someone else to review and pull the button here.

There also a warning during testing atm
WARNING: stored zeros in IntSet is deprecated

Hi @mbauman, sorry to ignore this for so long.  Can you fix the conflicts, and I'll merge?

Bump.

Merged this in #160.


[Bug]: The external table does not support "alter table" , and the edit button should be disabled on the frontend

ODC version
ODC 4.3.3
OB version
OB4321
What happened?

What did you expect to happen?
the edit button should be disabled
How can we reproduce it (as minimally and precisely as possible)?
Edit the external table structure.
Anything else we need to know?
No response

Fixed In Commit e9e367ba6dd8554a8b897b704de3a007ccd748e0
------
畅晚
Mon Dec 16 09:50:10 2024 +0800


question about backbone truncation

Hi, @prakharg24
I feel confused about backbone truncation your paper. For mobilenetv2 arch:
, you say the last two blocks are not used. Can you tell me which two blocks?
You mean the last two bottleneck??(I think you don't mean FC layer, nobody will keep FC layer for detection task)
Wishing for your reply!

truncate: grad truncate??

So, truncate here means random weight init instead of imagenet pre-trained weights?

Hi @Senwang98
Yes the truncation of last two blocks does not not include the fully connected layers. It represents the two MBConv blocks (or 'bottlenecks' as you mentiond) with 1280 and 320 channels.
In the paper, we try to motivate backbone truncation in two steps. First, we show that the last CNN blocks have no transfer learning importance. In this step, there is no truncation, but only changing the weight initialization from imagenet to random (Figure 2 in our paper). Next, once we have shown that these weights have no transfer learning importance, we claim that removing them (or truncating) will be a better way to make the model lightweight as compared to reducing width (i.e. the scaling factor).
So, truncate does not mean random weight init, it means truncation (or removing) the blocks. Its just that truncation was motivated by this other experiments where random initialization of last layers instead of transfer learning weights helped improve performance.
I hope that clarifies things.

Okay, thanks for your quick reply!
So, I just remove the last MBConv(320 and 1280 channels)?
By the way, do manually designed classification networks generally have more flops in the last few layers, because I notice that the flops of last few layers which are obtained by NAS are small.

That was definitely a common behavior for a long time. Since ImageNet has 1000 classes, most pre-trained models attempt to increase the number of channels to similar order of channels for the last layers. Some of the recent models don't follow this to the heart, but the overall behavior of significantly increase channel number for the last 2-3 layers is still there. However, as I mentioned, the fact that these layers are very heavy is only one part of the issue, the other being that last layers seem to not contain any relevant transfer learning features.
Btw, when working on say object detection, using transfer learning NAS backbone might not be the optimal choice, since NAS architectures are usually not easy to generalize. There is also a lot of work on creating object detection specific backbones using NAS which would be a better fit if someone wants to explore in that direction.

@prakharg24
Thanks for your detailed explanation, I understand your paper better and I will use your idea to help imporve light-weight detection.
Thanks again, good luck!

@prakharg24
This is my pytorch style of RFCR module:
from .conv import DepthwiseConvModule, ConvModule
import torch
import torch.nn as nn
import torch.nn.functional as F

class MobilenetSeparableConv2D(nn.Module):
    def __init__(self, in_channels, out_channels):
        super(MobilenetSeparableConv2D, self).__init__()
        self.depthwiseconv = DepthwiseConvModule(in_channels=in_channels,
                                                 out_channels=in_channels,
                                                 kernel_size=5,
                                                 stride=1,
                                                 padding=2,
                                                 dilation=1,
                                                 bias="auto",
                                                 norm_cfg=dict(type="BN"),
                                                 activation="ReLU6")
        self.conv = ConvModule(in_channels=in_channels,
                               out_channels=out_channels,
                               kernel_size=1,
                               stride=1,
                               padding=0,
                               dilation=1,
                               bias="auto",
                               norm_cfg=dict(type="BN"),
                               activation="ReLU6")

    def forward(self, x):
        x = self.depthwiseconv(x)
        x = self.conv(x)
        return x

class RFCR_module(nn.Module):
    def __init__(self, in_channel, mid_channel=48, out_channel=96):
        super(RFCR_module, self).__init__()
        self.scale = nn.ParameterList(nn.Parameter(torch.tensor(
            [1.]), requires_grad=True) for _ in range(len(in_channel)))
        self.pwconv = nn.ModuleList(nn.Conv2d(
            in_channel[i], mid_channel, kernel_size=1, stride=1, padding=0, bias=False) for i in range(len(in_channel)))
        self.MB_conv = MobilenetSeparableConv2D(mid_channel, out_channel)

    def forward(self, model_outputs):
        fuse_out = []
        # fuse_out.append(F.max_pool2d(F.max_pool2d(
        #     model_outputs[0], 1, stride=2), 1, stride=2))
        fuse_out.append(F.max_pool2d(model_outputs[0], 1, stride=2))
        fuse_out.append(model_outputs[1])
        fuse_out.append(F.interpolate(
            model_outputs[2], scale_factor=2, mode="bilinear"))
        for i in range(len(fuse_out)):
            fuse_out[i] = self.pwconv[i](fuse_out[i])

        sum_feat = self.scale[0] * fuse_out[0] + self.scale[1] * \
            fuse_out[1] + self.scale[2] * fuse_out[2] \
                # + self.scale[3] * fuse_out[3]

        mb_feat = self.MB_conv(sum_feat)
        redist_feat = []
        redist_feat.append(torch.cat(
            [F.interpolate(mb_feat, scale_factor=2, mode="bilinear"), model_outputs[0]], dim=1))
        redist_feat.append(torch.cat([mb_feat, model_outputs[1]], dim=1))
        redist_feat.append(
            torch.cat([F.max_pool2d(mb_feat, 1, stride=2), model_outputs[2]], dim=1))
        return redist_feat

I ignore the feature map with 4x stride, so the model_output length is 3 instead.
I am not sure if I have reproduct your module collectly?
I add RFCR into NanoDet repo to see if RFCR can improve detection performance!

Hi @Senwang98
Before anything else, while we are still working on adding more trained models in the repo and make our code easily adaptable, you can already find the model definition here.
As for your implementation, I think that also looks correct to me. You should also cross-check with our TensorFlow implementation, as two heads are better than one :)
For the channel number conundrum, there are a few things I would like to point out. Firstly, its true that the RFCR module can add some computations. While it also improves accuracy, overall there is a trade-off. We were able to overcome this by combining RFCR with backbone truncation. Second, one of the things that we focus on in our work is that indirect metrics of comparisons, like flops or size, are usually not the best measure of a model's execution requirements and thus even though it might seem RFCR causes significant damage to the flops count, network fragmentation in RFCR are limited and can operate well under proper parallelization. Finally, yes the additional channels we used might not be the right choice for you. It depends on the backbone and the detection head being used. I would suggest though that even though you reduce the MBConv output channel to 32, you can still keep the pointwise conv output channel high and not reduce it severely to 16 as that might be hurting to the performance.
I hope this helps

@prakharg24
Ok, I got it! Thanks for your interesting work, I will modidy the channel number to see performance and inference speed.
Thanks again and I will close this issue.

您好，大佬，看了你写的pytorch代码，向您请教几个问题
1、您代码中是使用了backbone的3种尺度的特征吗？
2、在对featuremap下采样的时候最大的池化，F.max_pool2d(model_outputs[0], 1, stride=2)池化核的大小是1吗？
3、使用dw卷积的时候group参数是？
期待大佬的回复

@prakharg24 This is my pytorch style of RFCR module:
from .conv import DepthwiseConvModule, ConvModule
import torch
import torch.nn as nn
import torch.nn.functional as F

class MobilenetSeparableConv2D(nn.Module):
    def __init__(self, in_channels, out_channels):
        super(MobilenetSeparableConv2D, self).__init__()
        self.depthwiseconv = DepthwiseConvModule(in_channels=in_channels,
                                                 out_channels=in_channels,
                                                 kernel_size=5,
                                                 stride=1,
                                                 padding=2,
                                                 dilation=1,
                                                 bias="auto",
                                                 norm_cfg=dict(type="BN"),
                                                 activation="ReLU6")
        self.conv = ConvModule(in_channels=in_channels,
                               out_channels=out_channels,
                               kernel_size=1,
                               stride=1,
                               padding=0,
                               dilation=1,
                               bias="auto",
                               norm_cfg=dict(type="BN"),
                               activation="ReLU6")

    def forward(self, x):
        x = self.depthwiseconv(x)
        x = self.conv(x)
        return x

class RFCR_module(nn.Module):
    def __init__(self, in_channel, mid_channel=48, out_channel=96):
        super(RFCR_module, self).__init__()
        self.scale = nn.ParameterList(nn.Parameter(torch.tensor(
            [1.]), requires_grad=True) for _ in range(len(in_channel)))
        self.pwconv = nn.ModuleList(nn.Conv2d(
            in_channel[i], mid_channel, kernel_size=1, stride=1, padding=0, bias=False) for i in range(len(in_channel)))
        self.MB_conv = MobilenetSeparableConv2D(mid_channel, out_channel)

    def forward(self, model_outputs):
        fuse_out = []
        # fuse_out.append(F.max_pool2d(F.max_pool2d(
        #     model_outputs[0], 1, stride=2), 1, stride=2))
        fuse_out.append(F.max_pool2d(model_outputs[0], 1, stride=2))
        fuse_out.append(model_outputs[1])
        fuse_out.append(F.interpolate(
            model_outputs[2], scale_factor=2, mode="bilinear"))
        for i in range(len(fuse_out)):
            fuse_out[i] = self.pwconv[i](fuse_out[i])

        sum_feat = self.scale[0] * fuse_out[0] + self.scale[1] * \
            fuse_out[1] + self.scale[2] * fuse_out[2] \
                # + self.scale[3] * fuse_out[3]

        mb_feat = self.MB_conv(sum_feat)
        redist_feat = []
        redist_feat.append(torch.cat(
            [F.interpolate(mb_feat, scale_factor=2, mode="bilinear"), model_outputs[0]], dim=1))
        redist_feat.append(torch.cat([mb_feat, model_outputs[1]], dim=1))
        redist_feat.append(
            torch.cat([F.max_pool2d(mb_feat, 1, stride=2), model_outputs[2]], dim=1))
        return redist_feat

I ignore the feature map with 4x stride, so the model_output length is 3 instead. I am not sure if I have reproducted your module collectly? I add RFCR into NanoDet repo to see if RFCR can improve detection performance!
Maybe pointwise conv and depthwise conv is fast enough, but I found that RFCR output will add 96 channel numbers which may increase GFlops dramaticly. So, I set pointwise conv output channel=16, and MBconv output channel=32. In this way, NanoDet GFlops increase from 0.3GFlops to 0.32GFlops!

您好，大佬，看了你写的pytorch代码，向您请教几个问题
1、您代码中输入的是使用了backbone的3种尺度的特征吗？
2、在对featuremap下采样的时候最大的池化，F.max_pool2d(model_outputs[0], 1, stride=2)池化核的大小是1吗？
3、使用dw卷积的时候group参数是？
期待大佬的回复

@vaerdu
我在nandoet的检测框架上进行测试的，因为模型小训练够快

是的，3种。
kernel size = 1
默认使用的nanodet的dwconv，https://github.com/RangiLyu/nanodet/blob/c931de553e0ded55e8811e51cf0b74ac3aa5e9de/nanodet/model/module/conv.py#L191

@vaerdu 我在nandoet的检测框架上进行测试的，因为模型小训练够快

是的，3种。
kernel size = 1
默认使用的nanodet的dwconv，https://github.com/RangiLyu/nanodet/blob/c931de553e0ded55e8811e51cf0b74ac3aa5e9de/nanodet/model/module/conv.py#L191

抱歉大佬，还是要向您请教
1、1x1的池化核不太懂，可以实现下采样吗？池化核通常不都是2、5、7尺度的吗？
2、RFCR模块先对backbone的3种尺度特征进行pw卷积，通常backbone的3种尺度通道数128、256、512、1024等，但经过pw卷积后通道数都降到了48，这样会不会丢失较多的特征信息？
希望大佬不吝赐教

@vaerdu

这里我应该写得不对，直接max_pool2d(feat, 2)
RFCR我理解的主要适用于小模型吧，一般到不了256，而且这个参数是自定义的

@vaerdu

这里我应该写得不对（晕），直接max_pool2d(feat, 2)
RFCR我理解的主要适用于小模型吧，一般到不了512，而且这个参数是自定义的

嗯嗯，明白了
self.scale = nn.ParameterList(nn.Parameter(torch.tensor(
[1.]), requires_grad=True) for _ in range(len(in_channel)))
在weighted sum中，是用以上代码获得的权重参数与pw卷积后的featuremaps相乘然后求和吗？


Create a contact info block

Add links to social networks (LinkedIn, Facebook, Instagram), phone number, email, Telegram username, etc

Added social networks (LinkedIn), email, Telegram.


BUG: Set the min version for pyarrow to 6.0.0

This is an attempt to figure out the issue with datasets deps

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@mimshiran Awesome, thanks for looking into this! It was quite a busy afternoon, so I am happy that you could take over. LGTM! I'll go ahead and merge it.


markdown preview can be slow to update and eventually stops updating

Version: 1.48.0-insider (system setup)
Commit: e7920dce7bfd0b707ebfc0a5379c6edd2233e475
Date: 2020-07-10T11:58:37.847Z
Electron: 8.3.3
Chrome: 80.0.3987.165
Node.js: 12.13.0
V8: 8.0.426.27-electron.0
OS: Windows_NT x64 10.0.19041
Steps to Reproduce:

Load some markdown files
Open preview
Switch between them

I tested this with extensions off and it was still the same.

Profile:
Profile-20200713T222331.zip

Does this issue occur when all extensions are disabled?: Yes

This should be fixed in the next insiders build

oh that was quick, was it a known issue?


Redis::funnel, lock not released when job failed

Laravel Version: 5.7
PHP Version: 7.2

Description:
I have 4 queue workers on the same queue.
My jobs can be very long to process (several tens of minutes).
I have to limit theses workers to process simultaneously a specific type of jobs (per "projectId").
The documentation recommands to use Redis::funnel.
By default, Redis::funnel release the lock after 60sec, so that's what I did to be sure that my lock is not released before the job was finished :
Redis::funnel('funnel' . $this->projectId)->releaseAfter(3600)->limit(1)->then(function () {
    // Job logic...
}, function () {
    // Could not obtain lock...
    return $this->release(10);
});

... but if a job failed, the lock is not released automaticaly and I have to wait the lock TTL (ie. 3600sec) until another job can be processed.

Can you just modify the fail code and also do a release there?

A failed job is already released... but the lock in redis is still present (I find no way to remove the redis lock)

Possible workaround
Redis::funnel('funnel' . $this->projectId)->releaseAfter(3600)->limit($limit = 1)->then(function () use ($funnelKey, $limit) {
    try {
        // Job logic...
    } catch (\Exception $e) {
        Redis::del($funnelKey.$limit);
        throw $e;
    }
}, function () {
    // Could not obtain lock...
    return $this->release(10);
});

I have repaired it and you can close the issues  @Broutard

Thanks @HongjiangHuang

Late to the party, but wanted to point out (fort those that for whatever reason have to stick to using Laravel < 5.7.22) that @Broutard 's solution only works if $limit = 1, because otherwise there would be no way of knowing which exact "slot", and therefore key, has been acquired by the process (see \Illuminate\Redis\Limiters\ConcurrencyLimiter::luaScript)


How to combine grapheditor with map API?

I'd like to combine the grapheditor example with map API such as JavaScript API of baidu map, thus I can put some labels or marks while browsing the map. My plan is to substitute "div class=geDiagramContainer geDiagramBackdrop" with a map div. Does anyone have any other ideas or suggestions?

Here is an example for using Google maps with mxGraph.


Exec tachikoma update<PHONE_NUMBER>4708

:hamster::hamster::hamster:   Strategy none
Powered by Interval Pull Request as a Service - Tachikoma.io Announcement: 2015-06-28 Updated permissions - Tachikoma.io

Coverage decreased (-67.6%) to 0.0% when pulling 20fa770a957823103257b86e1ded64ac0811087f on pazjacket:tachikoma/update-20180605214708 into ec251e61adc687ae0589e5283f1773ece07521c0 on sanemat:master.

Coverage decreased (-67.6%) to 0.0% when pulling 20fa770a957823103257b86e1ded64ac0811087f on pazjacket:tachikoma/update-20180605214708 into ec251e61adc687ae0589e5283f1773ece07521c0 on sanemat:master.


--strategy=Scalac=worker does not seem to place nicely with remote caching

This may be a known thing not yet known to me, but something my time found in our travels was that after enabling the following in our bazel.rc file we noticed a sizable slow down on clean builds where we're trying to optimize our cache hit paths
build --strategy=Scalac=worker
test --strategy=Scalac=worker

Atm we're leveraging the --spawn_strategy=remote --rest_cache_url=$BAZEL_REMOTE_CACHE flags to cache build artifacts remotely.
I did a few timings of a clean build ( i.e. bazel clean then build  )
with the worker mode enabled
real    5m2.243s
user    0m27.712s
sys    0m2.658s

and without
real    2m2.171s
user    0m28.114s
sys    0m1.381s

My hypothesis is that there is some extra intelligence required that's currently missing from the scalac worker processor's implementation. I haven't dug too far into it yet but I wanted to report my initial findings here to see if others have run into the same issue.
Some initial thoughts. WorkerProtocol was generated 4 months ago and I realize remote caching been a moving target up until recently. That may play into this. Ultimately I think there may be some bazel "hooks" that aren't wired into the worker mode of scala rules just yet.
Alternatively it may a more common theme  that worker strategies are generally incompatible with remote caching. I haven't tested this with java libraries for comparison but our build is a bit too mixed with scala to test that atm.

Cc @ianoc this is a known issue and maybe 0.5.0 will fix
On Tue, May 16, 2017 at 11:37 doug tangren<EMAIL_ADDRESS>wrote:

This may be a known thing not yet known to me, but something my time found
in our travels was that after enabling the following in our bazel.rc file
we noticed a sizable slow down on clean builds where we're trying to
optimize our cache hit paths
build --strategy=Scalac=worker
test --strategy=Scalac=worker
Atm we're leveraging the --spawn_strategy=remote
--rest_cache_url=$BAZEL_REMOTE_CACHE flags to cache build artifacts
remotely.
I did a few timings of a clean build ( i.e. bazel clean then build )
with the worker mode enabled
real    5m2.243s
user    0m27.712s
sys    0m2.658s
and without
real    2m2.171s
user    0m28.114s
sys    0m1.381s
My hypothesis is that there is some extra intelligence required that's
currently missing from the scalac worker processor's implementation. I
haven't dug too far into it yet but I wanted to report my initial findings
here to see if others have run into the same issue.
Some initial thoughts. WorkerProtocol
https://github.com/bazelbuild/rules_scala/blob/master/src/java/com/google/devtools/build/lib/WorkerProtocol.java
was generated 4 months ago and I realize remote caching been a moving
target up until recently. That may play into this. Ultimately I think there
may be some bazel "hooks" that aren't wired into the worker mode of scala
rules just yet.
Alternatively it may a more common theme that worker strategies are
generally incompatible with remote caching. I haven't tested this with java
libraries for comparison but our build is a bit too mixed with scala to
test that atm.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/196, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEJdmTCYk-x_5ENlG3MMMTtca1S_suOks5r6hcagaJpZM4NdHLR
.

Can you try with 0.5.0rc and see if that fixes?
On Tue, May 16, 2017 at 12:14 P. Oscar Boykin<EMAIL_ADDRESS>wrote:

Cc @ianoc this is a known issue and maybe 0.5.0 will fix
On Tue, May 16, 2017 at 11:37 doug tangren<EMAIL_ADDRESS>wrote:

This may be a known thing not yet known to me, but something my time
found in our travels was that after enabling the following in our bazel.rc
file we noticed a sizable slow down on clean builds where we're trying to
optimize our cache hit paths
build --strategy=Scalac=worker
test --strategy=Scalac=worker
Atm we're leveraging the --spawn_strategy=remote
--rest_cache_url=$BAZEL_REMOTE_CACHE flags to cache build artifacts
remotely.
I did a few timings of a clean build ( i.e. bazel clean then build )
with the worker mode enabled
real    5m2.243s
user    0m27.712s
sys    0m2.658s
and without
real    2m2.171s
user    0m28.114s
sys    0m1.381s
My hypothesis is that there is some extra intelligence required that's
currently missing from the scalac worker processor's implementation. I
haven't dug too far into it yet but I wanted to report my initial findings
here to see if others have run into the same issue.
Some initial thoughts. WorkerProtocol
https://github.com/bazelbuild/rules_scala/blob/master/src/java/com/google/devtools/build/lib/WorkerProtocol.java
was generated 4 months ago and I realize remote caching been a moving
target up until recently. That may play into this. Ultimately I think there
may be some bazel "hooks" that aren't wired into the worker mode of scala
rules just yet.
Alternatively it may a more common theme that worker strategies are
generally incompatible with remote caching. I haven't tested this with java
libraries for comparison but our build is a bit too mixed with scala to
test that atm.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/196, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAEJdmTCYk-x_5ENlG3MMMTtca1S_suOks5r6hcagaJpZM4NdHLR
.

@johnynek to the rescue again! I dont know if Ill get to it this evening but I'll take note. If I can set up a test tomorrow I'll report back.

The last i've heard from the goog folks was most of this is alpha and didn't work with standalone workers. But maybe it works in 0.5.x now... the remote stuff is under pretty active development at goog

. the remote stuff is under pretty active development at goog

Yea I assumed as much. The roadmap looks good. The remote caching via rest api has been working pretty well for us but we just ran into this little snag and wanted to forward the info along. We're also happy to jump in and help with patches if needed.

Wanted to report back on this with some early findings after doing some testing with this installer
http://ci.bazel.io/job/Bazel/JAVA_VERSION=1.8,PLATFORM_NAME=$OS-$ARCH/lastSuccessfulBuild/artifact/output/ci/bazel--installer.sh

experiments are done with remote caching on and bazel cleans in between runs.
with worker enabled ( --strategy=Scalac=worker ) and the following ( bazel-wrapper installs bazel if its not installed on dev boxes and sets the remote cache args )
time ../tools/bazel-wrapper build \
  -s --verbose_explanations --explain explain.out --use_ijars --profile build.prof  \
  --progress_report_interval 1 \
  $(../tools/bazel-wrapper query "kind(scala_library, //...)")

real	5m53.066s
user	0m0.133s
sys	0m0.097s

with the same args removing the --strategy=Scalac=worker arg our build actually is still faster, faster then 0.4.5! ... but still slower with the worker :/ I don't expect this to get better with 0.5.0 but I think maybe it will be improved as the remote caching support matures
real	1m5.750s
user	0m0.095s
sys	0m0.080s

On a side note, the newer version added a neat little UX feature that adds the strategy in use next to "Running".
 Running (worker):
        scala //chapstick:chapstick, 82 s

On a side note, the newer version added a neat little UX feature that adds the strategy in use next to "Running".

Nope, I get this with 0.4.5 as well. I must have just now noticed it!

Why are you doing clean builds?
On Thu, 18 May 2017 at 6:35 doug tangren<EMAIL_ADDRESS>wrote:

On a side note, the newer version added a neat little UX feature that adds
the strategy in use next to "Running".
Nope, I get this with 0.4.5 as well. I must have just now noticed it!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/196#issuecomment-302291434,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUIFxwC3PsVIfN8G7kSURq8s4LPxBVZks5r67x1gaJpZM4NdHLR
.

Don't think I quite follow, there are i guess 3 states:

No cache settings without with workers enabled
Cache enabled with workers
Cache enabled without workers

And then for state:

Build locally what is a common state that would be in the cache from
clean
Build a leaf target having local + remote caches of everything else
Altering a central target and having a cascading set of targets needing
to be rebuilt

Which ones of these interactions do you benchmark for these? (Or I might
just be missing the point too)
On Wed, May 17, 2017 at 8:26 PM, doug tangren<EMAIL_ADDRESS>wrote:

Wanted to report back on this with some early findings after doing some
testing with this installer
http://ci.bazel.io/job/Bazel/JAVA_VERSION=1.8,PLATFORM_NAME=$OS-$ARCH/lastSuccessfulBuild/artifact/output/ci/bazel--installer.sh
experiments are done with remote caching on and bazel cleans in between
runs.
with worker enabled ( --strategy=Scalac=worker ) and the following (
bazel-wrapper installs bazel if its not installed on dev boxes and sets the
remote cache args )
time ../tools/bazel-wrapper build
-s --verbose_explanations --explain explain.out --use_ijars --profile build.prof
--progress_report_interval 1
$(../tools/bazel-wrapper query "kind(scala_library, //...)")
real	5m53.066s
user	0m0.133s
sys	0m0.097s
with the same args removing the --strategy=Scalac=worker arg our build
actually is still faster, faster then 0.4.5! ... but still slower with the
worker :/ I don't expect this to get better with 0.5.0 but I think maybe it
will be improved as the remote caching support matures
real	1m5.750s
user	0m0.095s
sys	0m0.080s
On a side note, the newer version added a neat little UX feature that adds
the strategy in use next to "Running".
Running (worker):
scala //chapstick:chapstick, 82 s
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/196#issuecomment-302290348,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbQvD9AeTFngkMUQtvWrBM4maZaJIjGks5r67pbgaJpZM4NdHLR
.

To make it more clear my build is actually utilizing the remote cache. With the local cache in play it's harder to tell. We're trying to optimize for the case where an engineer (or CI machine) has executed  some work, other engineers won't have to, given the same inputs are at play

My understanding is that any remote cache today doesn't work with local
workers, is that wrong? i.e. in the event of a cache miss it can't use the
local workers, it falls back to standalone mode.
On Wed, May 17, 2017 at 9:14 PM, doug tangren<EMAIL_ADDRESS>wrote:

To make it more clear my build is actually utilizing the remote cache.
With the local cache in play it's harder to tell. We're trying to optimize
for the case where an engineer (or CI machine) has executed some work,
other engineers won't have to, given the same inputs are at play
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/196#issuecomment-302295878,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbQvDcUXY5NdWJhXZ7s8yBU2e_s3Xt5ks5r68WsgaJpZM4NdHLR
.

any remote cache today doesn't work with local
workers.

That I didn't know that.
I'm mainly following the cas cache docs here.
I think the problem I'm seeing is that with the worker options and the remote cache options. It's almost as if the remote cache is ignored.
My guess now is that this combo isn't supported.
What I'm going for is a distributed cache for outputs with what ever the fastest option is for compiling locally when an output isnt available. My assumption was that I could gain some speed with the scala worker when an output was not previously produced for the same inputs.

Last I understood this was the case, from what I can tell from issues 0.5.0
hasn't fixed it (but I haven't tested it itself)
https://groups.google.com/forum/#!topic/bazel-discuss/GINp6C6tZ4I
https://github.com/bazelbuild/bazel/issues/2568
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/bazel-discuss/g4hwRbcRIRI/LDIeYuHaDgAJ
are the 3 bits of state that sort of capture what I've read/tried out.
The trade off currently is really sub-optimal from what I tried out a few
months ago -- If i used the remote cache I had to use a standalone mode,
but for an empty copy of master it could be much faster than doing any sort
of building. But as soon as I had to do any sort of non-trivial building of
the tree then the workers being faster than standalone became the dominant
factor. If you change branches a lot the remote cache can be better too
since local caching across branches doesn't keep that state for you. So
currently we use workers and no remote caching with the presumption that
users mostly incur the initial hit building more code but then can iterate
faster in their day. But not sure if/when its always really the right call.
On Wed, May 17, 2017 at 9:42 PM, doug tangren<EMAIL_ADDRESS>wrote:

any remote cache today doesn't work with local
workers.
That I didn't know that.
I'm mainly following the cas cache docs here
https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/remote/README.md
.
I think the problem I'm seeing is that with the worker options and the
remote cache options. It's almost as if the remote cache is ignored.
My guess now is that this combo isn't supported.
What I'm going for is a distributed cache for outputs with what ever the
fastest option is for compiling locally when an output isnt available. My
assumption was that I could gain some speed with the scala worker when an
output was not previously produced for the same inputs.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_scala/issues/196#issuecomment-302298851,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAbQvG1D8CNtka2DilgWHQGioZZL-kRFks5r68wugaJpZM4NdHLR
.

Thanks for the extra context and links. I think that recipe would would a bit better for us after I do a bit more package surgery. We've got a handful of big modules that end up being our bottleneck. Sbt/Zinc did an okay job in only compiling what changed but because of the size of our modules and mixed java scala compilation,  analyzing that class graph took almost as much time as compiling. Not all engineers leave open sbt sessions so you have to pay a 30 second tax just to get in the door and do anything useful. Bazel is showing alot of promise for us so far but I'm still learning the rules of the road. The docs are great in most cases but lacking (maybe intentionally) for the feature I really want, distributed caching.
In my ideal build system units and actions would work like pure functions. If one person builds a unit the next person can just use that output because their input is the same. When it's a new input they can speedily compute it for the next person. So on and so forth.

Closing this as rules scala is working as designed bazelwise here.


Update .travis.yml

Changes:

now builds & tests on all Rust releases (but allows failures on nightly)
auto-publishes new versions when a tag is made

tags MUST be in the form vX.X.X (e.g. v0.13.0)

now only deploys new docs after deployments (i.e. a real release), so docs won't update during development

Needs an encrypted CRATES_IO_TOKEN added before merge.
Closes #45

Looks great, you should be able to add a CRATES_IO_TOKEN now, I just checked with cargo and https://github.com/orgs/slack-rs/teams/maintainers is now an owner of slack-rs.

Ok, I'll set that up. How were you able to add the org team as an owner? I tried with slack-rs-api but was getting a cryptic Github auth error. Did you do cargo owner --add github:slack-rs:maintainers?

Yes I ran cargo owner --add github:slack-rs:maintainers, which is a
pretty awesome feature.
On Mon, Mar 21, 2016 at 12:14 AM, Matt Jones<EMAIL_ADDRESS>wrote:

Ok, I'll set that up. How were you able to add the org team as an owner? I
tried with slack-rs-api but was getting a cryptic Github auth error. Did
you do cargo owner --add github:slack-rs:maintainers?
—
You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub
https://github.com/slack-rs/slack-rs/pull/47#issuecomment-199115441

I also recently logged back into crates.io and re-authorized it with github, which had an option to allow crates.io access to the slack-rs group (earlier today actually), perhaps that is related to your cryptic error?

Ah, yeah, most likely. I just tried again and it worked. :+1:

Excellent. I think we should let the travis build complete of course, but this looks good to go.

Yeah, unfortunately the actual important part of it can't really be tested until a new release is made. But it should work!

We should be able to test it soon with an 0.14.0!
On Mon, Mar 21, 2016 at 12:20 AM, Matt Jones<EMAIL_ADDRESS>wrote:

Yeah, unfortunately the actual important part of it can't really be tested
until a new release is made. But it should work!
—
You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub
https://github.com/slack-rs/slack-rs/pull/47#issuecomment-199116664

Are we waiting on anything else to merge this?

I'll merge this now. I'm going to release<EMAIL_ADDRESS>then this crate should be able to bump the dependency version and release 0.14.0 as well! :)

Excellent.
On Mar 24, 2016 18:20, "Matt Jones"<EMAIL_ADDRESS>wrote:

Merged #47 https://github.com/slack-rs/slack-rs/pull/47.
—
You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub
https://github.com/slack-rs/slack-rs/pull/47#event-602425464


[SPARK-29314][SS] Don't overwrite the metric "updated" of state operator to 0 if empty batch is run

What changes were proposed in this pull request?
This patch fixes the behavior of ProgressReporter which always overwrite the value of "updated" of state operator to 0 if there's no new data. The behavior is correct only when we copy the state progress from "previous" executed plan, meaning no batch has been run. (Nonzero value of "updated" would be odd if batch didn't run, so it was correct.)
It was safe to assume no data is no batch, but SPARK-24156 enables empty data can run the batch if Spark needs to deal with watermark. After the patch, it only overwrites the value if both two conditions are met: 1) no data 2) no batch.
Why are the changes needed?
Currently Spark doesn't reflect correct metrics when empty batch is run and this patch fixes it.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Modified UT. Note that FlatMapGroupsWithState increases the value of "updated" when state rows are removed.
Also manually tested via below query (not a simple query to test with spark-shell, as you'll meet closure issue in spark-shell while playing with state func):

query

case class RunningCount(count: Long)

object TestFlatMapGroupsWithState {
  def main(args: Array[String]): Unit = {
    import org.apache.spark.sql.SparkSession

    val ss = SparkSession
      .builder()
      .appName("TestFlatMapGroupsWithState")
      .getOrCreate()

    ss.conf.set("spark.sql.shuffle.partitions", "5")

    import ss.implicits._

    val stateFunc = (key: String, values: Iterator[String], state: GroupState[RunningCount]) => {
      if (state.hasTimedOut) {
        // End users are not restricted to remove the state here - they can update the
        // state as well. For example, event time session window would have list of
        // sessions here and it cannot remove entire state.
        state.update(RunningCount(-1))
        Iterator((key, "-1"))
      } else {
        val count = state.getOption.map(_.count).getOrElse(0L) + values.size
        state.update(RunningCount(count))
        state.setTimeoutDuration("1 seconds")
        Iterator((key, count.toString))
      }
    }

    implicit val sqlContext = ss.sqlContext
    val inputData = MemoryStream[String]

    val result = inputData
      .toDF()
      .as[String]
      .groupByKey { v => v }
      .flatMapGroupsWithState(OutputMode.Append(), GroupStateTimeout.ProcessingTimeTimeout())(stateFunc)

    val query = result
      .writeStream
      .format("memory")
      .option("queryName", "test")
      .outputMode("append")
      .trigger(Trigger.ProcessingTime("5 second"))
      .start()

    Thread.sleep(1000)

    var chIdx: Long = 0

    while (true) {
      (chIdx to chIdx + 4).map { idx => inputData.addData(idx.toString) }
      chIdx += 5
      // intentionally sleep much more than trigger to enable "empty" batch
      Thread.sleep(10 * 1000)
    }
  }
}

before the patch (batch 3 which was an "empty" batch)

{
   "id":"de945a5c-882b-4dae-aa58-cb8261cbaf9e",
   "runId":"f1eb6d0d-3cd5-48b2-a03b-5e989b6c151b",
   "name":"test",
   "timestamp":"2019-11-18T07:00:25.005Z",
   "batchId":3,
   "numInputRows":0,
   "inputRowsPerSecond":0.0,
   "processedRowsPerSecond":0.0,
   "durationMs":{
      "addBatch":1664,
      "getBatch":0,
      "latestOffset":0,
      "queryPlanning":29,
      "triggerExecution":1789,
      "walCommit":51
   },
   "stateOperators":[
      {
         "numRowsTotal":10,
         "numRowsUpdated":0,
         "memoryUsedBytes":5130,
         "customMetrics":{
            "loadedMapCacheHitCount":15,
            "loadedMapCacheMissCount":0,
            "stateOnCurrentVersionSizeBytes":2722
         }
      }
   ],
   "sources":[
      {
         "description":"MemoryStream[value#1]",
         "startOffset":9,
         "endOffset":9,
         "numInputRows":0,
         "inputRowsPerSecond":0.0,
         "processedRowsPerSecond":0.0
      }
   ],
   "sink":{
      "description":"MemorySink",
      "numOutputRows":5
   }
}

after the patch (batch 3 which was an "empty" batch)

{
   "id":"7cb41623-6b9a-408e-ae02-6796ec636fa0",
   "runId":"17847710-ddfe-45f5-a7ab-b160e149382f",
   "name":"test",
   "timestamp":"2019-11-18T07:02:25.005Z",
   "batchId":3,
   "numInputRows":0,
   "inputRowsPerSecond":0.0,
   "processedRowsPerSecond":0.0,
   "durationMs":{
      "addBatch":1196,
      "getBatch":0,
      "latestOffset":0,
      "queryPlanning":30,
      "triggerExecution":1333,
      "walCommit":46
   },
   "stateOperators":[
      {
         "numRowsTotal":10,
         "numRowsUpdated":5,
         "memoryUsedBytes":5130,
         "customMetrics":{
            "loadedMapCacheHitCount":15,
            "loadedMapCacheMissCount":0,
            "stateOnCurrentVersionSizeBytes":2722
         }
      }
   ],
   "sources":[
      {
         "description":"MemoryStream[value#1]",
         "startOffset":9,
         "endOffset":9,
         "numInputRows":0,
         "inputRowsPerSecond":0.0,
         "processedRowsPerSecond":0.0
      }
   ],
   "sink":{
      "description":"MemorySink",
      "numOutputRows":5
   }
}

"numRowsUpdated" is 0 in "stateOperators" before applying the patch which is "wrong", as we "update" the state when timeout occurs. After applying the patch, it correctly represents the "numRowsUpdated" as 5 in "stateOperators".

Test build #111642 has started for PR 25987 at commit 9866c9f.

Can one of the admins verify this patch?

Test build #111642 has finished for PR 25987 at commit 9866c9f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/111642/
Test PASSed.

cc. @tdas @zsxwing @jose-torres @gaborgsomogyi

I've added the query and changed outputs to show which issue this PR fixes.

retest this, please

Test build #113997 has started for PR 25987 at commit 9866c9f.

Test build #113997 has finished for PR 25987 at commit 9866c9f.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113997/
Test FAILed.

Looks like known CI shutdown.

retest this, please

Test build #114002 has started for PR 25987 at commit 9866c9f.

Test build #114002 has finished for PR 25987 at commit 9866c9f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114002/
Test PASSed.

Test build #114943 has started for PR 25987 at commit 0f59ee2.

Test build #114943 has finished for PR 25987 at commit 0f59ee2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114943/
Test PASSed.

retest this, please

Test build #116586 has started for PR 25987 at commit 0f59ee2.

Test build #116586 has finished for PR 25987 at commit 0f59ee2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/116586/
Test PASSed.

Test build #118492 has started for PR 25987 at commit c6993d0.

Test build #118492 has finished for PR 25987 at commit c6993d0.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/118492/
Test FAILed.

Retest this, please

Test build #118496 has started for PR 25987 at commit c6993d0.

Test build #118496 has finished for PR 25987 at commit c6993d0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/118496/
Test PASSed.

Thanks for reviewing. Just rebased and reflected review comment.
Btw, I've left a comment to explain why I simply modified the existing test instead - https://github.com/apache/spark/pull/25987#discussion_r405222067

Test build #120953 has started for PR 25987 at commit 983d79f.

Test build #120953 has finished for PR 25987 at commit 983d79f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120953/
Test PASSed.

Merging to master and 3.0. Thanks @HeartSaVioR

Thanks for reviewing and merging!


Hints with simulation configuration

Hi Folks,
I'd like to use json-data-generator to generate events that mimics users interacting with a content application. Due to the nature of the application however there are a few requirements to be met:
1-content has an ordered structure of 1-cover x N items that impose a given navigation condition (ie, in order to see the 2nd item of a given content you must see the cover and 1st item).
2-I need to simulate multiple users navigating at the same time (or in a given interval)
I noticed on the readme that there is some kind of cursor or references, but it was not  clear how can I use them.
Can you give some directions on how to build those events?
Thanks in advance

From what it sounds like, you want to generate a number of events and generate them in order.  This is definitely doable with this framework.  You can also simulate multiple users.  If you take a look at the exampleWorkflow.js in the src/dist/conf directory, you see that this workflow simulates a person entering a building, logging into a computer, performing some random actions, and then logging out and leaving. The events are generated in the order they are placed in the config's steps property.
To have multiple users you would create multiple Workflows (if you wanted them to be different) and then list them in the Sim Config workflows.  Then both of those workflows will run when the simulation starts.
You mentioned a "cursor" and the is a type of cursor, but only within an event.  See the this.propName and cur.propName sections of the documentation.  These allow you to reference already generated values, but only within the current json event being generated.  You can't currently reference values within a previously generated event unfortunately.
Hope this helps! If not, let me know.

Hi Andrew, thanks for the promptly reply. In the exempleWorkflow.js, the user enters the build, logs in, performs a single action and leave.
how would you do have a random number of actions for a given step instead of a single action?  is, user enters build (1 step/1 event), logs in (1 step/1 event), performs a random number of actions (1 step/N events)? Is it possible?
Thanks again for the help

Yes, that's possible. Check out the Step's duration config option in the documentation.  It gives you the different ways to set it for what you want.

Hi Andrew,
On last question, is it possible to format dates and numbers? I tried date().toString('yyyy/MM/dd') but it has no effect.
If you allow me a feature suggestion, it would be great to have a put/get function to add into a kind of session object, allowing us to share some values in running workflow. Something like:
steps:[
{config:[{ "birthdate": "put(date(),'birthday')"},{...},{...}]},
{config:[{"userBirthdate":"get('birthday')"}]}]

Unfortunately, there is no way to format a date. Also, as you noticed, there is no type of session/context.  Both are good ideas though!  Feel free to submit them both as feature requests.  If you have time to implement either, we always welcome pull requests!

Closing based on lack of activity. If there is still an issue, please let me know.

The idea of state was referenced here and I'm trying to track those request in #28


Dual valued form range sliders?

Currently range sliders only takes 1 value. Can we integrate a dual valued slider in here?

It seems that no PR was submited and that @Charuru found a fix for their use case. Move to close?


Make hatch-rate parameter deprecated instead of killing it right away.

The renamed events are still incompatible, but that should impact much fewer users.
Should we still call it 2.0? I guess we should.
ping @lhupfeldt

How does the renamed events affect users? I'm too new to Locust to determine whether it is necessary to call it 2.0.
If you follow strict semver then any breaking change should get a new major version - but in my opinion that can also be confusing for users that will generally expect major new functionality in a new major version.

I think there is enough new functionality to call it 2.0. The breaking change is that if a user listens to the hatch_complete event, they will have to change it to use spawning_complete instead (example: https://github.com/SvenskaSpel/locust-plugins/blob/8a84100bff1ecffe6164be2a9bb631c631ef11b4/locust_plugins/listeners.py#L109)
Whether we call it 1.2 or 2.0 is mostly a matter of taste I guess. Parts of the general OS community (and browser developers etc) seem to have gone the way of releasing lots of major versions (chrome is now 84.x and firefox something like 78.x :)

2.0 seems fine to me.


Linking error in 'io.zipkin.zipkin2:zipkin' package

Describe the Bug
When linkage checker is run with io.zipkin.zipkin2:zipkin package added as a maven dependency, it reports the following error:
Class zipkin2.internal.gson.internal.bind.JsonTreeReader is not found;
  referenced by 1 class file
    zipkin2.internal.gson.stream.JsonReader

This is because of missing com.google.gson.internal.bind.JsonTreeReader class when shading gson library in the POM file.
  <execution>
    <phase>package</phase>
    <goals>
      <goal>shade</goal>
    </goals>
    <configuration>
      <createDependencyReducedPom>false</createDependencyReducedPom>
      <minimizeJar>true</minimizeJar>
      <filters>
        <filter>
          <artifact>com.google.code.gson:gson</artifact>
          <includes>
            <include>com/google/gson/stream/JsonReader*.class</include>
            <include>com/google/gson/stream/JsonToken.class</include>
            <include>com/google/gson/stream/MalformedJsonException.class</include>
            <include>com/google/gson/internal/JsonReaderInternalAccess.class</include>
          </includes>
        </filter>
      </filters>
      <relocations>
        <relocation>
          <pattern>com.google.gson</pattern>
          <shadedPattern>zipkin2.internal.gson</shadedPattern>
        </relocation>
      </relocations>
      <transformers>
        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
          <manifestEntries>
            <Automatic-Module-Name>${module.name}</Automatic-Module-Name>
          </manifestEntries>
        </transformer>
      </transformers>
    </configuration>
  </execution>

Apart from fixing this, would this cause any runtime errors? zipkin is a transitive dependency that is recently added to our system and not sure if the library that depends on it would break. Since this issue has been in several zipkin versions, it doesn't appear to be causing any issues. But it would be great if you could confirm.
Steps to Reproduce
Create a maven project, add io.zipkin.zipkin2:zipkin as a dependency and include the linkage checker plugin. Then run mvn install to trigger the checker.
<build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M3</version>
        <dependencies>
            <dependency>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>linkage-checker-enforcer-rules</artifactId>
            <version>1.5.7</version>
            </dependency>
        </dependencies>
        <executions>
            <execution>
            <id>enforce-maven</id>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                <requireMavenVersion>
                    <version>3.3.9</version>
                </requireMavenVersion>
                </rules>
            </configuration>
            </execution>
            <execution>
            <id>enforce-linkage-checker</id>
            <phase>verify</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <LinkageCheckerRule
                  implementation="com.google.cloud.tools.dependencies.enforcer.LinkageCheckerRule">
                  <reportOnlyReachable>true</reportOnlyReachable>
                </LinkageCheckerRule>
              </rules>
            </configuration>
          </execution>
        </executions>
    <plugin>
</build>

Any idea @jorgheymans?
On Thu, 18 Mar 2021, 02:08 SukruthKS, @.***> wrote:

Describe the Bug
When linkage checker
https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/Linkage-Checker-Enforcer-Rule
is run with io.zipkin.zipkin2:zipkin package added as a maven dependency,
it reports the following error:
Class zipkin2.internal.gson.internal.bind.JsonTreeReader is not found;
referenced by 1 class file
zipkin2.internal.gson.stream.JsonReader (com.snowflake:GlobalServices:1.0_SNAPSHOT)
This is because of missing com.google.gson.internal.bind.JsonTreeReader
class when shading gson library in the POM file
https://github.com/openzipkin/zipkin/blob/4a690eb1486eea8d5eaf10e47f1ea350b3ad0959/zipkin/pom.xml#L83
.

package

shade

false
true

com.google.code.gson:gson

com/google/gson/stream/JsonReader*.class
com/google/gson/stream/JsonToken.class
com/google/gson/stream/MalformedJsonException.class
com/google/gson/internal/JsonReaderInternalAccess.class

com.google.gson
zipkin2.internal.gson

${module.name}

Apart from fixing this, would this cause any runtime errors? zipkin is a
transitive dependency that is recently added to our system and not sure if
the library that depends on it would break. Since this issue has been in
several zipkin versions, it doesn't appear to be causing any issues. But
it would be great if you could confirm.
Steps to Reproduce
Create a maven project, add io.zipkin.zipkin2:zipkin as a dependency and
include the linkage checker plugin. Then run mvn install to trigger the
checker.

org.apache.maven.plugins
maven-enforcer-plugin
3.0.0-M3

com.google.cloud.tools
linkage-checker-enforcer-rules
1.5.7

enforce-maven

enforce

3.3.9

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/zipkin/issues/3346, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXOYAWU7HI5FMKTTOVKGLTTEFG7HANCNFSM4ZLUTATA
.

When shading gson, i guess the goal was to be as minimal as possible and only pull in those classes that we effectively use. Since it has been working fine like this for a long time now, i would not classify this as a bug. Thanks for reporting though, it may need attention if the version of gson ever gets upgraded.

Got it, thanks!


0.5.0 - Tighten checking for valid DMARC - Closes #33

This PR is in response to issue #33. It contains the following changes

Bump version to 0.5.0-dev
Cache the Public Suffix List on disk in the Current Working Directory - update when older than 24 hours
Domain results are now a OrderedDict instead of a dict
CSV Output now uses keys from the first Domain's results OrderedDict as the headers. - No more separate header list!
Validate every DMARC tag value, including:

Treat a missing p tag as p=none
If a sp tag is missing, use a copy of the p tag value
The p and sp tag values must be none, quarantine, or reject
fo tag may have a combination of multiple values, delimited by ;

Valid values are: 0, 1, d, and s
Values 0 and 1 are mutually exclusive

The rf tag can technically have multiple values delimited by :, but the only valid value in DMARC is currently afrf
The pct tag value must be an integer between 0 and 100
The ri tag value must be an integer
rua and ruf tag URIs must:

Match the mailto: URI format
Contain email domains that have MX and _report._dmarc  DNS Resource Records

Add a Syntax Error or Debug Error and set valid_dmarc to False if any of the above validations fail
Add the following keys to results

DMARC Policy Percentage - The percentage of mail that should be subjected to the DMARC Policy according to the DMARC Results.
DMARC Has Aggregate Report URI - A boolean value that indicates if DMARC Results included rua URIs that tell recipients where to send DMARC aggregate reports
DMARC Has Forensic Report URI - A boolean value that indicates if DMARC Results included ruf URIs that tell recipients where to send DMARC forensic reports

Nice work, @seanthegeek!

I separated out cli.py from the trustymail module, because in Python 3, there is a naming conflict when running with -m, because trustymail.py module had the same name as the package:
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/home/sean/tmp/trustymail/trustymail/trustymail.py", line 16, in <module>
    from trustymail.domain import Domain
ModuleNotFoundError: No module named 'trustymail.domain'; 'trustymail' is not a package

Hey @seanthegeek, thanks for this excellent work!
I just wanted to chime in with general 👍 and say it'll take me a few more days to get to do a real review, but I wanted to comment that your sensibilities around the approach of trustymail and BOD 18-01 are right on.
Back soon, and happy new year! 🎉


Disable workspace AppInsight's private endpoint

What is being addressed
Due to many failures when creating the workspace's private endpoint for app insights, we need to disable it for now while our support case / PG conversation is still going.

/test

/test-extended


added build instructions

How to run, you missing ethers.framework.i cant's run you project

How to run, you missing ethers.framework.i can't run you project

@SoKoDaMie, did you try downloading both repos:
mkdir ethersWallet && cd ethersWallet
git clone git@github.com:ethers-io/EthersWallet-ios.git
git clone git@github.com:ethers-io/ethers.objc.git


acknowledge hash-prospector use in FrequencySketch (public domain)

https://github.com/skeeto/hash-prospector
https://github.com/skeeto/hash-prospector/blob/master/UNLICENSE

#438 merged


RS-105: Release 1.8.0

Changes:

Add a release note
Release 1.8.x documentation

@AnthonyCvn will need your help to fix the build. Something with Azure

@AnthonyCvn will need your help to fix the build. Something with Azure

@atimin all good, it's fixed. The Azure static web app has limited staging environment (max 3), so I deleted one.


Differences between previous package

Hello, I am using the codes on the previous github page and while reading the documentation, I saw that this page is now up to date. Since I developed my project in the previous package, I have a question I want to ask.

Are there any bugs compared to the previous package? Have they been fixed in the new package?
Is there a performance difference?
Was the update made only as an interface?

I couldn't follow because there were too many commits.

Hi @scrawlerapp

Which package to be specific? This repo is just a template so there's no package.
Upgrading to Remix v2 has some performance benefits over Remix v1, but haven't measure them exactly.
Usually only the interface, UI and UX.

No need to worry, if you want to start over, focus on the latest update of this repo. As it's just a template.


feat: support pipx

Pipx (https://github.com/pypa/pipx) expects a package to have a console entry point matching the name of the package. If this is not the case (rich-cli package with rich after installing), then you can tell pipx this is the case by adding a pipx entry-point[^1].
# before
pipx run --spec rich-cli rich <args>
# after
pipx run rich-cli <args>

[^1]: Entry-points are called plugin in Poetry, not to be confused with a poetry plugin, which will look like [tool.poetry.plugins."poetry.plugin"] :facepalm:

Modern versions of pipx guess that a single CLI entry point is supposed to be called; this silences that warning.
pipx run rich-cli --help
NOTE: running app 'rich' from 'rich-cli'

Thanks


[analyzer] Always generate valid log file

It is possible that the log file will not be created or it will be empty
for example when the build command is an empty string or when there is no
compiler command to log. For this reason we will create this log file if
it does not exist at the beginning of the logging phase and we will insert
an empty array to it, to make sure that it will be a valid json file.

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 1

Complexity increasing per file
==============================
- analyzer/tests/functional/cmdline/test_cmdline.py  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 1

Complexity increasing per file
==============================
- analyzer/tests/functional/cmdline/test_cmdline.py  1

See the complete overview on Codacy


[Docs] Fix MetaSchedule Docs

Following up #14453 to resolve issues in CI.

@tvm-bot rerun

@tvm-bot retun

@tvm-bot rerun

@tvm-bot rerun

@tvm-bot rerun

@junrushao This PR should be ready for review now.

Nice! Let’s get it in!


Volar treats html template as JSX

tried re-enabling the plugin
tried reinstalling the plugin
tried Vetur, the issue disappears, but that's not a solution since Vetur plugin development now is really focused on Vue2
tried resetting the plugin settings

I guess I have a similar problem, at least in some cases. With Quasar.
'__VLS_39' cannot be used as a JSX component.
  Its instance type 'QInput' is not a valid JSX element.ts(2786)
(property) 'q-input': ComponentConstructor<QInput, any, any, any, ComputedOptions, MethodOptions>

@sschneider-ihre-pvs Yes, exactly. That's the part of the issue. I got the same errors as well. I tried to prevent JSX parsing a few times but no luck so far. I believe it's Volar enforcing JSX parcing.

[Trace - 10:24:05] Sending request 'textDocument/codeAction - (99)'.
Params: {
    "textDocument": {
        "uri": "file:///<path>.vue"
    },
    "range": {
        "start": {
            "line": 13,
            "character": 10
        },
        "end": {
            "line": 13,
            "character": 10
        }
    },
    "context": {
        "diagnostics": [
            {
                "range": {
                    "start": {
                        "line": 13,
                        "character": 8
                    },
                    "end": {
                        "line": 13,
                        "character": 15
                    }
                },
                "message": "'__VLS_39' cannot be used as a JSX component.\n  Its instance type 'QInput' is not a valid JSX element.",
                "code": 2786,
                "severity": 1,
                "source": "ts"
            }
        ]
    }

@sschneider-ihre-pvs this is a different problem, please open a new issue to track.
@ivan-bragin do you have react types in project? what file will navigation to when you ctrl + left click a <div> tag?

@johnsoncodehk Yes, you are right! For some reason I do =/ But why is this the case? I mean are .vue files being parsed as JSX? Or is it just the limitation of the TS part?

Okay, I checked and it seems that this @types/react is a dependency of Storybook.

@ivan-bragin after 0.27.27, template virtual code is changed to JSX to improve generic component support.

Okay, I checked and it seems that this @types/react is a dependency of Storybook.

I will take a look. But not sure it can fix, maybe you must config tsconfig to fix, see https://github.com/johnsoncodehk/volar/issues/111#issuecomment-805806786.

@johnsoncodehk I'll try this fix, thanks a lot! Honestly, it's not that big, but the combination with the error @sschneider-ihre-pvs mentioned, it lights up half of my files as if there are errors inside. If you'll manage to fix this, I'll become a sponsor xD
btw: @sschneider-ihre-pvs That's a link for you https://github.com/storybookjs/storybook/issues/16213

@ivan-bragin after 0.27.27, template virtual code is changed to JSX to improve generic component support.

Okay, I checked and it seems that this @types/react is a dependency of Storybook.

I will take a look. But not sure it can fix, maybe you must config tsconfig to fix, see #111 (comment).

Just tried the suggested fix, seems working at the first glance, but I'll test it some more.

@sschneider-ihre-pvs this is a different problem, please open a new issue to track.
@ivan-bragin do you have react types in project? what file will navigation to when you ctrl + left click a <div> tag?

done

@sschneider-ihre-pvs the suggested fix with "types" also fixes the VLS issue. Can you try that as well?

@sschneider-ihre-pvs the suggested fix with "types" also fixes the VLS issue. Can you try that as well?

No, it seems to be a different issue, I don't have react nor any jsx related stuff

Unfortunately, based on JSX, there is no non-invasive solution. If there is @types/react in the project, you need to specify the types option explicitly to exclude @types/react.

@johnsoncodehk Oh well. That's unfortunate but not that bad I guess. Can this information be added to the setup documentation? Since this @types/react comes from Storybook I can see this to be an issue with other libraries too.
Thanks again for checking and providing a nice workaround! 👍

@ivan-bragin of course, will update docs for this.

Still having the same issue.
Tried to exclude all typings, because i also have @types/react from storybook in my node_modules.
 If the problem still on, please provide a repro case.

The config sadly did not resolve my issue.
The last working Version is 0.27.26. From that on the template gets detected as jsx.
I will try to setup a repo in the next days!

@euaaaio please open a new issue and provide a repro case.

@euaaaio please open a new issue and provide a repro case.

Done: https://github.com/johnsoncodehk/volar/issues/568

@Blackfaded please try https://github.com/johnsoncodehk/volar-starter/blob/master/tsconfig.json. If the problem still on, please provide a repro case.

Solved it by excluding **/*.stories.ts in the tsconfig!

Please move to #592 about related problems.

declare global {
  namespace React {
    interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
      class?: string
    }
  }
 ...
}

this can solve my "class" problem

I couldn't get any of the answers here to work, but what finally worked for me was to just add this to my compilerOptions in tsconfig.json:
{
  "paths": {
    "react": [ "" ]
  }
}

My hope was that it would cause any attempts to load react types to fail and that seems to be what's happened. You will need to use a different tsconfig file to run storybook files, though.
I did have mild success with making the react.d.ts file to override the class type, but then it fails for object and array values, and other HTML attributes have react types when you're developing. With my change it uses Vue for all of the types.


Merge dev to feat-fast-sync 1.03.2022

This PR integrates the recent changes from the dev (as of 1.03.2022 10:00am CEST) branch into the feat-fast-sync branch.

bors r+


Apply fixes from StyleCI

This pull request applies code style fixes from an analysis carried out by StyleCI.

For more information, click here.

Coverage remained the same at 0.0% when pulling 0d06fe9acf30d0de8efed90c546abacaa026e316 on analysis-z4ZybG into 055d14eac12478ecf0c34385e966a23f973331c4 on master.


Gnome icon does not show in task bar

Is there an existing issue for this?

[X] I have searched the existing issues.

Is this issue related to iced?

[X] My hardware is compatible and my graphics drivers are up-to-date.

What happened?
I set the icon, but it does not show up anywhere.
What is the expected behavior?
I expect it to show up as the task bar icon, but it does not. I tried both the latest release and master.
Version
master
Operating System
Linux
Do you have any log output?
Nope. The Gnome version is 42.9.

Also, I didn't get an error.

I used a 128x128 .ico.

This is a duplicate.