Appended elements not removed from the DOM when changing application states

I'm unsure where/why this error is happening and it may be unrelated to angular-redactor but I'm not sure where else to start.
When I'm in an application state that has redactor in the view and I navigate away from that state to a different part of the app, the redactor-toolbar-tooltip remains in the DOM. It's got a style attribute of 'display: none;' so it doesn't actually remain visible, but it persists nonetheless.
If I go back to that state with redactor in the view (or to any state with redactor for that matter) it sticks another set of redactor-toolbar-tooltips into the DOM.
So if the app isn't refreshed for sometime, there could a huge number of these tooltips still stuck in the DOM.
Here's an example:

Any idea why this might be happening?

Are you destroying redactor on view change? This should cleanup the DOM.
https://imperavi.com/redactor/docs/api/core/#api-destroy

Not manually no.
I was under the impression that this part of angular-redactor.js would destroy it if it was loaded again.
                    $timeout(function() {
                        editor = element.redactor(options);
                        ngModel.$render();
                        element.on('remove',function(){
                            element.off('remove');
                            element.redactor('core.destroy');
                        });
                    });


Allow shrinking to a single symbol in fragment selector (low priority)

It'd be nice to allow shrinking to a single symbol in the fragment selector, at least for symbols that aren't "parentheses-like".

If you select -> you only get the surrounding (... -> ....), it cannot be shrunk further.
If you select = or e. you again only get the surrounding expression; you can't shrink to 1 symbol.

Oddly, you can already get "just the symbol" when you click on "+" or "x." (infix functions).  That behavior is okay, it just seems oddly inconsistent & I don't understand the rule it's using. (I'd love to understand why.)
I think this is low priority right now, but if paste in the fragment selection bar or pretty mode are added this ability to shrink to one symbol would become even more useful. And while neither of those are high priority for me (compared to undo/redo or full unification), they would be nice someday. So I thought I'd create this issue now :-).

@david-a-wheeler I made changes to allow shrinking to a single symbol. This is available on dev. However, initial selection is not changed, it still will select a sequence of symbols in one case and only a single symbol in another case. The logic is as follows.
Mm-lamp tries to select what has meaning. Suppose we are clicking on the CC in |- 1 e. CC. Then only CC is selected because CC stands for the class of complex numbers, which may have meaning on its own and users may want to select only it. Mm-lamp understands this but looking at the corresponding syntax assertion. CC is placed instead of the B variable in the syntax assertion:

When clicking on e. the entire expression gets selected because e. doesn't have meaning on its own so I think users will not want to select only this symbol. So mm-lamp expands selection by one level to have something meaningful selected rightaway. Mm-lamp understands this by seeing that e. is a constant in the syntax assertion:

With the + operator, mm-lamp uses the same approach of checking the syntax assertion. But the + symbol is placed instead of the F variable, so mm-lamp "thinks" it may have a meaning on its own and selects only it:

Previously it was not possible to shrink selection to a single symbol. But with the last update it is possible now.

This is available in version 15 https://expln.github.io/lamp/v15/index.html

That's great!
While the syntax rules may not allow a single symbol, there are definitely cases where you want to copy a symbol onto another. E.g., replacing /\ with \/.


Morph rendering not working for CS2 models

Describe the bug
The chicken and player model eye lids should animate.
Source2Viewer_GSWJ4nT1ak.webm
Relevant log output or exception with stacktrace
No response
What game does this happen in
Counter-Strike 2
Reference file in a Source 2 game
characters/models/tm_leet/tm_leet_variantf.vmdl
Expected behavior
Animate eye lids (morph targets)
What version of VRF are you using? On what platform?
9.0

I looked into this a bit, morphs do work on these models, but they'd be controlled by bone constraints here (CBoneConstraintDotToMorph)


Test RealtimeInputFormat integrations with Presto/Spark/Hive

Moved to https://issues.apache.org/jira/browse/HUDI-68


Implement CTFontCreatePathForGlyph

Using DWrite to do the measure.

With our investment to move to D2D for CG, this task will boil down to calling IDWriteFontFace::GetGlyphRunOutline which will give us IDWriteGeometrySink objects that can be given to D2D to render or used to create CGPath objects that are backed by IDWriteGeometrySink
Until D2D is available, we need to map IDWriteGeometrySink to existing CGPath constructs. Will add more details here once I finish my investigation on this


Very slow compilation of gradient (esp. on CPU)

First of all, thanks for this great package! I'm trying to use it to build a tool for maximum likelihood fits in particle physics and it's a pleasure to work with.
I'm still somewhat undecided between JAX and Tensorflow, though... the issue I'm encountering with JAX is that the compilation times can become quite large. While compilation of the likelihood itself is reasonably fast (a few seconds), it's the compilation of the gradient that's really a killer (up to 10 minutes). Using Tensorflow tf.functions (without JITting) the evaluation itself is quite a bit slower, but the tracing of the gradient is faster.
In the end, I wouldn't mind a somewhat slower (less optimized) evaluation of the likelihood/gradient (even by an order of magnitude!) if it means gaining an order of magnitude in the compilation time, since in practice what the user does with those functions after compiling them would rarely take more than a few minutes.
What's also strange is that compilation is much faster for a GPU backend than for CPU (in the example below, 40s vs. 5 minutes). In practice, we would more often work on CPU than GPU (latency costs are usually too high on GPU for this kind of application, in particular since we still use non-JAX scipy.optimize minimization algorithms).
Here are links to a self-contained example:
colab on CPU
colab on GPU
I hope they are sufficiently self-explanatory...! I've tried to make them as short as possible while still retaining the computational complexity of the full package.
You'll note that there are two nested python for loops in the compiled function, that would be unrolled by JAX, but I most likely cannot avoid that in my tool to keep the freedom for user-supplied inputs. However, I'm not sure these are the culprit for the slow compiles, since the compilation of pred and nll is fast and unrolling also happens there...
I also attach an XLA dump for the CPU case.

I think this FAQ entry applies to your code example, "jit decorated function is very slow to compile":
https://jax.readthedocs.io/en/latest/faq.html#jit-decorated-function-is-very-slow-to-compile
Gradient calculations can be a good bit more complicated than forward calculations, which I guess could explain the compile time difference. For example, jax.make_jaxpr(nll)(x0, nObs) is 3943 lines vs 9725 lines for jax.make_jaxpr(nll_grad)(x0, nObs). Note that XLA compile time generally grows super-linearly in the size of the inputs.

Thanks for the report!
There's likely a lot of headroom for XLA:CPU to improve compile times, so we could forward this along to the XLA team as an example.
Another recourse is just to use jit on smaller subfunctions.
But ultimately we need to improve XLA:CPU compile times.

There are some XLA:CPU improvements in the longer-term pipeline that can probably speed up the XLA:CPU compile time to be on par with the XLA:GPU compile time (thanks for taking a look at this, @d0k !). But ultimately this kind of unrolling really exacerbates the issue:
@jit
def pred(x):
    yields = jnp.zeros(template.shape)
    for j in range(nProc):
        factors = jnp.ones(template.shape)
        for idxs,fn in fns:
            factors = fn(x[idxs]) * factors # Here the functions are all similar and known in advance, but in practice they are user-supplied and arbitrary
        p_yields = factors * (template+j) # In practice, the 'template' would be user-supplied and different for each j
        yields += p_yields
    return yields

You might consider removing jit from there (and nll_grad), and perhaps just jitting fns. That would certainly reduce the compile time, but likely at great cost to the execution time. Still, for the time being, that's probably the best way to trade off compile time and execution time!

Thanks a lot for taking a look!
I've tried to jit the subfunctions only and compilation time indeed reduces by a factor 2-10 (depending on the configuration) and scales more linearly with the parameters (e.g. nProc in the example linked), however the evaluation of nll becomes around 100x slower and nll_grad becomes 500-1000x slower, which is a little too much to swallow... It seems XLA is quite effective at optimizing things indeed!

Gradient calculations can be a good bit more complicated than forward calculations, which I guess could explain the compile time difference. For example, jax.make_jaxpr(nll)(x0, nObs) is 3943 lines vs 9725 lines for jax.make_jaxpr(nll_grad)(x0, nObs). Note that XLA compile time generally grows super-linearly in the size of the inputs.

I suppose there is no way to get XLA to be a bit less aggressive with its optimizations, to get a linear scaling with the program size instead of the quadratic scaling I observe as a function of nProc? (very naively, in the spirit of gcc's -O1, -O2, -O3)
In the sense that a "classical" compiler would compile files or libraries separately and finally link them together in an executable, would it ever be possible to compile sub-functions (as fn here) separately and "link" those when compiling pred, nll or nll_grad? This would not bring any optimizations (e.g. from fusing operations) but would avoid all the python overhead in the larger functions...
Getting back to my example, are the unrolled for loops really the only culprits for the large resulting gradient code, or are there other things that could/should be expressed differently? I'm thinking e.g. about those indexing/reshaping operations in pred and fn (sorry, reading the generated jaxpr is a little though for the average user!):
factors = fn(x[idxs]) * factors

x = x[x_idxs]
x = jnp.reshape(x, x_shape)

I have managed to express the function differently to avoid to avoid the explicit for loops, and compilation time is now reduced below 10 seconds for all practical cases :)
That required however being quite aggressive in padding the input arrays, so memory usage has become more of an issue... Is there any plan to support sparse tensors in the future?

Glad to hear you found a solution!

I suppose there is no way to get XLA to be a bit less aggressive with its optimizations, to get a linear scaling with the program size instead of the quadratic scaling I observe as a function of nProc?

There's not a robust way to do this that I know of, but I expect XLA:CPU to get improved in a lot of ways over the coming months, including faster compile times.

In the sense that a "classical" compiler would compile files separately and finally link them together in an executable or library, would it ever be possible to compile sub-functions (as fn here) separately and "link" those when compiling pred, nll or nll_grad?

This is a good idea, and an ongoing discussion topic we have with the XLA team. We don't have anything concrete here yet though.

Is there any plan to support sparse tensors in the future?

We have some experiments in the direction of sparse arrays, but nothing really concrete yet.
Since this particular issue seems to be sorted out, and since we have a lot of open issues, I'm going to close this thread for now. But please don't hesitate to open new issues!

Thanks again for the feedback!

@mattjj As of now, is there any way to get more fine-grained control over XLA compilation and the optimizations it performs, to avoid very long compile times for complicated functions? Are there any plans to add something like that?


Add support to search twitter lists

On the twitter search site (https://search.twitter.com) you can use syntax list:username/listname searchterm to limit your searchterm to a specific twitter list.
I'm not sure if this is possible via third party clients but it'd be an appreciated addition to the NetNewsWire twitter implementation if so.

Would love this. I think you just need to implement Twitters advanced search syntax. It could be a 5th Type option on the Add Twitter Feed dropdown (Timeline, Mentions, Screen Name, [Basic] Search).
Advanced Search syntax would also add the ability to only show tweets with embedded links or images, which would be particularly useful in this context.


Compilation time is too long

We must work to reduce the compilation time, both in Pinocchio and for downstream libraries.
Some ideas:

move code from .hxx to .cpp and compile them => this is bad if later using a template version of the scalar type (yet hard coded double)
carefully work on what is included, to let the user explicitly choose what he wants to include => this is good in principle, but not so brilliant in the present case. I believe that most of the code is already properly separated (more or less by modules). We may try to only compile the needed joints. Any idea of how to do so? I dont believe it possible.
We could think of a macro to deactivate the code (ifndef) in hxx files. We then could keep the code in .hxx files that would not be loaded in downstream header files but only in downstream .cpp files.
In addition, we could then also have trivial .cpp files that would simply include .hxx files for compilation in the pinocchio lib. In the perspective of having a header-only package (templated by scalar), we could pre-compile in pinocchio lib the scalar=double version of the code, that would not be re-compiled downstream, while letting the possibility to third party users to compile with another scalar type.
As suggest in #247 , we may want to break the python module in several .cpp files, each being compiled in a simpler .o file, while letting the possibility to parallelize the compilation with make -j8.

Partially solved by #286.

Another ideas to reduce compilation time, inspired by Eigen design:
Split the hxx in separated files and invert the inclusion order (hxx includes hpp, and not the contrary). Let say a user needs only to access to the frames of a Model. He only needs to have the definition of functions related to the frames. He would include a file (say "pinocchio/multibody/frame") that would include "definition_of_frame_related_method_of_model.hpp" which includes "frame.hpp" and "model.hpp".
This means "model.hxx" is split in several files.
I don't know if it is possible because of the variant...

The compilation have been improved for Python bindings.
Some remain works are still necessary, but they are no more a priority.

Bumping into the issue again. Now that pinocchio has grown, when I compile it, I see many things in the bindings which aren't interesting for me. Would it make sense to gather some of them into optional groups (when compiling from source only, not for binary packages) ?
For instance, I never use the derivatives.


pass args for relay module

When using the 'pull' and 'push' directives, it may be necessary to pass along the arguments that were sent when connecting to the app. For these cases, we've added a 'passArgs' parameter (0 / 1) that, when true, sets 'playPath' to ${name}?${args} (unless 'playPath' was explicitly set).
May address #487

Any reason this never got merged?


Websdk 2

Annotations and minor code changes to allow for warning-free builds

@yntema Please take a look

@jsaleigh looks good to me!

👍

👍


Remove IntelliSense support claim from README.md

According to this discussion this feature has been removed.

thanks.


Add projected volumes to psp for kube-proxy

How to categorize this PR?

/area networking
/kind bug
What this PR does / why we need it:
When running kube-proxy with allowPrivilegedContainers: false without setting a projected volume in the psp this leads to an error during the creation of the kube-proxy pods.
Error creating: pods "kube-proxy-work-vx.x.x-" is forbidden: unable to validate against any pod security policy: [spec.securityContext.hostNetwork: Invalid value: true: Host network is not allowed to be used spec.volumes[2]: Invalid value: "hostPath": hostPath volumes are not allowed to be used spec.volumes[3]: Invalid value: "hostPath": hostPath volumes are not allowed to be used spec.volumes[4]: Invalid value: "hostPath": hostPath volumes are not allowed to be used spec.volumes[6]: Invalid value: "hostPath": hostPath volumes are not allowed to be used spec.volumes[7]: Invalid value: "hostPath": hostPath volumes are not allowed to be used spec.initContainers[0].securityContext.privileged: Invalid value: true: Privileged containers are not allowed spec.containers[0].securityContext.privileged: Invalid value: true: Privileged containers are not allowed spec.containers[0].hostPort: Invalid value: 10249: Host port 10249 is not allowed to be used. Allowed ports: [] spec.containers[1].securityContext.capabilities.add: Invalid value: "NET_ADMIN": capability may not be added spec.volumes[9]: Invalid value: "projected": projected volumes are not allowed to be used]

Special notes for your reviewer:
Release note:

none

/approve We just had this issue during a DoD session

Sorry, for the delay. I am having some issues with my local setup, will get back ASAP.


affected/package: cgo

There appears to be an issue with the Golang GC when CGo is used with a "C++" application that uses a Go shared object.
go version go1.18 linux/amd64
It reproduces with previous releases, the very latest release has not been tried (the problem being investigated was observed in 1.17, which was updated to 1.18 along the way). It is possible this issue is related to https://github.com/golang/go/issues/19928 and a question was posted to that older report. This is a follow-up to that post after the issue was investigated further.
The build environment is:
GO111MODULE=""
GOARCH="amd64"
GOBIN="/home/defrain/legit3/ams/mediaserver/Golang/go/bin"
GOCACHE="/home/defrain/.cache/go-build"
GOENV="/home/defrain/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/defrain/legit3/ams/mediaserver/Golang/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/defrain/legit3/ams/mediaserver/Golang/go:/home/defrain/legit3/ams/mediaserver/Golang/src/libgo"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/defrain/legit3/ams/mediaserver/Golang/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/defrain/legit3/ams/mediaserver/Golang/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/defrain/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1959834666=/tmp/go-build -gno-record-gcc-switches"
The code uses CGo, two functions, to pass serialized messages buffers between "C++" <-> Go. The C++ application is the "main" which loads a Golang shared object, libso.so.  The "C++" code has a thread that sits on the OutgoingChannel and has other threads that post to the IncomingChannel.
I expect the code to run forever - and it does with GOGC=off until memory is exhausted.
[Switching to Thread 0x7fffb05f4700 (LWP 30894)]
runtime.raise () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/sys_linux_amd64.s:168
168	/home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/sys_linux_amd64.s: No such file or directory.
Missing separate debuginfos, use: debuginfo-install glibc-2.17-324.el7_9.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_6.x86_64 libcom_err-1.42.9-13.el7.x86_64 libgcc-4.8.5-44.el7.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-4.8.5-36.el7_6.2.x86_64 openssl-libs-1.0.2k-16.el7_6.1.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) bt
#0  runtime.raise () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/sys_linux_amd64.s:168
#1  0x00007fffe44188e5 in runtime.dieFromSignal (sig=6) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/signal_unix.go:852
#2  0x00007fffe4418b18 in runtime.crash () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/signal_unix.go:944
#3  0x00007fffe44035b1 in runtime.fatalthrow.func1 () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:1051
#4  0x00007fffe4403530 in runtime.fatalthrow () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:1044
#5  0x00007fffe44032f1 in runtime.throw (s=...) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:992
#6  0x00007fffe4426d36 in runtime.gentraceback (pc0=140737022891928, sp0=824634156680, lr0=, gp=, skip=0, pcbuf=0x0, max=2147483647, callback=
{void (runtime.stkframe *, void *, bool *)} 0x7fffb05f3d18, v=0x0, flags=0, ~r0=) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:254
#7  0x00007fffe44024ab in runtime.addOneOpenDeferFrame.func1 () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:600
#8  0x00007fffe4430b86 in runtime.systemstack () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/asm_amd64.s:469
#9  0x0000000000000000 in ?? ()
An alternative implementation that does not use CGo, but, instead uses UDP to exchange the buffer between C++ <-> Go, using the ReadUDP and WriteUDP, runs forever w/o issue.
The observed panic occurs in
runtime/traceback.go:254
where it finds an address, which appears to always be in "C++" memory space, it does not expect. Here is the frame (6) from GDB from a panic:
(gdb) frame 6
#6  0x00007fffe4426d36 in runtime.gentraceback (pc0=140737022891928, sp0=824634156680, lr0=, gp=, skip=0, pcbuf=0x0, max=2147483647, callback=
{void (runtime.stkframe *, void *, bool *)} 0x7fffb05f3d18, v=0x0, flags=0, ~r0=) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:254
254	/home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go: No such file or directory.
(gdb) i args
pc0 =<PHONE_NUMBER>91928
sp0 =<PHONE_NUMBER>80
lr0 =
gp =
skip = 0
pcbuf = 0x0
max =<PHONE_NUMBER>
callback = {void (runtime.stkframe *, void *, bool *)} 0x7fffb05f3d18
v = 0x0
flags = 0
~r0 =
(gdb) i lo
doPrint = false
lrPtr =<PHONE_NUMBER>76
flag =
flr = {_func = 0x7fffe52764e0, datap = }
level = 1
ctxt = 0x0
nprint = 0
waspanic = false
printing = false
lastFuncID = 0 '\000'
n = 12
f = {_func = 0x7fffe52764e0, datap = }
cgoCtxt = <error reading variable cgoCtxt (access outside bounds of object referenced via synthetic pointer)>
frame = {fn = {_func = 0x7fffe52764e0, datap = 0x7fffe52a4200 <runtime.firstmoduledata>}, pc =<PHONE_NUMBER>65579, continpc =<PHONE_NUMBER>47557, lr =<PHONE_NUMBER>26768, sp =<PHONE_NUMBER>92, fp =<PHONE_NUMBER>84,
varp =<PHONE_NUMBER>76, argp =<PHONE_NUMBER>92, arglen = 48, argmap = 0x0}
cache = {entries = {{{targetpc =<PHONE_NUMBER>47557, off = 1312617, val = 152}, {targetpc =<PHONE_NUMBER>52339, off = 292530, val = 152}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {
targetpc = 0, off = 0, val = 0}, {targetpc =<PHONE_NUMBER>64229, off = 477966, val = 232}, {targetpc =<PHONE_NUMBER>50933, off = 498209, val = 176}, {targetpc = 0, off = 0, val = 0}}, {{targetpc = 0, off = 0,
val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc =<PHONE_NUMBER>49355, off = 292208, val = 584}, {targetpc =<PHONE_NUMBER>39321, off = 289663, val = 80}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0,
off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 49, val = 0}}}}
Many different approaches have been tried to avoid the panic. This includes alternative implementations where the Go channels are replaced with blocking queues on the "C++" side. Control of the Go GC has been tried using GOGC=off then by programmatically scheduling a GC (with "stoptheworld" either on and off and with any "C++" threads stopped too). Zeroing malloc memory has no impact. Never "free"ing the malloc memory has no impact. It seems that the GC eventually crashes if it finds anything "C++" related in a stack it is traversing. The the code (meaning the entire application) has no issue when CGo is removed and UDP is used to pass message buffers strongly suggests that there is a problem specific to the operation of the Go GC w.r.t. CGo. Valgrind used against the application code w/o libgo.so included, finds no issues.

Can you share a complete program that we can use to replicate the problem?  Thanks.
I note a call to panicmakeslicelen which suggests that some Go code is trying to create a slice with a length that is much too large.  But I'm not sure why the program is unable to do a backtrace at that point.

CC @golang/runtime

We've learned something new. The software is stable when Go runs as a separate process using identical code. We can "connect" the C++ application and Go application using a socket, replacing CGo, and the system is stable. If we run Go within the C++ application in a shared object, that initializes using module func init(), using a socket to replace CGo, the system is unstable - it appears to crash (SIGSEV) randomly with invalid stack traces, always in Go. In the shared object configuration, CGO_ENABLED must be set during the Go compile despite CGo not technically being used (there is no import "C" and no //export tagged Go functions). Essentially, CGo is eliminated by exchanging all data using a socket, instead of CGo, using a simple coupling like this.
`
var udpConn *net.UDPConn
// Go listens on port 6001. "C" listens on port 6000
func CreateUDPServer() {
hostName := "<IP_ADDRESS>"
portNum := "6001"
service := hostName + ":" + portNum
addr, err := net.ResolveUDPAddr("udp4", service)
if err != nil {
DebugLog("CreateUDPServer : ERROR: %x", err)
}
// setup listener for incoming UDP connection
conn, errl := net.ListenUDP("udp", addr)
if errl != nil {
DebugLog("CreateUDPServer : ERROR: %x", errl)
} else {
udpConn = conn
}
}
func ReadUDP() *GMessage {
var msg *GMessage
if udpConn != nil {
// the MAX_MESSAGE_SIZE size here is different than size  - so we pass in the actual size to deserializeGMessage
buffer := make([]byte, MAX_MESSAGE_SIZE)
size, addr, _ := udpConn.ReadFromUDP(buffer)
msg = deserializeGMessage(buffer, size)
buffer = ni
if ConfiguredLogLevel >= 3 {
mtype := msg.getValueAsString("type")
DebugLogV(3, "ReadUDP : received message from %s, type [%s], size %d", addr, mtype, size)
}
if msg == nil {
DebugLog("ReadUDP : ERROR: message failed")
}
}
return msg
}
func WriteUDP(msg *GMessage) {
hostName := "<IP_ADDRESS>"
portNum := "6000"
service := hostName + ":" + portNum
addr, err := net.ResolveUDPAddr("udp4", service)
if err != nil {
fmt.Println("WriteUDP : ERROR: bad address")
}
if udpConn != nil {
size := msg.getTransmitSize()
if size <= 0 {
fmt.Println("SendMessageFromGoToC: ERROR: message is empty")
return
}
buf := make([]byte, size)
msg.serializeGMessage(buf, size)
_, err := udpConn.WriteToUDP(buf, addr)
if err != nil {
fmt.Println("UDP ERROR: %x", err)
}
} else{
fmt.Println("writeUDP : ERROR: no address")
}
}
`
in Go, with a similar implementation in C++. Both runtimes block on the sockets waiting for events from the other. We want to use CGo, because of its simplicity and speed, instead of a contraption like this.
The larger application is too large to share - the Go part is smaller and dedicated to interfacing with Google gRPC services.
The common denominator here is the appearence that the C++ and Go runtimes are not compatible in the same process. For Go to call "C" code, it may be that it may be that it can do so only as a Go process. Having a "C" process calling Go, while also having a Go runtime, might be the issue. But, if this is the case, then why support Go as a shared object for a "C" application? I saw a comment on a board that said something like, and I'm paraphrasing, "the C and Go runtimes cannot be used together" but I've never seen this in official documentation. One interesting official documentation comment is here:
https://go.dev/doc/faq "Do Go programs link with C/C++ programs?"
which has many warnings that lack specifics.  This appears to suggest that a C++ process cannot safely co-exist with the Go runtime in the same address space. In our case, C and Go are in the same process, when unstable, but they load into different memory regions and I would expect that, aside from CGo, they cannot trample one another.
Regarding the large slices suspected in the traceback. We went as far as logging slice sizes along the C/Go boundary and did not encounter anything unusual. I think any invalid slice range seen is a product of some sort of trampling - which also explains the corrupted stacks - a problem that does not occur, running the same code, as separate C and Go processes.

Calling a Go shared library from a C program is in general supported.  I don't know what is happening here.
Have you tried using -buildmode=c-archive rather than -buildmode=c-shared?  Does that make any difference in the behavior?
When Go and C code are linked together, it's definitely possible for C to trample into Go, and it's possible for Go code that uses unsafe to trample into C.

When linked as a shared object, I notice a few things. First, the func init() is not reliable. Whether it breaks or not is a compile time issue. I've seen this before in general... sometimes an init() is not called. I work around that by calling what's in the init() for one go file from another and as long as it runs somewhere (like a factory registration) then it's ok. But there is something wrong with init() - that's only a nuisance.
When built as a shared object - so everything is linked into the C++ application binary (which makes it large, but about the sum of its parts) the same issue occurs:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffdc061700 (LWP 31416)]
0x0000000000b290fc in runtime.gentraceback (pc0=11572566, sp0=824634175120, lr0=, gp=, skip=0, pcbuf=0x0, max=100, callback={void (runtime.stkframe *, void *, bool *)} 0x7fffdc0602f0, v=0x0, flags=0, ~r0=)
at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:242
242	/home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go: No such file or directory.
Missing separate debuginfos, use: debuginfo-install glibc-2.17-324.el7_9.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_6.x86_64 libcom_err-1.42.9-13.el7.x86_64 libgcc-4.8.5-44.el7.x86_64 libselinux-2.5-14.1.el7.x86_64 libstdc++-4.8.5-36.el7_6.2.x86_64 openssl-libs-1.0.2k-16.el7_6.1.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) bt
#0  0x0000000000b290fc in runtime.gentraceback (pc0=11572566, sp0=824634175120, lr0=, gp=, skip=0, pcbuf=0x0, max=100, callback={void (runtime.stkframe *, void *, bool *)} 0x7fffdc0602f0, v=0x0, flags=0, ~r0=)
at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:242
#1  0x0000000000b2b3d1 in runtime.traceback1 (pc=0, sp=0, lr=0, gp=0xc000003380, flags=0) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:835
#2  0x0000000000b2c2e5 in runtime.traceback (pc=, sp=, lr=, gp=0xc000003380) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:782
#3  runtime.tracebackothers.func1 (gp=0xc000003380) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:1051
#4  0x0000000000b0a08d in runtime.forEachGRace (fn={void (runtime.g *)} 0x7fffdc0604e0) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/proc.go:590
#5  0x0000000000b2c1db in runtime.tracebackothers (me=) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:1037
#6  0x0000000000b0735c in runtime.dopanic_m (gp=0x23fa6a0 <runtime.g0>, pc=11561585, sp=140736884770368, ~r0=) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:1192
#7  0x0000000000b06d28 in runtime.fatalthrow.func1 () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:1047
#8  0x0000000000b06cb0 in runtime.fatalthrow () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:1044
#9  0x0000000000b06a71 in runtime.throw (s=...) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/panic.go:992
#10 0x0000000000b2a3f6 in runtime.gentraceback (pc0=11572566, sp0=824634175120, lr0=, gp=, skip=0, pcbuf=0x0, max=2147483647, callback={void (runtime.stkframe *, void *, bool *)} 0x7fffdc060a10, v=0x0, flags=0, ~r0=)
at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:254
#11 0x0000000000af089a in runtime.scanstack (gp=0xc000003380, gcw=0xc00004b738, ~r0=) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/mgcmark.go:783
#12 0x0000000000aef7a5 in runtime.markroot.func1 () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/mgcmark.go:241
#13 0x0000000000aef425 in runtime.markroot (gcw=0xc00004b738, i=36, flushBgCredit=true, ~r0=) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/mgcmark.go:214
#14 0x0000000000af143f in runtime.gcDrain (gcw=0xc00004b738, flags=3) at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/mgcmark.go:1047
#15 0x0000000000aee2c5 in runtime.gcBgMarkWorker.func2 () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/mgc.go:1276
#16 0x0000000000b34246 in runtime.systemstack () at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/asm_amd64.s:469
#17 0x0000000000b38b87 in runtime.newproc (fn=0x0) at :1
#18 0x00000000023fa6a0 in crypto/tls.emptyConfig ()
#19 0x0000000000000000 in ?? ()
(gdb) frame 10
#10 0x0000000000b2a3f6 in runtime.gentraceback (pc0=11572566, sp0=824634175120, lr0=, gp=, skip=0, pcbuf=0x0, max=2147483647, callback={void (runtime.stkframe *, void *, bool *)} 0x7fffdc060a10, v=0x0, flags=0, ~r0=)
at /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go:254
254	in /home/defrain/legit3/ams/mediaserver/Golang/go/src/runtime/traceback.go
(gdb) i lo
doPrint = false
lrPtr =<PHONE_NUMBER>44
flag =
flr = {_func = 0x0, datap = }
level = 1
ctxt = 0x0
nprint = 0
waspanic = false
printing = false
lastFuncID = 0 '\000'
n = 14
f = {_func = 0x1f8f350, datap = }
cgoCtxt = <error reading variable cgoCtxt (access outside bounds of object referenced via synthetic pointer)>
frame = {fn = {_func = 0x1f8f350, datap = 0x22706c0 <runtime.firstmoduledata>}, pc = 11572566, continpc = 0, lr =<PHONE_NUMBER>88, sp =<PHONE_NUMBER>20, fp =<PHONE_NUMBER>52, varp = 0, argp = 0, arglen = 0, argmap = 0x0}
cache = {entries = {{{targetpc = 11572566, off = 85302, val = 24}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0,
val = 0}, {targetpc = 0, off = 0, val = 0}}, {{targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 0, val = 0}, {
targetpc = 0, off = 0, val = 0}, {targetpc = 0, off = 49, val = 0}}}}
(gdb) i args
pc0 = 11572566
sp0 =<PHONE_NUMBER>20
lr0 =
gp =
skip = 0
pcbuf = 0x0
max =<PHONE_NUMBER>
callback = {void (runtime.stkframe *, void *, bool *)} 0x7fffdc060a10
v = 0x0
flags = 0
~r0 =
This is using a socket interface to exchange messages between C++ and Go so CGo is not used. The applications(s) run fine as separate processes (they ran the same test as such overnight in heavy traffic with no issues).


Throw if a listener tries to modify a provider

Related to https://github.com/rrousselGit/riverpod/issues/1757.
All listeners should fail if a provider is updated during notification.
This includes ref.listen, ref.onDispose, ref.onCancel, ...

Is my understanding correct that ref.listen(PROVIDER, ...) callbacks can be triggered by:

A direct state-modification of PROVIDER (PROVIDER.state = 123), which is usually coming from a "widget" handler and hence not already part of build cycle --> mutations of other providers work currently

A build of PROVIDER (dependency changed), which is hence part of a build cycle --> mutation of other providers will fail


updated wording and removed abbreviations

removed the abbreviations in the overview & table view
in nodes view the detail view "nodes" is changed to "overview" since it only shows details of a single node. Renamed the label for the REST URL to HTTP Endpoint

I think a changes entry is missing.. please also backport to 1.8 and 1.9


The field is considered mandatory in the type definition, although in the model this field is marked optional

When an optional field (for example, a name) is present in the model in type declarations, it is considered mandatory and can take the value null

This is expected. The column in the database exists and anytime you select name value from the database it will also give null values from the rows where optional field is not set.
We generate different arguments for create and other related operations where this arugement can be omitted:


Making add_statistics into method for single list not list of lists

@pbylicki, I came up with such changes. I wanted to check them on corp network, thus this is a separate PR.

setup.py should be updated to require Fastapi and pydantic in higher versions. Installing it now result in fail with statistics list. I wil find minimum version later


Fix wrap on proofs (and other fixes)

@keybase/react-hackers this fixes the wordwrap being broken in master and also the none metatag showing. refactored it so its smaller and simpler i think

@keybase/react-hackers bump

:+1:


[DO_NOT_SUBMIT] Upgrade ROCm from 5.1.0 to 5.2.0 in TensorFlow CI Builds

Is this still needed? It's quite old..

Hi @JunyoungLim Any update on this PR? Please. Thank you!


doc/md: Hide my clear name

:smile:

its generated automatically from
https://github.com/ent/ent/blob/master/.all-contributorsrc


Bower specific version

how to install specific version of bower from command line.

for local install:
npm install<EMAIL_ADDRESS>for global install:
npm install -g<EMAIL_ADDRESS>

Yep. For more info: https://docs.npmjs.com/cli/install


Snapshot scheduling

This resolves #2610

Could we change the naming schema of manual snapshots to snap-0 (mind the hyphen)?  That would be the case if the hyphen was missing: 2018-11-15T03:200 instead of 2018-11-15T03:20-0.

@monstermunchkin so I'm a a bit worried by people expecting our current naming to be set in stone.
The other difference between current scheme and the new one is that currently we always start numbering even if the name is available. That is, we get snap0 as our first snapshot, not snap.
I think our best bet is to actually expand the allowed pattern to include allowing up to one "%d" in the rendered string. If we detect that, we will be doing our usual check loop, starting at 0 and incrementing until we find a free snapshot and then use that.
It'll then allow us to make the default pattern "snap%d" which will keep our default behavior identical.
Users can then use "auto-snap-%d" or "auto-snap-{{date}}" or whatever in their pattern.
If they don't have a %d in the rendered snapshot name and that name already exists, then we can do the -X trick.
How does that sound?

@monstermunchkin still missing API extension? :)

@stgraber Nope: https://github.com/lxc/lxd/pull/5277/commits/9f387ce66a6b1a382a0a7666f2d848a478966432


Include support for system-wide mandatory/default settings

VSCode Version: 1.12.2
OS Version: Windows 10

Steps to Reproduce:

Install vscode as an administrator
Launch vscode as a different (regular) user

It is currently not possible for an administrator to define mandatory and/or default settings that apply to all users/workspaces. This would be very helpful in a corporate/enterprise setting where we want users to have a consistent experience, or where the infrastructure demands certain configs (e.g. "update.channel": "none").
Suggestion:
a) Define an environment variable that points to a json file with mandatory settings, which override user/workspace settings.
b) Define another environment variable that points to a json file with default settings, which get copied to the user settings file when a user launches vscode for the first time.
If suggestion a) is difficult to implement I will settle for b) and use an extension (e.g. Fetch User Environment) to manage the mandatory settings.

//cc @egamma

VSCode is great, but in managed environments the inability to provide and control default settings for all users is a big problem.

A few weeks ago I intended to migrate from sublimetext to vsc, but this issue was a show stopper. For me (develeoper and administrator) it is unusable without default settings / the ability to be "installed" (for all users) by copying one single folder.

VS Code has become a very good and powerful development environment, much lighter than huge programs like the "real" Visual Studio or Eclipse. Unfortunately, the absence of system-wide configurability (and especially sysem- is a big problem for managed environmets.

Any progess on this?
Like all above, it's hard to deploy VSCode in a large environment and have a manner of consistency.

This feature request has been sitting here for over a year. Is this even difficult? How do we escalate issues?

I'd also like to use VSCode natively installed on Windows 10 while editing and working on files in the WSL system without ruining my linux permissions etc. (we use Linux projects on GitHub). On my 8 GB ram laptop a Ubuntu VM runs kinda slow.

On NixOS we have the vscode-with-extensions,which allow to package VSCode with preinstalled extensions,but then you can't install extensions from the VSCode UI.
This is problematic as a few extensions needs to be fixed for use on NixOS,and this feature would allow to use extensions both from the nix store (with all the paths fixed) and the larger VSCode marketplace

A way to select the installation directory would also be nice.

Hi @GreatTeacherOni,  I think what you requested is a different feature request.

I would imagine you might really want enterprises to be using a standard mechanism for this rather than each enterprise rolling their own extension or using one of the settings extensions to try and achieve a similar result. By hook or by crook they'll find a way to do what they need to do, but it would be so much less pain for all if there was a standard mechanism.

Hi @kieferrm and @RMacfarlane, what would it take to get this feature added to the roadmap?
If it's not feasible to have it roadmapped for the vscode team, is there anyone familiar with this part of the codebase who could provide some guidance to how it might be implemented by an intrepid community member?

We either need GPO support, or deployable json files that supersede user-configured settings.

Gosh, Every user, Every machine, Every Setting....
No global settings (or extensions/modules) is a burden.

We run ~100 shared linux machines used by students and researchers. The ability to not override settings administratively is a huge impediment to wider use of vscode. We'd love to use this more heavily - especially with our CS students, but can't, due to this deficiency.

Would microsoft accept a PR along these lines? (I'm assuming this is kinda run like an open source project)

Closing as duplicate of https://github.com/microsoft/vscode/issues/147756


Do not undo when setting initialValue

Version
v1.4.3
Test Environment
Chrome
Current Behavior
When setting initialValue, if undo (Ctrl + Z) behavior occur, contents is removed.
Expected Behavior
When setting initialValue, undo should not work.

Still happening for me with 3.2.2 on Chrome and Safari.


卸载TensorFlow-1.11.0后，只安装tensorflow-gpu (1.11.0)训练报错

Using TensorFlow backend.
Traceback (most recent call last):
File "train.py", line 235, in
from kashgari.embeddings import BERTEmbedding
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/kashgari/init.py", line 13, in
import kashgari.embeddings
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/kashgari/embeddings/init.py", line 13, in
from .embeddings import BERTEmbedding
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/kashgari/embeddings/embeddings.py", line 18, in
import keras_bert
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras_bert/init.py", line 1, in
from .bert import gelu, get_model, get_custom_objects, get_base_dict, gen_batch_inputs
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras_bert/bert.py", line 2, in
import keras
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras/init.py", line 3, in
from . import utils
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras/utils/init.py", line 6, in
from . import conv_utils
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras/utils/conv_utils.py", line 9, in
from .. import backend as K
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras/backend/init.py", line 89, in
from .tensorflow_backend import *
File "/data1/chh/software/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 6, in
from tensorflow.python.framework import ops as tf_ops
ModuleNotFoundError: No module named 'tensorflow.python'

我使用的是Keras (2.2.4)，python3.6.4、kashgari (0.1.6)、keras-bert (0.29.0)


Allow default entrypoints definition

What does this PR do?
Add defaultEntryPoints setting, like the setting Traefik v1 had. The defaultEntryPoints has no effect on UDP routers. To keep it simple, I only implemented the HTTP/TCP part, and leaving the UDP to a future enhancement when it will eventually be requested.
Edit: Adds --entrypoints.<name>.defaultset setting (unlike the root defaultEntryPoints setting Traefik v1 had).
Edit 2: Adds --entrypoints.<name>.explicitUseOnly setting (unlike the root defaultEntryPoints setting Traefik v1 had).
Edit 2: Adds --entrypoints.<name>.asDefault setting (unlike the root defaultEntryPoints setting Traefik v1 had).
The settings works like follows:

By default, all entrypoints are included in the "default entrypoints" (old behavior)
If any entrypoint are flagged with the new asDefault: true config then only those with asDefault: true are used by default when no entrypoints are set for a route (e.g in an IngressRoute)

This is only implemented for HTTP & TCP routers. UDP routers are unaffected.
Motivation

Closes #6984
We also needed this at my current company, where we want to change the default behavior when using Traefik to use the Kubernetes Ingress as routers. For security reasons, we want it to by default not expose the apps the Ingress objects target to all entry points, in case someone forgets to add the correct annotation.
This enables some entrypoints to be opt-in instead of opt-out (when configuring routers).
The setting has no effect on UDP routers, to keep it simple, as the UDP routers changes needs a bunch more changes, and that feature isn't requested by any users anyway.
More

[x] Added/updated tests
[x] Added/updated documentation

Additional Notes
@dduportal originally wrote this concern:

The defaultEntryPoints directive had a meaning in v1 when TLS options where set per entrypoint.
With v2, TLS being defined at router level + ability to route at TCP level, the default entrypoint does not make sense as it could break the TCP router, or accidentally mux HTTP/TCP.
This is why we're going to close this issue as declined.
https://github.com/traefik/traefik/issues/5672#issuecomment-542775022

Does this concern still apply? Specifically with this implementation?

Hello @jilleJr,
Thanks for your contribution,

Does this concern still apply? Specifically with this implementation?

I'm not sure it still applies. With the entrypoints HTTP options the TLS options can be defined at the EntryPoints level.
I passed your pull request in needs-review state and I pushed a commit to move the option to the EntryPoint resource level, which is, after internal discussions, the approach we preferred.

The tests passes locally, but fails in the CI pipeline.
The failing test should definitely not be affected by this PR:
--- FAIL: TestHTTP3AdvertisedPort (0.00s)
    server_entrypoint_tcp_http3_test.go:126:
        	Error Trace:	server_entrypoint_tcp_http3_test.go:126
        	Error:      	"" does not contain ":8080"
        	Test:       	TestHTTP3AdvertisedPort
2022/07/08 07:11:41 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
time="2022-07-08T07:11:41Z" level=error msg="accept tcp <IP_ADDRESS>:34437: use of closed network connection"
time="2022-07-08T07:11:41Z" level=error msg="Error while starting server: accept tcp <IP_ADDRESS>:34437: use of closed network connection"
time="2022-07-08T07:11:42Z" level=error msg="accept tcp <IP_ADDRESS>:42871: use of closed network connection"
time="2022-07-08T07:11:42Z" level=error msg="Error while starting server: accept tcp <IP_ADDRESS>:42871: use of closed network connection"
time="2022-07-08T07:11:42Z" level=error msg="accept tcp <IP_ADDRESS>:36971: use of closed network connection"
time="2022-07-08T07:11:42Z" level=error msg="Error while starting server: accept tcp <IP_ADDRESS>:36971: use of closed network connection"
time="2022-07-08T07:11:44Z" level=error msg="Error while Peeking first byte: read tcp [::1]:43767->[::1]:[410](https://github.com/traefik/traefik/runs/7247077064?check_suite_focus=true#step:6:411)62: i/o timeout"
FAIL
coverage: 63.2% of statements
FAIL	github.com/traefik/traefik/v2/pkg/server	10.262s

(from https://github.com/traefik/traefik/runs/7247077064?check_suite_focus=true)

@jilleJr we had an internal discussion about the flag name because defaultset might feel too technical. We didn't had any good alternatives so far but it occurred to me that autoAttach or even autoAttachRouters could work, wdyt?
Let us know if you have any other suggestion in mind

we had an internal discussion about the flag name because defaultset might feel too technical. We didn't had any good alternatives so far but it occurred to me that autoAttach or even autoAttachRouters could work, wdyt? Let us know if you have any other suggestion in mind

Hello @ddtmachado!
I've a bunch of naming ideas, such as:

--entrypoints.<name>.includeAsFallback

I'm still more keen in inverting the flag. Now the defaultset flag has this weird condition where it behaves like the default value is true if all defaultset is set to false, otherwise the default value is false. If we invert the semantics of the flag then we could get rid of this additional condition.
That also works better conceptually with the entrypoints that are hardcoded to be excluded (traefik and traefikhub-api/-tunl), as the semantics then correctly suggest that the user can't override them to manually enable those entrypoints to be used by default. We could also then add to the documentation that traefik, traefikhub-api/-tunl has this flag set to true, to tie it all together.
To build on your idea of "auto attach", we could then have for example:

--entrypoints.<name>.noAutoAttach
--entrypoints.<name>.skipAutoAttach

Some other inverted flag name suggestions:

--entrypoints.<name>.hideByDefault
--entrypoints.<name>.skipAsDefault
--entrypoints.<name>.unusedByDefault
--entrypoints.<name>.disableAsFallback
--entrypoints.<name>.excludeAsFallback
--entrypoints.<name>.explicitUseOnly
--entrypoints.<name>.requireExplicitUse

My personal favorite is:

--entrypoints.<name>.explicitUseOnly

Could also take some inspiration from the existing configs.

--accesslog.fields.defaultmode:

--entrypoints.<name>.defaultMode: keep | drop (default: keep)

--providers.<type>.exposedByDefault:

--entrypoints.<name>.exposedByDefault: true | false (default: true)

I've now changed to --entrypoints.<name>.explicitUseOnly. If you disagree then it's just a matter of reverting 035cd6f

@ddtmachado Hello! I understand this might be low prio, but is there something I can do to speed up this process of getting this merged and released? Does this have to be re-reviewed again?

@jilleJr after internal discussions we decided to postpone merging this PR until we release the next minor version, targeted for the end of this month. In the meantime we'll have time to decide on the naming and default behavior as the way you proposed on the last update is a breaking change that would not be possible in a minor release. We'll keep you posted if the situation changes.

hello again @jilleJr , with the 2.9 RC out we're ready to get back to this topic. As said in my previous message we took some time to think about this and we really want to avoid breaking changes when possible, which means we would like to stick with the previous behaviour:

by default every entrypoint is considered to be included (ignore no config)
once one entrypoint is explicitly flagged to then all entrypoints are excluded unless they explicity set the flag to true

We believe that this approach maintains backward compatibility while still allowing for stricter configuration.
As for the team thinks a simple asDefault would work. Please let us know your opinion and if you're willing to proceed with those changes.

@ddtmachado Heyo glad to hear it was not forgotten. I started to worry there for a second :)
Personally I'm voting for the explicitUseOnly-styled config, but my voice is also one new contributor vs a team of experienced Traefik maintainers, so I'll just change it to asDefault as you propose.

I see that this is still only on master, is this going to be pulled into 2.9 at any point?

We follow semver so that when a minor is created, no new features are added.
Features merge on master stay on master and they will be a part of the next major/minor release of Traefik.
https://github.com/traefik/traefik/tree/master#release-cycle

Are there images built from the master branch available anywhere?

The tag experimental-master is updated after each merge into master (traefik/traefik:experimental-master)
https://hub.docker.com/r/traefik/traefik/tags

Fantastic, i didn't know about that repo - I was just looking at library/traefik.

Is there any stable release which contains this feature?

@ekle sadly no. I'm still waiting for v3 to drop.
It has been available since v3.0.0-beta1, released Dec 5, 2022.
Don't know how far away v3.0.0 is from being released. The 3.0 milestone is currently at 86% complete 21 issues still open, but I don't think it's possible to extract some kind of ETA from that.


Correction for raw affiliation CIRM-Levures; Sciences Pour l'Oenologie

Correction needed for raw affiliation CIRM-Levures; Sciences Pour l'Oenologie
raw_affiliation_name: CIRM-Levures; Sciences Pour l'Oenologie
new_rors: 04w07sc25
previous_rors: 04w07sc25;05fe7ax82
works_examples: W4286965379;W4312002885
contact: 930840ff167c961255e2d198b5ddacfe:7dd1ac708234222a9e914854c16982cbd042 @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-09. The new affiliations should be visible within the next 7 days.


Make sure platform is a symbol

Call to_sym on [lane_context[PLATFORM_NAME] (hopefully fixes #376).
Explicitly only support iOS and Android.

Thanks for merging this @kaibolay. Now it works just fine with the main brunch for my pipeline.


Require PlutusV3 scripts to evaluate to BuiltinUnit

Implements CIP-0117.
Tests are in Spec.ReturnUnit.V1/2/3

If we go with this, we should remember to update the spec pdf and RTD (in another PR)

Merging to unblock the release. Will address the remaining comments (mostly documentation) separately.


Upgrade: Wait longer for minions to reboot

Wait 1200 seconds (20 minutes) for minions to reboot, instead of the
default 300 seconds (5 minutes). We increase this to cover off cases
where slower to boot physical hardware is used.
20 minutes was chosen as, I've seen physical hardware take 10-12 minutes
in the past, and someone likely has something that is slower to reboot.
bsc#1048683

Backported in https://github.com/kubic-project/salt/pull/171


Begin layout of main and snippet views

In preparation for text editor/rendering data from db

remove sign up button? Log in only.


Add Some Colors To C++ Content Page

May I take up the issue?

Go ahead

Should I add any more changes in this?

@Snehaa1203 @ankitapuri

Looks better, what about some fonts too?

also, the background color is looking a bit less attractive, could you try something else?
@devesh-2002

Should I add a darker background with white font?

Is this better?

Previous one was better than this!!
On Sat, Jan 8, 2022, 12:51 Devesh Rahatekar @.***>
wrote:

[image: image]
https://user-images.githubusercontent.com/79015420/148634772-d5f8ddd5-c8ae-49f8-898f-bc38e36770b0.png
[image: image]
https://user-images.githubusercontent.com/79015420/148634773-877cb1b7-2c6e-42be-9e58-37b4a57e7310.png
Is this better?
—
Reply to this email directly, view it on GitHub
https://github.com/arpit456jain/CodingEasy/issues/92#issuecomment-1007901107,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASL2QGZR46KWU6RAPGYIXOTUU7QW7ANCNFSM5LMMODKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

What should I do now?

Make it thr previous one and make a PR,I will merge the pr,
On Sat, Jan 8, 2022, 13:27 Devesh Rahatekar @.***>
wrote:

What should I do now?
—
Reply to this email directly, view it on GitHub
https://github.com/arpit456jain/CodingEasy/issues/92#issuecomment-1007904694,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASL2QG2S4GXAVLWUFP3FLMTUU7U47ANCNFSM5LMMODKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


Fix and improve LineLength cop for tab-indented code

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run rake default. It executes all tests and RuboCop for itself, and generates the documentation.

Fix how? Some details would be welcome.


net: add TcpListener.local_addr method

The local_addr method is a blocking call.

Fixes TCP portion of #106
But maybe there is a more standard way to cast the fd to a net::TcpListener?

Some minor feedback, but overall this looks good!

Think I handled your first set of comments.
I added a question about the SAFETY comment. Is it too wordy?
And importantly, I've added the local_addr method for the UnixListener now but have only tested it with the document example.


On adding github enterprise via DB insert query, when run via testlauncher scan. It still shows old url.

Add github enterprise via DB insert query.
Goto zebrunner test runs > test launcher > select the added repository
Click on scan button.
verify test run logs for Jenkins > organization >RegisterRepository >latest run.
GITHUB_HOST = still picks the old value as (github.com) instead of github enterprise host.

It should pick the latest Github enterprise host.

issue will be fixed in scope of https://github.com/qaprosoft/qps-infra/issues/227 ticket. New zebrunner insights reporting has possibility to define valid enterprise github url so test launcher UI works correctly

it should be fixed.

Will be verified by Vadim.


Breaking in combination with Material UI

Hello!
I am trying to migrate a project from that uses React to Preact.
The project uses the Material UI library by CallEmAll and it doesn't seem to play nice with Preact: Some of their components(like EnhancedButton), call event.persist() on a SyntheticEvent. Instead in Preact this event is a FocusEvent and does not have the .persist() method on it. The result is that Material UI buttons(and probably other components) don't work.
Does anyone know how this could be fixed? Since out whole application is built using Material-UI it is crucial for it to work, otherwise we're unable to migrate.
The SyntheticEvent docs doesn't say much about .persist()(see: https://facebook.github.io/react/docs/events.html) so it's difficult to understand why it's needed and how it could be fixed.
Otherwise, so far, everything else in the migration seems to be working. The components i can see without pressing buttons seem to be properly rendered and work the same way as they would with React.

Strange, I've never heard of that method. You could try patching it in:
import { options } from 'preact';
options.event = e => {
  event.persist = () => {};
};

Ah, yes, i did something like similar to that and thought it should work because by looking at the React source it seems to have something to do with persisting the event from their event pool. So i thought it shouldn't affect Preact and it seems like it doesn't. However the button is still not clickable. I think this has to do with FloatingActionButton or any EnhancedButton in material-ui not working with onClick. You have to use onTouchTap or something like onMouseUp.
FloatingActionButton is subscribing to the following events:

onMouseDown

onMouseEnter

onMouseLeave

onMouseUp

onTouchEnd

onTouchStart

I wasn't able to find something similar to react-tap-event-plugin for Preact. Do you have any information about this? As in if it was implemented and should work or if that's something that hasn't been done?
Because the current application(with your fix for the .persist() method) almost everything seems to render properly. I have one problem with a component in the application which causes a crash but i'll narrow that down later. The important thing now is getting all the buttons to work.
Thanks for your help so far @developit

This is really good, I've been hoping to get proper support for Material UI in for some time now.  I think we can definitely add the .persist() modification to preact-compat. As for tap-event-plugin, I've actually never used it - I assume that's what is adding support for onTouchTap?  Any pointers here would be good, or if you have a repo where you're trying to get this functioning I can play around with that.

Yeah, this combined with #236 will hopefully make MUI run smooth(er) The application i tried this out on was pretty complex and other than the click-events(touch-tap) everything seemed fine.
As for the tap-plugin, yeah it's to make onTouchTap work. This nicely sums up why. As for how to implement it i haven't really looked at it in detail. I know that react-lite uses Fastclick but i'm not entirely sure if this fixes the issue.
No, i don't have any public repo unfortunately but i can set up a small repo which will have the same symptoms. I'm kind of interested in what react-tap-event-plugin does so i will try to look into this as well!

Alright, so after some snooping around it seems like React listens for events on the document which are then passed to the event system which in turn passes it to plugins which in their turn either return null or a SyntheticEvent. Then i'm guessing React just looks at what type of event that is and calls the callback.
So as i understand it:
If a touchstart and a touchend event are < 10px away from eachother and are fired within a small amount of time(a few ms) then it is, to react, counted as a touchTap and if there is a onTouchTap callback it will be called.
We could try one of these approaches:

Have a special case for onTouchTap(something like what #237 did to onChange) that remaps onTouchTap -> click event and then apply fastclick(get rid of 300ms delay on phones). This is what react-lite does. I'll just have to verify that it actually works.
Implement a similar event-system as to what react offers. Maybe we can avoid using synthetic events and keep to the real ones?

Definitely have to go with #1 - synthetic events is one of the things that makes React larger than Preact. I think your first option is pretty good, and the radius detection should be pretty quick to implement.  I actually believe I have a demo somewhere of this technique as a preact plugin...

The problem with option 1 however is that components that listen to both onTouchTap and onClick events(see this example, used by all MUI buttons)

Component listens to onClick, name gets mapped to click event in the _listeners object
Component listens to onTouchTap, name gets mapped to click which is already in use so a new listener will not be added
Only the onClick callback is called

React is able to differentiate between these because the underlying events are not click but touchstart, touchend and click
I really think we have to implement onTouchTap using touchstart and touchend to make it work well on both phones and computers.

Likely will have to use a proxy handler that does the type negotiation when the event is triggered. I agree though, my thinking was that a VNode Hook would work for massaging the props to add those multiple listeners to fire the meta-event.

Ah yeah, i was thinking about something similar with the multiple listeners but i'm not too familiar with the code yet. If you solve it i'd like to have a look :+1:

Will do, I'll loop you in on the PR!

Any progress on this front? Looking to use preact with material-ui as well.

I have, with a hack, successfully gotten Material UI to work without(afaik) any issues. However i'm hoping developit has a better solution since mine was just a hack to make it work. But to me it seems that we are very close to being compatible with MUI

I've been pondering this. I think actually all that is needed is to move this line into the if (opts!==NO_RENDER) here. Crazy?

@developit
I think you had the wrong issue. This one is about touchtap. Anyway thats what i tried to make refs work but i think i still had problems after doing so because then some refs were not fired. I will come back with results and tag you in the other issue.
Maybe, since there were s few other issues making MUI break, i should just change the title to something about touchtap! :-)

@linde12 Do you had any news? I can get AppBar running by monkeypatching event.persist but I can't get through onTouchTap

@cia48621793 I just pushed the persist fix, but I'm wondering if adding onTouchTap will still not fix the issue - won't there still be a broken react-dom/lib/ import?

Didnt know there is an active discussion going on in this. These are still an issue. https://cl.ly/2u2M1x183E2p

@harshmaur the issue is that inject-tap-event-plugin is ridiculously unnecessary with preact-compat, but it relies on 5 internal libs from the react-dom package. We can fake out all the APIs as noops, but it's getting a little silly at that point.  Perhaps a replacement for inject-tap-event-plugin would be better, since that's just a single dependency?

@harshmaur @cia48621793 I think it's as @developit says that we need a replacement inject-tap-event-plugin
I don't think it would be difficult for a user to replace that plugin with a preact counterpart, let's say preact-tap
I'm not entirely sure how the API for the event system in preact in terms of hooks looks today but maybe we will need some changes to allow this sort of behavior? What needs to happen is that preact-tap has to listen for touchstart/mousedown & touchend/mouseup and if they're within a certain interval and their positions are close to eachother then it's considered a touchTap so then the plugin would have to trigger a callback in preact

@linde12 I am not sure how replacing would work with material-ui as it tightly integrates with onTouchTap events. The source code also contains their own modifiers like onActionTouchTap events and so on. If there is a plugin that gives onTouchTap support then probably, material-ui would not complain.

@harshmaur Material-UI has a peerDependency towards react-tap-event-plugin which provides the onTouchTap functionality. What i mean is that we could provide the same functionality(without SyntheticEvent) with a new plugin because unfortunately react-tap-event-plugin doesn't integrate well with Preact(the event systems are different) we would have to make our own replacement plugin.
tl;dr MUI isn't dependent on react-tap-event-plugin per se, but it's dependent on a onTouchTap implementation so we could make one that works for Preact.

@linde12 Totally agreed with your point.

Wouldn't the require('react-tap-event-plugin') throw though? or are they specifying it as a peerDependency just to indicate that you (as the library consumer) need to have installed it?

@developit the latter. material-ui works without react-tap-event-plugin but it wants it to be installed separately.
If there is a custom lib that provides for onTouchTap, IMO material-ui should work fine.
BTW, material-ui@next branch is supposed to work without onTouchTap, however the release is not going to happen any soon.

I wonder - would it suffice to have a package that could be aliased in for react-tap-event-plugin?
It could look something like this:
import { options } from 'preact';
const opts = {
  // # of pixels after which to discount as drag op
  threshold: 5
};

let oldHook = options.vnode;
options.vnode = vnode => {
  let attrs = vnode.attributes;
  if (attrs) {
    let map = {};
    for (let i in attrs) map[i.toLowerCase()] = i;
    if (map.ontouchtap) proxy(attrs, map);
  }
  if (oldHook) oldHook(vnode);
};

function proxy(attrs, map) {
  let start = attrs[map.ontouchstart],
    end = attrs[map.ontouchend],
    tap = attrs[map.ontouchtap],
    coords = e => ({ x: e.touches[0].pageX, y: e.touches[0].pageY });
    down;
  delete attrs[map.ontouchtap];
  attrs[map.ontouchstart || 'onTouchStart'] = e => {
    down = coords(e);
    return start(e);
  };
  attrs[map.ontouchend || 'onTouchEnd'] = e => {
    let up = coords(e),
      ret = end && end(e),
      dist = Math.sqrt( Math.pow(up.x-down.x) +Math.pow(up.y-down.y) );
    if (down && ret!==false && dist<opts.threshold) tap(e);  // or createEvent('touchtap')
    return ret;
  };
}

// in case someone calls inject():
export default (newOpts) => {
  Object.assign(opts, newOpts);
};

@developit
This looks promising! I don't even think you would have to use an alias if unless you don't want to. It's a separate peerDependency so all that would happen is that npm would complain that the dependency isn't satisfied(which it wouldn't be with an alias anyway?)

npm complaining wouldnt be a problem if aliasing works.

Plus this can be a separate package that might actually be useful beyond getting MUI working - anyone who wants basic FastClick style tap events could use it. Not as elegant as a compositional component, but simple once installed.

@developit React-Lite had their solution of touchtap with @fastclick but it won't work with Preact.

Hi @developit, I created it into a file and imported it in my webpack config and aliased it.
I get an error like this
ERROR in ./src/index.js
Module not found: Error: Cannot resolve module 'function _default(newOpts) {
  Object.assign(opts, newOpts);
}' in /Users/harshmaur/react/mobilenew/src
 @ ./src/index.js 19:27-60

So I am not sure where I am going wrong.

Or did you mean to remove react-tap-event-plugin completely and use this instead?

Okay I tried removing the react-tap-event-plugin and replaced with the sample code. the app kind of loaded, but it doesnt seem to work properly, most of my screen is blank with no errors. Some routes do open up but onTouchTap elements are not getting clicked anymore.

Yep, sorry - meant remove tap event plugin. Any chance the app you're working on is Open Source so I can check it out and test? :)

The project is not open source unfortunately.
Also, removing the plugin and using it like this seemed to build the project properly
// Some custom requirement from touch
import reactTapAlternative from './hoc/reactTapAlternative';

reactTapAlternative();

instead of
// Some custom requirement from touch
import injectTapEventPlugin from 'react-tap-event-plugin';

injectTapEventPlugin();

I also tried to resolve however I started getting this.
ERROR in ./src/index.js
Module not found: Error: Cannot resolve module 'function _default(newOpts) {
  Object.assign(opts, newOpts);
}' in /Users/harshmaur/react/mobilenew/src
 @ ./src/index.js 19:27-60

That error is very strange - it's trying to load a module called "function _default(newOpts){  ... }" - are you able to post the alias line you're setting in your webpack config?

okay, so I did a silly mistake of aliasing a wrong path. However the end result seems to the same.
The app works, but onTouchTap elements dont work.

Alright, I fixed the code sample and published it as preact-tap-event-plugin 👍
Here's a JSFiddle demo of onTouchTap working for both mouse and touch:
https://jsfiddle.net/developit/rq877gp3/

I'm wondering how far we've gotten toward a fully working Material UI now that these two issues are fixed. Anyone know?

Are the transitions working properly? In my case I do not see transitions properly.
Here is the preact version https://cl.ly/3A360X2A0S3e
Here is the react version https://cl.ly/2k473X211Y2b

Hmm - strange. They're not using any translation library, the draw literally just sets properties on .style of an element.  I wonder - maybe it's a debounced render triggering after that style is set?  Could you try this and see if it fixes it?
import { options } from 'preact';

options.debounceRendering = f => f();

I shamelessly tried to compile the material-ui/docs with preact-compat, shallow-compare and preact-tap-event-plugin with only one single error.
ERROR in ./~/react-addons-perf/index.js
Module not found: Error: Cannot resolve module 'preact-compat/lib/ReactPerf' in material-ui-master\docs\node_modules\react-addons-perf
 @ ./~/react-addons-perf/index.js 1:17-51

@developit please fix.

Hey @cia48621793, there is a bug in the plugin. So it would not work as of yet. But you can try to do it.
The error you are getting is caused due to react-addons-perf so it needs to be aliased with something that is compatible with preact. I am not too sure if there is something already, but you can remove the lib and try to compile.

@harshmaur Thanks for the tips. So far so good. The front page is perfectly rendered. Unfortunate, the preact-tap-event-plugin didn't seems to work and I can't pop the menu up. Looking for a fix, any assistance for me?

@cia48621793  True. @developit is working on the fix, we will soon have it.

@harshmaur Thanks man. It's prestigious to see Material-UI be ran flawlessly so that more and more developers are siphoned to use Preact.

@cia48621793 - is it possible that ReactPerf import error only shows up when running the development server (webpack-dev-server)?  I can create an alias, will have to look into what it should do.

＠developit No, it was hardcoded in src/app/app.js. Comment out that ReactPerf require and everything goes in the right direction.

@cia48621793 can you put require back and try to build your app instead of starting it?
See if you get the same error or not.

@harshmaur Instruction unclear, Not sure if that's a yay or nay.
In src/app/app.js
Original:
// window.Perf = require('react-addons-perf');

Modified:
window.Perf = require('react-addons-perf');

Then
# npm run browser:build
><EMAIL_ADDRESS>browser:build C:\Users\Steve\Desktop\material-ui-master\docs
> cross-env NODE_ENV=docs-production webpack --config webpack-production.config.js --progress --colors --profile

36634ms build modules
54ms seal
128ms optimize
46ms hashing
142ms create chunk assets
33022ms additional chunk assets
1ms optimize chunk assets
0ms optimize assets
Hash: ddfd9838654dc3e7900e
Version: webpack 1.13.3
Time: 70039ms
   [0] multi main 40 bytes {0} [built]
       factory:0ms building:2ms = 2ms
    + 1779 hidden modules

ERROR in ./~/react-addons-perf/index.js
Module not found: Error: Cannot resolve module 'preact-compat/lib/ReactPerf' in C:\Users\Steve\Desktop\material-ui-master\docs\node_modules\react-addons-perf
 @ ./~/react-addons-perf/index.js 1:17-51

I just released a noop'd version of lib/ReactPerf as<EMAIL_ADDRESS>

@developit However, I couldn't bring up the menu of Material-UI's documentation website.
Here is my WP config.
  resolve: {
    alias: {
      // material-ui requires will be searched in src folder, not in node_modules
      'material-ui': path.resolve(__dirname, '../src'),
      'react': 'preact-compat',
      'react-dom': 'preact-compat',
      'react-tap-event-plugin': 'preact-tap-event-plugin',
      'react-addons-shallow-compare': 'shallow-compare',
    },
  },

package.json
  "dependencies": {
    "babel-polyfill": "^6.16.0",
    "react-title-component": "^1.0.1",
    "simple-assign": "^0.1.0",
    "preact": "^7.1.0",
    "preact-compat": "latest",
    "preact-tap-event-plugin": "^0.1.2",
    "shallow-compare": "^1.2.0"
  },

IIRC all touchTap related events are not triggered. Please fix.

Strange. I can have material-ui running fine with independent module, I'm sure it's a webpage problem. At least now we can prove material-ui be compromised with Preact and it will attract more people, if not only me.

@cia48621793 What do you mean by independent module?

@harshmaur npm install. I have had it in my another project and MUI works with Preact. Not sure is that because the npm version of MUI is preprocessed with Babel.

@harshmaur ＠developit Here's my repo proving that Preact is 'working' with Material-UI Docs: cia48621793/preact-material-ui-docs
Try `npm install && npm run start' for a good start. You will soon find errors clicking the item list on the drawer of AppBar. Look for the console error. Please sort them out.

Will check this out. Thanks for setting things up, makes it a lot easier for me to debug! (there are so many of these large react-based frameworks that I don't personally use, it's hard to keep track)

Ah! I've unsubscribed from here by mistake. I just saw that you made the preact-tap-event-plugin repo, great! I will try it out as soon as i get some free time :+1:

We also have a large application which uses material-ui and would be glad to beta test any possible fixes. Please buzz me on any updates you want us to try.
Thanks!

Would love to update existing codebase to Preact but we designed it on the MUI components.  Please buzz me if there are any fixes.


A more realistic dummy app setup

Apologies for the large PR.
This sets up the dummy app set up to render thredded in app layout and use turbolinks, exposing and fixing a number of issues:

Some CSS selectors are too generic (h1, ...). Didn't fix all of these, just the most visible ones.
JS: removed all inline script tags, setup now done in thredded.es6.
Theme preview page had some issues. Fixed most.
Seed data is now more diverse (using the Faker gem).
User preferences test was generating all of the seed data. Fixed.
thredded.html.erb did more than just a <%= yield %> making it impossible to use a different layout without duplicating the code from thredded.html.erb. Fixed by introducing a named yield for the content  and making the main_app routes available directly if the layout is not a thredded one (standalone_layout?). Moved thredded.html.erb to layouts/thredded/application.html.erb. Change the demo app to use thredded in the demo app's layout.
Fixed a number of smaller issues.

TODO: switch to ES6 imports, perform initialization in the individual modules.

Everything looks fantastic, dude.

Merge at your leisure

787 additions and 821 deletions.

Awesome! As I said, sorry about the size! :smile_cat:


Mac Compilation fixes

As it stands there are some problems compiling for macOS Sierra.
I managed to get things working with these fixes:

Use homebrew to install clBLAS with: brew install clBLAS
Use homebrew to install gcc since clang doesn't work with: brew install gcc
add -lstdc++ to the main CMakeLists.txt CMAKE_CXX_FLAGS and -I/usr/local/include in both spots
Also remove -Wl,--no-as-needed from CMAKE_CXX_FLAGS
Change all the LINK_DIRECTORIES line from:
LINK_DIRECTORIES("${CMAKE_SOURCE_DIR}/../clBLAS/src/build/library/" "${CMAKE_SOURCE_DIR}/../clBLAS/build/staging/Release")
to:
LINK_DIRECTORIES("/usr/local/Cellar/clblas/2.6/lib" )

Apply this diff to math_types.h:
diff --git a/include/jcl/math/math_types.h b/include/jcl/math/math_types.h
index 358b8a0..8e3abdd 100644
--- a/include/jcl/math/math_types.h
+++ b/include/jcl/math/math_types.h
@@ -11,7 +11,7 @@
#pragma once
-#if defined(WIN32) || defined(_WIN32)
+#if defined(WIN32) || defined(_WIN32) || defined(APPLE)
#include   // For std::tr1::mt19937, and others
#else
#include <tr1/random>
@@ -32,14 +32,15 @@ static const double kPiOver360 = 0.0087266462599716478846184538424431;
};  // unnamed namespace
-typedef std::tr1::mt19937 RandEngine;
// The following pre-processor defines are ugly, but unfortunately
// Visual Studio does not support aliased declarations.
// Usage: NORM_DIST dist;
#if defined(WIN32) || defined(_WIN32)
+typedef std::tr1::mt19937 RandEngine;
With these changes, run this script to compile from within the root git repo for mac:
./build must be deleted to change compiler
[ -e "./build" ] && { echo "[D] Deleting ./build..."; rm -rf ./build; }
mkdir build
cd build
Using clang will not allow -fopenmp as a compiler option.
export CC=/usr/local/bin/gcc-6
export CXX=/usr/local/bin/g++-6
cmake ..
make -j8
So these are changes that can be made to compile for Mac. I don't have a Windows/Linux machine to test compilation compatibility for everything to verify not breaking the other builds. But if anyone using Mac shows up, this should work for you. All tests passed after compiling.

Thanks so much @falconscript ! Yeah, I haven't tried compiling jtorch on Mac OS X in a very long time (> a year) and I'm not surprised that it is now broken.
Do you want to submit a pull-request? Or are you happy to keep this as an issue for people reference if they have issues?


Disable Concurrency/Runtime/async_stream.swift for armv7s

dyld: Symbol not found: _concurrencyEnableCooperativeQueues
rdar://78109470

@swift-ci smoke test

This might be posing some signal here that the call site to _concurrencyEnableCooperativeQueues is not properly guarded.

I think // UNSUPPORTED: back_deployment_runtime is what you want here.

// UNSUPPORTED: back_deployment_runtime

Thanks @mikeash. I just assumed that's what use_os_stdlib was for. I guess we're trying to test a new runtime linking against an old OS here?

@swift-ci smoke test

Yeah, it's a little confusing. use_os_stdlib refers to a libswiftCore.dylib that shipped with the OS. back_deployment_runtime refers to an OS prior to Swift-in-the-OS (i.e. prior to macOS 10.14.4 and aligned releases) running with the special back-deployment runtime. For concurrency stuff, we don't want either of those.

Spurious LLDB failure: lldb-shell :: SwiftREPL/BreakpointSimple.test


feat: add "wait_for_migrations" command

aap-eda-manage wait_for_migrations -t 60
Replaces https://github.com/ansible/eda-server/pull/925

@Alex-Izquierdo I just tested this out with my branch and it works as expected, great idea with making this a manage command!
$ oc logs -f eda-activation-worker-8b57696cb-dwzjn -c wait-for-migrations
All migrations are applied.

In the scheduler init container, we see an info message about failing to get the service id, this is expected:
$ oc logs -f eda-scheduler-696588bdc-9njrm -c wait-for-migrations
2024-06-04 13:47:25,438 aap_eda.core.tasking INFO     Failed to get service id
All migrations are applied.

I confirmed that I don't see it in the actual scheduler container logs:
$ oc logs -f eda-scheduler-696588bdc-9njrm
2024-06-04 13:47:46,645 aap_eda.core.management.commands.scheduler INFO     No scheduled jobs. Skipping.
2024-06-04 13:47:46,645 aap_eda.core.management.commands.scheduler INFO     Adding periodic job "aap_eda.tasks.orchestrator.enqueue_monitor_rulebook_processes"
2024-06-04 13:47:46,648 aap_eda.core.management.commands.scheduler INFO     Adding periodic job "aap_eda.tasks.project.monitor_project_tasks"
2024-06-04 13:47:46,649 aap_eda.core.management.commands.scheduler INFO     No scheduled jobs. Skipping.
13:47:46 Registering birth
2024-06-04 13:47:46,650 rq_scheduler.scheduler INFO     Registering birth


[BUG] - Local cannot be set in standalone components

Describe the bug
When I try to use the picker in a standalone component, I am unable to set the locale, i got the error:
Type 'ModuleWithProviders<NgxMatTimepickerModule>' is not assignable to type 'any[] | Type<any>

** Versions

ngx-mat-timepicker version [14.0.2]
@angular/core version [14.1.3]
@angular/material version [14.1.3]
typescript version [4.7.2]

You should check Angular documentation because it doesn't work like that.
Plus you can use the service to change the locale afterwards.


Dragging file or folder to empty explorer shows as Copy

VSCode Version: 1.25.0 Insiders
OS Version: Windows 10

Found while testing https://github.com/Microsoft/vscode/issues/52292
Steps to Reproduce:

Drag a file or folder to an empty explorer
Hover image says "+ Copy" which is perhaps misleading since the file or folder will be opened not copied.

We already behave like that in the explorer for a couple of years and nobody complained. Since the behavior is the same not matter if the explorer is empty or not.
@bpasero DId somebody complain
Also I tried putting a 'move' instead of the 'copy' as the dropEffect but then the plus is not decorated, so it seems like we can not do better than this

I think copy is the right thing to show, it is intentional. You could argue that if we would show "move" feedback, people are confused because the file is also definitely not moved.

Thus closing as designed + none of the users complained.


Tuples in sys.config handled erroneously, breaks :ip

Tested with conform 2.0. If the application's sys.config contains a tuple:
[{cqerl,[{maps,true},
         {cassandra_nodes,[{<<"<IP_ADDRESS>">>,<<"9042">>}]},...

and the schema contains:
    "cqerl.cassandra_nodes": [
      datatype: [ list: :ip ],
      default: [ {"<IP_ADDRESS>", "9099"} ], # note canary in port value
      to: "cqerl.cassandra_nodes"
     ],

conform will generate an erroneous output sys.config with a list of lists (instead of a list of tuples) holding the data from the input sys.config list of tuples:
{cqerl,[{cassandra_nodes,[[<<"<IP_ADDRESS>">>,<<"9042">>]]},

I think this might be related to https://github.com/bitwalker/conform/blob/master/lib/conform/utils/utils.ex#L83

Now that #74 is merged, is this issue addressed?

@jeffweiss ping :)

@bitwalker this is solved for me, but I'm not using :ip. I was using a more generic list of tuples of binary and list.
[
  {"config element 1", []},
  {"config element 2", []},
]

I presume that since my case is fixed that :ip is also fixed.

Oops, that comment was in draft while I wrote some tests to validate the fix. @bitwalker yes, it's fixed. #78 has tests that fail w/ 2.0.0 and pass with master. 🎉

Ok excellent, I'll get a new release pushed to hex today

@bitwalker it's still not fixed in the latest release :( Did you push it on hex already?

@spscream Yes, I released 2.1.0 tonight.


Add environment variable IAI_CALLGRIND_ARGS to pass command line arguments to valgrind's callgrind

Currently, it's possible to pass callgrind arguments outside of a benchmark file with cargo command line arguments cargo bench --bench $BENCHMARK -- $CALLGRIND_ARGS.
This method only works reliably for single benchmarks. Passing command line arguments this way to binaries is a little bit broken by cargo. cargo bench -- $CALLGRIND_ARGS would usually fail before the iai-callgrind benchmarking harness is reached. In order to pass callgrind (valgrind) command line arguments to iai-callgrind it would be nice to also have an environment variable IAI_CALLGRIND_ARGS='--space --separated --list'.
The order of precedence would be

command-line arguments
IAI_CALLGRIND_ARGS environment variable
benchmark file (raw_callgrind_args methods)

Instead of IAI_CALLGRIND_ARGS, IAI_CALLGRIND_CALLGRIND_ARGS is used. It might happen in the future that other environment variables for other valgrind tools like dhat are added which would be named IAI_CALLGRIND_DHAT_ARGS etc. To keep up the scheme the double CALLGRIND is necessary.


Make copying text easier while text is still generated

Describe the bug
If you try to copy text while text is still generated the selection gets reset/lost (because the view gets re-rendered?)
To Reproduce
Steps to reproduce the behavior:

send a message
output starts to show token by token
select text in the output to copy
selected text gets deselected when the next token gets output

Expected behavior
text selection stays stable/selected
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: macOS
Browser: Safari 17.1, Chrome 119

Hi, Thanks for the suggestion. I'll have to look into this but I believe this is due to how svelte manipulates the DOM directly. Unfortunately I'm currently overwhelmed with all the work, so I'll take a look whenever I can. If you manage to find out a solution in the meantime, please reply to this thread or PR is always welcome!


Fix argument assign

Only the argument photo is not assigned to the class property.

@shoarai nice catch!


Can you release pre-trained models?

Thank you for your code.  Are your pre-trained models available for downloading?  Thanks!

@floriyellin  Hi, the pre-trained model will be released soon. After the Spring Festival.

We will be updating the checkpoints for all datasets in the near future.

Hello
When will you upload all the trained checkpoints?

We have updated the checkpoint information for the relevant datasets


Fix 'No Access-Control-Allow-Origin header set' error on streaming/server.js

Deleted socketio.connect url parameter, to avoid 'No Access-Control-Allow-Origin header set' error

+1
Made it work for me.


modal scroll hidden in mobile size

hi
my modal is full of content.
on large device, scroll are visible, on mobile device, they are hidden
any solution ?

@ledahu Screenshots?

@ledahu I think it is the OS setting to show/auto-hide scrollbar. what is your large device? and mobile device?

yep, solved. FireFow on mobile device don't show scrollbar as expected


MOA FixedMOAF-34 Universal App

carouselView always goes back to Optus default landing view when changed orientation

Please change merge to feature/before_framework, not master

Closing inactive PR.


server.query() should return an array of OSLCResources

The server.query function should not return an rdflib IndexedFormula because this would have to be consumed by the API, which should't need to know anything about rdflib.
Instead the query function should return an array of OSLCResources whose URIs correspond to the query result members, and whose kb contains the triples returned from an oslc.select clause if any. It is not expected that these OSLCResources are complete. An additional server.read() would be necessary to get all the properties if needed. Even oslc.select='*' would not necessarily return all the properties.

Done


Allow execute only the selected query

I may have many queries inside the query box. But I would like to execute only one of them in case I have a query selected (highlighted).

We could use regex to identify the current selected query. But it could get a bit trick for some cases.
Actually the best solution would be using a SQL tokenizer. But seems there isn't any really good in node.
So I'm closing this issue, at least for now.


HydratingResultSet Not Using Model Files

I noticed this because our column names in a DB2 database use # and $ and I have to use the model file with exchange array to transpose to object entities I can access (COMP# becomes COMPNUM for example). When I use the configuration below the results that return are building the objects on the fly and not using my model files.
//Model
BY_COMPNUM = (isset($data['BY_COMP#'])) ? $data['BY_COMP#'] : null;
    }
}

// Here is my TableFactory
get('Zend\Db\Adapter\Adapter');

        $resultSetPrototype = new HydratingResultSet();
        $resultSetPrototype->setHydrator(new ObjectProperty());
        $resultSetPrototype->setObjectPrototype(new BUYRGRP());

        $tableGateway = new TableGateway('K_BUYRGRP', $db, null, $resultSetPrototype);
        $table = new BUYRGRPTable($tableGateway);

        return $table;
	}

}

//Table

tableGateway = $tableGateway;
    }

    public function getBuyers()
    {
        $resultSet = $this->tableGateway->select();
        return $resultSet;
    }
}

// The results I get from this query will be two fields, BY_COMPNUM (which will be null) and BY_COMP# which
// will have the value I am looking for.

Duplicate with #6859

Not a duplicate. Separate issue.

This issue has been moved from the zendframework repository as part of the bug migration program as outlined here - http://framework.zend.com/blog/2016-04-11-issue-closures.html
New issue can be found at: https://github.com/zendframework/zend-db/issues/124


Handle existing before online upgrade

If online upgrade is done when there is already a sandbox, unsandboxing that sandbox after upgrade will fail. To prevent that, online upgrade will not be allowed if a sandbox exists. The operator will pick readonlyonlineupgrade

@cchen-vertica I couldn't test online upgrade with existing subcluster in my own PC(I can't set up a k8s cluster). Can you try it with my branch? Then if it does not work I will add a webhook in this PR.

@cchen-vertica I couldn't test online upgrade with existing subcluster in my own PC(I can't set up a k8s cluster). Can you try it with my branch? Then if it does not work I will add a webhook in this PR.

I tested it. It cannot work and give me the error "cannot unsandbox a regular subcluster [sc1]".

Instead of adding a webhook, I preferred being consistent with how we have been treating this kind of case. The operator will just switch to another policy if onlineupgrade cannot be done.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.5 out of 6 committers have signed the CLA.:white_check_mark: jizhuoyu:white_check_mark: cchen-vertica:white_check_mark: roypaulin:white_check_mark: fenic-fawkes:white_check_mark: chinhtranvan:x: spilchenspilchen seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Retired FIPS in county data

Looking at https://github.com/covidcaremap/covid19-healthsystemcapacity/blob/master/data/published/us_healthcare_capacity-county-CovidCareMap.csv is rows for FIPS 46113 and 51515. According to https://www.ddorn.net/data/FIPS_County_Code_Changes.pdf:
"South Dakota, 2015: Shannon County (FIPS 46113) is renamed to Oglala
Lakota County (FIPS 46102) as of May 1st, 2015." and "Virginia, 2013: Bedford (independent) city (FIPS 51515) was changed to
town status and added to Bedford County (FIPS 51019) effective July 1st,
2013."
Please update your system to use the current FIPS: 46102 and 51019.

thanks for the heads-up! looking into it


feat: add autocomplete for labels for archived workflow

Fixes #5495
Added:

argo archive list-labelkeys

/api/v1/archived-workflows-label-keys
returns distinct label keys
e.g. {"items":["example","workflows.argoproj.io/completed","workflows.argoproj.io/phase","workflows.argoproj.io/workflow-archiving-status"]}

argo archive list-labels labelkey

/api/v1/archived-workflows-labels?listOption.labelSelector=labelkey
returns distinct labels
e.g. {"items":["workflows.argoproj.io/test=false","workflows.argoproj.io/test=true"]}

Caveat:

need to click dropdown twice to select archive labels

https://user-images.githubusercontent.com/20961507/135109948-9f584a03-e1bc-4387-b9f0-303e186c4da6.mp4
Tips:

Maybe add you organization to USERS.md.
Your PR needs to pass the required checks before it can be approved. If the check is not required (e.g. E2E tests) it does not need to pass
Sign-off your commits to pass the DCO check: git commit --signoff.
Run make pre-commit -B to fix codegen or lint problems.
Say how how you tested your changes. If you changed the UI, attach screenshots.
If changes were requested, and you've made them, then dismis the review to get it looked at again.
You can ask for help!

updated PR description to reflect requested changes

Wanting to double-check 2 things:

The /api/v1/archived-workflow-label-values/{name} part makes sense,
but at the moment it is returning labels in {"items":["key=value1","key=value2"]} format,
Since its called value, maybe we should change this to returning  {"items":["value1","value2"]}  instead?

For /api/v1/archived-workflow-label-names,
I'm guessing

Labels don't have "keys" they have "names"

are because the label table are using name, value as column name.
My thinking is:

the table is using name instead of key as column name because key is a reserved word for some database, thus that table is designed using name instead of key

in k8s Labels it says

Labels are key/value pairs... Valid label keys have two segments: an optional prefix and name*"

Given above, I think maybe its better to use key rather than name to align with the k8s terminology?

Since its called value, maybe we should change this to returning {"items":["value1","value2"]} instead?

Yes, I agree.

Given above, I think maybe its better to use key rather than name to align with the k8s terminology?

You are right and I was wrong. Good challenge. Lets go with "keys" not names".

updated
/api/v1/archived-workflows-label-keys
/api/v1/archived-workflows-label-values?listOption.labelSelector=labelkey

Hi @alexec , can we merge this?