How to find "main class" in nextrtc-signaling server

Hi,
I success to build nextrtc-signaling server.
but when I try to run, that error appear like this below.
"Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (default-cli) on project nextrtc-signaling-server: The parameters 'mainClass' for goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java are missing or invalid"
Where and what is mainClass in nextrtc - signaling server?
Additionally,
If I want to use signaling server, do I need to create or modify your code?
I searched about your code, but I did not find anything about your code enough.
If you are OK, please reply my questions.
Thanks.

Additionally,
If I want to use signaling server, do I need to create or modify your code?
I searched about your code, but I did not find anything about your code enough.
If you are OK, please reply my questions.
Thanks.

Hello,
Project nextrtc-signaling-server is a library which must be run in the
container. The basic example how to use it you can find here:
https://github.com/mslosarz/nextrtc-example-videochat
If you want more sophisticated example you can look into
https://github.com/mslosarz/nextrtc-videochat-with-rest
where there is a sample how to react on events which came from signaling
server (mainly this package will be interesting for you:
https://github.com/mslosarz/nextrtc-videochat-with-rest/tree/master/src/main/java/org/nextrtc/examples/videochat_with_rest/domain/handler
)
Best regards
2016-09-08 9:48 GMT+02:00 TaekminKwon<EMAIL_ADDRESS>
Additionally,
If I want to use signaling server, do I need to create or modify your code?
I searched about your code, but I did not find anything about your code
enough.
If you are OK, please reply my questions.
Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-245520049,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysReNtFY-xcy_o3QCmM2ONM31x92Mfks5qn72-gaJpZM4J3iui
.

--
Marcin Ślósarz

Hello
Thanks for your comment.
I was succesfully able to run your sample app(nextrtc-videochat with rest).
I also have questions about your sample app.
I am writing the procedure I did.
_1. connect "localhost:8080  --> No problem

register ID, PW, Name  --> No problem

sign in Name, PW_
--> It has, I cannot sign in with Name, Pw which I already registered.  I think It kinda DB connection problem, because I don't use it. let me know the details. Thanks
anyway, I can connect using this "/action/verify/b588b3d4-6836-4f9c-98fa-b71268db313f"

4.Using next rtc App --> No problem.
and then, I wanted to use this app on my smart phone,
above procedure, 1,2,3 is the same as PC web.(I use the same wifi, because of NAT)
But number 4 didn't operate.
I tried more and had strange things to me.
When I connected "localhost:8080" ... I got number 3 problem(above) problem, anyway I could see nextRtc sample app operated.
But, when I connected "x.x.x.x:8080"(my IP), It appeared Number 4 couldn't operate.
I want to know why it happend and whether I need to modify code on App.
Thanks.

you have to use https instead of http if you want to use your mobile in
tests. (as you can see I'm using https on my example page
https://examples.nextrtc.org/videochat/)
There was a small bug in nextrtc-videochat-with-rest, try to pull changes
and retest.
2016-09-09 10:50 GMT+02:00 TaekminKwon<EMAIL_ADDRESS>
Hello
Thanks for your comment.
I was succesfully able to run your sample app(nextrtc-videochat with rest).
I also have questions about your sample app.
I am writing the procedure I did.
_1. connect "localhost:8080 --> No problem

register ID, PW, Name --> No problem
2.
sign in Name, PW_
--> It has, I cannot sign in with Name, Pw which I already registered.
I think It kinda DB connection problem, because I don't use it. let me know
the details. Thanks
anyway, I can connect using this "/action/verify/b588b3d4-6836-4f9c-98fa-b71268db313f"
4.Using next rtc App --> No problem.
and then, I wanted to use this app on my smart phone,
above procedure, 1,2,3 is the same as PC web.(I use the same wifi, because
of NAT)
But number 4 didn't operate.
I tried more and had strange things to me.
When I connected "localhost:8080" ... I got number 3 problem(above)
problem, anyway I could see nextRtc sample app operated.
But, when I connected "x.x.x.x:8080"(my IP), It appeared Number 4 couldn't
operate.
I want to know why it happend and whether I need to modify code on App.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-245856674,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRW06PcGKoDq4F5F3uKjlcb_uV0X8ks5qoR3jgaJpZM4J3iui
.

--
Marcin Ślósarz

I appreciate for your reply.
but, I have the same problem, even if you fixed small bug. I tried a few times.
(but http://localhost:8080 is successfully connected)
and when I tried to connect to https instead of http, I got the ERR_TIMEOUT on the browser.
(like https://<IP_ADDRESS>:8080)
So, it can't be solution for me.
I want to make sure why it can't operate it for only my site.
So, I leave the log when I tried localhost:8080 and when I did x.x.x.x:8080(my local IP).
[When I use localhost:8080]

when I click the "sign in" button, the log appears as like this below.

2016-09-12 15:24:07 INFO  NextRTCEndpoint:26 - Created org.nextrtc.examples.videochat_with_rest.MyEndpoint@2d572191
2016-09-12 15:24:07 INFO  NextRTCEndpoint:57 - Setted server: org.nextrtc.signalingserver.domain.Server@242edc01 to org.nextrtc.examples.videochat_with_rest.MyEndpoint@2d572191
2016-09-12 15:24:07 INFO  NextRTCEndpoint:32 - Opening: 0
2016-09-12 15:24:07 INFO  NextRTCEventBus:21 - POSTED EVENT: SESSION_OPENED (Optional[org.nextrtc.signalingserver.api.NextRTCEvents$$Lambda$22/59110262@32d780cd]) <- Optional.empty -> (Optional.empty)
Hibernate:
select
user0_.user_id as user_id1_3_,
user0_.confirmation_key as confirma2_3_,
user0_.confirmed as confirme3_3_,
user0_.email as email4_3_,
user0_.password as password5_3_,
user0_.role as role6_3_,
user0_.username as username7_3_
from
Users user0_
where
user0_.username=?
Hibernate:
insert
into
Members
(member_id, connected, disconnected, left_reason, member_rtc_id, user_id)
values
(null, ?, ?, ?, ?, ?)
2016-09-12 15:24:07 INFO  SessionOpenedService:37 - Created member: (1, 0)[2016-09-12T15:24:07.185+09:00 - null]
2016-09-12 15:24:11.480  INFO 2580 --- [ndardContext[]]] org.apache.catalina.webresources.Cache   : The background cache eviction process was unable to free [10] percent of the cache for Context [] - consider increasing the maximum size of the cache. After eviction approximately [9,631] KB of data remained in the cache.

[When I use my local ip : x.x.x.x:8080 (ex, <IP_ADDRESS>:8080)]
I can register and sign in the name and password, but I just can't create and join the room!!
It has small difference between when I sign in the ID and password on localhost and when I did on using my IP.

2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet        : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/login]
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /login
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/login]
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapping [/login] to HandlerExecutionChain with handler [org.springframework.web.servlet.mvc.ParameterizableViewController@366fa24] and 1 interceptor
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet        : Last-Modified value for [/login] is: -1
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet        : Rendering view [org.thymeleaf.spring4.view.ThymeleafView@78f0dc9a] in DispatcherServlet with name 'dispatcherServlet'
2016-09-12 15:32:55.267 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet        : Successfully completed request

the logs like sql query don't appear when I connect to my IP.
I haven't seen this situation before.
Two questions

Could you tell me where I am able to modify code or fix it, if I want to connect using my IP?
If I sign in ID and Password not using this ; "/action/verify/b588b3d4-6836-4f9c-98fa-b71268db313f", I always see "Invalid name or ID". Why it happen? Let me know detail.

Thanks.

Please attach client side logs (console output from browser). In my
opinion your browser has blocked websocket connection because the
connection is not secure. (you're not using https, (how to do it in tomcat:
https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html)

Because your account isn't verified (by enter url /action/verify/{key}
you're verifying your account)

Application (nextrtc-videochat-with-rest) is just proof of concept that
nextrtc is easy to configure with spring-security, and it's possible to
store information about events, and it's still in development.
2016-09-12 8:42 GMT+02:00 TaekminKwon<EMAIL_ADDRESS>
I appreciate for your reply.
but, I have the same problem, even if you fixed small bug. I tried a few
times.
(but http://localhost:8080 is successfully connected)
and when I tried to connect to https instead of http, I got the
ERR_TIMEOUT on the browser.
(like https://<IP_ADDRESS>:8080)
So, it can't be solution for me.
I want to make sure why it can't operate it for only my site.
So, I leave the log when I tried localhost:8080 and when I did
x.x.x.x:8080(my local IP).
[When I use localhost:8080]

when I click the "sign in" button, the log appears as like this
below.

2016-09-12 15:24:07 INFO NextRTCEndpoint:26 - Created
org.nextrtc.examples.videochat_with_rest.MyEndpoint@2d57219
https://github.com/org.nextrtc.examples.videochat_with_rest.MyEndpoint/nextrtc-signaling-server/commit/2d572191
2016-09-12 15:24:07 INFO NextRTCEndpoint:57 - Setted server:
org.nextrtc.signalingserver.domain.Server@242edc0
https://github.com/org.nextrtc.signalingserver.domain.Server/nextrtc-signaling-server/commit/242edc01
to org.nextrtc.examples.videochat_with_rest.MyEndpoint@2d57219
https://github.com/org.nextrtc.examples.videochat_with_rest.MyEndpoint/nextrtc-signaling-server/commit/2d572191
2016-09-12 15:24:07 INFO NextRTCEndpoint:32 - Opening: 0
2016-09-12 15:24:07 INFO NextRTCEventBus:21 - POSTED EVENT: SESSION_OPENED
(Optional[org.nextrtc.signalingserver.api.NextRTCEvents$$Lambda$22/
59110262@32d780cd]) <- Optional.empty -> (Optional.empty)
Hibernate:
select
user0_.user_id as user_id1_3_,
user0_.confirmation_key as confirma2_3_,
user0_.confirmed as confirme3_3_,
user0_.email as email4_3_,
user0_.password as password5_3_,
user0_.role as role6_3_,
user0_.username as username7_3_
from
Users user0_
where
user0_.username=?
Hibernate:
insert
into
Members
(member_id, connected, disconnected, left_reason, member_rtc_id, user_id)
values
(null, ?, ?, ?, ?, ?)
2016-09-12 15:24:07 INFO SessionOpenedService:37 - Created member: (1,
0)[2016-09-12T15:24:07.185+09:00 - null]
2016-09-12 15:24:11.480 INFO 2580 --- [ndardContext[]]]
org.apache.catalina.webresources.Cache : The background cache eviction
process was unable to free [10] percent of the cache for Context [] -
consider increasing the maximum size of the cache. After eviction
approximately [9,631] KB of data remained in the cache.
[When I use my local ip : x.x.x.x:8080 (ex, <IP_ADDRESS>:8080
http://<IP_ADDRESS>:8080)]
I can register and sign in the name and password, but I just can't create
and join the room!!
It has small difference between when I sign in the ID and password on
localhost and when I did on using my IP.
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet
: DispatcherServlet with name 'dispatcherServlet' processing GET request
for [/login]
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] s.w.s.m.m.a.RequestMappingHandlerMapping
: Looking up handler method for path /login
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] s.w.s.m.m.a.RequestMappingHandlerMapping
: Did not find handler method for [/login]
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.w.s.handler.SimpleUrlHandlerMapping
: Mapping [/login] to HandlerExecutionChain with handler [
org.springframework.web.servlet.mvc.ParameterizableViewController@366fa24
https://github.com/org.springframework.web.servlet.mvc.ParameterizableViewController/nextrtc-signaling-server/commit/366fa24]
and 1 interceptor
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet
: Last-Modified value for [/login] is: -1
2016-09-12 15:32:55.266 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet
: Rendering view [org.thymeleaf.spring4.view.ThymeleafView@78f0dc9
https://github.com/org.thymeleaf.spring4.view.ThymeleafView/nextrtc-signaling-server/commit/78f0dc9a]
in DispatcherServlet with name 'dispatcherServlet'
2016-09-12 15:32:55.267 DEBUG 30464 --- [nio-8080-exec-8] o.s.web.servlet.DispatcherServlet
: Successfully completed request
the logs like sql query don't appear when I connect to my IP.
I haven't seen this situation before.
Two questions

Could you tell me where I am able to modify code or fix it, if I want
to connect using my IP?
If I sign in ID and Password not using this ;
"/action/verify/b588b3d4-6836-4f9c-98fa-b71268db313f", I always see
"Invalid name or ID". Why it happen? Let me know detail.

Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-246261725,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRfbewsvCSlU22CiTMd1nxC33nrjJks5qpPRsgaJpZM4J3iui
.

--
Marcin Ślósarz

Hello, Thank you for your reply.

Yes, that's right. The reason is "connection is not insecure".

[log]
This appears to be Chrome
adapter.js:35 chrome: {"video":true,"audio":true}
adapter.js:441 getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.
nextRTC.js:199 error {}
I searched "Chrome 47 WebRTC: media recording, secure origins & proxy handling"
getUserMedia() requests is allowed from secure(https or localhost)
So, I need to secure the application using https.
but when I connected https, console shows this err log.
[log]   (x is number of IP)
GET https://192.x.x.x:8080/conversation.html net::ERR_SSL_PROTOCOL_ERROR
https://192.x.x.x:8080/conversation.html:1 GET https://192.x.x.x:8080/conversation.html net::ERR_TIMED_OUT
(https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html
https://google.com
I can connect above url)

I got it.

Q. please let me know how to apply secure origin; https to your application.
I sincerely appreciate your endeavour to develope new things.
Thanks.

I'll write tutorial how to setup https in sample app but I think that it
should be described in spring boot documentation
19 wrz 2016 04:15 "TaekminKwon"<EMAIL_ADDRESS>napisał(a):

Hello, Thank you for your reply.

Yes, that's right. The reason is "connection is not insecure".

[log]
This appears to be Chrome adapter.js:35 chrome:
{"video":true,"audio":true} adapter.js:441 getUserMedia() no longer works
on insecure origins. To use this feature, you should consider switching
your application to a secure origin, such as HTTPS. See
https://goo.gl/rStTGz https://goo.gl/rStTGz for more details.
nextRTC.js:199 error {}
I searched "Chrome 47 WebRTC: media recording, secure origins & proxy
handling"
getUserMedia() requests is allowed from secure(https or localhost)
So, I need to secure the application using https.
but when I connected https, console shows this err log.
log http://x is number of IP
GET https://192.x.x.x:8080/conversation.html
https://192.x.x.x:8080/conversation.html net::ERR_SSL_PROTOCOL_ERROR
https://192.x.x.x:8080/conversation.html:1
https://192.x.x.x:8080/conversation.html:1 GET
https://192.x.x.x:8080/conversation.html
https://192.x.x.x:8080/conversation.html net::ERR_TIMED_OUT
(https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html
https://google.com
I can connect above url)

I got it.

Q. please let me know how to apply secure origin; https to your
application.
I sincerely appreciate your endeavour to develope new things.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-247900895,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRWaC02Np6FRpgI0R8mexemRTM7Qaks5qrfA1gaJpZM4J3iui
.

To setup your app with https you have to:
add to application.properties:
server.port=8433
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=password
server.ssl.key-password=password
server.ssl.key-store-type=JKS
server.ssl.key-store-provider=SUN
server.ssl.key-alias=tomcat
change wsURL in index.html to:
wsURL : 'wss://<IP_ADDRESS>:8433/signaling',
enter to directory src/main/resources
and generate self signed certificate:
keytool -genkey -alias tomcat -keyalg RSA  -keystore keystore.jks
Enter keystore password: password
Re-enter new password: password
What is your first and last name?
[Unknown]:  <IP_ADDRESS>
What is the name of your organizational unit?
[Unknown]:  Develepment
What is the name of your organization?
[Unknown]:  NextRTC
What is the name of your City or Locality?
[Unknown]:  Cracow
What is the name of your State or Province?
[Unknown]:  Malopolskie
What is the two-letter country code for this unit?
[Unknown]:  PL
Is CN=<IP_ADDRESS>, OU=Develepment, O=NextRTC, L=Cracow, ST=Malopolskie, C=PL corre
ct?
[no]:  yes
Enter key password for  (RETURN if same as keystore password):
then:

run: mvn clean install && java -jar target/videochat.war
enter https://localhost:8433 in your favourite browser
accept untrusted certificate

2016-09-19 20:54 GMT+02:00 Marcin Ślósarz<EMAIL_ADDRESS>
I'll write tutorial how to setup https in sample app but I think that it
should be described in spring boot documentation
19 wrz 2016 04:15 "TaekminKwon"<EMAIL_ADDRESS>napisał(a):

Hello, Thank you for your reply.

Yes, that's right. The reason is "connection is not insecure".

[log]
This appears to be Chrome adapter.js:35 chrome:
{"video":true,"audio":true} adapter.js:441 getUserMedia() no longer works
on insecure origins. To use this feature, you should consider switching
your application to a secure origin, such as HTTPS. See
https://goo.gl/rStTGz https://goo.gl/rStTGz for more details.
nextRTC.js:199 error {}
I searched "Chrome 47 WebRTC: media recording, secure origins & proxy
handling"
getUserMedia() requests is allowed from secure(https or localhost)
So, I need to secure the application using https.
but when I connected https, console shows this err log.
log http://x is number of IP
GET https://192.x.x.x:8080/conversation.html
https://192.x.x.x:8080/conversation.html net::ERR_SSL_PROTOCOL_ERROR
https://192.x.x.x:8080/conversation.html:1
https://192.x.x.x:8080/conversation.html:1 GET
https://192.x.x.x:8080/conversation.html
https://192.x.x.x:8080/conversation.html net::ERR_TIMED_OUT
(https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html
https://google.com
I can connect above url)

I got it.

Q. please let me know how to apply secure origin; https to your
application.
I sincerely appreciate your endeavour to develope new things.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-247900895,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRWaC02Np6FRpgI0R8mexemRTM7Qaks5qrfA1gaJpZM4J3iui
.

--
Marcin Ślósarz

If you want you can check it I've created branch with https configuraiton:
https://github.com/mslosarz/nextrtc-example-videochat/tree/default_ssl

Thank you.
I didn't you did comment.
I actually solved that issue to make private ssl and I can connect the server application on various smart phone devices now.
Anyway, Could you tell me how to compile App on Eclipse?
or any comments and descriptions about that?
I want to debug to follow your code, but it's quite difficult and unfarmiliar to excute debug mode on Linux console.
when nextrtc_viceochat_withrest run on server, it spilt error like this.
2016-10-10 11:21:14.608  INFO 9660 --- [ost-startStop-1] o.s.w.s.s.s.ServerEndpointExporter       : Registering @ServerEndpoint class: class org.nextrtc.examples.videochat_with_rest.MyEndpoint
2016-10-10 11:21:14.626 ERROR 9660 --- [ost-startStop-1] o.s.boot.SpringApplication               : Application startup failed
java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class org.nextrtc.examples.videochat_with_rest.MyEndpoint
at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.java:148) ~[spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE]

I think that you're using too old tomcat version try 8+ or you should
remove two beans from NextRTCEndpointConfig (MyEndpoint and
ServerEndpointExporter) there were added for embedded tomcat.
The best way to debug is configure jpda and connect to server as to remote
process (
http://javarevisited.blogspot.com/2011/02/how-to-setup-remote-debugging-in.html?m=1)
or setup tomcat in eclipse directly
Best regards
10 paź 2016 06:25 "TaekminKwon"<EMAIL_ADDRESS>napisał(a):

Thank you.
I didn't you did comment.
I actually solved that issue to make private ssl and I can connect the
server application on various smart phone devices now.
Anyway, Could you tell me how to compile App on Eclipse?
or any comments and descriptions about that?
I want to debug to follow your code, but it's quite difficult and
unfarmiliar to excute debug mode on Linux console.
when nextrtc_viceochat_withrest run on server, it spilt error like this.
2016-10-10 11:21:14.608 INFO 9660 --- [ost-startStop-1] o.s.w.s.s.s.ServerEndpointExporter
: Registering @ServerEndpoint class: class org.nextrtc.examples.
videochat_with_rest.MyEndpoint
2016-10-10 11:21:14.626 ERROR 9660 --- [ost-startStop-1]
o.s.boot.SpringApplication : Application startup failed
java.lang.IllegalStateException: Failed to register @ServerEndpoint
class: class org.nextrtc.examples.videochat_with_rest.MyEndpoint
at org.springframework.web.socket.server.standard.ServerEndpointExporter.
registerEndpoint(ServerEndpointExporter.java:148)
~[spring-websocket-4.2.5.RELEASE.jar:4.2.5.RELEASE]
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-252536342,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRZe_PdU88ZAQ1akfda-Bhj2LP1JEks5qyb5RgaJpZM4J3iui
.

Hi,
what's up? I feel like post issue in a long time.
I am still developing server and client site with your code.
but I got some problems, the part of calling REST api.
I am not sure It is partly related to nextRTC signaling server. If you don't mind it, I wish you would help me out to solve problems. :)
I want to call rest api to load login session from my database.
The flow is..
Client : XML throws request to Server following https://IP:PORT/v0.1/login
Server : server prepared to receive client's request.
making the class using this annotation @RequestMapping("/v0.1/login")      (It is the same way you created RegisterController.java)
However, I always get "forbidden" 403 error including message "Expected CSRF token not found. Has your session expired?", even if I set 'X-CSRF-TOKEN' header in client.
I tried to search it. I found this is only offering more than Spring version 3.2.
but, in running your code, it doesn't seem to need CSRF token.
please post your ideas, if you know kinds of solutions or recommendation to solve this problem.
Thank you.

Hello
If you dont need csrf you can easly disable it in configuration (method
disableCsrf or something simillar). I dont remember how to provide csrf
token to webapp (I suspect its standalone app)
Best regards
5 lis 2016 09:43 "TaekminKwon"<EMAIL_ADDRESS>napisał(a):

Hi,
what's up? I feel like post issue in a long time.
I am still developing server and client site with your code.
but I got some problems, the part of calling REST api.
I am not sure It is partly related to nextRTC signaling server. If you
don't mind it, I wish you would help me out to solve problems. :)
I want to call rest api to load login session from my database.
The flow is..
Client : XML throws request to Server following https://IP:PORT/v0.1/login
Server : server prepared to receive client's request.
making the class using this annotation @RequestMapping("/v0.1/login") (It
is the same way you created RegisterController.java)
However, I always get "forbidden" 403 error including message "Expected
CSRF token not found. Has your session expired?", even if I set
'X-CSRF-TOKEN' header in client.
I tried to search it. I found this is only offering more than Spring
version 3.2.
but, in running your code, it doesn't seem to need CSRF token.
please post your ideas, if you know kinds of solutions or recommendation
to solve this problem.
Thank you.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-258598902,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRdX5hPPo0fiRx0C4NTfC71zN_Reyks5q7EGpgaJpZM4J3iui
.

Hi,
Thanks for your response.
I am curious that you are not still offering application(nextrtc videochat with rest) using signaling server.
No reference here more.

I want to use custom variable in your application code, but It always appears "UNEXPECTED_SITUATION" exception.
the client code is like this(1. client site)
I tried to find the cause and where this exception appears.
This exception arise in server site before webSocket onMessage part.(2.server site)
Do you know why it happened?
1.Client site
	this.offerRequest = function(url){
		var custom = "{\"url\":"+url+"}";

		var pc = nextRTC.preparePeerConnection(nextRTC, id);
		pc['pc'].addStream(nextRTC.localStream);
		pc['pc'].createOffer(function(desc) {
			console.log("desc:  " +desc);
			pc['pc'].setLocalDescription(desc, function() {
				nextRTC.request(id, 'offerRequest',  desc.sdp, custom);
			}, error, success);
		}, error);
	}

Server site.

    @OnMessage
    public void onMessage(Message message, Session session) {
        log.info("Handling message from: " + session.getId());
        server.handle(message, session);
    }

Sorry for late response,.
Could you please provide full log from execution (JS and Server side)?
2016-11-28 9:31 GMT+01:00 TaekminKwon<EMAIL_ADDRESS>
I want to use custom variable in your application code, but It always
appears "UNEXPECTED_SITUATION" exception.
the client code is like this(1. client site)
I tried to find the cause and where this exception appears.
This exception arise in server site before webSocket onMessage
part.(2.server site)
Do you know why it happened?
1.Client site
this.offerRequest = function(url){
var custom = "{"url":"+url+"}";
  var pc = nextRTC.preparePeerConnection(nextRTC, id);
  pc['pc'].addStream(nextRTC.localStream);
  pc['pc'].createOffer(function(desc) {
  	console.log("desc:  " +desc);
  	pc['pc'].setLocalDescription(desc, function() {
  		nextRTC.request(id, 'offerRequest',  desc.sdp, custom);
  	}, error, success);
  }, error);

}

Server site.

@OnMessage
public void onMessage(Message message, Session session) {
    log.info("Handling message from: " + session.getId());
    server.handle(message, session);
}

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-263211080,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRZOOynppew8wzY9vmAnBh61VBqRaks5rCpFsgaJpZM4J3iui
.

--
Marcin Ślósarz

Hi.
I fixed the issues before. Thanks for your answer anyway.
I almost make my server using your library.
but I got one issue too.
this is about Exception handler.
I understood that onError method will handle the error or situation after getting error, when Server got Error(especially nullpointerException)
but when the server got Error, It executes onError method infinitely. It means that it is not able to handle the error.
My code and flow are here below.
1. the error happen
2. InvocationTargetException in InvocationTargetException.java executes right after
3. onError method is executed in NextRTCEndPoint class
my onError code is here
    @OnError
    public void onError(Session session, Throwable exception) {
        log.info("Occured exception for session: " + session.getId());
        log.error(exception.getCause());
    }

I put off "server.handleError(parm)", so It just only shows the log, do nothing.
4. After that, onError method is executed again.
I want to fix this issue as soon as possible.
If you have idea to fix it, I appreciate to let me know.
Thanks.

Thanks for explanation!
I'll fix it asap, and release 0.0.5v.
Best regards
Marcin
2016-12-15 11:28 GMT+01:00 TaekminKwon<EMAIL_ADDRESS>
Hi.
I fixed the issues before. Thanks for your answer anyway.
I almost make my server using your library.
but I got one issue too.
this is about Exception handler.
I understood that onError method will handle the error or situation after
getting error, when Server got Error(especially nullpointerException)
but when the server got Error, It executes onError method infinitely. It
means that it is not able to handle the error.
My code and flow are here below.
1. the error happen
2. InvocationTargetException in InvocationTargetException.java executes
right after
3. onError method is executed in NextRTCEndPoint class
my onError code is here
@OnError
public void onError(Session session, Throwable exception) {
    log.info("Occured exception for session: " + session.getId());
    log.error(exception.getCause());
}

I put off "server.handleError(parm)", so It just only shows the log, do
nothing.
4. After that, onError method is executed again.
I want to fix this issue as soon as possible.
If you have idea to fix it, I appreciate to let me know.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-267293851,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRVKKwdtsyoOLZvN7EbdD0dZL7Kanks5rIRY9gaJpZM4J3iui
.

--
Marcin Ślósarz

Could you know the reason?

I'll prepare branch for you where I'll introduce small changes in onError
method. Then I'll ask you for help in recreate this issue (just by build
and use this version instead of release one).
With stack trace I'll be able to cover that case with test :)
PS.
If it's possible please download nextrtc-signaling-server and change
onError method body to this (I'll put it to branch but tomorrow....):
log.info("Occured exception for session: " + session.getId());
log.error("General exception occured!", exception);
try {
server.handleError(session, exception);
} catch(Exception e){
log.error("Something goes wrong during handling general exception", e);
}
Best regards
2016-12-16 0:56 GMT+01:00 TaekminKwon<EMAIL_ADDRESS>
Could you know the reason?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-267479999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRUEdc1FROkNf3o2GNq50iXyTJTedks5rIdPEgaJpZM4J3iui
.

--
Marcin Ślósarz

Thanks for reply and your favor.
but, I have something I want to know.
If unregister method in server.handleError is not executed, does Error(EOFException) occured continueously?
I have been building the project using your library, so I changed some parts for my application.
I will appreciate that you response me ASAP.
Thanks.

I think that it might be connected with ping task... but I'm not sure...
2016-12-16 11:11 GMT+01:00 TaekminKwon<EMAIL_ADDRESS>
Thanks for reply and your favor.
but, I have something I want to know.
If unregister method in server.handleError is not executed, does
Error(EOFException) occured continueously?
I have been building the project using your library, so I changed some
parts for my application.
I will appreciate that you response me ASAP.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-267560676,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRSrLPXsX8b7LoPy79avNSXgac6H3ks5rImPEgaJpZM4J3iui
.

--
Marcin Ślósarz

I don't think so. I erased ping task.
the error log is here.
java.io.EOFException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1267)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.isReadyForRead(NioEndpoint.java:1176)
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:58)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:788)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1485)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

Try to check if websocket chanel is still alive because it seems that
socket connecion was closed or something in log there are only info about
eof during try of read / protocol switch
Best regards
17 gru 2016 02:06 "TaekminKwon"<EMAIL_ADDRESS>napisał(a):

I don't think so. I erased ping task.
the error log is here.
java.io.EOFException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.
fillReadBuffer(NioEndpoint.java:1267)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.
isReadyForRead(NioEndpoint.java:1176)
at org.apache.tomcat.websocket.server.WsFrameServer.
onDataAvailable(WsFrameServer.java:58)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.
upgradeDispatch(WsHttpUpgradeHandler.java:148)
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(
UpgradeProcessorInternal.java:54)
at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:53)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:788)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
run(NioEndpoint.java:1485)
at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-267731947,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRcZLxPaOWalUhQof7Uza8PyoT-4Hks5rIzWmgaJpZM4J3iui
.

In version 0.0.5 There are improvements in handling errors maybe It'll help you

Hi,
Thanks for your fast comment.
I want to make Client site made by Java, not javascript.
I tried some libraries(Jetty, tylus..) which are supporting websocket api, but those are all connection failed. exactly(connection time out). after making simple server using the same port and same url, It worked.
Could you give a comment for success?
Here is Client site code.
Application.java
public class Application {

	public static void main(String[] args) throws URISyntaxException, IOException {
		// TODO Auto-generated method stub
		new Application().run(new URI("wss://localhost:8443/signaling/"));

	}

	public void run(URI destinationUri) throws IOException{
		// TODO Auto-generated method stub
        SslContextFactory sslContextFactory = new SslContextFactory();
        Resource keyStoreResource = Resource.newResource(this.getClass().getResource("/keystore.jks"));
        sslContextFactory.setKeyStoreResource(keyStoreResource);
        sslContextFactory.setKeyStorePassword("123456");
        sslContextFactory.setKeyManagerPassword("123456");
        WebSocketClient client = new WebSocketClient(sslContextFactory);
        MyWebSocket socket = new MyWebSocket();
        try {
            client.start();
            ClientUpgradeRequest request = new ClientUpgradeRequest();
            System.out.println("Connecting to : " + destinationUri);
            client.connect(socket, destinationUri, request);
            socket.awaitClose(5, TimeUnit.SECONDS);
        } catch (Throwable t) {
            t.printStackTrace();
        } finally {
            try {
                client.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
	}

}

**
MyWebSocket.java
**
@WebSocket
public class MyWebSocket {
    private final CountDownLatch closeLatch = new CountDownLatch(1);

    @OnWebSocketConnect
    public void onConnect(Session session) {
        System.out.println("WebSocket Opened in client side");
        try {
            System.out.println("Sending message: Hi server");
            session.getRemote().sendString("Hi Server");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @OnWebSocketMessage
    public void onMessage(String message) {
        System.out.println("Message from Server: " + message);
    }

    @OnWebSocketClose
    public void onClose(int statusCode, String reason) {
        System.out.println("WebSocket Closed. Code:" + statusCode);
    }

    public boolean awaitClose(int duration, TimeUnit unit) throws InterruptedException {
        return this.closeLatch.await(duration, unit);
    }

}

You're using native implementation of websocket for jetty. NextRTC is using JSR 356 standard. I think that it should be simple to rewrite implementation of endpoint to jetty native. You can try to do it on your own and share the results :)

Thank you for your answer.
I am trying to search and find solutions, but it was failed.
Let me know more detail, if you have some ideas.
I have some questions about your comment.
The first thing ;
Do I need to make implementation of endpoint in client site?
I surely specify the server endpoint URL and private certificate related to server's.
In javascript site, it just specify webSocket object like "new WebSocket(URL)". It's successful.
And second thing;
in nextRTC signal server, server attached encoding and decoding class. I wonder every client site has the same things.
Thank you.

Hi.
I will give you some information about my test results.
Firstly, I did test using Jetty version 9.4.
the all the things before version 9.1.x or 9.2.x were failed to connect, because they didn't offer the JSR 356 native. I think Tyrus has also some bugs in secured line socket.
Anyway, as I said, I tested nextRTC signal server focusing the sessions in increments.
When the number of clients is almost 10,000, the signal server has not responding at all. it just stop creating session.
If the session of clients which are created are released because of timeout or  forced termination, the other clients request are successful to connect to Server.

request 20,000 session to connect.
almost 10,000 exampe) after 9998 session is opened and did not responding, blocking(no exception)
another process requests also are blocking.
after session which are conneting to server are released, the other requests are accomplished.

I hope that you fixed this issues.
Thanks.

I'll try to recreate this issue on other servlet container (like tomcat)
this number 10k connections seems like some configuration property of
jetty. But I'll get deeper into it as soon as possible.
Thanks for your commitment in nextRTC!
2017-02-13 8:20 GMT+01:00 TaekminKwon<EMAIL_ADDRESS>
Hi.
I will give you some information about my test results.
Firstly, I did test using Jetty version 9.4.
the all the things before version 9.1.x or 9.2.x were failed to connect,
because they didn't offer the JSR 356 native. I think Tyrus has also some
bugs in secured line socket.
Anyway, as I said, I tested nextRTC signal server focusing the sessions in
increments.
When the number of clients is almost 10,000, the signal server has not
responding at all. it just stop creating session.
If the session of clients which are created are released because of
timeout or forced termination, the other clients request are successful to
connect to Server.

request 20,000 session to connect.
almost 10,000 exampe) after 9998 session is opened and did not
responding, blocking(no exception)
another process requests also are blocking.
after session which are conneting to server are released, the other
requests are accomplished.

I hope that you fixed this issues.
Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/mslosarz/nextrtc-signaling-server/issues/11#issuecomment-279311395,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADysRezYxWiApjpb8KmjiELEL5kepN1kks5rcAQxgaJpZM4J3iui
.

--
Marcin Ślósarz

this number 10k connections seems like some configuration property of
jetty.
=> I think this problem has nothing to do with Client and the number of client sockets.
because each time I tried, the number of sockets which are connected is different.
connection count ; 9994, 9991, 9996, 10001, 9889 like these...
also, when I use two clients,
Client 1 made  7,000 connections, it was success. without termination after that, client 2 tried to make 5,000 connections, almost 3,000 connections was made and the other connections were waiting for server response.

I've written that because I find in tomcat documentation something like this:

maxConnections
The maximum number of connections that the server will accept and process at any given time. When this number has been reached, the server will accept, but not process, one further connection. This additional connection be blocked until the number of connections being processed falls below maxConnections at which point the server will start accepting and processing new connections again. Note that once the limit has been reached, the operating system may still accept connections based on the acceptCount setting. The default value varies by connector type. For NIO and NIO2 the default is 10000. For APR/native, the default is 8192.
Note that for APR/native on Windows, the configured value will be reduced to the highest multiple of 1024 that is less than or equal to maxConnections. This is done for performance reasons.
If set to a value of -1, the maxConnections feature is disabled and connections are not counted.

I try to connect to server with highest number of connections, but I didn't write any logic for max number of clients ;)

Thanks.
I want to know how to set maxConnections configuration in spring-boot.
I don't know the property which is able to set maxConnections in application.properties.
Let me know if you know.

Hello,
I am able to run the example, and I integrated the example in my project successfully, but when i make connection I get userPrinciple as null. Can you please let me know how can i send user information when video connection is established ?

@sidchoudhary
There's project nextrtc-videochat-with-rest where you can find, how to configure security with nextRTC. If you want to find specific implementation just look here (service and handler
You can post custom attributes in custom message field see doc
Best regards


add advisory event - helm-operator

can you rebase?

This can be closed https://github.com/wolfi-dev/advisories/pull/1638


Question: eigenvalue problem

Hi, I searched this repository for a function to the solve the eigenvalue problem, but could not find a suitable one.
Is there any way to solve it using Owl? If not, will Owl provide it in future? Or Do I miss somthing?

Hi @wkwkes
you are right, there wasn't any yet, but it is very easy to add actually. I added four functions a moment ago and you can try them out if you are using docker image or build from master branch yourself.
The four functions in Linalg module are
val eigen_symm : mat_d -> mat_d                       (* real symmetric, returns eigenvalues *)
val eigen_symmv : mat_d -> mat_d * mat_d       (* real symmetric, returns eigenvalues and vectors *)
val eigen_nonsymm : mat_d -> mat_z                 (* real asymmetric, returns eigenvalues *)
val eigen_nonsymmv : mat_d -> mat_z * mat_z  (* real symmetric, returns eigenvalues and vectors *)

Here is an example:
let x = Mat.semidef 4;;
let v, z = Linalg.eigen_symmv x;;

let z' = Linalg.inv z;;
Mat.(z' $@ x $@ z);;

I hope this suits your need for the time being. The linalg module will be redesigned soon in the future to provide better apis :)

This is what I wanted.
Thank you for the so quick response!


Elastic Net Regression in R

Hi,
I just downloaded the h2o4gpu package for R 4.0.2 and tried running the examples. While running the elastic net regression, i got the following error :
System Information :
R : 4.0.2
Cuda : 10.0.130
Python: 3.6
packageVersion(h2o4gpu): 0.3.2
Code :
train <- read.csv("https://s3.amazonaws.com/erin-data/higgs/higgs_train_10k.csv")
test <- read.csv("https://s3.amazonaws.com/erin-data/higgs/higgs_test_5k.csv")
Create train & test sets (column 1 is the response)
x_train <- train[, -1]
y_train <- train[, 1]
x_test <- test[, -1]
y_test <- test[, 1]
model_enc <- h2o4gpu.elastic_net_classifier() %>% fit(x_train, y_train)
Error :
Error in py_call_impl(callable, dots$args, dots$keywords) :
ImportError: cannot import name 'signature'
Detailed traceback:
File "/users/PAS1316/prateeksasan/venv/h2o4gpu/lib64/python3.6/site-packages/h2o4gpu/solvers/elastic_net.py", line 1607, in get_params
return self.model.get_params()
File "/users/PAS1316/prateeksasan/venv/h2o4gpu/lib64/python3.6/site-packages/h2o4gpu/solvers/elastic_net.py", line 1259, in get_params
for key in self._get_param_names():
File "/users/PAS1316/prateeksasan/venv/h2o4gpu/lib64/python3.6/site-packages/h2o4gpu/solvers/elastic_net.py", line 1232, in _get_param_names
from ..utils.fixes import signature

You need to substitute line 1232 in elastic_net.py with
from funcsigs import signature


chore: Bump typescript to 3.2.4

Closes #24
3.1 needed for module scope properties but this breaks eslint typescript parser. Bumping that requires 3.2 so we end up using 3.2

changes in `lib/`
diff --git a/lib/index.d.ts b/lib/index.d.ts
index 88b946c..de35968 100644
--- a/lib/index.d.ts
+++ b/lib/index.d.ts
@@ -1,7 +1,16 @@
-declare const _default: ((expectation: () => void, timeout?: number, interval?: number) => Promise<{}>) & {
+/**
+ * Waits for the expectation to pass and returns a Promise
+ *
+ * @param  expectation  Function  Expectation that has to complete without throwing
+ * @param  timeout  Number  Maximum wait interval, 4500ms by default
+ * @param  interval  Number  Wait-between-retries interval, 50ms by default
+ * @return  Promise  Promise to return a callback result
+ */
+declare const waitForExpect: {
+    (expectation: () => void, timeout?: number, interval?: number): Promise<{}>;
     defaults: {
         timeout: number;
         interval: number;
     };
 };
-export default _default;
+export default waitForExpect;
diff --git a/lib/index.js b/lib/index.js
index 3984921..2a2a6d7 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -55,10 +55,8 @@ var waitForExpect = function waitForExpect(expectation) {
   });
 };

-var _default = Object.assign(waitForExpect, {
-  defaults: defaults
-});
-
+waitForExpect.defaults = defaults;
+var _default = waitForExpect;
 exports.default = _default;
 module.exports = exports.default;
 module.exports.default = exports.default;
\ No newline at end of file
diff --git a/lib/toBeInRangeMatcher.d.ts b/lib/toBeInRangeMatcher.d.ts
index 301e8e7..caaf585 100644
--- a/lib/toBeInRangeMatcher.d.ts
+++ b/lib/toBeInRangeMatcher.d.ts
@@ -6,7 +6,7 @@ declare namespace jest {
         }): R;
     }
 }
-declare function toBeInRange<T>(received: number, {min, max}: {
+declare function toBeInRange<T>(received: number, { min, max }: {
     min: number;
     max: number;
 }): {
diff --git a/lib/toBeInRangeMatcher.js b/lib/toBeInRangeMatcher.js
index 70a4c8b..2d2841d 100644
--- a/lib/toBeInRangeMatcher.js
+++ b/lib/toBeInRangeMatcher.js
@@ -3,6 +3,7 @@
 /* eslint-env jest */
 // XXX Not sure how to make eslint not to complain here, but looks like this
 // declaration works, so leaving it for now
+// eslint-disable-next-line no-unused-vars
 function toBeInRange(received, _ref) {
   var min = _ref.min,
       max = _ref.max;

This looks ok and even better than before since we now include the jsdoc block.

Thanks! I agree - this does look better to me.
I'm a bit surprised that eslint started complaining in the custom jest matcher. Do you know why? :)
Maybe we should switch to the typescript no-unused rule now:
{
  "rules": {
    // note you must disable the base rule as it can report incorrect errors
    "no-unused-vars": "off",
    "@typescript-eslint/no-unused-vars": 2
  }
}

https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-vars.md#options

Do you know why? :)

the eslint plugin requires typescript 3.2.4

Maybe we should switch to the typescript no-unused rule now:

Can this be done in a separate PR?

haha, sure, I don't want to be annoying or picky! Usually my understanding is that it's a responsibility of a person creating a PR to not introduce linting ignores unless necessary, but this is minor and I'm happy to fix this myself. I'm already grateful for the work!
Let's wait for Kent to make sure we are aligned and I think we will merge this one.

not introduce linting ignores unless necessary

I understood this as adding new rules sorry. You were suggesting that the new rule would not report this false positive? I'll give it a look.

@lgandecki I switched to rules. I took the liberty and added  --report-unused-disable-directives to the linting task which made it clear that we can drop even more eslint-disables.

Thanks a lot, this is great. Since we haven't heard from @kentcdodds I'm assuming he is indifferent so I'm going to merge this one.
Once the semantic-release bots releases this, would you go to the dom-testing-library and make a PR with a bump of the wait-for-expect?
btw on one hand it seems like a chore but I don't think that causes a version bump, so I'll squash as a fix. Thanks for keeping the convention though!

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Exit code must equal 1 when tests fail

1 == bad
0 == good
When tests / quality control processes are run on CI platforms such as TravisCI, they need to 'exit' (finish) with the appropriate code so that TravisCI (in this case) knows what to do next.
I.e. When some tests fail, which have to run inside an R session, that R session should exit and return '1', which then tells TravisCI that something has gone wrong and the build should be marked as 'failed'.
By default, this does not happen when using devtools::test() but adding reporter = 'stop' as an argument fixes this. Now, R calls stop() when a test fails, which will exit the R session with '1'.  You can test this on the command line:
R -e "stop('error')"
echo $?
Now that this is 'fixed' the build should fail until I merge in Sam's changes.

Note that the tests were failing before I merged the master in (initial commit vs merge commit).


Backport fix for libm underlinking issue

Checklist

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

This is a partial backport of:
   Author: Stephane Popinet<EMAIL_ADDRESS>   Date:   Wed Apr 29 12:09:24 2009 +0100

       Fix for debian package symbols generation

       darcs-hash:e0800bacaede3e2cbfe0b604930f6f5c2a9a396b

The latest build of this package on Debian also has this fix included
xref: https://salsa.debian.org/science-team/gts/-/blob/debian/0.7.6+darcs121130-5/src/Makefile.in?ref_type=tags#L252

Resolves #5

I think @seanyen is not working on conda-forge at the moment. Do you want to add yourself as mantainer?

Tahnks @nehaljwani !


Support Custom Route Handlers

Next.js 13.2 introduces custom route handlers. See https://nextjs.org/blog/next-13-2#custom-route-handlers. We currently handle routes in pages/api, but we'll need to support this as well for Next 13 users.
For the most part, this should work out of the box because it will be reflected in the routes manifest, but we may need to tweak our logic a bit to support this.

This is now tested and can confirm it works out of the box 🎉


Minor disease annotation updates

data_provider and secondary_data_provider slots changed to multivalued=false
disease_qualifiers slot changed to multivalued=true
private slot renamed to internal
@gildossantos @edwong57 - the first of these changes will cause your test files to fail

@markquintontulloch - I could see the private to internal change in the tests, but not in the core.yaml - so I just added them. Hopefully that is what was intended.

@gildossantos - yes, thanks for catching that.


Start shutting the site down

Pursuant to https://github.com/gratipay/inside.gratipay.com/issues/1196, this PR announces the shutdown and puts the site into read-only mode (more or less). I plan to self-merge this today once ready if no-one else is around.

[ ] write blog post announcing shutdown
[ ] turn off sign-ups
[ ] turn off new payments

Chad. I don't mean to get all grown-up on you, but you owe it to the users to write a more explicit shutdown announcement than a Hitchhiker's Guide reference.

@mattbk I figured that would go in a blog post that we would link from the homepage. Sound right?

Redid that first commit (ripped out tests and css/js as well). Now it looks like this:

Here's a blog post draft:
Gratipay, Year Five and a Half
Title is patterned on the yearly reports we published until this year, will include a subtitle with the punchline.
Gittip, Year One
Gittip, Year Two
Gratipay, Year Three
Gratipay, Year Four
I'm hoping to work up a graphic based on the volume/users charts.

Title switched to "The End of Gratipay" to be more direct.

Dropped the levity, @mattbk. ^^^

Gar, weird error on Travis. Can't repro locally. Cache purge?

Cache purged, still failing.

😡

I just pushed a no-op commit to see if this fails on master as well.

Okay! https://travis-ci.org/gratipay/gratipay.com/builds/295928402?utm_source=github_status passed. So it's some change introduced by code changes?

Got it!

Rebased post-#4678.

@Changaco Do you have a page on Liberapay explaining what migration entails?

Do you have a page on Liberapay explaining what migration entails?

Not seeing one in https://github.com/liberapay/liberapay.com/pull/773. Will proceed without for now, we can link later.

9b7a7532f9e9b0536b3a496a26e308f500dda58b

Do you have a page on Liberapay explaining what migration entails?

We list what will and won't be imported on the first page of the migration process, but we don't have a public page with a general explanation.

I forgot to clarify that the user actually has to log in on Gratipay before clicking the "Migrate to Liberapay" button.

I've added the message "Oops, you need to go back to Gratipay and log in before starting the migration." on the Liberapay side when the data is missing.

If nobody else does it first I'll open a PR to fix the issue on the Gratipay side tomorrow. Right now I have to sleep.

a PR to fix the issue on the Gratipay side

https://github.com/gratipay/gratipay.com/pull/4680


Fix to handle shovels in connections list

When shovels are used the connection state and oct_details are empty so the check_rabbitmq_connections will display perl errors. This fix handles these errors so the output is correct for both shovel and normal connections.

Merging...
Thanks @omattsson


Create an example dataset

Create a good example dataset that covers all of the scenarios that we are encountering.
Remember, it doesn't have to be perfect. Just get it done and improve later.
It should be small enough that it's easy to "see" what's going on.
It should be large enough to be meaningful.
I was going to say that it should also be large enough to not trigger estimation problems, but that is actually something the package should handle intelligently -- not a "problem" to avoid.

Still need to use Xmen names

Trying to put together an Rmd document that walks through the process from start to finish. The current data was little unrealistic for my situation because it doesn't have multiple rows over time. I'm going back to the DETECT data to help me come up with some realistic examples.


Horizontal bar chart with border/lines under bars

Hi there,
I would be happy if somebody could help me with some layout challenge I got. I have to place a border which is as long as the Y-axis on bars of a horizontal bar chart. See my screenshot.
https://ibb.co/vqy54sj
Any help is very appreciated.

It seems you have to copy the link to a new tab. It's not working by clicking.

Hello @operatorone 👋
Chartist has recently been updated to version 1.0 with some new exciting changes like ESM and TypeScript support. The migration guide can be found right here.
Please let me know if the question is still relevant to you so we can look into it further!


fix: fix overlapping of confirmation buttons by prompt name when user deletes the prompt

Fixed the issue 286: Prompt name overlays confirmation buttons when user deletes the prompt

/deploy-review

Please take a look on conversations delete case, because there is the same problem

/deploy-review

/deploy-review

/deploy-review

/deploy-review


Support inlining view / dataframes logical plan

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
DataFusion supports filter/limit/projection pushdown for views and dataframes via the tableprovider interface after https://github.com/apache/arrow-datafusion/pull/3905 . Inlining the LogicalPlan (as an optimization rule) would bring more opportunities for optimizations.
Describe the solution you'd like
Support optimization rule that inlines view and dataframes.
A method could be added to the tableprovider trait that returns a Option<LogicalPlan>. This can be used by an optimization rule (e.g. InlineTableProvider).
Describe alternatives you've considered
Additional context

I vaguely remember a discussion about this topic though I can't find it again now -- perhaps @HaoYang670 ?

🎉


subscribe command fails consistently

The subscribe command seems to be failing with a 404 from the Recurse Center API.
Reproducing steps

Send unsubscribe
Send subscribe
Receive "something went sideways" error message

Other notes
Originally reported in Zulip
The most specific error message I see is from https://github.com/recursecenter/pairing-bot/blob/09a09c068d3eeae287895efbbb2120888e1f7beb/api.go#L39-L39

Could not read currently-at-RC data from database: while reading from offset 0: HTTP error while getting active RCers from the RC API: 404 Not Found

(From what I saw), the RC API turns up 404 on authentication issues; we should check the tokens used to talk to the API.

I swapped the (unused) rc-apiauth value into the (used) rc-accesstoken value; the rc-accesstoken value worked for a manual request.
I was able to unsubscribe and subscribe successfully after that.

Thanks for the fix! You got to it before I even got a chance to look at the code any further. Which is good, because the 404 was about to send me looking at how we build the request rather than toward the API key. I would have expected a 401 Unauthorized instead :shrug:
I can't think of any other changes I want to make in response to this, so... closing!


feat(theme): patch theme

Description
This is a patch of the theme mainly made by @shipow.
Changes

Reduce specificity
Have CSS utility classes for gradient instead of adding gradients to the panel layout (this makes the integration with the footer coming from the future Layout API easier)
Introduce aa-ItemVisual for a wider image to display products
Introduce column layouts with support for:

2 columns
2 columns with a golden ratio (see if useful, this can look good for QS on the left and results on the right)
3 columns

Styles are not yet really clean. We'd like to try this version of the theme in multiple sandboxes that we have and iterate other times.

We might want to enforce more rules in the stylelint configuration:

max-nesting-depth
no-descending-specificity
selector-max-compound-selectors

Is there a reason why we nulled them?

I think I prefer the version of your sandbox @francoischalifour where we pass the grid template settings directly in the template. More flexible less custom to learn, i think it's an acceptable use of inline css.

I've given a second look at the stylesheet and added inline comments. Apart from this, we likely need to address specificity issues.
Here's the dependency graph of the compiled CSS (using this tool, it's stateless so you'll have to do it yourself to reproduce). Usually, you want to avoid spikes, and an ideal curve is either mostly flat (no specificity at all) or goes smoothly up (like this) which indicates that the specificity increases with the source order.

Here are some of the issues that the graph has picked up:

Some selectors are nested (e.g., .aa-Autocomplete .aa-Form), others aren't (.aa-InputWrapperPrefix). Is the nesting necessary? Nesting is usually only useful if you have class names that are styled differently in different contexts. In the given example (and others in the code base), it's not the case. I think the aa prefix does the job of isolating the styles already, so unless we need specificity to style the same class differently depending on its parent, we can probably keep them one level deep.
We style on tag name in several occasions (.aa-InputWrapperPrefix .aa-Label svg). This isn't a huge deal, but it can be less performant given how CSS rules are read by the engine. Another concern is, if users go for an <img> instead of an SVG, they'll have to add custom CSS while they could just reuse the right class on them.
We have compound selectors such as .aa-Panel.aa-Panel--stalled. This is unnecessarily specific (0,2,0) and that's what BEM modifiers + source order are here to control. Just using .aa-Panel--stalled and ensuring it comes after .aa-Panel lowers the specificity to 0,1,0 with no side-effects.

The above examples are representative of other selectors that use the same patterns. An easy way to spot them and fix them is to either use the CSS Specificity Graph Generator used above, or set the Stylelint rules no-descending-specificity, selector-max-compound-selector and max-nesting-depth to a higher severity.

The only concept i'm really attached there is how to discover the full hierarchy of autocomplete just from the css. I tried to reduce specificity without impacting the readability. I think the output css is pretty bad but I've privileged the "fork" experience over the override. Happy to find any good compromise that don't impact the initial intent.


Install/build issue

There seems to be a problem when installing influxdb-relay lately. I was able to install it successfully a few weeks ago but if I try to install it now it will return the following error:
ubuntu@relay-test-1804:~$ go get -u github.com/vente-privee/influxdb-relay
package github.com/influxdata/influxdb/pkg/escape: code in directory /home/ubuntu/go/src/github.com/influxdata/influxdb/pkg/escape expects import "github.com/influxdata/influxdb/v2/pkg/escape

I've tried on fresh install of Ubuntu 20.04 and 18.04 and get the same error message on both.
There has been some discussion on a similar issue here but nothing mentioned  there seems to work https://github.com/influxdata/influxdb-relay/issues/79
Any thoughts?

I also have this issue on centos 8.

I had the same issue on centos. Any help is appreciated


Support for Turbo Modules

Hello Dev Team, is turbo module support being planned for this SDK? We've updated to latest and seems it does not have any support at this point.

hi there, thanks for the feedback, due to priority, not this moment, but I'll raise it in our team discussion next week, hopefully will find time to look into it after June.

Thank you for the reply. In the meantime, we are trying to add it this SDK to our interop list.
We've tried these packages below but so far cannot get this SDK to work with our turbo modules build. Do you know exactly what we should be adding since you would be more familiar with the SDK?
We are adding to:
unstable_reactLegacyComponentNames
Tried these so far:
'CTKAdManageNativeManager', 'CTKAdManageNative', 'CTKAdaptiveBannerView', 'CTKBannerView', 'CTKAdaptiveBannerView', 'CTKInterstitial', 'CTKAdaptiveBannerViewManager', 'CTKBannerViewManager'

I believe newer versions of the Interop Layer don't require listing the components, and may require less work for React Native Ad Manager to support than a full TurboModules conversion. Which isn't to say TurboModules isn't a good bet in the long term, or that every project's going to support the latest Interop Layer just yet (some are likely stuck on older versions of React Native), but just that it may be possible to support New Arch on the latest versions of React Native without much conversion work on the part of NZME.

Related to #111

Hi,
As we have an updated react-native version as 0.73.6, So, is there any ETA to enable Turbo Modules for the updated react-native version?


fix: Show link to docs on any unauthorized notification errors.

Changes
Whenever a notification message contains the word "unauthorized", i've replaced that with the text given in the issue #3016
Checklist

[x] tested locally
[x] added new dependencies
[ ] updated the docs
[ ] added a test

Hi @abhinandanwadwa , thank you for your contribution!
I reviewed the PR and left a few comments

Thanks for the reviews, i've started working on them!


Hot Reload and SQFlite

Certain transactions only run after hot reload. Why?

SQFlite is not maintained by the Flutter team.
You might ask here: https://github.com/tekartik/sqflite or generally for questions like this ask on stackoverflow

@mado-bohsali
I see that you have already asked this question on sqflite repo. Closing from here.


[doc] dead link fixed in crdt.adoc

dead link fixed (in line with eventsourced.adoc, hence not linked to the method itself).

@pvlugter I think this CI run fails unrelated to my PR:
https://app.circleci.com/pipelines/github/cloudstateio/cloudstate/598/workflows/da00ab5c-9e54-4173-921d-74fcb469a2b8/jobs/2101

I think this CI run fails unrelated to my PR

Yes, some of the integration tests seem to be more flaky since switching to the new operator, when waiting for things to be ready. Probably needs to be tweaked. Have restarted the failed test.

Tests have passed now, on 3rd attempt.

Yeah, tried to find a pattern for the three failed and two ok CI runs with the logs diffed. Beside on all failed occasions with:
Testing shopping cart test2 ...
Expected '{"items":[]}'
But got 'The server was not able to produce a timely response to your request.

which seems to be triggered by an akka-http timeout(?) and
Error from server (BadRequest): container "cloudstate-sidecar" in pod "shopping-cart-cassandra-6545fb5986-z4ssl" is waiting to start: ContainerCreating

this might be a race.

Looking to fix the smoke tests with #471


sync master to devel

Description
Take all changes from master to devel before 0.4.x release

@sh-rp
conflicts:
.github/workflows/test_doc_snippets.yml - we need both
docs/website/docs/examples/connector_x_arrow/code/load_arrow-snippets.py - we take master
tests/utils.py - we take devel


Metadata Refresh Does't Update Topic IDs After Topic Recreation

Summary
Metadata refresh does not update Topic IDs after a topic is recreated, causing continuous Fetch failures.
Environment

franz-go Version: v1.16.1
Kafka Version: 3.6.1 bitnami container
Operating System: macOS

Problem Description
When a Kafka topic is deleted and subsequently recreated with the same name, the franz-go library's metadata refresh mechanism does not appear to update the Topic ID associated with the topic. This mismatch between the metadata and the broker state leads to continuous failures in subsequent Fetch requests.
Expected Behavior
During a metadata refresh, the following should occur:

The library should check both the topic name and the Topic ID.
If a topic name exists, but the associated Topic ID has changed, it indicates that the topic has been recreated.
The library should update its internal metadata to reflect the new Topic ID.

Steps to Reproduce

Create a Kafka topic (e.g., "mytopic")
Use the franz-go client to perform operations on the topic (produce/consume).
Delete the Kafka topic "mytopic".
Recreate a Kafka topic with the same name "mytopic".
Attempt to perform Fetch requests using the franz-go client.

Observed Behavior
Fetch requests continuously fail, likely due to the client using the outdated Topic ID from before the topic's recreation.
Here is a script to reproduce the issue:
package main
import (
   "context"
   "fmt"
   "time"

   "github.com/twmb/franz-go/pkg/kadm"
   "github.com/twmb/franz-go/pkg/kgo"
)

func main() {
   var (
       topic = "franzgo_bug_report_topic"
   )

   consumer, err := kgo.NewClient(
       kgo.SeedBrokers("localhost:9092"),
       kgo.ConsumerGroup("franzgo_bug_report_consumer_group"),
       kgo.ConsumeTopics(topic),
   )
   if err != nil {
       panic(fmt.Errorf("error creating consumer: %w", err))
   }

   producer, err := kgo.NewClient(
       kgo.SeedBrokers("localhost:9092"),
   )
   if err != nil {
       panic(fmt.Errorf("error creating producer: %w", err))
   }

   admin, err := kadm.NewOptClient(
       kgo.SeedBrokers("localhost:9092"),
   )
   if err != nil {
       panic(fmt.Errorf("error creating admin: %w", err))
   }

   _, err = admin.CreateTopic(context.Background(), 1, 1, nil, topic)
   if err != nil {
       panic(fmt.Errorf("error creating topic: %w", err))
   }
   fmt.Println("TOPIC CREATED")

   go func() {
       for {
           ctx, cc := context.WithTimeout(context.Background(), 5*time.Second)
           results := producer.ProduceSync(ctx, &kgo.Record{
               Key:   []byte("Key"),
               Value: []byte("Value"),
               Topic: topic,
           })
           cc()
           if err := results.FirstErr(); err != nil {
               fmt.Printf("ERROR: %s\n", err.Error())
           }
           time.Sleep(time.Second)
       }
   }()

   go func() {
       for {
           ctx, cc := context.WithTimeout(context.Background(), 5*time.Second)
           fetches := consumer.PollFetches(ctx)
           cc()

           if err := fetches.Err(); err != nil {
               fmt.Printf("ERROR: %s\n", err.Error())
           }
       }
   }()

   fmt.Println("SLEEPING 10s BEFORE DELETING TOPIC")
   time.Sleep(10 * time.Second)
   _, err = admin.DeleteTopics(context.Background(), topic)
   if err != nil {
       panic(fmt.Errorf("error deleting topic: %w", err))
   }
   fmt.Println("TOPIC DELETED")

   <-context.Background().Done()
}

Impact
This bug can disrupt applications relying on the franz-go library for Kafka interactions. When topics are recreated (which might happen for various reasons like configuration changes), clients cannot interact with the new topic.
Workaround
Currently, the only known workaround is to restart the application using the franz-go library. This forces a full metadata refresh, picking up the correct Topic ID.

This is intentional, and IIRC, part of the reason topic IDs were introduced in Kafka itself -- to guard against a client automatically producing to or consuming from a topic that has been deleted and recreated.
If you want to keep the client alive, you could PurgeTopicsFromClient and then AddConsumeTopics.
From what I remember, it's not a common workflow to want to delete and recreate topics while a client is active, and it's actually more important to be notified when such a thing happens. I'm not sure if it's worth adding an option to automatically internally update for new topic IDs... maybe?

Actually I remember trying to do this, for https://github.com/twmb/franz-go/pull/444
I remember running into odd internal race conditions and deemed this quickly way too hard to automate.
One conflicting problem is that Kafka itself doesn't have a guarantee to always return consistent metadata responses. One broker can return a topic exists while another doesn't (shortly after creation or deletion). Mixing that with trying to detect recreated topics and what is changing when starts to get way more complicated than it's worth (in that I spend multiple evenings figuring out what would need to change where, and even that wasn't sufficient and I had to back out of my changes). I'd rather leave this to the end user to manually purge the topic and re-consume the topic.
I'm going to close this given just how complicated it is and because an end-user workaround exists. Let me know if you think this is important enough to add as an option but, fwiw, I'll likely add a help-wanted tag then and leave it for an eventual community contribution.


L3-55 Implement Dynamic Registration

Description

Implemented Dynamic Registration for D2L and Moodle
Implemented cleaner log4j fix

Motivation and Context
This will allow for D2L and Moodle admins to not have to put in as much effort to register the tool in the LMS. It will also reduce the amount of documentation that needs to be written to register the tool in these LMSs.
Fixes
L3-55 Implement Dynamic Registration
How Has This Been Tested?
For D2L/Brightspace:

Ensure that you have created a course in Brightspace. Ensure that the lti13.demoMode (because non-demo mode cannot be tested in D2L) is set to true in the application.properties file before starting the middleware.
Go to Brightspace:  https://devcop.brightspace.com
Ensure that you log in as a user that is at least at the SubAdministrator level.
Click on the gear icon in the upper right.
Under Organization Related, find the link that says Manage Extensibility and click on it. If you don't see the Manage Extensibility link, then your user doesn't have the correct permissions to add LTI tools (you're logged in as the wrong user).
Click on the LTI Advantage tab.
Click on the Register Tool button.
Ensure your app has an ssl certificate and that it has a non-localhost domain (e.g. is running with ngrok: ngrok http 443).
Select the radio button for "Dynamic"
Enter the /registration endpoint of the middleware (e.g. https://9e9a-184-101-8-242.ngrok.io/registration).
Check the box for "Configure Deployment"
Click the Register button.
Click on the newly registered tool
Toggle the switch to enable the tool
Scroll to the bottom and click View Deployments (this will open a new tab)
Click on the tool deployment
Scroll to the bottom and click "Add Org Units"
Select the course or courses or org units that you would like to have access to the tool, and click "Add"
Take note of the Deployment Id
Click "Save and Close"
Close the tab for the Deployments page.
Take note of all of the Brightspace Registration Details.
Click "Save and Close".
Use the middleware's /config endpoint to POST all of the registration information that was noted.
Go to your Brightspace course
Click on Content. If you don't have a Module, add one.
Click on Existing Activities > External Learning Tools > your tool
Click on the LTI link that was added for the tool.
Note that the standard launch for the demo tool functions.

For Moodle:

In a Moodle environment, set up a course and import the Common Cartridge for Lumen. Ensure that the lti13.demoMode value is set to false in the application.properties file before starting the middleware.
In Moodle, click on Site administration > Plugins >  (scroll in Activity modules section) Manage tools
Enter the /registration endpoint of the middleware (e.g. https://9e9a-184-101-8-242.ngrok.io/registration).
Click Add LTI Advantage
Wait a moment for the process to complete.
Click the Activate button for the newly registered tool.
Click on the lines icon of the tool to View configuration details.
Use the middleware's /config endpoint to POST all of the registration information that was noted.
Exit out of the configuration details popup and go to your course in Moodle.
Click on one of the links from the cartridge.
Note that the LTI 1.3 process takes place just as in Canvas.

Checklist

[x] I have reviewed the AC for this feature and my changes meet all requirements
[x] (For UI changes) I have considered the accessibility of this feature (see https://www.a11yproject.com/checklist/ for a high-level checklist)
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have requested a review from at least one other dev

Right off the bat - thank you for the comprehensive Brightspace/D2L instructions, @mgwozdz-unicon !


[BUG] Unable to authenticate using API key

Describe the bug
I'm just trying to use the example dummy project and values.yaml, and I've setup my ~/.cattlectl.yaml correctly using my access/secret tokens.
To Reproduce

cattlectl version v1.1.1
Rancher Version 2.2.2
Using cattlectl CLI linux binary
Debug log output

https://gist.github.com/jhoffmann/159e47cd87b3a637f7bd0b473ab0b142
Includes obfuscated output and cattlectl.yaml.
Additional context
I'm not sure if this is because we have the Okta plugin enabled on our rancher instance, however the fact that the Rancher CLI is able to connect and perform operations seems odd.

Hi,
I try to investigate this problem and want to setup your scenario in our environment.
Could you please compare your ~/cattlectl.yaml and your ~/.rancher/cli2.json
If your ~/.rancher/cli2.json looks like (prettified):
{
  "Servers": {
    "rancherDefault": {
      "accessKey": "token-XXXXX",
      "secretKey": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
      "tokenKey": "token-XXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
      "url": "https://ZZZZZZZZZZZZZZZZZZ",
      "project": "c-xxxxx:p-yyyyy",
      "cacert": ""
    }
  },
  "CurrentServer": "rancherDefault"
}

your ~/cattlectl.yaml needs to look like:
rancher:
  url: https://ZZZZZZZZZZZZZZZZZZ
  access_key: token-XXXXX
  secret_key: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
  cluster_id: c-xxxxx

could you please confirm this is the case?

Sorry @wtschreiter I was on vacation without access to my computer.  I've verified that is the case:
$ cat ~/.cattlectl.yaml
rancher:
  url: https://XXXXXX-rancher.XXXXXXXX.net
  access_key: token-XXX2n
  secret_key: XXXXXXdxqlp5kgzjzfbh8nfv7lqg26nrvfmc2ltxqmqhw7vxmbf2t
  cluster_id: c-lmq2x
  insecure_api: true

$ cat ~/.rancher/cli2.json | jq
{
  "Servers": {
    "rancherDefault": {
      "accessKey": "token-XXX2n",
      "secretKey": "XXXXXXdxqlp5kgzjzfbh8nfv7lqg26nrvfmc2ltxqmqhw7vxmbf2t",
      "tokenKey": "token-XXX2n:XXXXXXdxqlp5kgzjzfbh8nfv7lqg26nrvfmc2ltxqmqhw7vxmbf2t",
      "url": "https://XXXXXX-rancher.XXXXXXXX.net",
      "project": "c-lmq2x:p-rxpkv",
      "cacert": "-----BEGIN CERTIFICATE-----\nMIIEizCXXXXXX+f78Xf7\n-----END CERTIFICATE-----"
    }
  },
  "CurrentServer": "rancherDefault"
}

So I found the issue.  In my .bash_profile I had old API keys defined, which were taking precedence over whatever I put into .cattlectl.yaml.

Good to hear.
Thanks for keeping me informed


[#91] Update rebar.config.*.tpl files deps to work for 0.4.10

I ran into this issue #91 while creating
a new lfe-app I am not :100: sure how to test this locally,
I do not see a contributing doc anywhere.
@oubiwann
I would like to know how to test this to ensure this is the fix for this issue and
that I am not unknowingly breaking the behaviour of something else.

Hey, I've updated the templates to use fuzzy versioning in deps, so this should be taken care of now (in the latest release of rebar3_lfe).


Configure Authentication and Authorization on SAP BTP

Tutorials: https://developers.sap.com/tutorials/cp-cap-java-security-cf.html
Write here how you think we can improve the tutorial ...
In Step 4: Set up REST client for testing on SAP BTP
update step 4
.... select OAuth 2.0 for the field Type and Request Header for field Add auth data to

The value Add auth data to for field Request Header is the default in my case. Wasn't this the case in your scenario?

For some unknown reason, it changed to Request URL for me while I setup the OAuth 2.0, I think it better to explicitly indicate it in the step since it is not show in the screenshot.

Okay, thanks for the clarification. We will add a hint to the tutorial :)

Hi @kamng,
the hint was added in the tutorial.
Best reagrds,
Iwona


re-frisk  Issue

Please see https://github.com/Day8/re-frame/issues/365 for original issue reported.
So using  +re-frisk option and then lein cljsbuild once min (prod build) seems to do three things:

Introduce a warning
Cause the compile time to blow out significantly   (15sec to 132sec on my machine)
Apparently cause a lot of "metadata" to be added to the outputed js,  where the OP describes "metadata" to be strings from his dev environment. Paths in strings.

I have replicated points 1 and 2,  but not investigated 3, yet.

Ahh, sorry, ignore.  Looks like this is going to be handled via https://github.com/flexsurfer/re-frisk/issues/38


Add Organizations (create mutation and get query).

Hi!
I'm looking at this client and it looks great! We need some more queries and mutations so this is the first of some PRs that I will be submitting; hopefully it makes sense.
Please let me know if you want me to do anything different or how I can help to speed things up.
Thanks!

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

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

Feedback for all four PRs shared in Feedback for all four PRs shared in this comment :)

Closing in favor of #1108 and #1109


d3 examples - new folder?

Hey all,
I just wrote a kmeans class for ml5-library I'll PR shortly. I have an example that uses d3 (interactive cluster assignments for different datasets) - should I create a new directory called /d3 in the PR here? Or should I just throw the example in the existing /javascript dir?
Thanks!

Hi @jwilber - Wow! Super cool. Thanks so much.
In this instance since there is a dependency to d3, I would go ahead and add a /d3 directory for now so we can have a look.
@shiffman usually keeps an eye on keeping examples as simple as possible as well as supporting all examples in p5, so we might also create a p5 port of your d3 example at some point.
I hope this helps! Thanks + looking forward!

Closing this now. Thanks so much @jwilber !

Great, thanks so much for all the help @joeyklee!
Should I open another PR for a pure P5js example? (Somewhere I have one where you upload an image, and it finds the color palette using KMeans on the pixels), or is the pure D3 fine?
Stoked to contribute in any case!

@jwilber - Thanks so much for all the hard work! It's great to see this all part of the lib. I'm definitely curious to see what kinds of creative uses people come up with.
If you'd like to submit a p5 example that'd be great! I'd love to see it. One thing we'd love to highlight are those kinds of creative use cases.


Debug symbol support

Motivation
We found few Falco PODs get high CPU usage,
so I try to use perf to check what happened.
It seems there is no debug symbol in the binary.
Feature
https://github.com/falcosecurity/falco/blob/master/CMakeLists.txt#L68
We could consider add -g flag to generate debug symbols.
Alternatives
This change will increase the binary size.

Which Falco version?

@axot: There is not a label identifying the kind of this issue.
Please specify it either using /kind <group> or manually from the side menu.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

We upgraded from 0.18.0 to 0.24.0.

I see your point, and I agree it can be really needed.
There are some points to consider to decide whether we want to implement such a feature or not:

the -g flag (and maybe others related/similar) should be enabled by default in the DEBUG build of Falco
do we want to distribute also the"debug" build of Falco as packages?
do we want to distribute also the "debug" container image of Falco?

Honestly, implementing all this can make overkill our release process. But, I'm eager to listen what @falcosecurity/maintainers have in mind.
For sure this is a perfect topic for the next Community Call.


Added the command getgeiss

@emanuelschuetze could you test this on windows and mac? Maybe even with 32bit and 64bit systems?
@normanjaeckel The current implementation saves the file into OPENSLIDES_USER_DATA_PATH. Do you think we should add a specific 'bin/' dir?
I will make sure, that there is a 1.0.0 release of geiss before the openslides 2.1 release.

My Test failed (on Ubuntu 64bit):
$ python manage.py getgeiss
Traceback (most recent call last):
[,,]
  File "/home/emanuel/projects/openslides/src/OpenSlides/openslides/core/management/commands/getgeiss.py", line 18, in handle
    release = json.loads(urlopen('https://api.github.com/repos/ostcar/geiss/releases/latest').read())
  File "/usr/lib/python3.5/json/__init__.py", line 312, in loads
    s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'

Fixt this. My code worked only for python 3.6. See https://docs.python.org/3.6/library/json.html#json.loads

All done. If you find more docstrings and comments that are "wrong" please fix them yourself. I don't see the need to "fix" them. If you think, that this fixes are so important, that you don't want to merge the PR in the current state, then please close it.

@ostcar All done now. Please have a look at my changes if you like. You may rebase your commits or I can do this if you like.

Tested again:

Linux 64bit: works successfully
Windows 64bit: failed with "CommandError: Could not find download URL in release". I tried two different ways:
a) python manage.py getgeiss in a git checkout
b) pip install openslides > openslides start > openslides getgeiss

@ostcar How can you run getgeiss if you have a fresh installation without any settings? E.g. pip install openslides > openslides getgeiss failed with ImportError: No module named 'settings'

@emanuelschuetze One point is my fault: I implemented a new settings value with the URL for the Geiss resource defs. So you can't run getgeiss without settings. We can role this change back but I do not like it because than we can not configure the source of Geiss (if one wants to provide a customized version or fork).

@emanuelschuetze Please retest windows but print out the assets in line 23 of openslides/core/management/commands/getgeiss.py so you can see what download URLs are provided and what you expect.

@normanjaeckel Whats about checking, if there are settings, and if they are present, override the default URL?

The latest commit adds an example how the start command could start geiss. With that commit geiss is always used. See line 188. It should be easy to add a flag.

@emanuelschuetze Start command and getgeiss command are ready now. It is still not possible to use manage.py getgeiss without settings but I do not know why. The start command works because the settings is created first.

Successfully retested on Linux 64bit with a self build geiss version from master! @ostcar Please retest on linux 64bit and make a new geiss release with a working version. Thanks.
Restested the current branch on Windows:
pip uninstall openslides
pip install openslides-2.1b4.dev0.tar.gz
openslides start --local-installation
[.. Settings and db created...]
`can't open file 'c:\...\AppData\Local\Programs\Python\Python35-32\Scripts\openslides':
[Errno 2] No such file or directory`

-> The file openslides exists in Scripts.
-> If I install the current master, it works without problems.
@normanjaeckel Looks like your last changes has something broken... Please test it on Windows.

@normanjaeckel Please try to reproduce it.

@emanuelschuetze I created a new geiss release. Does it work with it?

@ostcar Geiss 0.0.2 works with python manage.py start --use-geiss on Linux 64bit now! Thanks!

@ostcar The new geiss release changed the name of the windows binary (now with .exe). We need to know what is your way for the future (with .exe or without).

@emanuelschuetze Tested this branch (with correct geiss release name) successfully under windows 64 bit with python 32 bit.

@emanuelschuetze All done. Collected statics are now at personal_data/var. Ready for last test and merge.


gpg expire "Wrong secret key" when renewing subkeys

Running the procedure for renewing the subkeys on my primary computer succeeded. I'm now doing it on my secondary computer (same Yubikeys), but fail to complete it:
gpg> expire
Are you sure you want to change the expiration time for multiple subkeys? (y/N) y
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 3y
Key expires at 6-3-2026 08:12:38 W. Europe Standard Time
Is this correct? (y/N) y
gpg: signing failed: Foute geheime sleutel
gpg: make_keysig_packet failed: Foute geheime sleutel

I'm not sure what I'm doing wrong. I'm following the same procedure as on my primary computer. It seems similar to this issue:

I was using an offline master key and used subkeys for signing and decryption.

This is also the case with me.
Are there perhaps any files I can copy to remedy the problem?

Are there perhaps any files I can copy to remedy the problem?

Check gpg --card-status and gpg -K. The latter one should shows > for sec key and also some Card serial no. if GPG detected your card.

I got it sorted now, but I'm doing a denvercoder9 now, because I'm not sure how I got it working.
I suspect that with the Yubikey locked, the procedure doesn't work. I think I went partially through the procedure for generating a new key, and then tried again. I'm also not sure which files were eventually changed in %APPDATA%\gnupg as this should only be about the public key right?


Provide a way to cleanup the coursier repository from old(er) artifacts

Since just using some random cli tools may not respect the file structure of the coursier cache, it would make sense when coursier/cs itself could provide some cleanup options. Ideally, we can clean artifacts older than a given time. Also, just preserving a latest version of artifacts might be useful.

Since just using some random cli tools may not respect the file structure of the coursier cache

Do you have specific tools in mind? The coursier cache is meant to be written to solely by coursier, I wouldn't want any tool to do that.

I wish there was a way to remove stale artifacts (and reclaim disk space), but I've not been able to think of a reliable or good-enough way to do so.
We don't know if an artifact in the coursier cache is actively used or not. The last-modified times are the ones we get via headers in the HTTP response.
And unlike Nix, we don't keep track of "root" dependencies, so we can't really garbage collect things either.

But keeping only the latest versions of things might work

Can't we record the fetch/download timestamp somehow and use this? I mean, if the last modified times are the ones from the original repositories, we could just write some extra touch files, so we know when we fetched the artifact first. It will not cost much space, but will greatly improve the on the cache stats, since we at least know when we first used an artifact. The same way we could keep track of re-used artifacts by recording the last use time. We don't need to touch those files on every access, but after some threshold.

Since just using some random cli tools may not respect the file structure of the coursier cache

Do you have specific tools in mind? The coursier cache is meant to be written to solely by coursier, I wouldn't want any other tool to do that.

Without cleanup support any coursier cache will be sooner or later "written to" by external tools. The most trivial tool might be rm -r, which is probably the only safe way to reclain space. But users will get creative, e.g. to find largest or oldest files.

Can't we record the fetch/download timestamp somehow and use this? I mean, if the last modified times are the ones from the original repositories, we could just write some extra touch files, so we know when we fetched the artifact first. It will not cost much space, but will greatly improve the cache stats, since we at least know when we first used an artifact.

That's what the .*.checked files do already

The same way we could keep track of re-used artifacts by recording the last use time. We don't need to touch those files on every access, but after some threshold.

That might work. I was afraid of a potential cost of doing this, but it's probably fine given we already read checksum files, and a threshold (of a day or a week say) should make it even less costly.

Without cleanup support any coursier cache will be sooner or later "written to" by external tools. The most trivial tool might be rm -r, which is probably the only safe way to reclain space

Removing whole directories is fine. Removing individual files… less so, unless users remove the .${filename}__* files that go alongside removed files.


Release to Cocoapods

I see that this pull request should fix the RxSwift dependency issue, but it seems like this has not been released to cocoapods.
If you check the .podspec on their end, it still contains the old dependencies.

Good catch! Running into some problems validating the podspec (I've pushed 1.2.1 up here locally, but it won't validate on CocoaPods). Looking into it now...

OK, so I've updated my version of Xcode, which has fixed some errors. But then I saw this:
 -> Action (1.2.1)
    - ERROR | xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
    - ERROR | xcodebuild:  Action/Action.swift:38:57: error: type 'MainScheduler' has no member 'sharedInstance'
    - ERROR | xcodebuild:  Action/Action.swift:46:50: error: type 'MainScheduler' has no member 'sharedInstance'
    - ERROR | xcodebuild:  Action/Action.swift:59:9: error: use of unresolved identifier 'combineLatest'
    - ERROR | xcodebuild:  Action/Action.swift:70:30: error: use of unresolved identifier 'just'

[!] The podspec does not validate.

Which is weird since those were being used but we changed them when RxSwift did. Then I looked at the release and there've been a bunch of commits since tagging it. I think I accidentally tagged this when my git was pointed to ashfurrow/Action instead of RxSwiftCommunity/Action. My fault. Will fix shortly.

OK, should be up here: https://raw.githubusercontent.com/CocoaPods/Specs/04d650a2e7d40928aed028dd89444aa97303d636/Specs/Action/1.2.1/Action.podspec.json
This should fix #28 too. I'll wait to hear from you if that worked before closing either issue.

Works like a charm :dancer:

Awesome! I'm going to close #28 then.


issue fix

fix:https://github.com/Azure/azure-sdk-for-js/issues/25700
https://github.com/Azure/azure-sdk-for-js/issues/25699

API change check
API changes are not detected in this pull request.