Sleuth + Reactor. SpanSubscriber cannot be cast to reactor.core.Fuseable$QueueSubscription

We use Sleuth and Spring Reactor on our project. Official support hasn't been added yet, however i can see that some changes were done on both sides.
I have tried using Reactor Bismuth-M3(3.1.0-SNAPSHOT) and latest Sleuth(1.3.0.BUILD-SNAPSHOT) which has now 'spring-cloud-sleuth-reactor' module.
See the stacktrace:
java.lang.ClassCastException: org.springframework.cloud.sleuth.instrument.reactor.SpanSubscriber cannot be cast to reactor.core.Fuseable$QueueSubscription 	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:172) 	at org.springframework.cloud.sleuth.instrument.reactor.SpanSubscriber.onSubscribe(SpanSubscriber.java:60) 	at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:58) 	at reactor.core.publisher.Mono.subscribe(Mono.java:2769) 	at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:169) 	at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:53) 	at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:74) 	at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60) 	at reactor.core.publisher.Mono.subscribe(Mono.java:2769) 	at reactor.core.publisher.MonoWhen$WhenCoordinator.subscribe(MonoWhen.java:177) 	at reactor.core.publisher.MonoWhen.subscribe(MonoWhen.java:127) 	at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60) 	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:148) 	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1010) 	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:142) 	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:115) 	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1010) 	at reactor.core.publisher.MonoIgnoreThen$ThenAcceptInner.onNext(MonoIgnoreThen.java:288) 	at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:185) 	at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:76) 	at rx.internal.reactivestreams.SingleAsPublisher$SingleAsPublisherSubscriber.onSuccess(SingleAsPublisher.java:86) 	at rx.Single$18.onNext(Single.java:1911) 	at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) 	at rx.internal.producers.SingleDelayedProducer.emit(SingleDelayedProducer.java:102) 	at rx.internal.producers.SingleDelayedProducer.setValue(SingleDelayedProducer.java:85) 	at rx.Single$1$1.onSuccess(Single.java:80) 	at rx.internal.operators.OnSubscribeSingle$1.onCompleted(OnSubscribeSingle.java:55) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.internal.operators.OnSubscribeMap$MapSubscriber.onCompleted(OnSubscribeMap.java:97) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onCompleted(OperatorOnErrorResumeNextViaFunction.java:101) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$2.onCompleted(AbstractCommand.java:1185) 	at rx.internal.operators.OperatorSubscribeOn$1$1.onCompleted(OperatorSubscribeOn.java:68) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication$1.onCompleted(AbstractCommand.java:1423) 	at com.netflix.hystrix.AbstractCommand$ExecutionHookApplication$1.onCompleted(AbstractCommand.java:1356) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225) 	at rx.internal.util.ScalarSynchronousObservable$WeakSingleProducer.request(ScalarSynchronousObservable.java:285) 	at rx.internal.operators.OperatorSubscribeOn$1$1$1.request(OperatorSubscribeOn.java:80) 	at rx.Subscriber.setProducer(Subscriber.java:209) 	at rx.internal.operators.OperatorSubscribeOn$1$1.setProducer(OperatorSubscribeOn.java:76) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.Subscriber.setProducer(Subscriber.java:205) 	at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:138) 	at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:129) 	at rx.Observable.unsafeSubscribe(Observable.java:10211) 	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) 	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 	at rx.Observable.unsafeSubscribe(Observable.java:10211) 	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) 	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) 	at rx.Observable.unsafeSubscribe(Observable.java:10211) 	at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41) 	at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) 	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 	at rx.Observable.unsafeSubscribe(Observable.java:10211) 	at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94) 	at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56) 	at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:47) 	at org.springframework.cloud.sleuth.instrument.hystrix.SleuthHystrixConcurrencyStrategy$HystrixTraceCallable.call(SleuthHystrixConcurrencyStrategy.java:154) 	at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call(HystrixContexSchedulerAction.java:69) 	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)

Thanks so much for trying it out!! We'll look into that ASAP :)

Hi, the issue is still reproducible on Spring Cloud Edgware.SR2(Sleuth 1.3.2). The stack trace is still the same. For now we see as specific scenario details only using of Hystrix with RxJava 1.2. So the scenario is as follows: Reactor-driven microservice accepts incoming HTTP request, does some business logic in Reactor environment, and then calls thirdparty service which is wrapped into Feign client returning RxJava Completable which is then transformed into Mono and sent back to Reactor pipeline.
See the stacktrace below:
java.lang.ClassCastException: org.springframework.cloud.sleuth.instrument.reactor.SpanSubscriber cannot be cast to reactor.core.Fuseable$QueueSubscription
        at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:89)
        at org.springframework.cloud.sleuth.instrument.reactor.SpanSubscriber.onSubscribe(SpanSubscriber.java:61)
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:54)
        at reactor.core.publisher.MonoLift.subscribe(MonoLift.java:46)
        at reactor.core.publisher.Mono.subscribe(Mono.java:3008)
        at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:169)
        at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:53)
        at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:59)
        at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:59)
        at reactor.core.publisher.MonoSwitchIfEmpty.subscribe(MonoSwitchIfEmpty.java:44)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
        at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:198)
        at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:198)
        at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1092)
        at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241)
        at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1092)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:142)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.ignoreDone(MonoIgnoreThen.java:185)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreInner.onComplete(MonoIgnoreThen.java:234)
        at org.springframework.cloud.sleuth.instrument.reactor.SpanSubscriber.onComplete(SpanSubscriber.java:135)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:245)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:245)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:1327)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:245)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:245)
        at reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96)
        at rx.internal.reactivestreams.CompletableAsPublisher$CompletableAsPublisherSubscriber.onCompleted(CompletableAsPublisher.java:70)
        at rx.observers.SafeCompletableSubscriber.onCompleted(SafeCompletableSubscriber.java:49)
        at rx.Completable$19$1.onCompleted(Completable.java:1378)
        at rx.Completable$10$1.onCompleted(Completable.java:576)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.internal.operators.OnSubscribeMap$MapSubscriber.onCompleted(OnSubscribeMap.java:97)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onCompleted(OperatorOnErrorResumeNextViaFunction.java:101)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.internal.operators.OperatorSubscribeOn$1$1.onCompleted(OperatorSubscribeOn.java:68)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onCompleted(OnSubscribeDoOnEach.java:70)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication$1.onCompleted(AbstractCommand.java:1423)
        at com.netflix.hystrix.AbstractCommand$ExecutionHookApplication$1.onCompleted(AbstractCommand.java:1356)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.observers.Subscribers$5.onCompleted(Subscribers.java:225)
        at rx.internal.util.ScalarSynchronousObservable$WeakSingleProducer.request(ScalarSynchronousObservable.java:285)
        at rx.internal.operators.OperatorSubscribeOn$1$1$1.request(OperatorSubscribeOn.java:80)
        at rx.internal.producers.ProducerArbiter.setProducer(ProducerArbiter.java:126)
        at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.setProducer(OperatorOnErrorResumeNextViaFunction.java:159)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.internal.operators.OperatorSubscribeOn$1$1.setProducer(OperatorSubscribeOn.java:76)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.Subscriber.setProducer(Subscriber.java:205)
        at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:138)
        at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:129)
        at rx.Observable.unsafeSubscribe(Observable.java:10151)
        at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)
        at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
        at rx.Observable.unsafeSubscribe(Observable.java:10151)
        at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)
        at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
        at rx.Observable.unsafeSubscribe(Observable.java:10151)
        at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
        at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
        at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
        at rx.Observable.unsafeSubscribe(Observable.java:10151)
        at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
        at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56)
        at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:47)
        at org.springframework.cloud.sleuth.instrument.hystrix.SleuthHystrixConcurrencyStrategy$HystrixTraceCallable.call(SleuthHystrixConcurrencyStrategy.java:188)
        at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call(HystrixContexSchedulerAction.java:69)
        at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Can you setup a sample that we can use to replicate this problem?

See https://github.com/msymonov/sleuth-reactor-class-cast-exception please.
BugTest contains the simplified flow which triggers the aforementioned exception, but in short it seems that the flow could be described as:

we have a long execution pipeline
in the middle it has a statement which returns Mono.empty()
later on, after this statement, we have some mapping/flatmapping operators
in the end we have switchIfEmpty which switches the flow to the normal processing

My observation is that steps 2-3 are the cause, i.e. if any operators are following the step where empty Mono is returned, i.e. they are supposed to be skipped, then BANG!!!

i think i have another observation, the case could simplified even more. And the output is that it is not about Mono.empty(), but rather because of "then(...)" statement, so as soon as you're switching the execution flow to another Mono, then the issue is reproduced

Workaround was found. We are now using "flatMap" instead of "then"

I have spotted an interesting fact, or actually there two of them:
public static <T> Function<? super Publisher<T>, ? extends Publisher<T>> spanOperator(Tracer tracer) {
		return Operators.lift(POINTCUT_FILTER, ((scannable, sub) -> {
			//do not trace fused flows
			if(scannable instanceof Fuseable && sub instanceof Fuseable.QueueSubscription){
				return sub;
			}
			return new SpanSubscriber<>(
					sub,
					sub.currentContext(),
					tracer,
					scannable.name());
		}));
	}

As is seen in a comment so-called fuseable flows shouldn't be traced. However the exception is thrown from FluxMapFuseable$MapFuseableSubscriber, so it seems that we're hitting the place where SpanSubscriber shouldn't be used at all.
Another interesting fact is that it all happens for "then" operator which is internally represented by MonoIgnoreThen class(probably not only by this one, but i can see that this one is involved in the flow), and what is important here is that this class doesn't implement Fuseable interface. I am not sure if this is the reason, and if it is an issue at all, but it could happen that the discussed issue is not a bug of Sleuth, but rather a bug of Reactor.
Do you have any thoughts on these items? Thanks in advance.

I've done some experiments. As soon as i added implements Scannable and implemented one single method scanUnsafe everything finally started to work as expected:
final class MonoIgnoreThen<T> extends Mono<T> implements Scannable, Fuseable {
@smaldini, @marcingrzejszczak
Could you please take a look? Thanks

Thanks, @msymonov for the great analysis. Thanks to it @simonbasle had less work in analyzing the root cause of the problem, and I had almost no work in fixing it :)


Release notes?

Where can I find the realease notes for 1.5.3?

Hey @sebrojas14 normally I publish notes on my blog but just pushed this new version and haven't had a chance to type anything up yet.  But the definite list is always in the commits:
https://github.com/trentrichardson/jQuery-Timepicker-Addon/commits/master
Just look between the "New Version..." type comments to see what changed.

Can this be closed then?


App does not get data from universal link

Hi there,
Firstly, English is not my mother language so sorry if I'm not clear enough. Now, the situation is:
We have a game made with Unity.
We successfully implemented Branch for the Android version, everything works well.
For iOS version, we're currently stuck with this issue:
Tap on the universal link:

If the game is not installed, Branch works correctly: user will be redirected to Appstore, after installing then opening the game, user is redirected to the correct place in the game (according to the data we configured on Branch dashboard).

If the game is already installed, the game is opened, but nothing happens. My dev sees that the callback is not called.

We did further investigation and see that another 3rd party library has some kind interception. The library is Getsocial: www.getsocial.im
I contacted Getsocial and asked about "Several IMPL_APP_CONTROLLER_SUBCLASS" as indicated in your Troubleshooting section and here is their response:
We tried to dig deeper, but havent found a solution. We do override UIApplication, but not AppController to implement deep linking, receive PN token, and handle actions after clicking on the ios notifications.
Do you have any clue to help? Thanks a lot in advance.

Hi phonggenix,
Our team has a new validation tool that allows us to check various information about your Xcode project configuration to make sure everything is configured properly.
The privacy and security of our partners are paramount, and as such the script does not collect or store:
Any of your apps code
Any of your project assets
Your developer email, or personal information
Once the configuration information is collected, the script sends it to Branch and returns a short-link you can follow to view the validation results. For exact instructions on running the script, I'd like to point you to the relevant docs page, found here:
https://dev.branch.io/getting-started/universal-linking-validator/
as well as the validator, which can be found here:
https://branch.io/resources/universal-links/
After running the local script, open the link in your web browser and enter your Branch Key and Secret to view the test results. If you aren't able to get your Universal Links working based on the validators feedback, it would be helpful if you could send me the link the local script returned to you, and any changes you might have made based on the validator's results.
If this does not resolve your issue, please write in directly to<EMAIL_ADDRESS>linking to this GitHub post and we'll get back to you as soon as possible!

Hi @ethanneff ,
provide me with info, where I can find file with IMPL_APP_CONTROLLER_SUBCLASS in Getsocial libary.

Hi Anton,
Actually we had also tested with Branch Test App:

Everything works perfectly for both Android and iOS
Implement Getsocial (www.getsocial.im) into the Test App => Android still works perfectly, but iOS has this issue:

Tap on the universal link:
If the game is not installed, Branch works correctly: user will be redirected to Appstore, after installing then opening the game, user is redirected to the correct place in the game (according to the data we configured on Branch dashboard).
But problem is here: If the game is already installed, the game is opened, but nothing happens. My dev sees that CallbackWithBranchUniversalObject is not called.
So I think you can reproduce the issue yourself by using the Test App and add Getsocial. Please try!
Thanks a lot for your help.
Btw, as stated in the first message:

I contacted Getsocial and asked about "Several IMPL_APP_CONTROLLER_SUBCLASS" as indicated in your Troubleshooting section and here is their response:
We tried to dig deeper, but havent found a solution. We do override UIApplication, but not AppController to implement deep linking, receive PN token, and handle actions after clicking on the ios notifications.

Hi @phonggenix , I have investigated that plugin, and I have found:
1) Get Social plugin has deep linking implementation:
http://docs.getsocial.im/?platform=unity#deep-linking
As I understood, that guys override methods: openUrl, continueUserActivity for deep linking and our plugin can’t do any.
2) That is source code for iOS:
https://github.com/getsocial-im/getsocial-ios-sdk/releases/tag/v5.2.1
As I understand, GetSocial doesn’t get access to framework source code, I can see libraries only and that means we can’t fix any in that plugin.
Possible solution:
Ask they to give you possibility to disable deep linking in that plugin.

Hi Anton,
Thanks for taking time to investigate and provide suggestion.
I've passed this suggestion to Getsocial team and am waiting for your response. Will keep you posted.

@phonggenix, feel free to ping us when you will need help

Hi Anton,
Sorry for late response. GetSocial provided me with a modified version of their SDK and everything works now. Thanks again.

Hi @phonggenix , nice to hear that!
Good luck!


Release 0.3.0

Codecov Report
Attention: Patch coverage is 91.95980% with 16 lines in your changes missing coverage. Please review.

Project coverage is 76.53%. Comparing base (62b9eb8) to head (30c8a9c).
Report is 1 commits behind head on main.

Files
Patch %
Lines

src/senselab/utils/data_structures/model.py
60.00%
10 Missing :warning:

...selab/audio/tasks/speech_to_text/speech_to_text.py
90.56%
5 Missing :warning:

src/senselab/utils/data_structures/device.py
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #59      +/-   ##
==========================================
+ Coverage   70.31%   76.53%   +6.21%
==========================================
  Files          28       34       +6
  Lines         896     1078     +182
==========================================
+ Hits          630      825     +195
+ Misses        266      253      -13

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

So far,

Creating Language class
Creating a SenselabModel class
Creating an HFModel class (child of SenselabModel)
Creating a speech-to-test interface and making it a factory


Add economy plugin

Add an economy plugin that supports different currencies and basic payments to other players.

Added in v0.2.0.


Support for $count & $groupBy

https://github.com/bit-foundation/bit-framework/commit/64a7871e5b2690776e06973c206f10e696bb6f43
$count works for entity sets only for now.


Twitter Shortcode appears broken

If you take a look at the Twitter post embedder, images in tweets don't appear to resolve:
See Twitter Simple Shortcode on the demo site:
https://blist.vercel.app/en/blog/rich-content/
Using {{< twitter_simple<PHONE_NUMBER>018440705 >}} throws a warn on a local hugo serve build too, suggesting you specify both the tweet user and tweet ID like so:
{{< tweet user="KawaaiMayumi" id="1557658979018440705" >}}
However, doing a hugo serve using the new pattern builds and renders fine, but hugo fails to build in Netlify with the following error:
9:57:10 PM: hugo v0.85.0-724D5DB5+extended linux/amd64 BuildDate=2021-07-05T10:46:28Z VendorInfo=gohugoio
9:57:14 PM: Error: Error building site: "/opt/build/repo/content/blog/hugo-rich-content.md:33:6": failed to render shortcode "tweet": failed to process shortcode: template: _internal/shortcodes/tweet.html:6:82: executing "_internal/shortcodes/tweet.html" at <index .Params 0>: error calling index: value has type int; should be string
9:57:14 PM: Total in 4178 ms
9:57:14 PM:
9:57:14 PM: ────────────────────────────────────────────────────────────────
9:57:14 PM:   "build.command" failed
9:57:14 PM: ────────────────────────────────────────────────────────────────
9:57:14 PM:
9:57:14 PM:   Error message
9:57:14 PM:   Command failed with exit code 255: npm i && HUGO_ENVIRONMENT=production hugo --gc (https://ntl.fyi/exit-code-255)
9:57:14 PM:
9:57:14 PM:   Error location
9:57:14 PM:   In Build command from Netlify app:
9:57:14 PM:   npm i && HUGO_ENVIRONMENT=production hugo --gc
9:57:14 PM:
9:57:14 PM:   Resolved config
9:57:14 PM:   build:
9:57:14 PM:     command: npm i && HUGO_ENVIRONMENT=production hugo --gc
9:57:14 PM:     commandOrigin: ui
9:57:14 PM:     publish: /opt/build/repo/public
9:57:14 PM:     publishOrigin: ui
9:57:15 PM: Caching artifacts

Any ideas?

The issue is because of the Hugo version difference in your local machine and netlify. Hugo updated their shortcode to include user ID also for tweet in newer versions.
So if its working for you locally, make sure to set the same hugo version in netlify also. Refer: https://docs.netlify.com/integrations/frameworks/hugo/#hugo-version

@apvarun -You were correct with my site, Netlify was building on 0.83 and my local version was 0.101, so thanks for that.  The site now builds and the tweet loads and the embedded image renders correctly. 👍
The tweet is still broken on your test site though.  Could it be a simialr issue? https://blist.vercel.app/en/blog/rich-content

The tweet should render like so (complete with the image)

This is intentional. In the example site content, we use twitter_simple hugo shortcode instead of tweet shortcode.
The simple one avoids loading twitter's javascript into the page thereby preventing any kind of tracking from them.

Great - thanks for the explaination 👍


[filebeat] Make chart compatible with Kubernetes-on-Windows

[x] Chart version not bumped (the versions are all bumped and released at the same time)
[x] README.md updated with any new values or changes
[x] Updated template tests in ${CHART}/tests/*.py
[x] Updated integration tests in ${CHART}/examples/*/test/goss.yaml

Fix #1050

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

Fixes #1050

I'm curious about why the subPath was used for the config mounts, since you can actually mount a configmap to /usr/share/filebeat and another directory to nested mount /usr/share/filebeat/data. But perhaps this didn't work in older versions of Kubernetes?
If it's needed I can add a toggle value in order to support both behaviours.

@jmlrt does this automatically show up for someone with Elastic? Not sure if anyone's noticing. Thx.

Hey @jmlrt can you please take a look at this PR and let me know if you want any changes? :)

Hi @JorritSalverda,
Thanks for opening this PR.
We'll try to review it soon. Please be patient.

Could help for https://github.com/elastic/helm-charts/issues/404

jenkins test this please

Thanks, I'll have a look at the test errors!

jenkins test this please

Not sure whether the failures in https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request/1212/ have anything to do with the changes in this PR. The integration-filebeat job shows a lot of messages like ‘devops-ci-immutable-ubuntu-1804-1614172431721709433’ is offline.

jenkins test this please

Tests are still failing in https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-filebeat/860/FILEBEAT_SUITE=default,KUBERNETES_VERSION=1.15,label=docker&&virtual/console
14:14:11 helm upgrade --wait --timeout=900s --install helm-filebeat-default ../../
14:14:11 Release "helm-filebeat-default" does not exist. Installing it now.
14:29:12 Error: timed out waiting for the condition

This is usually because pods aren't reaching ready state during Helm install.
This will require some manual tests to understand why it's failing.
In addition our CI tests are only testing K8S/Linux using GKE for now, we'll also need to do manual tests on K8S/Windows.

I'll have a go at testing it locally, but given that not only filebeat, but also kibana, metricbeat, logstash and apm-server integration tests are failing it might be something in a shared piece of test setup.

I'll have a go at testing it locally, but given that not only filebeat, but also kibana, metricbeat, logstash and apm-server integration tests are failing it might be something in a shared piece of test setup.

The other products are transient error where only one test is failing while other are successful:

https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-elasticsearch/895/
https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-kibana/860/
https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-metricbeat/861/
https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-logstash/703/
https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-apm-server/627/

This is something that we need to improve but not unusual regarding that our tests are deploying 91 charts in //.
However, for Filebeat every tests are failing except deployment tests which aren't deploying DaemonSet and so aren't impacted by this PR:

https://devops-ci.elastic.co/job/elastic+helm-charts+pull-request+integration-filebeat/860/

I don't have time to investigate currently but will try to take a quick look next week or the week after if needed.

It turned out that mounting the full configmap to the /usr/share/filebeat directory overwrote other files in that folder, including the filebeat binary which led to a container failing to start.
Unfortunately the previous subPath mounts do not work in Windows containers, so now I've added value mountConfigWithSubpath - defaulting to true - in order to use subPath mounts by default but allowing it to be disabled and mount a full directory instead. In order to put config in a different place for windows containers I've also made the configMountPath configurable and the args to be passed to the container, so argument - "c:\configpath\configfile.yaml" can be added to locate the configfile where it's actually mounted.
This now installs fine locally, but we'll have to check if all tests succeed. I did revert them to test the subPath behaviour.


view crashes with Undefined variable: title

The single photo view mode (you know, the one accessible via a link displayed at the top of the share menu in photo view; basically public/view/?p=<id>) doesn't work with v4. I get the following error:
ErrorException

Undefined variable: title (View: [...]/resources/views/includes/head.blade.php)

I have no idea how any of that blade stuff works so somebody more knowledgeable will need to have a look...

No problem here ... mmmm

I believe you tried the "Direct Link" button at the bottom? I'm talking about copying-and-pasting the URL displayed at the top of the Share menu (or using the Twitter/Facebook/Mail buttons in there).

Yes, sorry, I rechecked. You mean this one?

There I get a 404 though.

Both are fixed now (the URL and the view).


pip install failing

When I try to install this module with pip install f1-22-telemetry
I get the following error.
Collecting f1-22-telemetry
  Could not find a version that satisfies the requirement f1-22-telemetry (from versions: )
No matching distribution found for f1-22-telemetry

Any suggestions?

@pbhasker Try python3 -m pip install f1-22-telemetry

@pbhasker which version of python are you running?

@chrishannam That fixed it for me! Thanks. Resolving.


fix silly mistake in check-all-issues action

related to kittycad/cio#37

I'll talk to you about this come your Monday @hanbollar, Think I need a special PAT for this one that has ['admin:org', 'repo', 'read:project'], the GLOBAL_PAT that Jess added a while back doesn't have read:project.

Might as well give it full project permissions since there's only one subpoint to that anyway.

['admin:org', 'repo', 'project'] is what I have for my test PAT for my test org, and it's working.

bump for the above @hanbollar

@Irev-Dev - just added a GLOBAL_PROJECT_PAT with those privileges : https://github.com/organizations/KittyCAD/settings/secrets/actions

Sorry @hanbollar, still having issues.
Issue now is the token doesn't seem to exist for the action. I made the the action throw if there's no token and sure enough that's what it's doing. I double checked typos and what not, and other env vars are coming through okay 🤷
I can't access your last link because of permissions, so can't dig around myself to try and figure it out.

Sorry, I forgot to chase this up, wasn't able to get this working.
Could always touch base on this in our 1:1 to figure out what's going on with the token.

Sorry, I forgot to chase this up, wasn't able to get this working.
Could always touch base on this in our 1:1 to figure out what's going on with the token.

no worries since this wasnt urgent
i'll start looking into this now to close out but will lyk if any questions ~

@Irev-Dev - looks like the actions ran - anything else needed here to get it going? or good to merge

Had a quick look at the action to try and get context on this again. Yeah looks good okay to me.


How to add icon (svg/png) in step component

Hi, thanks in advance for providing a list of components with tailwindcss this was very helpful :).
I want to ask is it possible to add an icon (svg/png) to a step component? I'm using daisyUI with vuejs here.
Thank you.

Finally, thank you. Maybe it's better if it's documented?

I'm not sure if it should be on the docs...
It's an additional CSS style, not a feature from daisyUI.
many customizations are possible with CSS but I can't document them all 😄


Update ruff check command to fix failing checks

Ruff now requires using the check subcommand rather than running directly without ruff <paths>.

Looks like new Ruff version has also got slightly stricter rules as a type comparison using == was now failing in src/tlo/core.py - now also fixed.


says Slow 4G Throttling on Desktop

Details
I'm running the test with --desktop flag, however clicking on individual score results and scrolling down at the bottom shows
Slow 4G Throttling
Is this an expected behaviour? or am I missing something, is it really slowed down to slow 4g even though I'm on desktop?

also, I notice that the score is low compared to PSI,
I have maxConcurrency=1 and sample=3 to minimize variability.

You'll need to disable throttling using throttle: false in your config.

You'll need to disable throttling using scanner: { throttle: false } in your config.

https://unlighthouse.dev/api/config#scannerthrottle
https://unlighthouse.dev/guide/guides/device#alias-enabledisable-throttling

I have set this configuration to false but got the same result.

Well, without a repro there not much we can do…


WGPU bindings

Library
WebGpu-Native or Dawn
Project page
https://github.com/gfx-rs/wgpu-native
Source repository
https://github.com/gfx-rs/wgpu-native
Platforms
Linux x64, Linux arm64, Linux arm32, macOS x64, macOS arm64, Windows x64, Windows x86, Windows arm64
Description
Webgpu is a metal like library that works inside the web browser. WebGpu-native allows for the webgpu to be used outside of the browser inside of native enviroments. To use these enviroments the library sits on top of DirectX, Metal, and Vulkan. There are two seperate implementations of wgpu for native, one called WebGpu native written in rust with a C ABI, and Dawn that is written in C++.
This was previously mentioned several years ago in an old issue: #614

I also hope to have the support of webgpu.  Webgpu will be a very good cross-platform solution.

Any updates? Vulkan is cursed a mess to get up and running with Kotlin, and OpenGL does not support concurrency.

I looked into creating bindings but did not get past the generator script off of the header file.

Closing this as a duplicate of #614.


Return an error for unsupported versions.

This change is

Codecov Report

Merging #886 (b054732) into main (97422fc) will decrease coverage by 0.08%.
Report is 1 commits behind head on main.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #886      +/-   ##
==========================================
- Coverage   69.80%   69.73%   -0.08%
==========================================
  Files          42       42
  Lines        5684     5690       +6
  Branches     5684     5690       +6
==========================================
  Hits         3968     3968
- Misses       1346     1352       +6
  Partials      370      370

Files Changed
Coverage Δ

crates/native_blockifier/src/py_transaction.rs
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Starter View Implementation

I have added a constant file for storing custom colours.
In sceneDelegate file I have changed ContentView to StarterView.
UI implementation of StarterView.
As of now, I have used system fonts. ( I can change it when you will provide the font)
As of now, I have crop the "loginlogo" from assets. ( I can change it when you will provide the images).

Please take a look.

I have updated on the below points -

Seems identical to the Asset provided.
The Font used is Rubik. (Add it)
Color Hex Value is 2567FF

@tlimaye91 Go ahead, Squash & Merge the PR

@ygit I don't think I have "write" access to merge.


Status does not Updates when ewelink-plugin is configured multiple times

What issue do you have? Please be as thorough and explicit as possible.
We configured the EWELINK Plugin twice:
{
            "name": "eWeLink Garage HOME",
            "countryCode": "39",
            "username": "xxxx",
            "password": "yyyy",
            "mode": "auto",
            "multiDevices": [
                {
                    "deviceId": "1000e6088e",
                    "label": "Garage EWLink",
                    "hideChannels": "3,4,0",
                    "ipAddress": "<IP_ADDRESS>"
                }
            ],
            "ignoredDevices": [
                "1000b72555"
            ],
            "singleDevices": [
                {
                    "deviceId": "10006ca5cc",
                    "label": "Lüfter HOME OG",
                    "ipAddress": "<IP_ADDRESS>"
                }
            ],
            "_bridge": {
                "username": "0E:F2:41:B5:A5:D8",
                "port": 59093
            },
            "platform": "eWeLink"
        },
        {
            "name": "eWeLink",
            "countryCode": "39",
            "username": "xxxx",
            "password": "yyyy",
            "mode": "auto",
            "singleDevices": [
                {
                    "deviceId": "1000b72534",
                    "label": "Licht Matthias",
                    "ipAddress": "<IP_ADDRESS>"
                },
                {
                    "deviceId": "10006ca5cb",
                    "label": "Lüfter HOME OG",
                    "ipAddress": "<IP_ADDRESS>"
                }
            ],
            "multiDevices": [
                {
                    "deviceId": "1000e6088e",
                    "label": "Garage EWLink",
                    "hideChannels": "3,4,0",
                    "ipAddress": "<IP_ADDRESS>"
                }
            ],
            "_bridge": {
                "username": "0E:AD:A0:EF:12:54",
                "port": 37628
            },
            "platform": "eWeLink"
        }

I configured both as "sub-bridge" to have the possibility to add both bridges to a separate Home, because on iOS we can only share the entire home, but not give permissions to separate homes.
This works perfectly - but as the device 1000e6088e is twice in our homebridge-system the status is updated only in one of both devices.
Example

Open the Garage Door on the Device 1000e6088e from EWELINK
Normally if I turn the switch ON, then after X seconds it should go off because the EWELINK only sends an impulse to the garage door. This also works if we configure the Plugin only once.
If we configure the Plugin twice as in the provided config the Status of the Output (Switch) is updated only in one Bridge, but not in both bridges.

We've the most current versions of homebridge, and ewelink.

Hi @matrad
To be honest, I have never tested multiple configurations of the plugin, and it's not something that I take into account when developing the plugin.
Do you use the same ewelink credentials for both configurations?
It could be worth while trying the second configuration with a separate eWeLink account - and sharing the devices you want in your second homebridge bridge from your main ewelink account to this secondary ewelink account via the ewelink app.

I‘m currently using the same credentials for both, but the credentials should not be relevant because I specified the LAN Address, so the control should happen all locally, not trough the cloud.
but I‘ve set now for test-reasons different credentials, and now it seems to work....
i‘ll try it for a while and report if it‘s working this way....

If you enable debug mode on both instances you’ll be able to see exactly what device 'notifications' the plugin receives, from both lan and the cloud.
could be useful in testing, i mean, with the device that is on both instances, if you control it from one it could be useful to see what notifications the other instance gets


Question: Messages from consumer group

Versions
Sarama Version: Latest
Kafka Version: 2.3.0 (Windows)
Go Version: go version go1.12.9 windows/amd64
Problem Description
The consumergroup example in the github consumes the messages inside ConsumeClaim function. Is there any way to get claim.Messages()  and write to a channel  so other functions read/enrich the data  from that channel ?  if possible, Can you give a code snippet to show how to do this?

You could do something like this:
type SimpleKafkaConsumerGroup struct {
	Messages chan<- *sarama.ConsumerMessage
}

func (SimpleKafkaConsumerGroup) Setup(_ sarama.ConsumerGroupSession) error { return nil }
func (SimpleKafkaConsumerGroup) Cleanup(c sarama.ConsumerGroupSession) error {
	log.Infof("closing kafka consumer %v", c)
	return nil
}
func (c SimpleKafkaConsumerGroup) ConsumeClaim(sess sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error {
	log.Infof("kafka consumer handler created for: %v:%v", claim.Topic(), claim.Partition())
	for m := range claim.Messages() {
		log.Debugf("Received message from %v:%v", claim.Topic(), claim.Partition())
		c.Messages <- m
		sess.MarkMessage(m, "")
	}
	return nil
}

then, you can create the messages channel that you can use in other functions
like this:
messages := make(chan *sarama.ConsumerMessage)
handler := kafka.SimpleKafkaConsumerGroup{Messages: messages}
go group.Consume(ctx, topics, handler)

// here, just pass or use directly the `messages` channel
for {
    select {
    case msg := <-messages:
    ...
    }
 }

Just need to make sure about when to mark the message as read, in this example
I'm marking the message as read immediately, which could cause some message loss
if the other functions fail to do whatever they are supposed to do
Let us know if this helps


can this app vend a REST api?

Does django provide an easy way to publish data via REST web services? If it did, that would be great. If not, would it make sense to suggest this as another project, as opposed to an issue in this one?

There are steps in this direction now with tastypie here

FWIW, Django REST Framework seems to be the new darling for build REST APIs in Django. It even comes with a web interface a la the Django Admin to test queries.
I've historically used Django Tastypie for APIs but would probably use Django REST for new projects.


No module named "pip" Ubuntu 22.04 LTS

I'm using borg on both my linux server with Ubuntu 22.04 LTS installed. I updated to the version today. After running my playbook with this role included I got the following error.

Surprised pip isn't included. Maybe needs to be added as dependency.

Is there a possibility for me to add this as dependency manually ?

@ptpu: Can you please tell us, what's the solution? 😁
I'm facing the same problem ;)

Installing python3-pip? It's usually already installed. Maybe this is a very minimal installation? We could add this to the list of required packages, if it's confirmed to solve the problem.
https://packages.ubuntu.com/search?keywords=python3-pip


ERROR:tensorflow:   Failed to close session after error.Other threads may hang.

I am trying to pretrain my ELECTRA base, I keep getting this output:
Running training
================================================================================
2020-11-13 08:00:18.044763: W tensorflow/core/distributed_runtime/rpc/grpc_session.cc:370] GrpcSession::ListDevices will initialize the session with an empty graph and other defaults because the session has not yet been created.
Model is built!
2020-11-13 08:00:48.956655: W tensorflow/core/distributed_runtime/rpc/grpc_session.cc:370] GrpcSession::ListDevices will initialize the session with an empty graph and other defaults because the session has not yet been created.
ERROR:tensorflow:Error recorded from infeed: From /job:worker/replica:0/task:0:
{{function_node __inference_tf_data_experimental_map_and_batch_<lambda>_69}} Key: segment_ids.  Can't parse serialized Example.
	 [[{{node ParseSingleExample/ParseSingleExample}}]]
	 [[input_pipeline_task0/while/IteratorGetNext]]
ERROR:tensorflow:Closing session due to error From /job:worker/replica:0/task:0:
{{function_node __inference_tf_data_experimental_map_and_batch_<lambda>_69}} Key: segment_ids.  Can't parse serialized Example.
	 [[{{node ParseSingleExample/ParseSingleExample}}]]
	 [[input_pipeline_task0/while/IteratorGetNext]]
2020-11-13 08:01:08.642776: W tensorflow/core/distributed_runtime/rpc/grpc_remote_master.cc:157] RPC failed with status = "Unavailable: Socket closed" and grpc_error_string = "{"created":"@1605254468.642525410","description":"Error received from peer","file":"external/grpc/src/core/lib/surface/call.cc","file_line":1039,"grpc_message":"Socket closed","grpc_status":14}", maybe retrying the RPC
2020-11-13 08:01:08.642779: W tensorflow/core/distributed_runtime/rpc/grpc_remote_master.cc:157] RPC failed with status = "Unavailable: Socket closed" and grpc_error_string = "{"created":"@1605254468.642549072","description":"Error received from peer","file":"external/grpc/src/core/lib/surface/call.cc","file_line":1039,"grpc_message":"Socket closed","grpc_status":14}", maybe retrying the RPC
ERROR:tensorflow:Error recorded from outfeed: Step was cancelled by an explicit call to `Session::Close()`.
ERROR:tensorflow:

Failed to close session after error.Other threads may hang.

2020-11-13 08:01:50.857700: W tensorflow/core/distributed_runtime/rpc/grpc_session.cc:370] GrpcSession::ListDevices will initialize the session with an empty graph and other defaults because the session has not yet been created.
ERROR:tensorflow:Error recorded from infeed: From /job:worker/replica:0/task:0:
{{function_node __inference_tf_data_experimental_map_and_batch_<lambda>_69}} Key: segment_ids.  Can't parse serialized Example.
	 [[{{node ParseSingleExample/ParseSingleExample}}]]
	 [[input_pipeline_task0/while/IteratorGetNext]]

I keep getting these errors, too.
I have tried installing and using other Python versions. Also, I change Tensorflow version to 1.15.dev20190909.
None of the above solved the problem.
Waiting for a possible solution.

I have tried every solution possible, and none is working. I'm just wondering how they trained their model, as I really need this to complete a time-bomb project.

Hi, @etetteh
I think I figured out the problem: max_seq_length of pretraining configuration must not exceed max_seq_length when building tfrecords.
I built my trrecords with max_seq_length = 128 (the default) so I cannot pretrain with max_seq_length = 256 or 512.
I tried set max_seq_length = 128 and trained a small model. Things go smoothly!
Regards,

Great. I was about commenting that I fixed mine too. Same stuff I had to change, plus some environment issues

@briverse17 pretraining was successful but, I am get this error during finetuing. Did you have a similar problem?


Improve the message when marking issues as stale

Use literal style (|) in the YAML string, in order to keep new-lines and
have a better formatting.
Be explicit about the dates.
Be more English (hopefully).
Signed-off-by: Hunor Csomortáni<EMAIL_ADDRESS>

Adjusting wording to match packit-service/ogr#426.

Hm, I thought re-requesting a review will block merging until another approval is received... but obviously this is not the case.


WPE as a possible lightweight WebKit version

Cordially reviving the discussion about WebKit RAM usage and solutions, I would like to know if WPE would be an option, since it is an officially maintained lightweight version of WebKit
From webkit.org/wpe and wpewebkit.org:

WPE is the reference WebKit port for embedded and low-consumption computer devices. It has been designed from the ground-up with performance, small footprint, accelerated content rendering, and simplicity of deployment in mind, bringing the excellence of the WebKit engine to countless platforms and target devices.

Design goals

...
To be fast and lightweight, keeping software dependencies to a minimum.
The minimal set of dependencies needed to run WPE ensures that its footprint is small and that applications built with WPE can run in low-end devices.
...

Related to https://github.com/webview/webview/issues/421

One possible library that may help switching to WPE is github.com/Igalia/cog

A quick test:
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
21755 daniel    20   0   83.0g 107844  77696 S   0.0   1.3   0:00.32 cog
22251 daniel    20   0   98.4g  70652  59288 S   0.0   0.9   0:00.30 a.out    (webview.h)

My main concern back then was the noticeable lag when using it on my old Intel Celeron laptop.
Eventually I'll get around to testing it out.
Unfortunately, installing this is a lot more complicated than sudo apt install webkit2gtk-4.0, so I'm
not sure if it's a good replacement in terms of user friendliness.

A quick test:
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
21755 daniel    20   0   83.0g 107844  77696 S   0.0   1.3   0:00.32 cog
22251 daniel    20   0   98.4g  70652  59288 S   0.0   0.9   0:00.30 a.out    (webview.h)

My main concern back then was the noticeable lag when using it on my old Intel Celeron laptop.
Eventually I'll get around to testing it out.
Unfortunately, installing this is a lot more complicated than sudo apt install webkit2gtk-4.0, so I'm
not sure if it's a good replacement in terms of user friendliness.

Thank you for your important feedback!
I can't understand well the memory usage data you provided (in VIRT memory WPE uses less, in RES it uses more, but is more shareable as pointed on SHR).
It seems that using WPE used 50% more RES memory in your test case and if this is a trend, keeping the current approach seems to be better, as well as to keep things as simple as possible.

With the presented results, I believe this issue can be closed

Thank you for researching this @petabyt! I would agree with @paulocoghi that developer experience is an important criterion as well, so I will close this issue for now. Feel free to comment and I will reopen it.


Fix xml to string

The cause of the problem was that MetaData where getting an unsound default toString implementation from extending Iterable... On fix is to explicitly override toString in MetaData (or its sub classes), the other, much cleaner, is to remove this MetaData extends Iterable[MetaData] madness.
@bbarker quick review? This is a clean fix for the override def toString I've pushed in #53...

LGTM! I've run into the extends Iterable[MetaData] weirdness before as well I believe. Pretty soon, this xml impl will be popular enough we may need a scala xml typeclass library ;).


Refactor angular code

Looking at the code I had a hard time not to panic ;-) The code is a bit hard to read and leaks some important details into the global scope.
Using the styleguide of Jon Papa, I refactored the angular code to make it easier to read and understand.
You can find the styleguide here
https://github.com/johnpapa/angularjs-styleguide

Willem, some bindings in the HTML pages were incorrect. I'll fix them and merge the code.


Error with search.js (v1.1.0): 'Client ID is invalid'

Actual Behaviour
I followed the instructions provided in the README to build search.js version 1.1.0 for a Magento website. However, when I integrated the file into the website, I encountered an error stating 'Client ID is invalid.' from the request https://catalog-service-sandbox.adobe.io/graphql
Interestingly, I noticed that there is no issue when using the version v1.0.4, which comes from the URL https://plp-widgets-ui.magento-ds.com/v1/search.js.
Could there be issues in v1.1.0 that are not present in v1.0.4?
Expected Behaviour
Search.js should function without errors and provide the expected search functionality on the website.
Steps to Reproduce

Build search.js by running npm run build.
Integrate search.js into a website, which is Magento in my case.
The search result page is blank and the endpoint https://catalog-service-sandbox.adobe.io/graphql returns an error message 'Client ID is invalid'.

{
    "error": {
        "code": "Forbidden",
        "message": "Client ID is invalid",
        "details": {
            "error_code": "403003"
        }
    }
}

Platform and Version
Adobe Magento Commerce ver. 2.4.7

I'm not sure if this will be helpful but when I forked the project and tried to use search.js, I had to change the following line in store.tsx. They changed this in the recent version.
environmentType?.toLowerCase() === 'testing' && !apiKey ? SANDBOX_KEY : apiKey

to

environmentType?.toLowerCase() === 'testing' ? SANDBOX_KEY : apiKey

Thank you for your help and solution! Your advice was very useful. With the change, I managed to fix my problem. I really appreciate your expertise. Thanks again!

The fix is going in with other v2 feature set, and should be merged soon.  https://github.com/adobe/storefront-product-listing-page/blob/feature/v2/src/context/store.tsx#L77

I have made the updates as mentioned in the posts but I still get the same issue, any ideas? @allforcode @MichaelHeinzman


[hotfix][build] Adjust the file permission for update_japicmp_configuration.sh

What is the purpose of the change
The update_japicmp_configuration.sh has file permission issue access by create_release_branch.sh while building the release candidate.
Brief change log
Adjust the file permission for update_japicmp_configuration.sh
Verifying this change
no need
Does this pull request potentially affect one of the following parts:

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

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Cherry-pick from #12711 which was reviewed and approved already.


Crazy issue "_co.age is not not defined" in events organizer

I think the error is not there anymore


empty state variable

We are currently running on of the examples (example_walk.cpp) via a wired connection, robot does all the actions, defined in the code, but the state variable is filled with zeroes all the time:
By state i mean HighState
HighState state = {0};
udp.GetRecv(state);

robot firmware 1.19
sdk version 3.3.2

Can i see the app screecshot with versions?

Can i see the app screecshot with versions?

What do you mean by app screenshot? I have unitree_legged_sdk, which is compiled and i am running example_walk. My PC is connected to the robot via ethernet cable.
here is the code part, where i am printing the state(printing was just commented and i have uncommented it):
void Custom::RobotControl()
{
motiontime += 2;
udp.GetRecv(state);
printf("%f %f %f %f %f\n", state.imu.rpy[1], state.imu.rpy[2], state.position[0], state.position[1], state.velocity[0]);

cmd.mode = 0;
cmd.gaitType = 0;
cmd.speedLevel = 0;
cmd.footRaiseHeight = 0;
cmd.bodyHeight = 0;
cmd.euler[0]  = 0;
cmd.euler[1] = 0;
cmd.euler[2] = 0;
cmd.velocity[0] = 0.0f;
cmd.velocity[1] = 0.0f;
cmd.yawSpeed = 0.0f;

if(motiontime > 0 && motiontime < 1000){
    cmd.mode = 1;
    cmd.euler[0] = -0.3;
    // cmd.velocity[0] = 0.2f;
}

I want the app help me to ensure these verisons, like:
https://user-images.githubusercontent.com/97996197/171523833-d9bc08f9-0562-430e-bbae-eb5bafc4680e.jpg

I want the app help me to ensure these verisons, like: https://user-images.githubusercontent.com/97996197/171523833-d9bc08f9-0562-430e-bbae-eb5bafc4680e.jpg

I forgot to mention that we have unitree a1, we do not have such application as in your screenshot

My colleague will try this next week.

I have the same problem with the Go1 EDU, the state values are all 0 but the robot moves. I'm using the WiFi connection.

If under AP connection, then the IP should change to "<IP_ADDRESS>".

Thank you, it works.
And using ROS, what can I change to have the IMU data?

When I launch the program "state_sub" , after launching "roslaunch unitree_legged_real real.launch ctrl_level:=highlevel" and for example "rosrun unitree_legged_real example_walk", all the data are equal to 0, but the robot moves.

Then try to modify this line
https://github.com/unitreerobotics/unitree_ros_to_real/blob/master/unitree_legged_real/src/exe/ros_udp.cpp#L28

Feel free to reopen it.


Backport cmdsim.rb: fix ruby syntax to ign-gazebo3

Backport #1884. Part of #1867.
This replaces File.exists? calls with File.exist? to fix the UNIT_gz_TEST on macOS. It also removes a
rescue statement that was hiding useful error messages.
Note to maintainers: Remember to use Rebase-and-merge.

hmm CmdLine.CachedFuelWorld is failing on ubuntu builds, not sure if it's related. Retriggered a couple of github actions

hmm CmdLine.CachedFuelWorld is failing on ubuntu builds, not sure if it's related. Retriggered a couple of github actions

maybe it will be fixed once https://github.com/gazebosim/gz-fuel-tools/pull/318 is released?

hmm CmdLine.CachedFuelWorld is failing on ubuntu builds, not sure if it's related. Retriggered a couple of github actions

maybe it will be fixed once gazebosim/gz-fuel-tools#318 is released?

I tested locally, and that appears to fix it. I've opened a PR to make a patch release of ign-fuel-tools 4.8.1 https://github.com/gazebosim/gz-fuel-tools/pull/325

I just made the ign-fuel-tools 4.8.1 release and will restart CI

the fuel tools 4.8.1 release didn't seem to fix the CmdLine.CachedFuelWorld test

I believe the remaining CLI test is fixed by https://github.com/gazebosim/gz-sim/pull/1885/commits/34aadc89693dc9456dd7059e536336b7ec5dd685


Auto reveal does not work when open the soft link fold

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

VS Code Version:
OS Version:

Steps to Reproduce:

Open the soft link fold of the c++ project
enable the cpp extension or clangd extension
generate the compile_command.json and configure the cpp extesion or clang extension of the with the compile_command.json
use the goto definition and the related cpp file opened
the opened file does not auto reveal in the vscode exploer

Is it a known issue or any configuration can fix it?

This issue needs to be filed against
https://github.com/Microsoft/vscode-cpptools/issues
Would you mind filing the issue there? (Unfortunately, the issue-transfer tool only works with write access on both repos, which I haven't)


Investigate if this monitoring UI is good to replace our existing pipeline UI

https://github.com/monitoror/monitoror

Monitotor is still in developing Project , It doesn't have much features for gitlab pipelines UI ,

External contribution required to use this Project .
moving card todo  --> Backlogs

@AmitKumarDas,
sir can i create a issue on https://github.com/monitoror/monitoror/ project to implement GitLab pipeline status page ?
they are also using Release plan like ours , https://github.com/monitoror/monitoror/projects/7


Conda channels are reversed

See https://github.com/bioconda/bioconda-recipes/pull/8588#issuecomment-380472229
Should be:
channels:
  - bioconda
  - conda-forge
  - defaults

Solved in #22


Atlas.root

Hey @vigji  I'm getting up to speed with all the great work you've done recently. I have one small question comment about this:
https://github.com/brainglobe/brainatlas-api/blob/54b37bed32b12265a7d66aabb68d0dcaea2035bb/brainatlas_api/core.py#L52
Given that root is used in some atlases (e.g. Allen) to refer to the lowest hierarchy structure (i.e. the whole brain),  won't the use of self.root to refer to the base path cause confusion?
e.g. here:
https://github.com/brainglobe/brainatlas-api/blob/54b37bed32b12265a7d66aabb68d0dcaea2035bb/brainatlas_api/core.py#L116
I know that self.root is mostly internal and users won't be using it but maybe we can give it a different name?

Makes perfect sense! I will change it to root_dir.

thanks


Project Test Case 12

Summary
Hi, Im not sure why my server timings are being printed but at the wrong timing(i.e. customer 514) and Im not sure why I am having a self check-out 1. Thanks in advance!

(My arrival class)

I think you could be invoking the wrong serviceTimes for each customer because you are creating the Serve events in the wrong order. You could try to look into your Wait chain of events and see where is causing this wrong order of Serve events to be printed

you could track whether your code is correctly adding and assigning servers in ur simulator class by poll.first and second and from there see where the issue starts/is going wrong. thats how i debugged most of my issues!

you could track whether your code is correctly adding and assigning servers in ur simulator class by poll.first and second and from there see where the issue starts/is going wrong. thats how i debugged most of my issues!

hi!what test cases did you use to test

3 2 3 0.500000
0.0
0.14617563814065818
0.2281918004390985
0.2697347687010419
0.3362781798929442
0.5298293617777683
0.5310527982309206
0.7237937576355621
0.911766835391944
1.1012058189245828
1.2886222487037768
1.3680571171407179
1.4375607229813399
1.4963721293821473
1.5976688548473943
1.620862272453926
1.7749694484697613
1.9069479902084454
1.9382973683224147
2.0139377773866256
2.0418903139673756
2.180879909887874
2.3419254641826166
2.342930499381107
2.4475575305387736
2.596354427786237
2.6247589684294224
2.721104628744542
2.830015590523277
2.9454356427981323
0.000 1 arrives
0.000 1 serves by 1
0.146 2 arrives
0.146 2 serves by 2
0.228 3 arrives
0.228 3 serves by 3
0.270 4 arrives
0.270 4 serves by self-check 4
0.336 5 arrives
0.336 5 serves by self-check 5
0.530 6 arrives
0.530 6 waits at 1
0.531 7 arrives
0.531 7 waits at 1
0.724 8 arrives
0.724 8 waits at 1
0.912 9 arrives
0.912 9 waits at 2
1.000 1 done serving by 1
1.000 6 serves by 1
1.101 10 arrives
1.101 10 waits at 1
1.146 2 done serving by 2
1.228 3 done serving by 3
1.270 4 done serving by self-check 4
1.289 11 arrives
1.289 11 serves by self-check 4
1.336 5 done serving by self-check 5
1.368 12 arrives
1.368 12 serves by self-check 5
1.438 13 arrives
1.438 13 waits at 2
1.496 14 arrives
1.496 14 waits at 2
1.598 15 arrives
1.598 15 waits at 3
1.621 16 arrives
1.621 16 waits at 3
1.775 17 arrives
1.775 17 waits at 3
1.907 18 arrives
1.907 18 waits at self-check 4
1.938 19 arrives
1.938 19 waits at self-check 4
2.000 6 done serving by 1
2.000 7 serves by 1
2.014 20 arrives
2.014 20 waits at 1
2.042 21 arrives
2.042 21 waits at self-check 4
2.076 15 serves by 3
2.181 22 arrives
2.181 22 waits at 3
2.289 11 done serving by self-check 4
2.289 18 serves by self-check 4
2.342 23 arrives
2.342 23 waits at self-check 4
2.343 24 arrives
2.343 24 leaves
2.368 12 done serving by self-check 5
2.368 19 serves by self-check 5
2.448 25 arrives
2.448 25 waits at self-check 4
2.596 26 arrives
2.596 26 leaves
2.625 27 arrives
2.625 27 leaves
2.721 28 arrives
2.721 28 leaves
2.830 29 arrives
2.830 29 leaves
2.945 30 arrives
2.945 30 leaves
3.000 7 done serving by 1
3.076 15 done serving by 3
3.076 16 serves by 3
3.289 18 done serving by self-check 4
3.289 21 serves by self-check 4
3.368 19 done serving by self-check 5
3.368 23 serves by self-check 5
3.849 8 serves by 1
4.076 16 done serving by 3
4.076 17 serves by 3
4.285 9 serves by 2
4.289 21 done serving by self-check 4
4.289 25 serves by self-check 4
4.368 23 done serving by self-check 5
4.849 8 done serving by 1
5.076 17 done serving by 3
5.076 22 serves by 3
5.285 9 done serving by 2
5.285 13 serves by 2
5.289 25 done serving by self-check 4
6.076 22 done serving by 3
6.285 13 done serving by 2
6.285 14 serves by 2
7.285 14 done serving by 2
8.712 10 serves by 1
9.712 10 done serving by 1
9.712 20 serves by 1
10.712 20 done serving by 1
[1.852 24 6]

Thanks!

3 2 3 0.500000 0.0 0.14617563814065818 0.2281918004390985 0.2697347687010419 0.3362781798929442 0.5298293617777683 0.5310527982309206 0.7237937576355621 0.911766835391944 1.1012058189245828 1.2886222487037768 1.3680571171407179 1.4375607229813399 1.4963721293821473 1.5976688548473943 1.620862272453926 1.7749694484697613 1.9069479902084454 1.9382973683224147 2.0139377773866256 2.0418903139673756 2.180879909887874 2.3419254641826166 2.342930499381107 2.4475575305387736 2.596354427786237 2.6247589684294224 2.721104628744542 2.830015590523277 2.9454356427981323
0.000 1 arrives 0.000 1 serves by 1 0.146 2 arrives 0.146 2 serves by 2 0.228 3 arrives 0.228 3 serves by 3 0.270 4 arrives 0.270 4 serves by self-check 4 0.336 5 arrives 0.336 5 serves by self-check 5 0.530 6 arrives 0.530 6 waits at 1 0.531 7 arrives 0.531 7 waits at 1 0.724 8 arrives 0.724 8 waits at 1 0.912 9 arrives 0.912 9 waits at 2 1.000 1 done serving by 1 1.000 6 serves by 1 1.101 10 arrives 1.101 10 waits at 1 1.146 2 done serving by 2 1.228 3 done serving by 3 1.270 4 done serving by self-check 4 1.289 11 arrives 1.289 11 serves by self-check 4 1.336 5 done serving by self-check 5 1.368 12 arrives 1.368 12 serves by self-check 5 1.438 13 arrives 1.438 13 waits at 2 1.496 14 arrives 1.496 14 waits at 2 1.598 15 arrives 1.598 15 waits at 3 1.621 16 arrives 1.621 16 waits at 3 1.775 17 arrives 1.775 17 waits at 3 1.907 18 arrives 1.907 18 waits at self-check 4 1.938 19 arrives 1.938 19 waits at self-check 4 2.000 6 done serving by 1 2.000 7 serves by 1 2.014 20 arrives 2.014 20 waits at 1 2.042 21 arrives 2.042 21 waits at self-check 4 2.076 15 serves by 3 2.181 22 arrives 2.181 22 waits at 3 2.289 11 done serving by self-check 4 2.289 18 serves by self-check 4 2.342 23 arrives 2.342 23 waits at self-check 4 2.343 24 arrives 2.343 24 leaves 2.368 12 done serving by self-check 5 2.368 19 serves by self-check 5 2.448 25 arrives 2.448 25 waits at self-check 4 2.596 26 arrives 2.596 26 leaves 2.625 27 arrives 2.625 27 leaves 2.721 28 arrives 2.721 28 leaves 2.830 29 arrives 2.830 29 leaves 2.945 30 arrives 2.945 30 leaves 3.000 7 done serving by 1 3.076 15 done serving by 3 3.076 16 serves by 3 3.289 18 done serving by self-check 4 3.289 21 serves by self-check 4 3.368 19 done serving by self-check 5 3.368 23 serves by self-check 5 3.849 8 serves by 1 4.076 16 done serving by 3 4.076 17 serves by 3 4.285 9 serves by 2 4.289 21 done serving by self-check 4 4.289 25 serves by self-check 4 4.368 23 done serving by self-check 5 4.849 8 done serving by 1 5.076 17 done serving by 3 5.076 22 serves by 3 5.285 9 done serving by 2 5.285 13 serves by 2 5.289 25 done serving by self-check 4 6.076 22 done serving by 3 6.285 13 done serving by 2 6.285 14 serves by 2 7.285 14 done serving by 2 8.712 10 serves by 1 9.712 10 done serving by 1 9.712 20 serves by 1 10.712 20 done serving by 1 [1.852 24 6]
i used this test case! if you pass this one, you shd be able to pass all 18 alr!


Add default UUID prefix for file registrations

Via a configuration item file_uuid_prefix that specifies a 4 digit hexadecimal number which will be used to constrain all registered FILE uuids to start with those 4 digits and all other entity types to be excluded from those 4 digits.

@shirey Are you sure you want this as a configuration file item, that the apps can change or that can go unnoticed if it is misconfigured a while during data creation?  I don't like hard-coding what may need changing, but I thought this would be better in an enumeration inside uuid_worker.py.


Automatic OPTIONS Responses in Fox

Abstract
This PR proposes the implementation of automatic responses to OPTIONS requests, including system-wide OPTIONS requests. This feature is designed to facilitate the development of APIs by automating part of the process of handling OPTIONS requests.
Introduction
An OPTIONS request is a type of HTTP request used to determine the communication options available for a given resource or API endpoint. In many cases, these requests are used as "preflight" requests to ascertain whether the server understands certain protocols or to obtain permission to access data based on the origin of the request.
System-wide or global OPTIONS requests are a special kind of HTTP OPTIONS request where the target is the entire server rather than a specific resource. This is indicated by the use of a single asterisk "*" as the request-target in the Request Line, as defined in the HTTP/1.1 specification (RFC 7231).
An example of a system-wide OPTIONS request would be:
OPTIONS * HTTP/1.1

For instance, using curl
$ curl --request-target "*" -X OPTIONS -I http://localhost:8080

HTTP/1.1 200 OK
Allow: GET, POST, OPTIONS
Date: Fri, 02 Jun 2023 20:41:35 GMT
Content-Length: 0

These requests are useful for clients to determine the communication options or the capabilities of the web server as a whole, rather than for a specific URL or resource. For instance, a client might use a system-wide OPTIONS request to find out which HTTP methods (GET, POST, PUT, DELETE, etc.) are generally supported by the server, or to check for other global-level features or configurations.
Note that the standard Go HTTP server already includes a global OPTIONS handler, but it does not set the Allow header. This feature must be disabled to fallback to the Fox router's OPTIONS handler, which does provide the Allow header in responses.
srv := &http.Server{
    Handler:                      f,
    Addr:                         ":8080",
    DisableGeneralOptionsHandler: true,
}

Proposal
The router should provide built-in support for automatic OPTIONS responses. This feature can be enabled using the WithAutoOptions or by registering a custom handler using WithOptionsHandler.
For instance, a custom OPTIONS handler could be defined as follows:
f := fox.New(
    fox.WithOptionsHandler(func(c fox.Context) {
	    if c.Header("Access-Control-Request-Method") != "" {
		    // Setting CORS headers.
		    c.SetHeader("Access-Control-Allow-Methods", c.Writer().Header().Get("Allow"))
		    c.SetHeader("Access-Control-Allow-Origin", "*")
	    }

	    // Respond with a 204 status code.
	    c.Writer().WriteHeader(http.StatusNoContent)
    }),
)

In this example, the custom handler checks if the request includes an "Access-Control-Request-Method" header. If this header is present, it's up to the user to set the "Access-Control-Allow-Methods" and "Access-Control-Allow-Origin" headers in the response, allowing the client to make cross-origin requests. The handler then responds with a 204 No Content status code.
Alternatively, a middleware may be registered with the fox.OptionsHandler scope.
f := fox.New(
  fox.WithAutoOptions(true),
  fox.WithMiddlewareFor(fox.OptionsHandler, CorsMiddleware()),
)

These two approaches provide excellent flexibility. However, users also have the option to implement their own custom solutions by leveraging the NoRoute handler.
f := fox.New(
    fox.WithAutoOptions(false),
    fox.WithNoMethod(false),
    fox.WithNoRouteHandler(func(c fox.Context) {
	    if c.Request().Method == http.MethodOptions {
		    methods := c.Tree().LookupMethods(c.Request().URL.Path)
		    if len(methods) > 0 {
			    c.SetHeader("Allow", strings.Join(methods, ", "))
			    c.Writer().WriteHeader(http.StatusOK)
			    return
		    }
	    }

	    http.NotFound(c.Writer(), c.Request())
    }),
)

This proposal extends the Tree API with LookupMethods. This function performs a lookup and returns all HTTP methods associated with a route that matches the given path. Like all other read operations, LookupMethods is lock-free, safe for concurrent use, and can be used while mutations on the tree are ongoing. It's already possible to list all HTTP methods for a route by leveraging the Lookup and Methods API, but this new method reduces the pressure on the sync.Pool, thus offering improved performance.
Benefits
With automatic OPTIONS responses enabled, the server can automatically respond to OPTIONS requests, including system-wide OPTIONS requests, with a 200 OK status and an "Allow" header that lists the HTTP methods supported by the server. This feature can simplify the development of APIs, as developers won't need to manually handle OPTIONS requests.
Furthermore, the ability to register a custom OPTIONS handler, add middleware to the fox.OptionsHandler scope, or use a custom NoRoute handler gives developers the flexibility to handle OPTIONS requests in a way that suits their specific needs.
Clarification
While this feature automates the response to OPTIONS requests, it's important to note that it does not automatically handle CORS. The setting of CORS headers and the handling of CORS preflight requests can be done using a custom middleware, as shown in the example above, but this is still the user's responsibility.
We may add later an official CORS middleware for Fox (@pawndev 🥇).
Request for Comments
Feedback is requested on the proposal for automatic OPTIONS responses for the Fox router. All comments, questions, and suggestions are welcome and will be considered in the development of this feature.

goos: linux
goarch: amd64
pkg: github.com/tigerwill90/fox
cpu: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
                    │   old.txt    │               new.txt               │
                    │    sec/op    │    sec/op     vs base               │
StaticAll-16          11.01µ ±  1%   10.89µ ±  0%  -1.02% (p=0.004 n=10)
GithubParamsAll-16    82.67n ±  1%   83.60n ±  2%  +1.12% (p=0.019 n=10)
OverlappingRoute-16   98.34n ±  1%   97.53n ±  1%  -0.82% (p=0.019 n=10)
StaticParallel-16     9.898n ± 10%   9.949n ±  7%       ~ (p=0.436 n=10)
CatchAll-16           32.57n ±  3%   34.45n ±  0%  +5.76% (p=0.001 n=10)
CatchAllParallel-16   4.949n ± 21%   4.467n ± 12%       ~ (p=0.052 n=10)
PathClean-16          790.8n ±  1%   801.1n ±  1%  +1.32% (p=0.000 n=10)
PathCleanLong-16      4.482m ± 18%   4.778m ± 16%       ~ (p=0.684 n=10)
geomean               387.3n         388.6n        +0.35%

No performance regression detected.


MPICH ABI compatibility

Since one of the aims is "Ease of porting existing code that uses MPICH", I was wondering if there is a plan to be ABI compatible with MPICH similar to many other MPICH derivatives (see https://www.mpich.org/abi/)?

Nice, I second this.
For many basic types and constants MPICH and MSMPI seem to be ABI compatible.
However, for instance MPI_UINT64_T does not match: 0x4c00083e (MPICH) vs.
0x4c00083a (MSMPI).


Support for hot-swapping of multiple models

Support for hot-swapping of multiple models in an experience without leaving the viewer is required. Consider the example of a product that has multiple configurations like an automobile. There could be a selector strip along the edge of the viewer window containing tiny thumbnails representing different models for the different available trim levels. Tapping a thumbnail replaces the current model with the selected model in the viewer allowing for easy and instant exploration and comparison. There would have to be a limit to the number of models bundled with the experience in order to limit the download transmission expense. One option would be to only download the default model and only download other selections if/when they are made but this would not be as performant as having all models downloaded and at the ready. Perhaps this is a decision the experience creator makes.

Would using multiple glTF scenes fulfill this? That would allow a single glTF to contain multiple configurations, and the developer or user could change between them without reloading the model.
Implementation aside, I agree - being able to change between multiple configurations would be great, and unlock use cases like the automobile configurator you mentioned.
(Somewhat related is generating models - see #186).
Thanks!

I would say this is already supported, as you can change the src URL of the model-viewer element at any time, as shown in the last example from this docs page. We even cache the models, so you can switch back and forth quickly, and you can control the cache with modelCacheSize.

Sorry for the necro, but changing the src seems like an inefficient way to swap a sub-component of a model. This means mesh data is duplicated between source files and the client and host both pay the price.
Perhaps a glTF extension, similar to KHR_materials_variants, but for meshes is a better solution, but I'm not sure when or if that would be ratified.
Besides, these type of scene graph API features could allow more interactive experiences to be built.

You should engage the WG on mesh variants; I believe there is interest and having someone driving for it will speed ratification.


Handle different build enviroments

Hi there,
First of all, thanks for this great tool!
Regarding different build environments (develop, staging, production,...) I would like to ask for the preferred way to solve e.g. different API routes for each environment.
Our current solution was to use the babel plugin "utility.inlineEnvironmentVariables", so we specified node.env.API_URL and could use this in our build task. As we upgraded to 0.14.2 we found that this is problematic and throws the following error:
mobile/node_modules/react-native/private-cli/src/bundle/buildBundle.js:22
    'production' = args.dev ? 'development' : 'production';
    ^^^^^^^^^^^^

ReferenceError: Invalid left-hand side in assignment
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:414:25)
    at normalLoader (/Users/danielschmidt/Arbeit/Weluse/projekte/ramelow/ramelowApp/mobile/node_modules/react-native/node_modules/babel-core/lib/api/register/node.js:199:5)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/danielschmidt/Arbeit/Weluse/projekte/ramelow/ramelowApp/mobile/node_modules/react-native/node_modules/babel-core/lib/api/register/node.js:216:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/Users/danielschmidt/Arbeit/Weluse/projekte/ramelow/ramelowApp/mobile/node_modules/react-native/private-cli/src/bundle/bundle.js:11:21)
    at Module._compile (module.js:435:26)

This is (almost) the same error @samsalisbury mentions in https://github.com/facebook/react-native/issues/3948
I understand the problem with this problem, but I am not quite sure how this problem should be solved ideally. Thanks for your help and if you wish I would be glad to write a page in the docs about the  .babelrc and which transformators are supported and which not, as this is currently missing.

+1

The docs you mention would be really helpful @DanielMSchmidt ... I wouldn't know where to begin trying to find out which transforms are allowed though. Hoping one of the core contributors will be able to offer pointers :)

Looks like the issue could be that Babel, which is used to transform the packager tool written in ES7, is finding your .babelrc. We'd need a way to tell Babel not to look for .babelrc files outside of react-native when transforming the packager source.

@samsalisbury Exactly, I will prepare them over the weekend and would just need to know which ones are supported and which not.
@ide not exactly, the babelrc is written by me, so babel behaves correctly. I need the transformation feature in order to distinguish between the different enviroments.

Cool, I suspect what @ide means is that your .babelrc config is being used to compile the packager code itself (rather than your code @DanielMSchmidt). I'm searching for a way to mark a .babelrc file as "root" similar to how .editorconfig files work.
@ide is this the .babelrc that is being used in this case? I can't quite understand the structure of the project, as the "local-cli" dir seems to be called "private-cli" at build time... Or I could just be barking up the wrong tree...

@samsalisbury exactly.
This is where the packager enables Babel when it begins to run: https://github.com/facebook/react-native/blob/master/packager/react-packager/index.js#L11, and it picks up the .babelrc file you linked to.

Well, the behaviour in Babel 6+ should be to pick up the nearest .babelrc according to this comment on .babelrc cascading
However looking at my local source tree, I don't see the react native .babelrc anywhere in the hierarchy node_modules/react-native/private-cli/src/bundle/buildBundle.js, so I think it's just picking up my .babelrc from my project root, outside of the npm package, unless something magic is happening at https://github.com/facebook/react-native/blob/master/packager/react-packager/index.js#L11

@ide Ah, understood what you mean, sorry for the confusion.
@samsalisbury yes, looks like it takes the local .babelrc, which completely explains my error. Do you have any suggestions on how to solve different enviroments? I think I may use the dev flag for the production / local switch, but another enviroment seems quite hard at the moment.

@DanielMSchmidt afaik you should be able to use anything compatible with your own code in your project's own .babelrc including utility.inlineEnvironmentVariables. So, I think this is a genuine issue that needs to be solved in the react-native module, by isolating the compilation of react-native internal components from any .babelrc outside of the module (i.e. in your project's own source tree). That said, I can't quite grasp how the build process works at the moment, I'm pretty green at Node, so I think this will be solved quicker by someone with deeper knowledge (maybe @ide :)

@DanielMSchmidt Thanks for submitting this issue!
Due to the massive growth of Github issues, we're trying to focus on bugs, so discussions on feature requests should be handled on Product Pains or PRs that implement a specific solution to your problem. We're closing this out for now. Thanks for understanding!

Thank you for the input, I just opened a Product Pains issue for that: https://productpains.com/post/react-native/add-mechanism-to-configure-an-enviroment

Anyone interested, please vote for this feature on ProductsPain.


Infinite scroll not working with Default permalinks of WordPress

Hi
I am trying to use Infinite scroll in a WordPress project and trying to add it to the category.
It works fine until i set permalink to plain
Now the page permalink for category page is following
http://example.com/?paged=2&cat=3
Now when i scroll down it  doesn't load next page properly. It actually loads following url
http://example.com/?paged=2&cat=4
If you notice, it is incrementing category (cat) parameter instead of paged which is actuall parameter to denote page number.
When i tried to investigate what exactly happening in your code, i found that there are 3 regex rules defined
var pathRegexes = [   // WordPress & Tumblr - example.com/page/2   // Jekyll - example.com/page2   /^(.*?\/?page\/?)(\d\d?\d?)(.*?$)/,   // Drupal - example.com/?page=1   /^(.*?\/?\?page=)(\d\d?\d?)(.*?$)/,   // catch all, last occurence of a number   /(.*?)(\d\d?\d?)(?!.*\d)(.*?$)/, ];
Here  WordPress regex is only covering WordPress pretty permalink and not plain permalink. So it fallbacks to last option, ie. incrementing last occurence of a number, which in this case is category id.
Can you suggest a solution for this? Or suggest a regex rule for default WordPress permalink.

Thanks for reporting this issue! I'll look into adding a regex to capture the paged parameter for WordPress.
For now, you can set path with {{#}}
path: '/?paged={{#}}&cat=3'

Closing this feature request as it didn't get much interest


Update dependencies

Had an issue when using this template and running lein figwheel dev.
Figwheel: Cutting some fruit, just a sec ...
Exception in thread "main" java.lang.RuntimeException: Reader tag must be a symbol, compiling:(/tmp/form-init16732808283675063374.clj:1:1444)

I used lein ancient upgrade :check-clojure to update dependencies and that sorted it.
-  :dependencies [[org.clojure/clojure "1.8.0"]
-                 [org.clojure/clojurescript "1.10.238"]
-                 [reagent "0.7.0"]
-                 [re-frame "0.10.5"]]
+  :dependencies [[org.clojure/clojure "1.10.0"]
+                 [org.clojure/clojurescript "1.10.520"]
+                 [reagent "0.8.1"]
+                 [re-frame "0.10.6"]]

Thanks for the heads up!


From v0.14 to v1 difficulties using Client

Coming from:
hyper = { version = "0.14.27", default-features = false }

I switched to hyper 1.0.1 but now I'm stuck upgrading the below code:
use hyper::{client::Client, Body, Request};

pub async fn ping(uri: &str) -> Result<()> {
    let hyper_client = Client::new();

    if let Err(e) = retry(5, 2, || {
        let req = Request::builder()
            .uri(uri.to_string())
            .body(Body::empty())
            .unwrap();

        hyper_client.request(req)
    })
    .await
    {
        return "cannot ping!"
    }

    Ok(())
}

Can you help me understand what to use instead of client::Client now?
Should I use hyper_util::client::legacy::Client?
Why the word legacy in the name?
Or should I use all the code in https://github.com/hyperium/hyper/blob/master/examples/client.rs?

https://hyper.rs/guides/1/upgrading/ according to the upgrade guides you can ease your upgrade pain by using hyper_util::client::legacy::Client indeed. It has the word legacy in there because it is really more a utility to allow you to continue to use the "old style" client approach
hyper 1.0 wants to be more low level and thus an actual http client might be too much for that. If you want to not use this legacy utility forever (which isn't recommended anyway I imagine) you might want to either make your own client with hyper's primitives or use something more high level like reqwest;
I don't think all examples are up to date yet. But might be wrong with that.

Not a maintainer or contributor though, so take what i say with a grain of salt.


Update for prometheus-community

Update the codebase for the new prometheus-comunity location.

Replace Travis with CircleCI.
Update to standard Prometheus Makefile.common
Update all Go references.
Drop vendor/ dir
Update vendoring to use Go modules.

Signed-off-by: SuperQ<EMAIL_ADDRESS>

There's more work to do, but this gets us mostly done for setting up builds and releases.


Add type "Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager" + interop

Description
Enable authentication via the Web Authentication Manager (WAM)
Adds "Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager" type via the generator and then adds an interop helper to enable interop via the win32 library. Depends on adding com interop type IWebAuthenticationCoreManagerInterop to win32 sumbitted here win32/pull/702.

Related Issue
#159

Type of Change

[x] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[ ] 🗑 Chore

Thank you!
I'm merging these changes into wam branch so that I can push some changes to it. Once a new version of win32 is released, I'll merge these changes into the main branch and release updated versions."


feat(sidebar): drop-down for each section in SideBar (Mobile Devices)

Problem
As of now all the sections, as well as their subsections, are listed linearly in the sidebar (mobile devices). Which makes it harder to navigate.

Solution
Addition of dropdown for each section.
Something like this :arrow_down:

Addition of dropdown for each section.

That is too much for a mobile site in a sidebar.
Adding some margin left should be enough.


simple website

very simple microsite with links to opensea of the different m3mes and about page

I want to take up this task @madjin

Hey 👋 ,
Let me know if the task is still available.
Here is the portfolio: https://pjijin.now.sh


fix translate

图像增强 -> 图像增广
样式转移 -> 风格迁移

It is my pleasure can join in this open source project

Job d2l-zh/PR-814/2 is complete.
Check the results at http://preview.d2l.ai/d2l-zh/PR-814/

Job d2l-zh/PR-814/3 is complete.
Check the results at http://preview.d2l.ai/d2l-zh/PR-814/


DocsArchive-<IP_ADDRESS>Auto archive content

Auto archive content from https://github.com/OPS-E2E-PPE/docs-archive-test-source

Docs Build status updates of commit 25c9f14:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-11-19-11-59-31 has been deleted or has been force pushed: fatal: couldn't find remote ref refs/heads/Archive_master_2019-11-19-11-59-31

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Prepare 0.0.61 release

Fixes for issue #71 and issue #75.

@skandasoft this was accepted, I think that the updated release should be tagged, and it also needs apm publish?


fully connected layer optimal code

Hi,
For fully connected Layer I have used the sgemm, cblas_sgemm and I got some reasonable number x ms.
When I tried to use the innerproduct available for fullyconnected from mkldnn I am getting more then x ms.
Please suggest if I am missing anything here . Ideally the innerproduct which internally calls avx2 gemm should be less than xms?
Thanks,
Praveen.

Hi Praveen,
Intel MKL-DNN can use two different implementation of SGEMM: JIT based version included in the library or Intel MKL implementation from binary dependency. If you are linking with Intel MKL implementation performance of inner product should be on par with what you do. JIT based version might be slower for some shapes and size.


Add Style/CStyleIncrementDecrement cop

Summary
This PR introduces a new  Style/CStyleIncrementDecrement, aimed at identifying and correcting the usage of C-style increment (++) and decrement (--) operators. Unlike many other programming languages, Ruby does not support these operators for incrementing or decrementing values. Instead, these operators behave as double unary operators and in most cases do nothing. For instance, ++x translates to +(+x), and --x translates to -(-x), which simply affects the sign, not the magnitude.
# bad
++counter
--counter

# good
counter += 1
counter -= 1

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[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] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

This concerns a fundamental syntax of Ruby, and I've reservations about introducing mechanical detection as a cop. First, this cop doesn't distinguish between redundant expressions like ++str and --str. These are redundant expressions of +str and -str. Secondly, it is unclear to me whether the true positives of inexperienced Ruby developers using ++int, or the false positives where such redundant expressions occur, are more valuable. Lastly, var += 1 and ++1 are entirely incompatible syntaxes. It is questionable to introduce this as a cop, especially since C-style var++ or var-- would result in a syntax error in Ruby, yet ++var and --var are considered valid syntax.
If this case becomes a cop, rather than comparing it to C style, it would be better to detect redundant + or - in ++str or --str, thereby guiding users towards the correct usage of +str or -str.
For these reasons, I'll close this proposal. Thank you.

I agree, it looks like autocorrection is not an option for this kind of cop and implying that ++ was mistakenly used as an increment is too specific and doesn't account for other scenarios

If this case becomes a cop, rather than comparing it to C-style, it would be better to detect redundant + or - in ++str or --str, thereby guiding users towards the correct usage of +str or -str.

Yeah, I think I'll let this idea to soak but if agree if such cop was to exist it should only hint on potential redundancy of -- or ++ in any context without guessing what motivated this usage (c-style increment vs double string freeze/unfreeze)
Thanks for the feedback!