[WIP] Allow binding linear elements to other elements

This addresses #157.
This doesn't have many of the features we talked about yet. Current status:

[x] Binding elements: lines, arrows, draws (should we exclude draws? or some specific subset of draws that have points too close together?)
[x] Bindable elements: rectangles, ellipses, diamonds, text
[x] Can bind start point to a shape
[x] Can bind end point to a shape
[x] Can bind when drag creating
[x] Can bind when Enter creating (multi-point)
[x] Element is highlighted when bindable

[ ] Make this look different from selection (also see 2 points down)

[x] Bindable area is based on element size (give feedback on how this feels in general and on the specific distances in the PR)

Display the actual bindable area instead of the rectangular selection-like box (will make a followup issue for this)

[ ] Gap can be increased arbitrarily by moving or scaling the linear element or its points (should the gap have a limit or is it OK as is?) regressed due to focus points (I think I'll make pulling out too far unbind, that feels natural)
[x] The bound/focus point moves when the bound element is moved

[x] The bound/focus point reacts to rotation of bound element
[x] The bound/focus point reacts to scaling of bound element
[x] Moving the binding element together with its bound element should work correctly
[x] Scaling the binding element together with its bound element should work correctly

[x] Use fancy focus points instead of static bound points, as demoed by @vjeux

[x] Rectangles, text
[x] Diamonds
[x] Ellipses
[x] The gap is constant (distance from nearest point on the bound shape)

[ ] Allow disabling binding when creating an arrow
[ ] Allow unbinding bound arrow
[x] Allow binding/unbinding existing linear elements from edit mode

[ ] Highlight binding elements during editing (same as during creation for start binding element)

[x] Preserve binding between reloads
[x] Preserve binding between clients
[ ] Duplicating bound couples should duplicate binding
[ ] Selecting binding/bound element should highlight it's counterpart

One thing to call out is that it REALLY simplifies things that we have 2 classes of elements, one is binding (linear elements) and one is bindable (the rest). This means there's no recursive madness when moving things around.
As usual PR is reviewable by individual commit.

notes
Just some quick notes.

Allow disabling binding when creating an arrow

I'd actually argue for the default to be "do not create glue points", and enable it by e.g. holding CMD/ALT (we would show hint that you can do this).
From internal discussion it seems I'm at the minority here, but I want to stress out that the USP of excalidraw is how it behaves and feels. It's first and foremost a whiteboard app and should retain the feeling of drawing by hand. If we make gluing/snapping the default, we're moving closer (in this case by a huge leap) towards precision-vector apps.
I'd stress to not make this the default especially if we decide to make the gap be enforced (e.g. making it at minimum 10px or some scale factor) because then the feature of "draw anything anywhere without magic happening" would be gone.
Anyway, this is just a request for discussion.

One thing to call out is that it REALLY simplifies things that we have 2 classes of elements, one is binding (linear elements) and one is bindable (the rest). This means there's no recursive madness when moving things around.

:100: absolutely agree. This is the only way it must be implemented IMO.

As usual PR is reviewable by individual commit.

:heart:

Bugs

[ ] two-point lines (created by click-dragging instead of clicking) have the glue point reversed:

Nits

[ ] rename boundElementIDs → boundElementIds to align with groupIds

I'd actually argue for the default to be "do not create glue points", and enable it by e.g. holding CMD/ALT (we would show hint that you can do this).

I agree. @vjeux felt that binding by default would be better. I agree that we should give this "simpler way" (bind by default) a try (during PR review), see how it feels, and if our concerns are valid we should make this feature less aggressive.

It's first and foremost a whiteboard app and should retain the feeling of drawing by hand.

I think that this goes with the thinking of mapping physical whiteboard one to one. I strongly believe that we shouldn't and why excalidraw has been successful so far. See this blog post: https://blog.excalidraw.com/rethinking-virtual-whiteboard/
In my experience, if you draw an arrow or a line next to a shape, the expectation is that when you move the shape, you also want the arrow to move. My gut feeling is that this is true most of the time, and therefore is something we should have the default.
Now, there are likely going to be edge cases where it's not the case. I can't foresee them at this point without playing with it. This is why I wanted someone to implement it so we can try it out. If we find out that it's super annoying in practice, let's go back to the drawing board and rethink it through. But I want to be in the mindset of trying it for real.

@vjeux I'm still not convinced we can automatically place the focus points in the manner you showed. One counter example I came up with:

(although you could argue that in this case I should have bound the arrows to the labels, not to the box). wdyt?

That's interesting, in my drawings I don't really use arrows for pointing at specific part of the box, just the box itself. Indeed in this use case it wouldn't quite work. That said, the output is reasonable and better than not moving any arrows at all, so while suboptimal it's still better than not binding.

@xixixao btw, you're image for the algorithm is way off for one of the arrow (the top left).

There’s something in the current algo for focus points and intersections that makes the bound arrows vibrate. This should be fixed if I figure out how to keep the “gap” as distance from boundary, not distance from the focus point line intersection.
Also arrows disappear in Webkit browsers if shapes are dragged over them (but not in Chrome).

For what it's worth, this use case is super common for me, and it's always been very fiddly and brittle with existing 'glue point' implementations (drawings in Google Docs, for example).

It would be amazing if Excalidraw could get this right. What makes this case interesting is that I'm simultaneously pointing at two things - the outer box, and one of the things inside it. The ultimate target is the inner object, but I don't want the arrow to go inside the outer box (otherwise, as @xixixao suggested, I could just bind to the inner object directly).  So the focus point should be based on the inner object, but the gap should be based on the outer object.
I think maybe the algorithm could treat binding to a group as a special case, as follows:

When the target object is a group:

Calculate the gap as we do now - distance between the end of the projected line and the first intersection.
Determine the focus point as follows:

If the projected line intersects with only one object in the group, determine the focus point from that object as we do now.
If the projected line intersects with more than one object in the group, use the intersections with the smallest object to determine the focus point.

I'd be happy to work on implementing this - @xixixao let me know if I can help.

@HerbCaudill can you provide real-world examples of how you use this pattern?
I think your solution would be a slight improvement over binding to things inside the box (which is possible already, and with a sufficiently large gap the arrow tip won't fall into the box), but I think it's still ways off from an "ideal" solution in this situation, which is to be able to bind directly to the box edge near the small objects.
We have a bunch of choices:

Binding to objects inside the box (and make sure gap can be adjusted arbitrarily)
Special focus point search for groups as you suggested (this might be useful in other scenarios as well)
The ability to control focus point directly, perhaps not during initial creation but in edit mode (this could definitely have bunch of benefits at the cost of UI complexity)
Not cater to this scenario in any special way, it not being common enough (which is to be established)

@xixixao - After looking all the diagrams I've made lately, I think "super common" was an exaggeration on my part, so I take that back. 😁 Probably your option (4) would be the right call, certainly for the first release.
FWIW here's a diagram done in Google Drawings. In cases where I had lines linked to items inside a container, I ended up moving the target items slightly outside the container (as with the green peer/read/write boxes on the right):

Looking back at these, the frustration was much more about not being able to link to arbitrary points on the target; for example in Google Drawings, when linking to a rectangle, the only targets are the 4 midpoints of the sides. The algorithm @vjeux proposes would solve that.

What's missing to ship this? :)

We should review whether we want to make it the default. If we ship it as default, it'll be hard to go back if we decide to.

You will notice I pulled in a custom geometric algebra (https://bivector.net/) library. This is most likely an overkill, after I'm done I'd like to refactor it to not use the 8-vectors, inlining the concrete calculations I need (especially given I don't think we'll need motors to work correctly on lines).

This looks great!
One issue: If I resize or edit the line so that its tip no longer points at the target object, and then I move the target, the line's tip snaps back. Obviously this is because it's still bound to the target, but it feels wrong.

Same thing happens if I move the whole line:

Maybe the desired behavior is to also check for objects to bind to when moving or modifying a line, not only when drawing it for the first time?

If a line is bound to an object and I move it so that the end is no longer nearby any objects, then the line is unbound
If a line is not bound to any objects and I move it so that the end is in an object's buffer zone, then it is bound to that object
If a line is bound to object 1 and I move it so that it points at object 2, then unbind it from object 1 and bind it to object 2.

We should review whether we want to make it the default. If we ship it as default, it'll be hard to go back if we decide to.

FWIW I strongly agree with @vjeux that this should be the default. I've tried to think of a situation where a line ends right on a shape's edge and I wouldn't want it to bind to the shape; I can't think of any. If someone can think of an example, it might help focus our thinking.

Couple other bugs:

[ ] Bind arrow to rectangle, then resize rectangle. Arrow tip is not repositioned unless/until I move the target rectangle.

[ ] Bind arrow to rectangle, then rotate rectangle. Arrow doesn't move, but if I move the rotated rectangle, it starts behaving strangely - sometimes not moving, sometimes pointing in the opposite direction.

FWIW I strongly agree with @vjeux that this should be the default. I've tried to think of a situation where a line ends right on a shape's edge and I wouldn't want it to bind to the shape; I can't think of any. If someone can think of an example, it might help focus our thinking.

Since the binding works even for line and draw types, this limits the ability to quickly draw shapes on canvas and move them around until you're happy with the result without them being coupled to other shapes. This changes the dynamic of how drawing works.
If nothing else, we should have a way to 1) disable the behavior during creation (e.g. via holding ALT), and 2) uncouple existing shapes (e.g. via contextMenu).

Bug: when you move a shape around, arrows tend to disappear (what happens deep down is that the glue point coords are set to [null, null], not sure why).

All KPs, thanks for trying it out folks. I’ll get to these now that I’m done with the consistent gap.

Since the binding works even for line and draw types,

If this is default, I would hope it only applies to arrows.

@daishi I thought about this use case but with this exact use case but I couldn’t find a sensible reason where this would be annoying. It’s unclear why you’d want to move just the circle and not the rays. So I don’t see it being annoying in practice.

@vjeux
Like @dwelle said: "this limits the ability to quickly draw shapes on canvas and move them around until you're happy with the result without them being coupled to other shapes."
My concern is more from the mental model perspective. When I draw the sun, I simply don't expect they are connected. I would feel it pretty annoying with this specific example. Anyone else?

I understand the concern in theory. I’d love to know if in practice it is actually annoying or not

this limits the ability to quickly draw shapes on canvas and move them around until you're happy with the result without them being coupled to other shapes.

Like this:

Again, can you try this on the branch and see how it feels in practice?

I haven't thought this through but we could support a modifier key that allows you to move the bound object without the binding linear objects moving (but I'm not sure whether that's useful when you do want to bind, it should probably just unbind the object - that I can see useful for swapping bound objects).

In that sense, it would be nice to visually see if arrows are bound to an object when the object is selected.

I've played around with a couple of different ways of differentiating the binding highlight from the selection highlight. This is one approach that I like: It shows the actual buffer zone being used to determine whether to bind or not.

Changes are here: /xixixao/excalidraw/pull/1

@dai-shi thanks for making that example - that's a legit scenario that I hadn't considered. In general it seems like automatic binding would be undesirable in situations where you're drawing (cartoons, UI mockups, etc), whereas you almost always want it when you're diagramming (flow charts, mind maps, system designs, etc).
 Maybe only visible when a linear tool is active?

Yep, I'm 100% in agreement with daishi. We're opening a Pandora's box if we're not careful.

 Maybe only visible when a linear tool is active?

Maybe, but we already have a shape-lock mode (and I'd like to get rid of that one when I get the chance) and even that one is complicated enough for people.
I'm not sure we have a good idea about what Excalidraw is most used for. I'd say it's a 50/50 split between the use cases where you want the arrow snapping, and when not.
But what I'm pretty certain of is that Excalidraw is unique (and likely popular) exactly because it's so easy to put your ideas on the canvas and nothing is holding you back. If you open up a vector editor, there's so many things you need to learn first in order for the tools to do what you want --- the grid/object/point snapping in those apps is very distracting and prevents quick and dirty prototyping.

It should be possible to know whether a shape and line are bound (other than moving the shape to find out). I'd suggest that selecting a line should graphically indicate any bindings to shapes, and vice versa. Some ideas on how to do that:
Option A: "Tape"
I like the way this looks, although the physical metaphor is misleading since adhesive tape doesn't swivel when you move things around.

Line selected
Shape selected

Option B: Show focus points
This has the advantage of actually revealing the underlying logic. It does create a false affordance, inviting the user to move the focus points, though. So we'd almost have to support that if we display it this way.

Line selected
Shape selected

Just for brain storming: If we were to completely change the tool (= breaking change in UI), here would be one possible suggestion.

https://excalidraw.com/#json=5711733570142208,AKWUpnG8XA-GgLNe_uftYQ
Related: #616

Yea, or a submenu under the tools when you select the line/arrow tool:

It should be possible to know whether a shape and line are bound

I'm planning to highlight the same way as during binding (and this should use the style you implemented) - although we could also highlight it differently, I don't yet see a reason for it (perhaps to make it less visually disturbing?).

Do you have plans to bind arrows when you create a shape (circle, rectangle)?

I'm not sure what are the consequences, but in this particular example, it's weird that the second end of the arrow doesn't get its position recomputed.

Do you have plans to bind arrows when you create a shape (circle, rectangle)?

This is pretty easy, but are we sure we want to do this? I thought about this, and I can see an argument either way. For: the order of creation doesn't matter, so if you want to bind, it's easier. Con: Binding now happens all the time.

I'm not sure what are the consequences, but in this particular example, it's weird that the second end of the arrow doesn't get its position recomputed.

This is a bug.

Nice, your fix is working. Looks like the algorithm is a bit weird in that case though. Not really sure how to fix that.

The two arrows are ~10% and ~70% vertically, but when we take the intersection, they both end up being at 50% horizontally. I wonder what would happen if instead of using the middle of the segment in-between the two intersections, we used the vertical/horizontal ratio.

Seems like it would work in this example, but no idea how well it generalizes and what are edge cases.
Also, in order to work, need the x% to not take into account the direction of the arrow and always start from a specific side. Otherwise the left box and the right box will have their points inverted and the arrows will cross when going vertically.

This is pretty easy, but are we sure we want to do this? I thought about this, and I can see an argument either way. For: the order of creation doesn't matter, so if you want to bind, it's easier. Con: Binding now happens all the time.

I feel like it's weird that the order of operations does matter. When drawing graphs, I often do a sequence of circle, arrow, circle, arrow, circle. But now, if I want to have them all bound correctly, I need to do all the circles first and then all the arrows. That seems like a broken experience to me.
We have command and shift that are left as keybindings (on mac) when dragging to allow for moving without moving all the bound elements with. I feel like that's a reasonable trade-off in case things were accidentally bound.

Seems to be very broken with grid mode enabled:

Looks like the algorithm is a bit weird...

This is exactly the case I’ve been thinking about and why the current focus point strategy isn’t ideal.

@vjeux  I think this is the correct strategy for focus points, but it might be a bit of a challenge to implement:

I realized this is actually quite straightforward:

Of course this approach works well for pointing at the objects and allowing multiple connections, it's not good in case people wanted to point at some are inside the object - but as we discussed for that it's better to actually bind to a smaller object inside the bigger object.

FYI I'm working on the better focus point strategy, sneak peak here:

I'll be gone this weekend so won't push the update until next early next week.

The arrow should end (not waiting for other points) when connected to an element.

The progress is great BTW!

The arrow should end (not waiting for other points) when connected to an element.

I wouldn't. That's another case of magic. What if you want to continue over to another element?

I agree with not ending the arrow if it happens to be touching something.

Looks great, agree with the points raised on default behavior, but could be biased due to not having "binding" the past weeks. Good suggestions for UI/UX with sub menu or two items in the menu.
Is the the storage/attribute changes for this PR already stable? :D

What I don't see covered or mentioned yet, but also sounds like an extension is the ability to have text bound to lines/arrow and move with it. I copied one existing diagram into this PR and this became immediately visible that the binding alone is helping but not perfect.

Is the the storage/attribute changes for this PR already stable? :D

No.

I copied one existing diagram

Can you paste a screenshot? Examples are very helpful inspiration, thanks!

Ok, I hit a bit of a roadblock with the distance ratio approach but I think I have a solution (based on combining the two approaches), that's doable to implement:

(I'm adding my notes here for future digital archaeologists, but you don't have to worry about it much)

Sure I can, essentially every arrow has a label (e.g. latency) and moving the arrows does not move labels, as there is no binding of label<->arrow.

Any thoughts on making a "Group" a bindable object? You may notice the custom "DB" shape of a binable circle with a free line, which can lead to odd arrows overlapping the "body".

Ok, I think I figured out the correct approach to the focus points (really, this time), so that should unblock me (provided I'll figure out how to implement it :) ):

To address the message in chat: I'd change the alt-duplication behavior as you suggested. It doesn't make much sense to regenerate the original shape instead the one being dragged, and I don't like current behavior any more than you do.

@dwelle since this was implemented intentionally, and I managed to work around it (at the cost of some increased implementation complexity), I think I won't be changing it right now.

@dwelle @dai-shi @vjeux @petehunt I consider this PR feature ready. Please take it for a spin and report any merge-blocking bugs, so we can merge it as soon as possible. Thx!

While I'm not convinced that there's no way to draw unbound lines https://github.com/excalidraw/excalidraw/pull/1899#issuecomment-660573385, it's very nice for diagramming. Fantastic work.
Meanwhile, I noticed some issues:

Resize handles are not rotated on rotated elements.
On the other hand, resize handles for multiple element selection shouldn't be rotated.
Weird behavior with rotation (see below).

@dai-shi wrote:
Meanwhile, I noticed some issues:

Resize handles are not rotated on rotated elements.
On the other hand, resize handles for multiple element selection shouldn't be rotated.
Weird behavior with rotation (see below).

@xixixao : these have been fixed

That was quick.
Is it expected to highlight binding area while dragging multiple elements?

This might be an edge case, but a bit unexpected.

The crossing I'm aware of, but I feel like we could leave that to another PR, as it further complicates the code (but it's probably not too bad).

I agree with @dai-shi. Let's enable this for arrows only, gather user preferences, and tweak afterwards.

How do you capture these tiny videos/animations to display problems?
With the latest deployment I observe now that the binding gets lost on one end if I move a "point" of a multi element arrow.

With the latest deployment I observe now that the binding gets lost on one end if I move a "point" of a multi element arrow.

By design? Not sure, you'll need to post gif (I use https://www.cockos.com/licecap/, but there are tons), or steps to repro.

How do you capture these tiny videos/animations to display problems?

@Jan-M I use QuickTime to capture screen in MacOS, and convert mov to gif with ffmpeg.

@dwelle You mean this is by design? I have two boxes and an arrow with start, middle and end point, to make it a curve. Arrow connected to boxes, works well when i move boxes. If I now move the middle arrrow point to change curve binding to final box is lost.

Found a capture extension:

Nope, that's definitely a bug. :+1:

I'll be posting bugs/UX issues of various severity. Can be fixed in this PR or future ones.

binding should prefer elements closer to the cursor (in the gif below, it should bind to the top rectangle):

Notes on the behavior as a whole: while I like that we're now, and we definitely do need to support this, I'm still very concerned how it changes the dynamic.
I don't like the fact that there's no way to disable the auto-binding. Coupled with the fact that movements often end up in unexpected jumps, it's very hard to create and modify complex shapes consisting of a combination of lines and other elements.
What if I want to create a line close to a shape and don't want to connect? Or create or move an element without auto-connecting lines that are in the vicinity?
Free drawing and prototyping will be a nightmare:

Bug: Binding area rendering doesn't matching binding area when zooming.

@vjeux How do you feel about only enabling this for arrows / the general feedback on this breaking drawing?
The options I see right now are:

Leave as is. Drawing with lines will be encumbered. If we don't start with this it's unlikely we'll ever move to it (while it is possible we start with this but move to one of the options below later).
Only bind arrows. You're unlikely to use arrows in generic drawing. But severely limits the utility, as you might want to bind non-arrows quite often. (slightly related to the issue about different arrow endings)
Enable this on meta-key. This is hard to discover, and disables this on mobile. Also we're running out of modifier keys when resizing (which currently allows binding).
Disable this on meta-key. I primarily don't like this because this will lead to frustration (getting binding when you don't want it is more frustrating than not getting binding when you want it). Plus it shares all the problems of 2.
Add new toggle-able mode, similarly to grid mode. This works, albeit not super nicely, on mobile. It's unlikely you need to toggle this often (probably as often as grid mode). It's not easily discoverable, but better than modifier key (if it defaults to on it has the same frustration problem as 3, it should default to off).
Add new toggle-able mode with a button, similarly to tool lock (I imagined a magnet icon). This is discoverable, much more usable on mobile. It could potentially default to "on" as it would be fairly easy to discover how to disable it. But it takes up more screen real-estate.

Moving between these options in general is fairly disruptive so we should aim to get it right on the first go.

I’ve always wanted option 3: disable on meta key. This is very similar to smart align where it does what you want most times but when it doesn’t, you can try all the meta keys to find which one works.

Replying to @dwelle:

binding should prefer elements closer to the cursor (in the gif below, it should bind to the top rectangle):

This is similar to #1980, I'd tackle that first (some of that code is shared now).

weird jump in this scenario:

I think that's ok (although similar to https://github.com/excalidraw/excalidraw/pull/1899#issuecomment-668353189, I put that as a follow up, we could take the direction of the line into consideration when deciding the eligibility for binding).

I implemented CMD/CTRL as modifier key that disables binding. The only place it doesn't apply is when you're moving an already bound shape, in this case it doesn't have any impact. But any time you'd see a binding highlight, now when you press the key you won't see it and binding won't happen (will be undone if there was one before).

I’ve always wanted option 3: disable on meta key.

How does this work on mobile?

@dai-shi it doesn't work on mobile, see the breakdown: https://github.com/excalidraw/excalidraw/pull/1899#issuecomment-668828088

Just checked with shapes having bindings and moving them around and moving them into potential bindings and the preventing bind using CTRL, seems to work well and feels good. Somehow though I do not follow the above "will be undone" sentence, which made be expect bindings will be undone, which is not the case. The latter feels right and to works as expected, e.g. the box having already to bindings will not pickup a new binding with CTRL pressed.
On a side node I also like earlier suggestions here about line mode and or sub menu to choose if I want to draw with or without binding.

@dwelle @dai-shi how do you guys feel about this PR? Should we test it as is? @vjeux I assume is happy with it as is?

Yeah, I’ve tried to break it in a bunch of ways and could no longer! Super excited to see it land! I am confident that @xixixao will fix forward whatever issues we run into after it is shipped.

@xixixao My preference in order is:

Only bind arrows.

I don't mean this is a final solution. It's just to move forward this PR and discuss alternative UI. (I'm not convinced with 3. Disable this on meta-key. You just can't draw effectively.)

4-5. Add new toggle-able mode

Otherwise, this would be better and it works with "3. Disable this on meta-key."

Not sure how meta-key works, but it doesn't seem to be working correctly?

creating line with meta, failed to unbing
editing the line with meta, succeed to unbind

@dai-shi You need to hold the meta key all the way until placing the line. When the meta key (cmd/ctrl) is pressed, you won't see the suggested binding highlight. What OS are you on?

Yes, fully supporting @dai-shi's points. Meta-to-disable just doesn't cut it form a UX point of view. IMO binding arrows should be a one-time action, and above all intentional action. As such I believe we should either go with Meta-to-enable or mode-toggling. I prefer meta-to-enable, but that won't work on mobile.
Personally I don't demand complete parity on mobile and desktop. We could have meta-to-enable on desktop, and a different solution for mobile.

Also I don't like binding lines either, and considering there's not much use case in binding lines, I'd drop it until we get feedback that people actually desire it.

@dwelle I dropped lines binding. I think this is makes it ready for merge on desktop. Are we ok merging this on mobile without a way to disable, given only arrows bind?

One suggestion for mode without need for sub menu to toggle on subsequent click on arrow, kind of toggling binding and non binding every time arrow in top menu is clicked (while already active) and staying in the last mode.
Looking forward to this great addition being merged, was already hard to go back to non binding deployment after trying this pr deployment :D

The meta key actually doesn't work well in my implementation, for 2 reasons:

Unlike say resizing, the binding is an action at a single instant in time, and one triggered by some other user action. This makes it easy to press the keys in the wrong order. Compare for example with shift-resizing: I can press shift, drag, release shift, then release mouse and the fixed ratio is preserved. This is not possible for binding as some binding happens without a pointer/key event.
There is no way to detect whether a key is pressed at a certain time. The only thing we can do is track key down and up events, but we might not capture the up event, breaking the state.

To fix these I'd have to bind on drag, which might incur a perf hit and definitely would further increase the code complexity.
I think a proper mode with a toggle, with a normal keyboard shortcut for toggling it, alleviates this problem and solves mobile.
@Jan-M I like your suggestion but I think it doesn't work for keyboard selected tool, and even for tapping it in combination with unlocked tools it might lead to accidental toggling.

Can't you keep a global variable isHoldingMeta similar to what we do with isHoldingSpace? I haven't checked the code to see if it's feasible.

@dwelle This is exactly what I'm doing. But all you have to do is move the cursor out of the window and then release the key for it to break.

I guess the blur handler mostly solves that point, so I updated my comment.

@xixixao There seem to be a case that lines are bound. It's reproducible but when I take screencast with QuickTime (MacOS Chrome), I can't reproduce it well. If you can't reproduce it, let's leave it.

Yep, lines still get bound (only it doesn't show during drag that they will be).

@dwelle (Just commenting for further discussion for the future issue.)

considering there's not much use case in binding lines

I wouldn't say there's not much use case. If someone were diagramming, they would want bound lines.

I prefer meta-to-enable, but that won't work on mobile.

So, some likes meta-to-disable and some meta-to-enable. Interesting. I don't feel like using modifier keys when I use both hands in trackpad on desktop.

@dwelle Are you good with me merging this now? I also think we'll add a UI toggle, but maybe we need a bit of time to convince @vjeux first :)

The behavior looks good to me. Look forward to this to land and continue discussion for better toggles.

I merged this because it's burns my time and more importantly others' trying to contribute to keep this up unmerged due to merge conflicts, given the scale of the changes. I'm happy to fix forward.


Q-CTRL support

Summary
Details and comments
Fixes #964

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

12 of 14 (85.71%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 74.069%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_ibm_runtime/api/rest/runtime.py
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.05%

Covered Lines:
2465

Relevant Lines:
3328

💛  - Coveralls

LGTM, it would be good to add integration tests in a follow up PR and merge it only when everything is working on server side

Created an issue to follow up: https://github.com/Qiskit/qiskit-ibm-runtime/pull/1017


Add intercept-less option to GLM regression

This is now a feature as of commit 45f0b16. This should enable the creation of hierarchical models.


Use Yarn instead of npm

We should evaluate switching to Yarn and stop using npm. See this announcement to understand some issues.
@FinnStutzenstein Are you interested in looking at this (if you have some free time after 2.1 release)?

I did  some further reading and yes, we should try using it. We are allowed then to avoid the issues with npm as well as (hopefully) reduce the deps (currently I have 469 folders in my node_modules). But we should wait until 2.1 is released.


minor patches

as outlined in https://github.com/brainelectronics/micropython-winbond/issues/8
Thanks for this great library! Helped me a lot.
I think the following could be done to make it even better.
I already added my suggested improvements.
change await function
# last bit (1) is BUSY bit in stat. reg. byte (0 = not busy, 1 = busy)
trials = 0
while 0x1 & self.spi.read(1, 0xFF)[0]:
    trials += 1
    if trials > 20:
         raise Exception("Can't read from device")
    sleep(0.1)

Current code can lead to infinite loop and you should do somethingl like above
writeblocks should not check block length
You check block length and raise warning if not satisfied.
This is against spec (https://docs.micropython.org/en/latest/library/os.html).
Also gives issue if you write a file raw to memory with a size not equal to multiple of blocks
if len(buf) %buffsize != 0:
    buf += bytearray((buffsize-(len(buf)*[255]))

don't break just raise warning
I would do something like this in the identify function.
if mf != 0xEF or mem_type not in [0x40, 0x60, 0x70]:
    # Winbond manufacturer, Q25 series memory (tested 0x40 only)
    print(f"manufacturer ({}) or memory type ({}) note tested")

Thank you for your contribution @hstarmans
I haven't yet updated this package with the latest contribution requirements/guidelines as done here in the package template
May you could update the changelog.md and the winbond/version.py file?

Added changes as requested!

Sure, I added a config for pre-commit so a check is carried by git before a push is made to the repo. This is also recommended by micropython. The config is minimal. For a more extended example see https://github.com/sktime/sktime/blob/main/.pre-commit-config.yaml .


added some module files

Added module files for synthetic and enzymatic network generation, and post-processing. Also added a few packages in environment.yml for the post-processing code to run.

Only a few sticking points: make sure line lengths are <80 characters in post_processing.py, make sure not to use blanket except: statements in post_processing.py, and fix some typing which is throwing errors with mypy.  The command which should run with no errors and no changes is ruff --check doranet; ruff format doranet; mypy doranet


leaflet-src.js is outdated in 1.7.1 download package

Instead of 1.7.1 code, it's yet at 1.6.0

Duplicate of https://github.com/Leaflet/Leaflet/issues/7258

Duplicate of https://github.com/Leaflet/Leaflet/issues/7258


[FLINK-7781][metrics][REST] Support on-demand aggregations

What is the purpose of the change
This PR adds on-demand aggregation support to the metrics REST API. It allows aggregating

taskmanagers metrics across all taskmanagers
job metrics across all jobs
subtask metrics across all subtasks

Task metrics can't be aggregated since we simply don't have any; all task related metrics are scoped by sutbask.
The aggregation is handled by new endpoints as described in the documentation. Additionally, a subtask metric handler was added to subsume the existing JobVertexMetricsHandler to expose subtask metrics in a more idiomatic way. The JobVertexMetricsHandler was not removed for backwards compatibility (with the webUI in particular):
Brief change log

fix the requests examples in the metric handler javadocs
implement aggregation handlers

expose all subtask stores in TaskMetricStore for easier access
extend MetricStoreTest#setupMetricStore to contain metrics for multiple entities

integrate aggregation handlers into WebRuntimeMonitor
document the metrics REST API

Verifying this change
This change added tests for each Aggregating*MetricsHandler and for the abstract base class (AbstractAggregatingMetricsHandlerTest).
This change can be verified manually by running multiple taskmanagers/jobs/subtasks in the cluster and querying the rest endpoints as described in the documentation.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (docs)

@kl0u I've addressed your comments.


client losses service account secret files.

Time to time getting following error:
"the server has asked for the client to provide credentials (get pods)"
Mostly during client startup, but after a couple of restarts it starting work well.
Using inside privileged pod which is inside cluster which i trying to access.
Would you please advice.

What Kubernetes version? Is your cluster an HA configuration?
Sounds like a race somewhere in the system (doesn't sound like a client
bug). @deads2k or @ligget maybe have a better guess.
On Sun, Feb 5, 2017 at 2:34 PM, Pavel Kutishchev<EMAIL_ADDRESS>wrote:

Time to time getting following error:
"the server has asked for the client to provide credentials (get pods)"
Mostly during client startup, but after a couple of restarts it starting
work well.
Using inside privileged pod which is inside cluster which i trying to
access.
Would you please advice.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/client-go/issues/92, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAnglroyfaMRjVG1vs6D3miVediL0M8Fks5rZk5ZgaJpZM4L3p2Z
.

Can you provide the detailed logs?  Glog level 8 ought to do.

Yes, im using HA k8s cluster, i have a daemon set which runs k8s go client.
and time - to - time i getting error accessing kube api as i said above.
@deads2k would you please clarify which log are you wan't to see?
i running hyperkube. so there are a few containers like kubelet, sched, proxy, api ...etc

@deads2k would you please clarify which log are you want to see?

The client log.  It would be useful to know exactly which headers are sent and which responses are coming back to narrow down where the problem lies.
Given an HA cluster, its possible that you're having trouble due

Missing certificate on one of your masters
Slow k8s GET cache (pretty sure that merged already) if you're checking for token revocation (you should be)
Slow etcd (if you're not forcing all traffic to one node)

Those would all manifest differently than "SA token is missing entirely".

Check all tree pods of my daemon set all data is equals and files are present, ca.crt, namespace, token
but still the same issue
the server has asked for the client to provide credentials (get pods)
at this time i can access API from others, it means that API works only from 2 of 3 pods.

I suspect one of your apiservers is configured differently. Check
credentials against each, perhaps?
On Feb 7, 2017 6:35 AM, "Pavel Kutishchev"<EMAIL_ADDRESS>wrote:

Check all tree pods of my daemon set all data is equals and files are
present, ca.crt, namespace, token
but still the same issue
the server has asked for the client to provide credentials (get pods)
at this time i can access API from others, it means that API works only
from 2 of 3 pods.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/client-go/issues/92#issuecomment-278017268,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAnglgjespHhg-iEMk30HpLzXYzvL2SNks5raIFHgaJpZM4L3p2Z
.

@deads2k Log what i have from client:
node108 ~ # kubectl logs qa-data-t6tvk
2017/02/07 19:14:29 whoIAM error:  the server has asked for the client to provide credentials (get pods)
code:
func whoIAM() (string, error) {
var nodename string
hostname := os.Getenv("HOSTNAME")
config, err := rest.InClusterConfig()
if err != nil {
panic(err.Error())
}
cli, err := kubernetes.NewForConfig(config)
if err != nil {
	panic(err.Error())
}
pods, err := cli.CoreV1().Pods(NAMESPACE).List(v1.ListOptions{})
if err != nil {
	return "", err
}
for _, p := range pods.Items {
	if p.Name == hostname {
		nodename = p.Spec.NodeName
	}
}
return nodename, nil

}

Issue closed by adding static token to k8s cluster, and to config in code
config.BearerToken = "Token string"


[Design Proposal] New Chart Creation flow

This is a proposal for multiple changes to the current chart creation flow.  Please share any concerns or comments directly in this issue.
How to access the new chart flow
We recently added a universal “New” button to the Superset navigation bar:

This “New” button is available from every page in Superset.  Users enter the flow proposed here by selecting the “New… Chart” option.
Users can also access this chart creation flow via all existing modes:

From the SQL Lab Editor by clicking on the “Explore” button above the Results tab table
From the datasource list by clicking on a datasource name
Anytime they edit an existing chart

When a user selects the “New… Chart” option above, we propose this new chart creation experience...
New Chart Creation Flow (proposed)
First, the user must choose a datasource:

Chart creation and configuration flow is a 3-step wizard that expands and collapses as an accordion.
The wizard auto-advances when an item in step 1 or step 2 is clicked.
We display “# Charts” that use this datasource to help guide users.
The “Select datasource” banner includes an info icon that explains what a “datasource” is; copy TBD.
We add Sort and Filter capabilities at the top of this list.

Sort options:

# charts that use it (DEFAULT)
Datasource name
Type (e.g., Presto)
Owner

The filter searches:

Datasource name
Type (e.g., Presto)
Owner

The chart is automatically titled “- untitled” as a placeholder.
Users can go back and forth between any of the 3 steps once the datasource has been selected.
Chart area cues “Need datasource” until a datasource has been selected
If a user lands here from the SQL Editor or the Datasource list, we pre-select the datasource for them like we do in the current interface.  So they skip to step 2, with step 1 complete.

Then, the user selects a chart type.  This employs the same thumbnail grid we currently show for changing vis type.

We’re suggesting here that “Line Chart” be the default selection, rather than a null selection.  This should be behind a feature flag or a config for orgs to control.
Superset will automatically configure the chart to show some valid data by default; in this example it has selected the first time series value available in the datasource (COUNT(experiment) by experiment_start) and updates the title accordingly (if not already named).
If we default to any particular type (as suggested to use “Line Chart” above), this second step be skipped/”completed” by default and the user will jump to step 3.
Notes on previous steps: Now that datasource has been selected, the icons for viewing datasource configuration (eyeball icon - suggestion is to update this icon) and accessing the datasource in SQL Lab (beaker icon - keep existing icon) are viewable in the datasource selection banner:

The CTA in the datasource section is “Configure” rather than “Edit” because the datasource cannot currently be changed (We’re actively discussing bringing back this functionality, but it is not decided yet).
Step 3 is to configure the chart using all the options we currently have in the Superset sidebar:

The previous screens detail the flow for when a user creates a new chart.  When users edit an existing chart, these same changes apply there as well, but the user is brought directly into step 3 of the proposed wizard since steps 1 and 2 are already complete.
If the current configuration is sufficient to produce a working chart (that is, one that actually renders a chart rather than an error), this is the “Success” state:

If, however, the state contains an error, we surface it to the accordion header like this:

How to move forward
Lyft is proposing these changes as a result of research and many iterations with multiple teams.  Airbnb (cc @elibrumbaugh) will further iterate if needed, but at the time of this proposal, the general consensus is that this is an improvement on the current UX for chart creation, so we would like to enable development of this ASAP.

Hi, thanks for creating this design proposal. I recently worked on the datasource control, and have a few comments about that section of the designs. We recently brought back the ability to change datasources from the explore view (https://github.com/apache/incubator-superset/pull/6816), it's been an important feature for users and one we'd like to keep around. We also tried to move away from using icons to avoid having a number of icons when there are lot of actions (I don't have a super strong opinion about this but just thought I'd note it).
@xtinec also had a PR to bring back the + metadata button next to the datasource control (not sure if this is something they still need to keep https://github.com/apache/incubator-superset/pull/6911).
We also have some pretty long table names, so something short like def.fact_dags fits into the space between "Select datasource" and the icons, but many of our datasource names are longer and showing more of the table name is important. I can get more specific about this if it's helpful.

Hi @michellethomas Thanks for bringing up these issues.  I did these designs assuming that we did not have the ability to change datasources from the explore view, because at the time it hadn't been merged.  I agree that it's important and I understand why you want to keep it around.
What do you think about doing this instead of what's mocked up here?

keep the datasource+dropdown visible when the "Select datasource" section is expanded
keep the same dropdown options you implemented
remove the icons from the section header that I proposed above; these actions are redundant with the dropdown options
for long names, we allow them to wrap to a second line if needed (making the header for the section a bit taller in those cases)

I could shed a tear for how long I've wanted to see a new button / creation flow.

The space between sort by and search is a bit large. I suggest lengthening sort by a bit and then allowing search to fill in the rest of the gap. It would be great if it matched how we do this on the dashboard editor pane > charts section.
The need datasource notice in the middle of the canvas could use a little more visual hierarchy. Right now it looks slightly like a disabled button. Maybe something happens when you click on it? Focuses the user on section 1.
The hover state highlight will be a neutral color right? Right now it looks like a Lyft specific color?
Can we get rid of the "-" before untitled? Maybe say Untitled to promote human readable titles.
Love the thoughtful move to step 2 if coming from SQL Lab!
Under select a chat type could we add sort by and search? Sort by popularity. You're kind of doing this already with the order roughly I think?
In place of sort by add a dropdown for selecting the goal of the vis such as comparison and apply a different visual treatment to the types that aren't ideal for comparison. It wouldn't be too hard for us to all align on groupings of the visualizations.
For eyeball and beaker icons. The icons in Superset today are pretty bad. I would learn on textual buttons in place of icons when/if possible.
Between step 1 and 3 the styles look similar but appear to me as a little different. To reduce visual fragmentation can we leverage the existing styles as much as possible? Or plan on updating the step 3 styles to match?
I wonder if the brand green color would work better for the 1, 2, 3 step headers? If we want to adopt the dark headers we should replace it throughout the UI. I'm a little worried the grey isn't as discoverable or communicative of current/active step.
Re: "If, however, the state contains an error, we surface it to the accordion header like this" Why aren't we applying a disabled color to the section and throwing an error message in the notification banner?

This is awesome work Anita! Thank you so much for pushing this forward!

thanks @dorq for the designs!
@kristw and I just looked it over more thoroughly and our biggest comment is the top-level Data / Query split. we think this probably should be updated from bing a container for the 3 steps, and instead be pushed into the step 3 since it only affects the configuration of the chart. otherwise overall it looks good!

@williaster @kristw Apologies for the delay in responding to your last comment:

...our biggest comment is the top-level Data / Query split. we think this probably should be updated from bing a container for the 3 steps, and instead be pushed into the step 3 since it only affects the configuration of the chart. otherwise overall it looks good!

Can you clarify this a bit for me?  I don't understand what you're suggesting here.

@dorq sure.
Basically it does not make sense for this set of tabs (Data<>Visual Properties) to exist outside of the 1/2/3 flow. It only makes sense in the context of step 3, and therefore we think it should be removed from containing steps 1/2/3, and instead be moved inside step 3 where it's relevant. Make sense?


Bugfix/home page typo

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: DracheDarkDraco sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


[Usage] Can I do GPTQ with FP8 KV cache scheme?

I want to quantize the KV cache to FP8 E4M3 on top of GPTQ. Is it possible to do it with llm-compressor?

@mgoin @horheynm - could you provide an example of this?

Hi @CharlesRiggins
Thank you for using llm-compressor. We are currently working on this feature this sprint! You will be able to do this very shortly, please give us couple days and we will get back with example script for you to try out!

@horheynm do we have an update on the status for this?


Added default sequence type

The current syntax should allow one to create syntax without declaring it's type, yet if you try the following:
CREATE SEQUENCE idseq

an exception will be thrown (NPE specifically).
This fixes it by using a default sequence type (cached).
I used cached as the default sequence type since it's the one that may result in better performance.

Thanks!


Is there possible way to import the issues faster

Hello,
I had around 2k items to migrate from Jira to Azure Devops. It took some 5 hours to export and took some 30 hours import to Azure Devops which is considerably slower.
Is there a way I can tune up import process to make it faster. Like taking only the later revisions? Are there any settings in configuration file.
Thanks,
Prashanth

Yep, speed is also a pain point for us. With https://github.com/solidify/jira-azuredevops-migrator/issues/102 in place one could run processes in parallel for different filter queries.

Hmm, we'll have to look into this, the baselie is ~2s/exported issue and <1s(/imported work item. We should definately ba able to add an option to only migrate the latest version (or shallow history).

@prashanthbv12 I've checked traces and in average we process items at 1-2s/item. Throttling in either system may kick in and reduce the number of api calls allowed which may result in slower migrations. If you keep seeing slowness then share the session id from the log and we'll try to analyze that run. Adding the suggestion regarding option to specify the history depth to the backlog.

@prashanthbv12 I've added your suggestion to have an option reduce the history depth to the backlog. Will close this now but feel free to reopen if you keep seeing slow migrations.

Thank you
On Fri, 22 Nov 2019 at 12:35 AM, Mathias Olausson<EMAIL_ADDRESS>wrote:

@prashanthbv12 https://github.com/prashanthbv12 I've added your
suggestion to have an option reduce the history depth to the backlog. Will
close this now but feel free to reopen if you keep seeing slow migrations.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/solidify/jira-azuredevops-migrator/issues/110?email_source=notifications&email_token=AK2HROR365UNY4N5YIG244DQU3LWPA5CNFSM4JGFEGIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE3J2GQ#issuecomment-557227290,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AK2HROSU6JDYQFEP757CURDQU3LWPANCNFSM4JGFEGIA
.

--
Thanks,
Prashanth
Hand Phone-9844730107
<EMAIL_ADDRESS>

@MOlausson For me the average time it takes to import a single WI is 12 seconds.
from the import log -
[I][15:32:46] Import complete. Imported 598 items, 11648 revisions (65 errors, 604 warnings) in 02:00:28.
Is there something you or I can do to speed it up?


Close to tray [Enhance]

It is possible to add an option to close the application to systray?

No, GTK4 doesn't have support for tray indicators. The only possible option is to run app in the background all the time, but it is not needed until I add functionality to send notification when Tasks due time is reached. Something like a timer app, that you can close, but it is still running the timer you set.

Ok, my bad, not very clear from my part.
Basicaly support libappindicator https://extensions.gnome.org/extension/615/appindicator-support/ in gnome-shell for example

What I seek is the possibility to click an icon and the application opens and show me my tasks, right now I must click several times to open or search the application, yes in gnome-shell I have the dock that if the application is running is one click, but then again will switch to the workspace that the application was open, and I don't want that

In GNOME 45 there is background apps menu that you can open background apps with a click now

Maybe it will be improved in the future, but for now it is all there is

I'll add option for running app in the background in the next major release

This feature would be so desirable.
I tried comparing this app with Blender, it took almost as long time to open (Blender is 1.9 seconds, Errands took 1.8 seconds). Blender installed from system package manager, Errands installed from compiling the source.
I find this loading time is unacceptable, some apps like Blender get away with this by drawing the window frame first (at 1.2 seconds). Everytime I open Errands, I'm not sure whether I did open it or not.
I'm not sure if the loading speed can be improved so I leave it as a comment here instead of creating a new issue.

@brainwo I drastically improved perfomance in new version. Now it opens almost immediately, even with hundreds of tasks.

Seems like the AUR package is outdated, thanks for responding

@brainwo I didn't released new version yet :) I think in the end of this week.

Added in 46.0

Currently with "Run in Background" toggled off, Errands will still run at login and recreate the autostart file if it's removed. Is it possible for the toggle to also disable the auto start?

@Klaaktu I've just added setting for disabling autostart in 1a9a2c8cbb52ebd0d1ff5457ae9013dd43083fdc. Will be in the next update ;)


Remove gflags from dependency

As a follow-up of #24653, this PR removed gflags dependency from gRPC because it's replaced by absl::flag.
This PR doesn't include changes on docker images for quick iteration and they will be updated once this PR got merged.

Close in favor of #24690


AD Cleanup: Use a temporary accumulation inst such as IRAccumulate instead of explicitly loading, adding and storing differential values in reverse mode

We currently accumulate derivatives in a somewhat explicit manner by loading the current differential value, adding the new derivative contribution and then storing this back.
This makes our code fairly messy, and impedes potential optimizations, since accumulation instructions (i.e. +=) can be reordered, but standard loads and stores can't.
We can simply lower these instructions into standard load/add/store instructions after optimizations are performed.
Further, this allows Slang to explicitly emit accumulate instructions on targets that support it (for further downstream optimizations).
Note: IRAccumulate can also have a corresponding IRConsume which would read the derivative and write back a 0. This wouldn't be too helpful other than code clarity, since they can't be reordered. However subsequent consume instructions to the same variable/address can be removed as an optimization (though this is likely to occur anyway with standard loads/stores)

This is a good idea and it will keep our IR more compact and this is good for compiler perf as well.


[BUG]: Only iOS - CPU Usage goes beyond 100% in background mode

Version
6.0.0-beta.8
What platforms are you having the problem on?
iOS
Architecture
Old architecture
What happened?
As seen in some of the threads people are affected by other library with high CPU usage, but not in my case. I turned off all libraries in the screen but the moment the app goes to background while playing Audio the CPU spikes beyond 100%, interestingly when put false to following props
playInBackground={false}
playWhenInactive={false}
and send the app to background CPU usage become 0, so it is definitely the player not other libraries. Following is my player code, I am changing currentTrack onEnd manually as I have multiple Tracks to be played for over a period of time continuously, noticeably the scenario on Android device is opposite, on Foreground it has high cpu, and in background very low, while on iOS in foreground the CPU usage are nominal, spike is only in background.
<Video
  audioOnly={true}
  style={{opacity: 0.0}}
  source={currentTrack ? {uri: currentTrack.url} : null}
  onError={e => console.log('Error ', e)}
  ref={ref => {
    this.player = ref;
  }}
  controls={false}
  muted={false}
  allowsExternalPlayback={false}
  disableFocus={true}
  repeat={false}
  onEnd={() => {
    this.onVideoEnd();
  }}
  paused={this.state.paused}
  playInBackground={true}
  playWhenInactive={true}
  debug={{
    enable: true,
    thread: true,
  }}
  progressUpdateInterval={
    this.state.appState === 'background' ? 9999999 : 1000.0
  }
  onPlaybackStateChanged={this.onPlaybackStateChanged}
  ignoreSilentSwitch={'ignore'}
  onProgress={({currentTime, playableDuration, seekableDuration}) => {
   let progress = currentTime / seekableDuration;
    let progressPerPart = 1.0 / tracks.length;
    let partProgress = progress * progressPerPart;
    let actualProgress =
      partProgress + progressPerPart * currentTrackIndex;
    let shortProgress = actualProgress.toFixed(2);
    actualProgress = actualProgress.toFixed(3);

    if (
      actualProgress > 0 &&
      actualProgress > this.state.lastprogress
    ) {
      this.setState({
        progress: parseFloat(actualProgress),
        lastprogress: actualProgress,
      });

    } else {
      this.setState({progress: parseFloat(actualProgress)});
    }

  }}
/>

Reproduction
repository link
Reproduction
Step to reproduce this bug are: Simply put multiple tracks and play them in Audio mode, turn on profiler on Xcode while connecting the physical device, send the app to background mode, cpu will spike up.

I tried to reproduce the issue, but unfortunately, I don't see similar behavior...
Did you try on 6.0.0-RC.0 ?
Is it possible to have a very basic sample to reproduce the issue please ?

no feedback since 1 month, let's close

i have the same problem...


warnings with ruby 2.7.2

A lot of warning messages are messing up the terminal.
./rtfm:114: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:153: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:155: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:225: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:226: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:227: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:228: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:241: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:267: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:268: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:392: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:399: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:400: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:401: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:405: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:407: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:408: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:409: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:413: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:415: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:416: warning: rb_safe_level will be removed in Ruby 3.0
./rtfm:79: warning: rb_safe_level will be removed in Ruby 3.0

ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux-gnu]

Check now

Still the same. :-<

Hmm... Try adding this to your .bashrc or .zshrc:
export RUBYOPT='-W:no-deprecated -W:no-experimental'

Ha! I finally remembered how I solved that issue for myself a while back when I played around with the curses libraries in Ruby. Do a gem install curses (gets v 1.3.2) instead of installing via apt install ruby-curses (gets v. 1.2.4-1build1 on Ubuntu 20.04).

Ok, i made a package from v1.3.2 and the warning has gone.


Allow Past Sponsors to Show

Describe the bug
I want to be able to display all past and present sponsors.

Reproduction Steps

Logs

Workflow

Additional Comments

Part of 1.4.0 via the active-only input.


Add Verible to tools

Summary
This PR adds Verible to tools/.

Verible adds Bazel to the build prerequisites.
Verible requires C++17 and GCC 8 (devtoolset-8) seems immature for Verible.

GCC 9 (devtoolset-9) and 10 (devtoolset-10) works.

Bazel caches something in ~/.cache/bazel/ that may or may not affect build failures.
Building Verible is sensible to the version of GNU libc.

We can't use --//bazel:use_local_flex_bison unconditionally, as flex provided by CentOS 7 seems too old to use with a C++17 compiler.

Issue Fixed
Related to https://github.com/black-parrot/black-parrot/issues/301
Area
tools
Reasoning (outdated, confusing, verbose, etc.)
We can use Verible to lint and format the code on developers' machines.
Additional Changes Required (if any)

Add configuration files suitable for BSG projects
Set up a GitHub Action to suggest changes on PRs based on the results of linting and formatting

Analysis
No impact on functionalities. It will improve the productivity of developers by nitpicking on coding style automatically.
Verification
None at this moment.
Additional Context
N/A

It would be helpful to write up an example BSG configuration file / tutorial on how to configure this for us.
The GitHub action is nice, but being able to easily run locally is important. Can you add a makefile for it in the vein of other tools in bp_common/syn/*?

Thank you for reviewing!

It would be helpful to write up an example BSG configuration file / tutorial on how to configure this for us.
The GitHub action is nice, but being able to easily run locally is important. Can you add a makefile for it in the vein of other tools in bp_common/syn/*?

Yes, I will add configuration files and Makefile.verible as part of this PR. GitHub Action will become a separate one.

Workarounds to macros will be needed. See https://github.com/black-parrot/black-parrot/issues/301#issuecomment-1047633797 for instance.

I would pause this attempt at this moment and wait for advancement in the FOSS SystemVerilog tooling ecosystem.
See also: https://github.com/black-parrot/black-parrot/issues/301#issuecomment-1050705848


SAK-48821 Assignments-Rubrics: TA is unable to see/grade rubric in assignments

JIRA: https://sakaiproject.atlassian.net/browse/SAK-48821

@adrianfish That's a good question! Initially, I considered assigning the value in the way you suggested, but I encountered a problem due to the use of sessionManager in this predicate:
isCreator = tira -> tira.getCreatorId().equalsIgnoreCase(sessionManager.getCurrentSessionUserId());

Since sessionManager is required in this predicate, it cannot be directly assigned at the point of declaration.
We can assign values to canEdit and canEvaluate without any issues, but I would prefer to put them together.

that makes total sense. sessionManager is wired already when in the init method.


Document CVE Scanning

Issue: https://github.com/rancher/rancher/issues/29893
Point of contact: Ricky

Closing as duplicate of https://github.com/rancher/docs/issues/3138


Fix CI for Julia 1.0

Earliest supported version is Julia 1.0, but the specification of test dependencies was wrong for such an early version. Fix that so that CI properly runs on a wide span of versions.

Codecov Report

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

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   99.44%
=========================================
  Files             ?        1
  Lines             ?      181
  Branches          ?        0
=========================================
  Hits              ?      180
  Misses            ?        1
  Partials          ?        0

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


Add checkpoint sharding unit tests

Requires #2547
Adds unit tests to check creation and loading of sharded checkpoint for BLOOM, OPT, GPT-J, and GPT-NEO models. Tests with and without meta-tensor using fp16 and int8.
@RezaYazdaniAminabadi

LGTM :)


xDebug v3 is being installed on workspace

Description:
xDebug v3 is being installed on workspace instances but has xDebug v2 ini files baked into the process.
Expected Behavior:
Right now:
That nothing should have changed since before v3 launched, and the latest v2 would be installed.
Later:
That v3 is an installable option, with appropriate ini files.
Context information:
Output of git rev-parse HEAD
6221aaf5f0ca671e12b4cc8229ff5dcb311add94

Steps to reproduce the issue:

Clone the latest laradock
Change the "WORKSPACE_INSTALL_XDEBUG" env variable to true.
docker-compose up -d workspace
docker-compose exec workspace
php -v
Check output to see that xDebug v3.0.1 (true today) is installed.

I've tested a solution to this issue on PHP 7.2, 7.3 and 7.4. Workspace is slow to build so I haven't confirmed earlier versions as yet, I'll aim to create a PR when I have.
In the "workspace/Dockerfile" you can replace this section:
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
    # Load the xdebug extension only with phpunit commands
    apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \
    sed -i 's/^;//g' /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini \
;fi

Instead use a block largely taken from the php-fpm build:
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
  # Install the xdebug extension
  if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
    pecl install xdebug-2.5.5; \
  else \
    if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
      pecl install xdebug-2.9.0; \
    else \
      if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") = "1" ]; then \
        pecl install xdebug-2.9.8; \
      else \
        if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \
          pecl install xdebug-2.9.8; \
        else \
          #pecl install xdebug; \
          echo "xDebug 3 required, not supported." \
        fi \
      fi \
    fi \
  fi && \
  echo "zend_extension=xdebug.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini \
;fi

I have checked this and confirmed that it works on all currently supported versions (5.6 - 7.4). I will make a PR for this.


Automate - Cloud Retirement - Add google specific retirement states.

The cloud retirement state machine has vendor specific entries for pre_retirement and check_pre_retirement.  Since google is a newer provider, there weren't google specific schema entries for retirement which meant that google instances would not power off the instance and not check to ensure the instance is powered off before continuing the state machine with a powered on instance.  This wouldn't be an issue if we provisioned the instance because retirement would remove the instance from the provider.
https://bugzilla.redhat.com/show_bug.cgi?id=1364894

@billfitzgerald0120 Can you run a test for google retirement?

@tinaafitz @mkanoor
I tested this and it looks good.


Error creating Connector: Failed to transition connector FilePulseMain to state STARTED

I am getting the following error when I try to create a File Pulse connector:
org.sourcelab.kafka.connect.apiclient.rest.exceptions.InvalidRequestException: Failed to transition connector FilePulseMain to state STARTED
	at org.sourcelab.kafka.connect.apiclient.rest.exceptions.InvalidRequestException.factory(InvalidRequestException.java:74)
	at org.sourcelab.kafka.connect.apiclient.KafkaConnectClient.submitRequest(KafkaConnectClient.java:398)
	at org.sourcelab.kafka.connect.apiclient.KafkaConnectClient.addConnector(KafkaConnectClient.java:238)
	at io.conduktor.connect.service.KafkaConnectService$createConnector$2.invokeSuspend(KafkaConnectService.kt:160)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

I am using FilePulse version 2.4.1
Java version: openjdk version "11.0.13"
My connector configurations are as follows:
{
  "name" : "FilePulseMain",
  "config" : {
    "connector.class" : "io.streamthoughts.kafka.connect.filepulse.source.FilePulseSourceConnector",
    "filters" : "Drop",
    "filters.Drop.if" : "{{ matches($.root.data, '(Hi|Hello|World)') }}",
    "filters.Drop.invert" : "true",
    "filters.Drop.type" : "io.streamthoughts.kafka.connect.filepulse.filter.DropFilter",
    "filters.Exclude.fields" : "message",
    "filters.Exclude.type" : "io.streamthoughts.kafka.connect.filepulse.filter.ExcludeFilter",
    "filters.JsonFilter.source" : "message",
    "filters.JsonFilter.target" : "payload",
    "filters.JsonFilter.type" : "io.streamthoughts.kafka.connect.filepulse.filter.JSONFilter",
    "fs.cleanup.policy.class" : "io.streamthoughts.kafka.connect.filepulse.fs.clean.LogCleanupPolicy",
    "fs.listing.class" : "io.streamthoughts.kafka.connect.filepulse.fs.LocalFSDirectoryListing",
    "fs.scan.directory.path" : "/my/filepath",
    "header.converter" : "org.apache.kafka.connect.storage.StringConverter",
    "internal.kafka.reporter.bootstrap.servers" : "mylocalhost:9092",
    "key.converter" : "org.apache.kafka.connect.storage.StringConverter",
    "name" : "FilePulseMain",
    "offset.strategy" : "name",
    "read.max.wait.ms" : "120000",
    "tasks.reader.class" : "io.streamthoughts.kafka.connect.filepulse.fs.reader.LocalRowFileInputReader",
    "topic" : "kafka-topic",
    "value.converter" : "org.apache.kafka.connect.json.JsonConverter"
  }
}

I had similar configuration with FilePulse version 1.6.
With the newer version of FilePulse, I wonder if I am missing something. I would appreciate any guidance on this to solve this issue.
Thank you in advance.

Hi @dmarupov,
Some connector's config properties has changed since 2.x version.

Replace internal.kafka.reporter.bootstrap.servers with  tasks.file.status.storage.bootstrap.servers
Replace offset.strategy with offset.attributes.string

This should be OK after that.

Hi @fhussonnois,
The suggestion you made fix the issue for us. So this has been resolved.
Thank you again for your prompt response.


Add SSL support for built-in WSGIRefServer

Server adapters are quick-and-simple shortcuts to get a server up and running without any configuration. As soon as you need to configure the back-end, you should no longer use the adapters. They are not flexible enough and not meant to be used in that way.

I didn't realise this. But current SSL support is inconsistent: It's provided only for CherryPy, and isn't using the latest CherryPy API (see #685). To implement SSL using WSGIRef without a server adapter is basically just copying and pasting the existing server adapter followed by a call to ssl.wrap_socket.
How about a pull request where certain server adapters had a method to just get the server (without blocking in serve_forever())? This way instead of having to do the whole server from scratch, it may be possible to do something like
s = WSGIRefServer.get_server()
s.socket = ssl.wrap_socket(s.socket, ...)
s.serve_forever()

Would this be worth spending time on?


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1789

Questions ?
Please refer to the Backport tool documentation


ASAN: Debugger tests commonly fail to free memory

The debugger tests almost all fail when run in ASAN due to not properly freeing memory. The affected test directories have been marked as exclude_sanitize_address for now in PR #2730 to allow ASAN CI to be enabled. These directories are:

Debugger
DebuggerCommon

In addition to the entire Debugger and DebuggerCommon directories, it appears that the same issue affects the following individual tests:

wasm/debugger.js
wasm/debugger.js (-maic:1)
wasm/wasmcctx.js


Update model:core to 1.2.0

Updates com.softwaremill.sttp.model:core from 1.2.0-RC12 to 1.2.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.sttp.model", artifactId = "core" } ]

labels: library-update, semver-pre-release

Updated sttp-client3 to 3.0.0

Updated sttp-client3 to 3.0.0


disable SpaceInsideParens and SpaceInsideBrackets

Arguing here that this allows the programmer to make code which is more
readable to humans through the use of whitespace.
With this, I can see the parens are balanced at a glance:
if ( status = FFI_Yajl.yajl_gen_number(yajl_gen, str, str.bytesize) ) != 0

This takes me longer to visually count the open and closing parens and
see that they're balanced:
if (status = FFI_Yajl.yajl_gen_number(yajl_gen, str, str.bytesize)) != 0

In fact I think if you've got any one-liner like this with nested parens
that the outer nesting level should have additional whitespace for
better readability.

@fnichol pingles


Customizing URL and Method of dynamic component generation through environmental variables

Signed-off-by: ashish<EMAIL_ADDRESS>Description
This PR fixes #291
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@Revolyssup will you adjoin a meshery/docs update to this? https://docs.meshery.io/concepts/architecture/adapters#adapter-faqs

Is this something that we should be defining in the Meshery Adapter Library, understanding that all adapters should have this capability?

@Revolyssup will you adjoin a meshery/docs update to this? https://docs.meshery.io/concepts/architecture/adapters#adapter-faqs

Let me know if you need help...

There's a failed test to look after here.

There's a failed test to look after here.

https://github.com/meshery/meshery-istio/issues/278 , this issue is causing all PR's to fail that test

Is this something that we should be defining in the Meshery Adapter Library, understanding that all adapters should have this capability?

No i dont think so

@Revolyssup will you adjoin a meshery/docs update to this? https://docs.meshery.io/concepts/architecture/adapters#adapter-faqs

This behaviour is not pushed in all adapters, for now I am keeping track of this task personally and after all adaptors have this customizable url feature, It will take 2 minutes to write that onto docs. Does that sound good to you?


Add it for keyless

make this pr just to run integrationTest for keyless to avoid too much commit in formal pr.
this pr shouldn't be merged!

/azp run java - spring - tests

/azp run java - spring - tests

/azp run java - spring - tests

close this pr because the pipeline error have already find, because zulu-azure-jdk support custom private key but openjdk not, we need to support openjdk


Cloud resources

Unclear (I'd guess wrong) statement in the text:
"If you don’t use proxy servers, you must also include the "," delimiter just before the "|"."
Followed by an example without proxy NOT using the comma:
Value format without proxy:
contoso.sharepoint.com|contoso.visualstudio.com

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c1ad3f92-24de-5eb5-8454-c72d85737183
Version Independent ID: 900125eb-31ea-faf3-ac30-7c3d7b30f611
Content: Create a Windows Information Protection (WIP) policy with MDM using the Azure portal for Microsoft Intune (Windows 10) - Microsoft 365 Security
Content Source: windows/security/information-protection/windows-information-protection/create-wip-policy-using-intune-azure.md
Product: w10
Technology: windows
GitHub Login: @DulceMontemayor
Microsoft Alias: dansimp

@Dansimp - Can you please share your input here. I couldn't get any exact information for the same.
@velden - If there is any information that you have and needs to be added, please let me know so that I can update the document.
Thanks.
Imran

Fixed via #8087


Sounds have different volumes

need to fix those all sound clips

implemented separately in #9 #51 #53

also refined with BedrockDev/Batch-Render-All-Events#2


Metadata handling

This branch implements this trello ticket  to enable reading and writing the global parameters of data structures to parquet files.
It introduces a new module that holds the parameters of data structures as pydantic classes (file_parameter_models.py). This enables to handle these parameters together and define default values in a single place. At the moment, I only implemented this functionality for contacts as fragments don't have global parameters and the pixel file format is still to be done.

Not needed anymore as this is handled now by the unified fileformat for contacts and pixels in https://github.com/gerlichlab/spoc/pull/6


How can i get table  heading and Data

x('https://en.wikipedia.org/wiki/List_of_Prime_Ministers_of_India', {
title: 'title',
items: x('.wikitable tr', [{
title: 'th'
}])
})(function(err, obj) {
console.log(obj);
})
Current Output :
{ title: 'List of Prime Ministers of India - Wikipedia',                                                                                items:                                                                                [ { title: '№\n' },                                                                                { title: '1\n' },                                                                                { title: '–\n' },                                                                                { title: '2\n' },                                                                                { title: '–\n' },                                                                                { title: '3\n' },                                                                                { title: '4\n' },                                                                                { title: '5\n' },                                                                                { title: '(3)\n' },                                                                                { title: '6\n' },                                                                                { title: '7\n' },                                                                                { title: '8\n' },                                                                                { title: '9\n' },                                                                                { title: '10\n' },                                                                                { title: '11\n' },                                                                                { title: '12\n' },                                                                                { title: '(10)\n' },                                                                                { title: '13\n' },                                                                                { title: '14\n' } ] }

You have a couple issues...
You can get all the th contents by putting brackets around the ‘th’.
You’re also looping through every row. Fix that by omitting the brackets around the data object in the items call.
Creating objects with the appropriate keys and values based on the headers is slightly more complex, but not much.
(You’ve probably solved this or given up, but hopefully this will help others.)


Fix hangs on SIGTERM.

This fixes #1461, where two bugs prevent main from existing on SIGTERM.
The first is a blocking receiving from a cancel chanel which never have a, cancelStateUpdateChan. It seems closing the chanel should be all the is needed to signal the watching goroutines to exit.
The other is the signal hander never exiting an infinite for loop. The sigFunc is called in an errorGroup which blocks exiting Serve and thus main. It looks like a refactor in #1382 removed an os.Exit(0), replacing it with a return breaks out of the loop.

[ ] read the CONTRIBUTING guidelines
[ ] raised a GitHub issue or discussed it on the projects chat beforehand
[ ] added unit tests
[ ] added integration tests
[ ] updated documentation if needed
[ ] updated CHANGELOG.md

Picking this up in #1492, added you as a co-author.


WFH Request > WFH request popup > Lack of error msg of Start Date & End Date inputted fields

Pre-condition
User logins successfully an is on the W2 homepage
Steps to reproduce the problem

Click on "WFH Request"  at the sidebar
Click on the "New task" button on the Tasks page
Let all inputted fields empty
Click on "Submit" button
Observe

Expected Result
Error msg for Start Date & End Date inputted fields should be also displayed
Actual Result

Lack of error msg of Start Date & End Date inputted fields
Just the error msg of Content textbox displays only

Screenshots

Error messages should display under each field
The first letter of every error message should be capitalized

Done


[BUG]: Fix all linting errors

Describe the bug
Linting errors caused by poor code style
To Reproduce the bug
Steps to reproduce the behavior:

Install all npm packages with npm install
Install eslint extension for editor
Run npm run lint
Bugs reveal themselves

Screenshots
If applicable, add screenshots to help explain your problem.
How do you intend to solve this bug?
By refactoring the codebase to allow for eslint applicable style
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Solved PR #360


Error: Returned error: Internal Error - . Please report a bug at https://github.com/aurora-is-near/aurora-relayer/issues

This only started to happen 2-3 days ago. I'm using WebSocketProvider("wss://testnet.aurora.dev") to make smart contract calls on Aurora Testnet. Recently, I keep getting:
Uncaught (in promise) Error: Error: Returned error: Internal Error - . Please report a bug at <https://github.com/aurora-is-near/aurora-relayer/issues>
    at utils.ts:294:1

Is there something wrong with the network? Is it related to the Ethereum merge?

I had the same problem with my contract getters which is called by hand with some arguments. But on page load, some getters with no arguments which is called by default get the right data from the contract.

Link to the contract

Hi @ctindogaru @vladikopl01
Are you still encountering this issue?

Hi @ctindogaru @vladikopl01
Are you still encountering this issue?

This problem seems to be resolved after 2-5 days. I think there were some troubles with the testnet, but now it should work. I deployed a smart contract a few days ago and it worked correctly.

Thx, please reopen if it will reoccur.


docs: Huge docs refactor

Coverage remained the same at 98.14% when pulling<PHONE_NUMBER>45e81622172ed2a3a907435a73f744 on docs-refactor into b6593b078d10c15841fda7c9111e0666072b284e on master.

Coverage remained the same at 98.14% when pulling 0c9afc6b76126fc4dee27063de37096541df86c8 on docs-refactor into b6593b078d10c15841fda7c9111e0666072b284e on master.


SAK-31889 escape the tool links similar to the page links

Please don't merge.  Need comments on the JIRA


Inconsistency with image preprocessing step for pretrained VGG-16

Hi all,
I'm a bit confused about the image preprocessing that is required in order to use the weights of the pretrained VGG-16 model in Keras. According to https://github.com/fchollet/keras/blob/master/keras/applications/imagenet_utils.py the main image preprocessing operation required is to subtract the mean color, as computed on the training dataset. This is in agreement with the original VGG paper from Simonyan.
But, in the following examples:
https://gist.github.com/fchollet/7eb39b44eb9e16e59632d25fb3119975
https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
there appears to be some scaling of the image to [0,1] from the original [0,255] range, but no subtraction of the mean color.
Which one is the correct preprocessing operation for pretrained VGG-16 in Keras?

I agree it would be helpful to know that appropriate preprocessing for using all of the pre-trained models in the applications. RGB vs BGR, centering and scaling, etc.

I reopen this issue because there is still confusion about this topic and a bit of clarification would be very helpful. Mostly when using bottleneck feature or when finetuning the pretrained VGG16 net.

Still no answer for  this issue ?? I'm trying to fine tune VGG16 using Keras and I'm curious about the preprocessing part as well.


Data race in go test -race

What did you do?
Ran go test -race
What did you expect to see?
clean tests
What did you see instead? Under which circumstances?
`prometheus/promql [ go test -race                                                                         paa * ]
ERRO[0000] parser panic: runtime error: index out of range
goroutine 15 [running]:
github.com/prometheus/prometheus/promql.(*evaluator).recover(0x0, 0xc42002b750)
/home/tristan/go/src/github.com/prometheus/prometheus/promql/engine.go:567 +0x115
panic(0x946b40, 0xc42000c140)
/usr/local/go/src/runtime/panic.go:458 +0x271
github.com/prometheus/prometheus/promql.TestRecoverEvaluatorRuntime(0xc420190540)
/home/tristan/go/src/github.com/prometheus/prometheus/promql/engine_test.go:200 +0x71
testing.tRunner(0xc420190540, 0xa21358)
/usr/local/go/src/testing/testing.go:610 +0xca
created by testing.(*T).Run
/usr/local/go/src/testing/testing.go:646 +0x530
source=engine.go:569
WARNING: DATA RACE
Read at 0x00c420181670 by goroutine 48:
github.com/prometheus/prometheus/promql.(*lexer).scanNumber()
/home/tristan/go/src/github.com/prometheus/prometheus/promql/lex.go:809 +0x48
github.com/prometheus/prometheus/promql.lexNumberOrDuration()
/home/tristan/go/src/github.com/prometheus/prometheus/promql/lex.go:788 +0x53
github.com/prometheus/prometheus/promql.(*lexer).run()
/home/tristan/go/src/github.com/prometheus/prometheus/promql/lex.go:442 +0x9a
Previous write at 0x00c420181670 by goroutine 42:
github.com/prometheus/prometheus/promql.TestLexer()
/home/tristan/go/src/github.com/prometheus/prometheus/promql/lex_test.go:442 +0x153
testing.tRunner()
/usr/local/go/src/testing/testing.go:610 +0xc9
Goroutine 48 (running) created at:
github.com/prometheus/prometheus/promql.lex()
/home/tristan/go/src/github.com/prometheus/prometheus/promql/lex.go:435 +0x120
github.com/prometheus/prometheus/promql.TestLexer()
/home/tristan/go/src/github.com/prometheus/prometheus/promql/lex_test.go:441 +0x139
testing.tRunner()
/usr/local/go/src/testing/testing.go:610 +0xc9
Goroutine 42 (running) created at:
testing.(*T).Run()
/usr/local/go/src/testing/testing.go:646 +0x52f
testing.RunTests.func1()
/usr/local/go/src/testing/testing.go:793 +0xb9
testing.tRunner()
/usr/local/go/src/testing/testing.go:610 +0xc9
testing.RunTests()
/usr/local/go/src/testing/testing.go:799 +0x4b5
testing.(*M).Run()
/usr/local/go/src/testing/testing.go:743 +0x12f
main.main()
github.com/prometheus/prometheus/promql/_test/_testmain.go:96 +0x1b4
ERRO[0000] parser panic: runtime error: index out of range
goroutine 298 [running]:
github.com/prometheus/prometheus/promql.(*parser).recover(0x0, 0xc42002b750)
/home/tristan/go/src/github.com/prometheus/prometheus/promql/parse.go:332 +0x115
panic(0x946b40, 0xc42000c140)
/usr/local/go/src/runtime/panic.go:458 +0x271
github.com/prometheus/prometheus/promql.TestRecoverParserRuntime(0xc4201edc80)
/home/tristan/go/src/github.com/prometheus/prometheus/promql/parse_test.go:1884 +0x71
testing.tRunner(0xc4201edc80, 0xa21370)
/usr/local/go/src/testing/testing.go:610 +0xca
created by testing.(*T).Run
/usr/local/go/src/testing/testing.go:646 +0x530
source=parse.go:334
`
Environment
go 1.7beta1

System information:

Linux 4.7.0-rc7-ARCH x86_64

Prometheus version:

98c0d335676d4c55cf2bfdec6c0808c4aae82341

Prometheus configuration file:

n/a (run from go test)

I've not tried on a more recent go version, or a more recent check out.

Fixed via #1925


[Solved] Mupx deploy remote mongodb problem

Hi
I am stuck for a week or so now in a meteor deployment. In the other apps I have running I had no problems to deploying them, but they all are in meteor < 1.3 and mup deploy did it well.
Now I have upgraded one of the apps to 1.3, as I needed some npm packages and am very happy with the result on local. The app uses an external mongodb hosted in mongolab, the same db other app (<1.3) uses (maybe that info helps) and that old versioned app can access perfectly.
Firstly, on deploying that new app 1.3 after creating the digitalocean droplet with Ubuntu I got some errors on mup deploy, so I reset the droplet and started using mupx deploy and I finally got no errors. The app is running well, but there's no connection to the remote mongodb, or at least, no data is being loaded from there.
I think all the server config is properly done, as it's said in the manual, and previously done with the old apps.
This is the json file
{
  // Server authentication info
  "servers": [
    {
      "host": myIP,
      "username": myuser,
      "password": mypass,
      // or pem file (ssh based authentication)
      //"pem": "~/.ssh/id_rsa"
      "env": {}
    }
  ],

  // Install MongoDB on the server. Does not destroy the local MongoDB on future setups
  "setupMongo": true,

  // Application name (no spaces).
  "appName": "meteor",

  // Location of app (local directory). This can reference '~' as the users home directory.
  // i.e., "app": mydirectory,
  // This is the same as the line below.
  "app": mydirectory,

  // Configure environment
  // ROOT_URL must be set to your correct domain (https or http)
  "env": {
    "ROOT_URL": myurl,
    "PORT": 80,
    "MONGO_URL": "mongodb://user:passwed@ds037415.mongolab.com:port/databasename"
  },

  // Meteor Up checks if the app comes online just after the deployment.
  // Before mup checks that, it will wait for the number of seconds configured below.
  "deployCheckWaitTime": 60,

  // show a progress bar while uploading.
  // Make it false when you deploy using a CI box.
  "enableUploadProgressBar": true
}

where, myuser, mypass, user, passwd etc are properly filled
I did a mupx logs -n 300 and this is what I get:
[aa.bb.cc.dd] sudo: unable to resolve host Reservas1.3
"Reservas1.3" is how I named the digitalocean droplet.
As I said, the app is running well, but not connecting to the remote mongodb
Thank you in advance for the help

I think I have a similar problem, also with Meteor 1.3.4. It install the mongodb docker on "mupx setup" although setupMongo is set to false.
After deployment the app can't connect to my mongodb (set with MONGO_URL env var). I assume it is using the local/docker db.

More things that I did, in case it's useful for somebody:
I got ssh access to the droplet console and tried to connect to the remote mongodb. Got an auth error with code 18. I did read somewhere that might be caused because the Mongo Shell was outdated, and upgraded the Mongo Shell in the ubuntu droplet following this topic
Afterwards I, at least, can connect to the remote database from the ssh terminal with no problems.
Next step is to set my remote mongodb as the default for this droplet, I guess it's a matter of changing a config file in the server but haven't tried yet, if somebody can say how to set that config, it will be very helpful

One thing that is clear for me is that mup/mupx does not work 100% properly with Meteor 1.3 and external mongodb. Still work to be done.

Hi!
Finally solved the issue. It was easier than expected. After changing a lot of stuff in the server config, creating and destroying droplets, it turns out that the solution was to set in the mupx config the setup mongo to false. Otherwise the app will connect to the local mongo instead of the remote one (regardless of the environment variables you may set)
So, for me, that worked. In previous versions of meteor with mup, I used to have the setup mongo field as true and my app appeared connected to the remote mongo anyway.

Great, This was so simple, thanks a ton @ridumai

i have same problem. but i had changed like @ridumai talk about. i haven't resovled that :(. anyone can help me :(


Game Crashing with Create Big Cannons

Game crashes on 1.18.2 every time and breaks the save when cannon mount is placed on assembled ship/ship is assembled with the mount on it.
Versions used:
Eureka 1.1.0-beta.8
Create Big Cannons 1.18.2-beta-0.5b
Create 0.5.0.i
Crash log attached
crash-2023-04-07_17.15.17-client.txt

Try to update big cannons to 0.5.1?


Extended Shortcut Backward Compatibility

Closes #1303
Sorry @Neverbirth :P

These are all the public signature changes that I missed in the last PR.