HADOOP-17159 Ability for forceful relogin in UserGroupInformation class

@liuml07 @steveloughran Please review

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 33s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
29m 18s
trunk passed

+1 :green_heart:
compile
21m 53s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
compile
18m 35s
trunk passed with JDK Private Build-1.8.0_252-8u252-b09-1~18.04-b09

+1 :green_heart:
checkstyle
0m 51s
trunk passed

+1 :green_heart:
mvnsite
1m 25s
trunk passed

+1 :green_heart:
shadedclient
16m 19s
branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 35s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 31s
trunk passed with JDK Private Build-1.8.0_252-8u252-b09-1~18.04-b09

+0 :ok:
spotbugs
2m 15s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
2m 13s
trunk passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 54s
the patch passed

+1 :green_heart:
compile
21m  1s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javac
21m  1s
the patch passed

+1 :green_heart:
compile
18m 24s
the patch passed with JDK Private Build-1.8.0_252-8u252-b09-1~18.04-b09

+1 :green_heart:
javac
18m 24s
the patch passed

-0 :warning:
checkstyle
0m 47s
hadoop-common-project/hadoop-common: The patch generated 1 new + 85 unchanged - 0 fixed = 86 total (was 85)

+1 :green_heart:
mvnsite
1m 25s
the patch passed

-1 :x:
whitespace
0m  0s
The patch has 1 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply

-1 :x:
whitespace
0m  0s
The patch 1 line(s) with tabs.

+1 :green_heart:
shadedclient
14m 11s
patch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 32s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 35s
the patch passed with JDK Private Build-1.8.0_252-8u252-b09-1~18.04-b09

+1 :green_heart:
findbugs
2m 26s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
9m 16s
hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 50s
The patch does not generate ASF License warnings.

167m 10s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2197

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux ab89126be726 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 1d5ccc790bd

Default Java
Private Build-1.8.0_252-8u252-b09-1~18.04-b09

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_252-8u252-b09-1~18.04-b09

checkstyle
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/1/artifact/out/diff-checkstyle-hadoop-common-project_hadoop-common.txt

whitespace
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/1/artifact/out/whitespace-eol.txt

whitespace
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/1/artifact/out/whitespace-tabs.txt

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/1/testReport/

Max. process+thread count
2475 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/1/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.0.6

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

LGTM, though I'll leave to someone who understands UGI to give the final vote

Thanks @steveloughran I added Arpit and kihwal as reviewers.

@arp7 @kihwal @xiaoyuyao  Can you please review and provide your feedback ?

The patch looks good to me overall.
A question is: should we rename the word "force" with "ignoreTimeElapsed" to make it clear. If agreed on it includes updating the parameters name and Javadoc.
Thoughts? @sguggilam
I will give a final review next week.

Yes @liuml07  that makes sense, let me update the PR

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
26m 11s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
30m 11s
trunk passed

+1 :green_heart:
compile
20m 37s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
compile
18m 24s
trunk passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
checkstyle
0m 52s
trunk passed

+1 :green_heart:
mvnsite
1m 34s
trunk passed

+1 :green_heart:
shadedclient
17m  4s
branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 36s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 32s
trunk passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+0 :ok:
spotbugs
2m 13s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
2m 11s
trunk passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 53s
the patch passed

+1 :green_heart:
compile
20m 30s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javac
20m 30s
the patch passed

+1 :green_heart:
compile
18m 24s
the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
javac
18m 24s
the patch passed

-0 :warning:
checkstyle
0m 47s
hadoop-common-project/hadoop-common: The patch generated 1 new + 85 unchanged - 0 fixed = 86 total (was 85)

+1 :green_heart:
mvnsite
1m 22s
the patch passed

-1 :x:
whitespace
0m  0s
The patch 1 line(s) with tabs.

+1 :green_heart:
shadedclient
13m 59s
patch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 30s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 29s
the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
findbugs
2m 19s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
9m 52s
hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 55s
The patch does not generate ASF License warnings.

191m 58s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2197

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux d06ad23d11e8 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / b367942fe49

Default Java
Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

checkstyle
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/2/artifact/out/diff-checkstyle-hadoop-common-project_hadoop-common.txt

whitespace
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/2/artifact/out/whitespace-tabs.txt

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/2/testReport/

Max. process+thread count
1378 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/2/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.0.6

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
18m 39s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
29m 57s
trunk passed

+1 :green_heart:
compile
21m 37s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
compile
17m 50s
trunk passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
checkstyle
0m 51s
trunk passed

+1 :green_heart:
mvnsite
1m 26s
trunk passed

+1 :green_heart:
shadedclient
17m  8s
branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 32s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 28s
trunk passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+0 :ok:
spotbugs
2m 21s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
2m 19s
trunk passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 53s
the patch passed

+1 :green_heart:
compile
20m 58s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javac
20m 58s
the patch passed

+1 :green_heart:
compile
17m 44s
the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
javac
17m 44s
the patch passed

-0 :warning:
checkstyle
0m 50s
hadoop-common-project/hadoop-common: The patch generated 1 new + 85 unchanged - 0 fixed = 86 total (was 85)

+1 :green_heart:
mvnsite
1m 23s
the patch passed

-1 :x:
whitespace
0m  0s
The patch 1 line(s) with tabs.

+1 :green_heart:
shadedclient
15m 30s
patch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 31s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 27s
the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
findbugs
2m 23s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
9m 43s
hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 55s
The patch does not generate ASF License warnings.

185m 57s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2197

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux cf74f1a7feac 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / b367942fe49

Default Java
Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

checkstyle
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/3/artifact/out/diff-checkstyle-hadoop-common-project_hadoop-common.txt

whitespace
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/3/artifact/out/whitespace-tabs.txt

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/3/testReport/

Max. process+thread count
2881 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/3/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.0.6

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
26m  6s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
28m 47s
trunk passed

+1 :green_heart:
compile
19m 29s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
compile
16m 54s
trunk passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
checkstyle
0m 57s
trunk passed

+1 :green_heart:
mvnsite
1m 30s
trunk passed

+1 :green_heart:
shadedclient
16m 51s
branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 40s
trunk passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 36s
trunk passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+0 :ok:
spotbugs
2m 17s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
2m 15s
trunk passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 51s
the patch passed

+1 :green_heart:
compile
18m 47s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javac
18m 47s
the patch passed

+1 :green_heart:
compile
16m 47s
the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
javac
16m 47s
the patch passed

+1 :green_heart:
checkstyle
0m 53s
the patch passed

+1 :green_heart:
mvnsite
1m 26s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
shadedclient
14m  7s
patch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
0m 38s
the patch passed with JDK Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1

+1 :green_heart:
javadoc
1m 36s
the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

+1 :green_heart:
findbugs
2m 18s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
9m 19s
hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 55s
The patch does not generate ASF License warnings.

185m 11s

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/4/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2197

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 09b41347c9b5 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 64f36b9543c

Default Java
Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.8+10-post-Ubuntu-0ubuntu118.04.1 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_265-8u265-b01-0ubuntu2~18.04-b01

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/4/testReport/

Max. process+thread count
2990 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2197/4/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.0.6

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@sguggilam When I backport the code, I went through the code again. I think I found one bug. Before I revert the change, I want to confirm with you.
The new public API
  public void reloginFromKeytab(boolean ignoreTimeElapsed) throws IOException {
    reloginFromKeytab(false, ignoreTimeElapsed);
  }

Should be something like:
  public void reloginFromKeytab(boolean checkTGT) throws IOException {
    reloginFromKeytab(checkTGT, true);
  }

This way, all new code can call this new API public void reloginFromKeytab(boolean checkTGT) to force login ignoring the last login time, but need to provide if they want to check TGT. Meanwhile, the existing calls of reloginFromKeytab(false) or reloginFromKeytab(true), the parameter value false or true was previously for checkTGT. But with this change, they are for ignoreTimeElapsed. So the code calling the previously private method is broken - I found two places.
Could you explain more? Thanks!

@liuml07 Yes that's right. How about just adding the existing method reloginFromKeytab(boolean checkTGT) which would just call reloginFromKeytab(checkTGT,false). This way it retains all existing calls. Any new calls who want to force relogin irrespective of anything can just call reloginFromKeytab(ignoreTimeElapsed) which would also set checkTGT to false as the user want to force re-login anyways
Thoughts ?
I can send a quick follow up PR if this is fine

@sguggilam We both agree on that we need to change all two callsites in UGI. For the new API, if we keep it as it, is a bit confusing when user calls with false value when user does not need to ignore last login time. In that case, we still ignore the TGT check since the first parameter is always false.
  public void reloginFromKeytab(boolean ignoreTimeElapsed) throws IOException {
    reloginFromKeytab(false, ignoreTimeElapsed);
  }

Since the forceful login is the main target, how about we create a new method name, and use false for both parameter?
public void forceReloginFromKeytab() throws IOException {
    reloginFromKeytab(false, true);
}

I think since this a bug, it's better not to create followup JIRAs but instead create a new full pull request. So when people backport or check the change for debugging, they do not need to jump different PRs to understand what's happening as addendum. I will revert the commit in git repo, and the new PR will be including the full code. How about that?

#2 Since the forceful login is the main target, how about we create a new method name, and use false for both parameter?
This makes sense
#3 Sure @liuml07 , I can send out a new PR with the full code. You can revert this
Thanks again for going over the code and catching this

@sguggilam

and use false for both parameter?

Yeah, the second parameter actually is true, but you got what I meant 😄  as the above code snippet. I have reverted from trunk branch, and will do that for other branches. Now you can file a new PR to include everything (updated).
Thanks!

Yes @liuml07  I noticed that but found your code snippet to be right and felt it was a typo. Thanks, will send out a new PR


Use Original Authentication data to do Authorization.

Motivation
When we try to use Oauth2 to verify Authorization, we have to pass the token to
Authorisations Provider, but current, we just passed the role.
Modifications

Save the original authentication data to Connection and use it for the authorisation check.

Verifying this change

[x] Make sure that the change passes the CI checks.

Documentation

[x] no-need-doc

Codecov Report

Merging #707 (48f6011) into master (08b297a) will increase coverage by 0.00%.
The diff coverage is 95.23%.

@@            Coverage Diff            @@
##             master     #707   +/-   ##
=========================================
  Coverage     77.40%   77.41%
  Complexity      977      977
=========================================
  Files           111      111
  Lines          4266     4281   +15
  Branches        327      327
=========================================
+ Hits           3302     3314   +12
- Misses          785      788    +3
  Partials        179      179

Impacted Files
Coverage Δ

.../streamnative/pulsar/handlers/mqtt/Connection.java
88.69% <85.71%> (-0.20%)
:arrow_down:

...ulsar/handlers/mqtt/MQTTAuthenticationService.java
75.80% <100.00%> (+1.66%)
:arrow_up:

...s/mqtt/proxy/MQTTProxyProtocolMethodProcessor.java
78.05% <100.00%> (+0.07%)
:arrow_up:

...support/AbstractCommonProtocolMethodProcessor.java
63.11% <100.00%> (+0.92%)
:arrow_up:

...qtt/support/MQTTBrokerProtocolMethodProcessor.java
79.02% <100.00%> (+0.06%)
:arrow_up:

...e/pulsar/handlers/mqtt/utils/PulsarTopicUtils.java
76.52% <0.00%> (-1.74%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 08b297a...48f6011. Read the comment docs.


include Lotus instance in docker-compose

This would be nice to make running compose complete, and also avoid using network of type host to being able to connect to Lotus running on the host.

Now becomes more important to create a full-stack FastAPI since it needs a Lotus instance.


Support animated Webp

¿It's possible to support animated Webp in the future? or any solution?

any update

Nothing for now


adding Bradley to editorial team

I am happy to add Bradley because of what he will do!

Totally get you, and it's really mostly because of this :)


Support logger configuration (format, level)

I got a molecule test failure in the null-cr-values-test - I'm investigating:
/tmp/tmp/KIALI-GIT/kiali/operator/molecule/null-cr-values-test/converge.yml:13
fatal: [localhost]: FAILED! => {
   "msg": "The conditional check 'kiali_configmap.deployment.verbose_mode == \"3\"' failed. The error was: error while evaluating conditional (kiali_configmap.deployment.verbose_mode == \"3\"): 'dict object' has no attribute 'verbose_mode'"

Right, so verbose_mode has been removed. So we need to clean up the tests as well as some files used by devs:

[ ] Delete line: https://github.com/kiali/kiali-operator/blob/master/deploy/kiali/kiali_cr_dev_servicemesh.yaml#L20
[ ] Delete line: https://github.com/kiali/kiali-operator/blob/master/deploy/kiali/kiali_cr_dev.yaml#L25
[ ] Delete line: https://github.com/kiali/kiali-operator/blob/master/molecule/null-cr-values-test/converge.yml#L24
[ ] And replace that line with checks for the default logger settings.. something like:

kiali_configmap.deployment.logger.log_format == "text"
kiali_configmap.deployment.logger.log_level == "info"

[ ] Delete line: https://github.com/kiali/kiali-operator/blob/master/molecule/null-cr-values-test/kiali-cr.yaml#L49
[ ] And replace that line with setting the logger values to null:

logger:
  log_format: null
  log_level: null

[ ] We don't need to set verbose_mode in any of the molecule tests, so remove any mention of it in the individual tests' kiali-cr.yaml files - I found it in two places: open-id-test, and the api-test

Finally, there are two places in the main kiali repo we have to clean up. I'll put this in the kiali/kiali PR review, but I'll document it here as well. Delete the setting and usage of VERBOSE_MODE env var in the makefiles. We don't need to set that via env var - devs can manually set it if they need to. So these need to be deleted:
Delete line from make/Makefile.operator.mk: https://github.com/kiali/kiali/blob/master/make/Makefile.operator.mk#L72
Delete line from Makefile: https://github.com/kiali/kiali/blob/master/Makefile#L113


BC break in patch version: TypeUtils removed

This https://github.com/yandex/clickhouse-jdbc/commit/3be7a3c90a9a8a4bfef8aa0de8822b4bbf43f5b7 removed TypeUtils class.
Wanted to ask what is the versioning policy of this library. I relied on ^0.1, should I not consider z in x.y.z as patch version?
I used to use TypeUtils.toSqlType(String.class.getCanonicalName()) before 0.1.55, what to use now?
Thanks.

Sorry, it was my mistake about not mentioning this change.
Could you, please, clarify use case for using this API? We are going to reduce number of public classes from our package, leaving only essentials for JDBC.

Yup. I was wondering that this should have been released as 0.2 or something as patch releases should not break backwards 🤔
I'm doing something like this. I don't fancy it but have not found easier way.
statement.setArray(1, new ClickHouseArray(TypeUtils.toSqlType(String.class.getCanonicalName(), myArray));

Sorry, I should have been more careful when removing the utility class, and highlighted this change in the PR.
I would suggest to create Array using Connection.createArrayOf
String[] myArray = {"foo", "bar" };
PreparedStatement stmt = connection.prepareStatement(
    "INSERT INTO myTable(foo) VALUES (?)");
stmt.setArray(1, connection.createArrayOf("String", myArray));

Works great, thanks!

Thanks for mentioning issue, we'll reduce amount of public API, exposed by library, and we'll announce backward incompatible changes.


Need to test that Dash and WebRTC work with the new orchestrator

Subject says all.
Maybe webrtc is most urgent, because Jeroen wants to start working on webrtc again, and master needs to be merged into the #102 branch.

The Docker daemon on vrtnuc was misbehaving today and not accepting any outside connections. I updated it to its latest version and everything seems to back to normal.


simplify handling of paths

main

#902   👈

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @shakyShane and the rest of your teammates on  Graphite


Broken links in the Communication and Training Guide

The linked Communication and Training guide makes references to download kits that have email templates to help with launch.  The links are broken and land on an error page. Can that document be updated with working links please?

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

ID: 9733a774-90dc-8726-3300-4660a092e427
Version Independent ID: 3ab12184-9b19-1686-e9d9-a96a93e3fea4
Content: OneDrive guide for enterprises
Content Source: OneDrive/plan-onedrive-enterprise.md
Service: one-drive
GitHub Login: @kaarins
Microsoft Alias: kaarins

@lemon-at-ocas Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

@kaarins

@kaarins Following up on this, any updates? Thanks!

@kaarins Following up on this, any updates? Thanks!

@kaarins Following up on this, any updates? Thanks!

@kaarins Following up on this, any updates? Thanks!

Thank you. I have passed along this feedback to the owner of the linked guide. We will either update the guide or update the link within this article to point to a different resource.


feat: support filtering apps by label in CLI

This PR addresses issue #258
It adds a new CLI parameter --match-application-label which accepts a string label input to match applications against
It currently only accepts a single label to filter against, and does not support pattern matching on label values, but those enhancements can be made in future PRs
steps to test out PR:

create annotated apps containing 1 or more labels
set up argocd-image-updater account & token as per documented steps
run argocd-image-updater binary with additional  parameter --match-application-label and supply desired label

application should be updated with new image after sync

Thanks @jannfis
addressed your comments


Add support for headers when calling action API

This PR adds the option to send custom headers when calling to the CKAN API.
This will be useful to add CSRF tokens when using this library to develop custom features for an extension.

@anuveyatsu is this extension still maintained?

@pdelboca yes 👍🏼

@anuveyatsu @pdelboca Hey guys, code part looks good.


fix: #60 - ImportError: cannot import name 'init_custom_nodes' from 'nodes'

Temporary fix for the import issues with the newer version of ComfyUI.

I believe this issue was fixed with https://github.com/pydn/ComfyUI-to-Python-Extension/pull/70.


Failed to register a user defined function

My Environment

ArangoDB Version:        3.4.3
Storage Engine:             RocksDB
Deployment Mode:       Cluster
Deployment Strategy:   ArangoDB Starter
Configuration:
Infrastructure:               AWS
Operating System:        CentOS
Total RAM in your machine:        32Gb
Disks in use:        SSD
Used Package:

Component, Query & Data
Affected feature:
Register UDF
AQL query (if applicable):
var aqlfunctions = require("@arangodb/aql/functions");
function multiply(num_array) {
return num_array.reduce((accumulated, current) => accumulated * current);
}
aqlfunctions.register("MULTIPLY", multiply, true);
AQL explain (if applicable):
Dataset:
Size of your Dataset on disk:
Replication Factor & Number of Shards (Cluster only):
Steps to reproduce

Open Arangosh
Execute the above query to register the UDF

Problem:
Arangosh complains:
JavaScript exception in file<EMAIL_ADDRESS>at 99,7: ArangoError 9: '/_api/aqlfunction/MULTIPLY' not implemented
!      throw error;
!      ^
stacktrace: ArangoError: '/_api/aqlfunction/MULTIPLY' not implemented
at Object.exports.checkRequestResult (/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js:97:21)
at Object.registerFunction [as register] (/usr/share/arangodb3/js/client/modules/@arangodb/aql/functions.js:85:12)
at :1:14
Expected result:
can successfully register the function

I tried this from the ArangoShell (arangosh) with 3.4 in cluster mode, and I am getting the following error:
aqlfunctions.register("MULTIPLY", multiply, true);
JavaScript exception in file<EMAIL_ADDRESS>at 99,7: ArangoError 1580: error creating AQL user function: 'MULTIPLY' is not a valid name
!      throw error;
!      ^
stacktrace: ArangoError: error creating AQL user function: 'MULTIPLY' is not a valid name
    at Object.exports.checkRequestResult (js/client/modules/@arangodb/arangosh.js:97:21)
    at Object.registerFunction [as register] (js/client/modules/@arangodb/aql/functions.js:85:12)
    at <shell command>:1:14

(which is expected, because all user-defined functions must have a :: somewhere in the name).
It should work when using something like aqlfunctions.register("MYNAMESPACE::MULTIPLY", multiply, true);.
Anyway, it would be interesting to see how you have managed to get a not implemented response here. How did you actually trigger this error? Are you using the arangosh as well?

I think I got it... Is it possible that you are trying to register the user-defined function on a DB server?
In this case the error will be "not implemented".
It is required to register user-defined functions on the coordinator servers only.

Actually I figured it out as well. It turns out when I use the server address as TCP and use the wrong port, the arangosh will still work but failed to register the function. However when I switch to http and use the correct port, it works as a charm.
I will suggest if we can make it more obvious in the documentation. I didn't see the notes on the difference of TCP and http for that.

Anyway thanks for your comments, it helps to clear my doubts

@alexyzhou so tcp://<ip>:<port> in arangosh to connect to a node and using the correct port results also in the error? Which ports did you connect and which nodes run on which port?

nope, sorry I didn't make it very clear. We have two port: 8529 and 8530 when using ArangoDB Starter to start the cluster, and the two ports are related to coordinator and dbserver respectively.
Previously I am using 8530 to register the function and failed. After that I switched to 8529 and it worked. Previously I thought it is related to tcp/http protocol, but turns out it's only related to port.
My point is, it will be better if we can clearly specify the ports and their related components in ArangoDB Starter section, it will be better.
Thanks!

Here is a pull request: https://github.com/arangodb/arangodb/pull/8340/files


Need a skeleton project to start a new client from scratch

Describe the topic
I'm working on a Kui derived shell to help executing HTTP requests against RESTHeart API server called RESTHeart Shell
It somehow follows enhancement proposal https://github.com/IBM/kui/issues/4477
I managed to create a first prototype starting form Oui, since the README states:

Kui can form the basis for delivering CLI-driven GUI experiences. For example, Kui has a custom client for Apache OpenWhisk: Oui

However Oui is built from Kui 6.0.5 (latest Kui release is currently 8.12.0) and has not been updated in 8 months.
I tried to update my prototype to latest Kui release but found it very hard due to lack of documentation. It is not clear to me how to correctly define a custom client definition plugin.
Your suggestions for this topic
I think it would be super useful to have a skeleton repo to start a project from scratch with minimal dependency to kui plugins. Something like https://github.com/kui-shell/plugin-sample (that uses Kui 5.2.21)

Howdy. Agreed. We have this: https://github.com/IBM/kui/blob/master/docs/example/AnimalApp/README.md
The intention behind this was to serve as an example for coding a custom Kui from an external repository. Note how the package.json of this "AnimalApp" points to the npm-published versions of Kui.
A couple of notes:

We should be ready to publish Kui 9.0.0 by the end of the week. This won't have any breaking changes at this level of integration, but does introduce a new Notebook architecture and some updates to the UI to make Kui present more as a notebook. Hence the major bump.

Why the name "AnimalApp"? It includes some sample commands (in plugin-example) that offer some goofy cat-centric commands. The wiki shows them in action: https://github.com/IBM/kui/wiki, but we have not yet documented the AnimalApp client in the wiki.

Make sure to read the WARNING in that readme.

There is a PR in flight to update the README, and fix an issue with developing a browser-based client: https://github.com/IBM/kui/pull/5804. The README update improves the documentation to improve the Electron versus browser client distinctions.

Super! I was able to easily update to latest release. Thank you very much!
Just wondering how UsageModel works now!
With 6.0.5 just throwing an UsageError leads to display a nice usage output. With latest release we get no output.
I noticed that the command help was commented out from plugin-core-support. Is this the cause for the missing usage output?

The AnimalApp is a good skeleton project

thanks for the help with this!


After vagrant destroy, drush aliases not removed from host machine

I have drush and ansible installed on my machine. When I create a new dev environment with vagrant up drush aliases are created on my machine; however, after removing the dev machine with vagrant destroy, the drush alias file created on my machine (in ~/.drush) still remains and the aliases it defines can still be seen by running drush site-alias.

Hmm... we basically need an extra task to delete the managed drush alias file (if the variable is set) during a vagrant destroy, like is outlined here: https://github.com/mitchellh/vagrant/issues/1302 (cleanup task, here: https://github.com/mitchellh/vagrant/blob/v1.8.4/lib/vagrant/plugin/v2/provisioner.rb#L48).
There's an issue to add support for the shell provisioner here: https://github.com/mitchellh/vagrant/issues/2538 — but looking around in the code for the Ansible provisioner, it looks like it's not implemented in either shell or ansible.
So besides using something like vagrant-trigger, I don't think it's possible to do this (and I don't want to add vagrant-trigger support at this time)... so for now, I'm going to close this issue, point people towards the upstream issues in Vagrant, and once they're resolved, maybe we could add a cleanup playbook that just undoes anything that was done (like Drush alias file creation) during Drupal VM provisioning on the host.

Sounds good. Thanks.


HTTP Streams, not possible to implement backpressure or to detect when a client disconnects

I am writing a function that retrieves the files from Azure Blob Storage and returns a zip file containing them. HTTP Streams seem like a perfect match for this use case: I can just start loading files one by one from storage and stream the archive to the client on the fly.
The proof of concept works, but I'm facing the following issues:

There seems to be no way to detect that a client closed the connection. The function keeps writing data somewhere, and only when everything is written, there appears an error in the log ([Error]   Executed '<function name>' (Failed, Id=<id>, Duration=54018ms))
There is no way to implement backpressure. The "drain" event is never emitted on the stream that I return in the response body, the data is consumed immediately and fully whenever I pass it into the stream. I tested with slow clients: the function keeps sending data, while the memory used by the function app rapidly increases. Out of curiosity I looked around the codebase, it seems the reason is this code, where the response is written unconditionally, without checking the value returned by ServerResponse.write.

For completeness, this is the PoC code I have:
import { InvocationContext, HttpHandler, HttpRequest } from '@azure/functions';
import * as archiver from "archiver";
import * as stream from "stream";

export const Download: HttpHandler = async (request: HttpRequest, context: InvocationContext) => {
    const ptStream = new stream.PassThrough({ highWaterMark: 64 * 1024 });

    ptStream.on("drain", () => {
        context.log("This is never called");
    });

    const archive = archiver("zip", { zlib: { level: 1 } });
    archive.pipe(ptStream);

    const queue = [...input.filenames];

    const processNext = async () => {
        const filename = queue.pop();
        const blockBlobClient = containerClient.getBlockBlobClient(filename);
        const downloadResponse = await blockBlobClient.download();
        const stream = downloadResponse.readableStreamBody as NodeJS.ReadableStream;

        archive.append(stream, { name: filename });
    };

    archive.on('entry', (e) => {
        if (queue.length == 0) {
            return archive.finalize();
        }

        processNext();
    });

    processNext();

    return {
        body: ptStream,
        status: 200,
        headers: {
            "Content-Type": "application/zip",
            "Content-Disposition": `attachment; filename=${input.archiveName}`
        }
    }
}

For the second issue, perhaps the fix can be as simple as replacing this code with the following?
for await (const chunk of userRes.body.values()) {
    const canWrite = proxyRes.write(chunk);

    if (!canWrite) {
        await new Promise((resolve) => proxyRes.once("drain", resolve));
    }
}

Hi @ftokarev thanks for the detailed report and suggested fix - we'll look into it

Hey, any updates on this? I'm struggiling with the cancel stream part. I might have to move my entire API to somewhere else if that's not possible

Or maybe(if possible) is there a way to cancel a running request by having the invocationId?
That could do it, not ideal approach.


Add IconWrapper abstraction

About
This adds the new IconWrapper abstraction which receives token names as string and handle their values without overhead. Original API suggested by @ggdaltoso here.
This abstraction should help us with the trade off where instead of having to generate a new styled component to apply our theme every time we change its fill or stroke, the Wrapper will automagically resolve the received token names to its respective values.
Images

You can run it locally to check the current documentation.

[x] Web tested
[x] iOS tested
[x] Android tested
[ ] Expo example tested

I wasn't able to run it in expo. But I tried other components such as List and Dropdown and I received the same error:

What if the icon itself already had this logic? Removing the need of this "wrapper":
import { Close } from '@gympass/yoga-icons';

/* ... */

<Close fill="primary" height="small" />

I didn't like needing to import 2 things to use an icon (svg), just my opinion. 🤔

@tcK1
If we change the icons package to manage which colors all icons should have, we might be mixing things
Making the IconWrapper will not only work with @gympass/yoga-icons but all SVGs. The responsibility of taking the correct color or setting the width and height properly against our theme is from Yoga and I think this component is doing it great in this way.

Tossing my two cents, even not being the best to import Wrapper + Icons individually, I think it's a tradeoff much better than what we were previously doing, which was more busywork between the style file and the component just to use a custom color.

@ggdaltoso @coelhucas You guys are right!
What if we had shortcuts for icons that already exist on the yoga-icons package?
//           \/\/\/\/\/\/
<IconWrapper icon="Close" fill="primary" height="small" />

string instead of the svg

What do you guys think?

What if the icon itself already had this logic? Removing the need of this "wrapper":
import { Close } from '@gympass/yoga-icons';

/* ... */

<Close fill="primary" height="small" />

I didn't like needing to import 2 things to use an icon (svg), just my opinion. 🤔

@tcK1
We are "generating" the icons via a babel plugin configuration, as you can see here, so, to implement this suggestion we will need to write our own plugin to handle this case, we can discuss about it in the future, but, I think that's the most simple solution to handle this problem.

@ggdaltoso @coelhucas You guys are right!
What if we had shortcuts for icons that already exist on the yoga-icons package?
//           \/\/\/\/\/\/
<IconWrapper icon="Close" fill="primary" height="small" />

string instead of the svg

What do you guys think?

To implement this approach we will need the same case as above, and I think that we are going to face a new one too.
We can face some tree-shaking problems with this approach, to handle it we will need to import all the available icons inside yoga-icons and find the one that we receive via prop. So, it will be ~imposible~ hard to "tree-shake" it.

We are "generating" the icons via a babel plugin configuration, as you can see here, so, to implement this suggestion we will need to write our own plugin to handle this case, we can discuss about it in the future, but, I think that's the most simple solution to handle this problem.

Yeah, svgr is awesome. We could solve this with JS and React, but that would probably also have tree-shaking problems. 😢
// Pseudo

import * as Icons from './svgs'

export default Icons.reduce(/* Transform each Icon to the magic IconWrapper component */, {});

Although, as @ggdaltoso said, this is more philosophical question: "Should the icons know about the theme?"
If I understood it correctly, no, it shouldn't.

Considering these topics, I think that the double import notation is the best solution after all. 😂

So... do we keep it as is?

@all-contributors please add @coelhucas for code, ideas, doc

@all-contributors please add @katharinedepaulo for ideas


Adding test cases for backup and restore

Pull Request Test Coverage Report for Build 337

18 of 20 (90.0%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.1%) to 73.423%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/seedu/address/logic/commands/BackUpCommand.java
18
19
94.74%

src/main/java/seedu/address/logic/parser/ExportCommandParser.java
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/main/java/seedu/address/logic/commands/BackUpCommand.java
1
88.0%

Totals

Change from base Build 320:
0.1%

Covered Lines:
2130

Relevant Lines:
2901

💛  - Coveralls


content.js is full of jquery, is this module still lean?

This was supposed to be a lean mode-compatible module, but doesn't the jquery stuff and the use of apos.on in content.js mean it isn't really? Or am I missing something, like that this code isn't really run when no user is logged in?
Hmm, or is that file ever even really pushed? is it dead code? Offhand I don't see how it would ever be pushed.

I don't see a content.js file in this module. Could you link me to where you're looking, @boutell ?

... I was in the 0.5 branch. [Hides in the shrubbery]

[insert Monty Python joke here]


K8 array resource manager

Continued from https://github.com/lyft/flyteplugins/pull/71 - Unable to push to mtoledo/k8-array-resource-manager
New changes:

Support for remote endpoint
Unit tests for resource manager and k8s array.
Few minor fixes and updates.

Unit test breaking because of pflag. To be resolved.
cc @EngHabu @migueltol22

Codecov Report

Merging #120 into master will decrease coverage by 0.56%.
The diff coverage is 40.15%.

@@            Coverage Diff             @@
##           master     #120      +/-   ##
==========================================
- Coverage   54.75%   54.18%   -0.57%
==========================================
  Files          90       91       +1
  Lines        4617     4776     +159
==========================================
+ Hits         2528     2588      +60
- Misses       1813     1905      +92
- Partials      276      283       +7

Impacted Files
Coverage Δ

go/tasks/pluginmachinery/core/phase.go
27.27% <0.00%> (-0.86%)
:arrow_down:

go/tasks/plugins/array/core/state.go
38.25% <0.00%> (-1.61%)
:arrow_down:

go/tasks/plugins/array/k8s/launcher.go
38.70% <0.00%> (-8.91%)
:arrow_down:

go/tasks/plugins/array/k8s/config.go
14.70% <9.37%> (-85.30%)
:arrow_down:

go/tasks/plugins/array/k8s/executor.go
38.18% <13.79%> (-8.95%)
:arrow_down:

go/tasks/plugins/array/k8s/task.go
52.41% <52.41%> (ø)

go/tasks/plugins/array/k8s/monitor.go
58.49% <57.89%> (+1.18%)
:arrow_up:

go/tasks/plugins/array/k8s/config_flags.go
58.82% <100.00%> (+12.66%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 209c52d...726c37b. Read the comment docs.

PTAL @EngHabu

PTAL @katrogan @kumare3 @migueltol22

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@210996c). Click here to learn what that means.
The diff coverage is 39.91%.

@@            Coverage Diff            @@
##             master     #120   +/-   ##
=========================================
  Coverage          ?   61.27%
=========================================
  Files             ?      105
  Lines             ?     5955
  Branches          ?        0
=========================================
  Hits              ?     3649
  Misses            ?     1929
  Partials          ?      377

Impacted Files
Coverage Δ

go/tasks/aws/config.go
50.00% <ø> (ø)

go/tasks/pluginmachinery/core/phase.go
28.88% <0.00%> (ø)

go/tasks/plugins/array/core/state.go
37.70% <0.00%> (ø)

go/tasks/plugins/array/k8s/launcher.go
32.00% <0.00%> (ø)

go/tasks/plugins/array/k8s/config.go
10.71% <7.40%> (ø)

go/tasks/plugins/array/k8s/executor.go
38.14% <15.38%> (ø)

go/tasks/plugins/array/k8s/task.go
49.57% <49.57%> (ø)

go/tasks/plugins/array/k8s/monitor.go
55.45% <54.54%> (ø)

go/tasks/logs/logging_utils.go
84.37% <100.00%> (ø)

go/tasks/plugins/array/k8s/config_flags.go
61.29% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 210996c...ce45427. Read the comment docs.

@anandswaminathan can you please associate this with the issue?

PTAL @kumare3 @katrogan Addressed comments


Support keystone authentication

It would be great if this could be used with an Ironic instance integrated with a full OpenStack environment. Thus would require the provider to support keystone authenticate like how the normal OpenStack terraform provider does.

No objections, but the team will probably not have time to get there. Contributions welcome!

To double down on "will not have time": please see https://github.com/openshift-metal3/terraform-provider-ironic/issues/90.


fix load more arrivals button to always show results

If no arrivals in next 35 minutes on view load tells user:

Load more arrivals button will automatically search in 30 minute increments until it finds new arrivals or it has searched 1 day in the future
If no results for 1 day tells users

If there was no results when load more button was pressed:

If there was already results when load more button was pressed:

Adds loading animation for load more arrivals button

Adds loading animation for load more arrivals button when refresh is occurring (rather than just disabling)

Removes loading bar when searching through 30 minute increments for next arrival since we don't know how many 30 minute incruments we will need to look through

Changes load more button click color to blue so as to match other buttons
Reduces magic numbers
Code cleanup

Tested:

With and without filters
Disabling and re-enabling filters
Report a problem > with a bus
Successfully cancels load more request when:

Closing app
Locking app
Switching to a different view

Navigating to view from:

Map
Bookmarks
Trip schedule

Closing this PR because of above discussion and the open issue on the app-modules.


HeroSystem6eHeroic: duplicate files "HitLocations.png" and "hitLocations.png" causing repo problems for windows users

There are duplicate image files on the repo, which is not allowed on windows systems.

HeroSystem6eHeroic
This is causing some windows users issue since you cannot have more than one file of the same name in the same directory.  Most windows systems are case insensitive so even though they are named differently via their case, windows only allows one of the files to exist locally.  This causes issues when making commits/pr's to the repo since there will always be a file change detected for this sheet.
Requesting that a repo manager delete or rename one of these files so that windows (and possibly mac) users won't have issues with their local forks.

@vince-roll20 I think if we simply deleted "hitLocations.png" that wouldn't cause any problems to the sheet. I tried to do that, but I couldn't seem to add the fix to this pull request.

Thanks for the follow up.  This isn't the first time this has come up...  Maybe the repo manager can take care of it?


Fix loading of nvm for brew-installed nvm

Loading a brew-installed nvm was previously broken. This PR fixes it.
Description
This reverts to the original (working) version from 2017. During the most recent refactor to use the _bash_it_homebrew_check helper method, it was overlooked that ${BASH_IT_HOMEBREW_PREFIX}/nvm.sh is not the equivalent to $(brew --prefix nvm)/nvm.sh since BASH_IT_HOMEBREW_PREFIX is set from brew --prefix instead of brew --prefix nvm.
Motivation and Context
This fixes a regression caused by 65ef8e2e8be9fc6ded3611751725a32548c933c2.
How Has This Been Tested?
I've tested this on my local instance where I have nvm installed via brew.
Screenshots (if appropriate):
N/A
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] If my change requires a change to the documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] If I have added a new file, I also added it to clean_files.txt and formatted it using lint_clean_files.sh.
[ ] I have added tests to cover my changes, and all the new and existing tests pass.

@davidpfarrell What's the next step here?


How can we emit sound without noise?

I'd like to reproduce sound using a speaker like the example below because I want to simulate a piano.

package main

import (
	"fmt"
	"math"
	"os"
	"os/signal"
	"time"

	"github.com/gopxl/beep"
	"github.com/gopxl/beep/speaker"
)

const sampleRate = 44100

func main() {
	duration := 1 * time.Second // Duração do som (por exemplo, 1 segundo)

	// Configuração do formato do som
	format := beep.SampleRate(sampleRate)
	speaker.Init(format, format.N(time.Second/10))

	// Mapa de frequências para as notas musicais
	noteFrequencies := map[string]float64{
		"DO":  261.63,
		"RE":  293.66,
		"MI":  329.63,
		"FA":  349.23,
		"SOL": 392.00,
		"LA":  440.00,
		"SI":  493.88,

		// DO RE MI FA FA DO RE DO RE RE DO SOL FA MI MI DO RE MI FA FA
	}

	doremifa := []string{
		"DO", "RE", "MI", "FA", "FA", "DO", "RE", "DO",
		"RE", "RE", "DO", "SOL", "FA", "MI", "MI", "DO", "RE",
		"MI", "FA", "FA",
	}

	// Tocar as notas musicais
	for _, note := range doremifa {
		playNoteWithCleanSignal(note, noteFrequencies[note], duration)
	}

	fmt.Println("Finished playing notes.")
}

// playNoteWithCleanSignal toca uma nota musical específica com sinal limpo
func playNoteWithCleanSignal(note string, frequency float64, duration time.Duration) {
	// Gerar streamer para a nota especificada
	streamer := beep.StreamerFunc(func(samples [][2]float64) (n int, ok bool) {
		for i := range samples {
			t := float64(i) / sampleRate
			// Aplicar um envelope de amplitude para suavizar o início e o fim da nota
			amplitude := math.Sin(2*math.Pi*frequency*t) * envelope(float64(i), duration.Seconds()*sampleRate)
			samples[i][0] = amplitude * 0.3 // Ajuste de volume
			samples[i][1] = samples[i][0]   // Canal estéreo
		}
		return len(samples), true
	})

	// Tocar o som
	done := make(chan bool)
	speaker.Play(beep.Seq(streamer, beep.Callback(func() {
		done <- true
	})))

	fmt.Printf("Playing note %s (%.2f Hz) for %s...\n", note, frequency, duration)

	// Esperar até que a duração expire ou até que o usuário pressione Ctrl+C
	select {
	case <-time.After(duration):
	case <-interrupt():
	}

	fmt.Printf("Note %s finished playing.\n", note)
}

func envelope(i float64, length float64) float64 {
	attack := 0.1  // duração do ataque (em porcentagem da duração total)
	decay := 0.1   // duração da queda (em porcentagem da duração total)
	sustain := 0.7 // nível de sustentação (em porcentagem do nível máximo)
	release := 0.1 // duração da liberação (em porcentagem da duração total)

	attackSamples := int(attack * length)
	decaySamples := int(decay * length)
	sustainSamples := int(sustain * length)
	releaseSamples := int(release * length)

	if i < float64(attackSamples) {
		return float64(i) / float64(attackSamples)
	} else if i < float64(attackSamples+decaySamples) {
		return 1 - (i - float64(attackSamples)/float64(decaySamples)*(1-sustain))
	} else if i < float64(attackSamples+decaySamples+sustainSamples) {
		return sustain
	} else {
		return sustain - (i-float64(attackSamples)-float64(decaySamples)-float64(sustainSamples))/(float64(releaseSamples)*sustain)
	}
}

func interrupt() chan os.Signal {
	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt)
	return c
}

Hello :wave:
Let's debug the code :)
func playNoteWithCleanSignal(note string, frequency float64, duration time.Duration) {
	streamer := beep.StreamerFunc(func(samples [][2]float64) (n int, ok bool) {
		for i := range samples {
			t := float64(i) / sampleRate

The above snippet shows a StreamerFunc. How speaker and a lot of Beep's components work is that they only pull a small amount of samples (e.g. 512 samples) from the streamer at a time to save on memory. Therefor, StreamerFunc will be called multiple times and each time it receives a slice with a small amount of samples to fill. If i is used as the time for the sine wave, the sine wave will start over each time, and this could cause glitch noises. What you'll need to do is keep track of the total number of samples played over the course of multiple calls to StreamerFunc. If that makes sense.
Just so you know, generators.SineTone() exists. But if you want to add the envelop function it may be a bit more difficult.

amplitude := math.Sin(2*math.Pi*frequency*t) * envelope(float64(i), duration.Seconds()*sampleRate)

Try debugging your code first without the envelope. I think envelope doesn't work as well yet so first try to make the rest of the program work and not do everything at once.

done := make(chan bool)
speaker.Play(beep.Seq(streamer, beep.Callback(func() {
    done <- true
})))

This doesn't stop the sound from playing. This will send a signal on the done channel when the streamer is finished (but it never finishes), and done isn't used. So at the end all tones are still playing. Have a look at beep.Take() or make sure the StreamerFunc returns an end signal. Then you could use done in the select statement instead of time.After().


OpenChangePasswordDialog new rules #328

Summary
If OldPassword is passed, we check that the new password should match the OldPassword
Also in this case we check that the old password matches the entered old password
New test
Work Item(s)
Fixes #328
Fixes AB#506715

PR is updated

Build is failing. Please update PR and let's do another run 😊

Updated

I'll do some functional testing of those changes early next week 🙂 If all goes well, we merge!

Something's broken, the build's been going on for 3 hours.

Something's broken, the build's been going on for 3 hours.

@mazhelez / @aholstrup1, you're on!

@AndreasMoth @JesperSchulz
I've updated the code and updated the variable names.
I would like to point out that this strange design when OldPassword was returned was only needed for OnPrem report 9810 “Change Password”.
The point is that it's quite an unusual situation when we need to return the entered OldPassword and at the same time we can't find out which password is actually correct. This information is not available and its validation is done in Database.ChangeUserPassword(Text, Text)
https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/database/database-changeuserpassword-method
My original code supported in/out at the same time, which essentially supported the Change Password report scenario. In order to keep this support in the report the old implementation is used instead of the new one.
Let me know what you think about it.

@Drakonian, test compilation now seems to fail. Will you investigate?

@JesperSchulz
Yes of course, the problem is that Test Password is a separate app and it cannot access internal implementation from System Application. The strangest thing is that I didn't get this error in testing locally, probably the build system in the project is still not perfect.
I will now update the test that refers to internal codeunit.

@JesperSchulz
Yes of course, the problem is that Test Password is a separate app and it cannot access internal implementation from System Application. The strangest thing is that I didn't get this error in testing locally, probably the build system in the project is still not perfect.
I will now update the test that refers to internal codeunit.

FYI: tests should not have direct access to internals. If some internals access is needed, then it should be through a test library app which encapsulates the internal and exposes some public method allowing what you need. If you can avoid using internals completely, that's great, if not, please add methods to a test library :-)

@JesperSchulz
Ready to check

@JesperSchulz broken builder?

id looks correct

@Drakonian, no, there's still a permission set with ID 135033. Now that you've changed the app.json, that ID is outside of the ID range - hence the compilation error. Add the range from 135033 to 135033, and that issue should be gone.

@Drakonian, no, there's still a permission set with ID 135033. Now that you've changed the app.json, that ID is outside of the ID range - hence the compilation error. Add the range from 135033 to 135033, and that issue should be gone.

Corrected.
Do you have any idea why this is compiling locally? 😮

@Drakonian, no, there's still a permission set with ID 135033. Now that you've changed the app.json, that ID is outside of the ID range - hence the compilation error. Add the range from 135033 to 135033, and that issue should be gone.

Corrected to old ID range. Do you have any idea why this is compiling locally? 😮

You are probably only compiling the entire System Application in one go, and not the modules individually - is my guess 🙂

@Drakonian, no, there's still a permission set with ID 135033. Now that you've changed the app.json, that ID is outside of the ID range - hence the compilation error. Add the range from 135033 to 135033, and that issue should be gone.

Corrected to old ID range. Do you have any idea why this is compiling locally? 😮

You are probably only compiling the entire System Application in one go, and not the modules individually - is my guess 🙂

I feel a little confused about having to run the CI process several times and it finds new errors. It would be cool to run it locally somehow 😞
I hope you're not wasting too much time on this
new correction ready, should be last 😈

No worries. I just click a button 🙂 It's perfectly normal that you need to submit several updates before builds succeed. Of course you can (and should) enable all code analyzers with the correct rules, but things like compiling the modules individually or running CLEAN builds, is too much to ask. We all here in the BC team use CI to verify those things.


"Don't write to global functions" section improvement

Two things from my side:

Is there a reason to use Set inside the example function? Considering there's also Array.prototype.includes:

Array.prototype.diff = function diff(comparisonArray) {
-  const hash = new Set(comparisonArray);
-  return this.filter(elem => !hash.has(elem));
+  return this.filter(elem => !comparisonArray.includes(elem));
};

Wouldn't it be better to teach using simple functions instead of whole classes? Who would ever inherit from built-in types and write const arr = new SuperArray(1, 2, 3) in real life? I think it's more common to have:

function diff(first, second) {
  return first.filter(elem => !second.includes(elem));
}

What do you think?

Sorry, I don't really know a better example at the moment. Usually when you mention not to pollute / mutate global scope, you introduce the idea of modules.

Maybe something simple like:
Bad:
Array.prototype.last = function() {
    return this[this.length-1];
}

[1,2,3].last();

Good:
function getLastElement(array){
    return array[array.length-1]
}

getLastElement([1,2,3]);


ioBroker.opendtu/admin /admin.d.ts not needed?

Describe the bug
looks like "ioBroker.opendtu/admin /admin.d.ts" isn't needed anymore when using admin5+ methods for config screens
Expected behavior
I wanna propose to delete the file

I'm not sure about that, unfortunately.

Looks like you could delete it then...


Nqueens Problem added

Input N while Running the script.
Example:
python3 Nqueens.py 4
:)

Thanks !

No worries.. Will keep 'em coming :)
On Oct 9, 2016 2:51 PM, "Sarthak Munshi"<EMAIL_ADDRESS>wrote:

Thanks !
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/saru95/DSA/pull/45#issuecomment-252475068, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AMPTudHCurpeUnhp8p6xOF6HUWCzxshLks5qyLIdgaJpZM4KR8qn
.


Force device info refresh after toggling screen/screensaver on/off

Currently if you flip the switch for the screen or screensaver it will "flip back" in the HA UI because it hasn't refreshed data from the device to confirm that the toggle worked. Need to have it query the device after calling the command so the data will be up to date.

#15 should fix this for the switch platform. Need to add it to light platform too.


fix return type for navigation icon

Given that $navigationIcon is a nullable string as well as $activeNavigationIcon (https://github.com/juliangums/filament/blob/3.x/packages/panels/src/Resources/Resource.php#L75),
getNavigationIcon() and getActiveNavigationIcon() should not be able to return an Htmlable.
It also causes issues with static analysers if I want to use it like
                MenuItem::make()
                    ->icon(SomeResource::getNavigationIcon()),

Breaking change, and returning an object is something we support - initialising an object is not possible when defining a property. We do not explicitly support creating menu items from resources in the way that you are describing, you could PR support for Htmlable menu item icons if you wish.

@danharrin forget about my use case. I think that made it more confusing instead of clarifying the problem. Actually, you are currently not supporting defining an icon as an Htmlable. It wouldn't make any sense imho but it can also not be set as the setter method only accepts a string:
https://github.com/filamentphp/filament/blob/3.x/packages/panels/src/Resources/Resource.php#L812
and overriding the property in a class that extends Resource will also not work, as the type must be 'null|string' (as in base class '\Filament\Resources\Resource').
So how can an Htmlable ever be returned? Therefore, my change shouldn't break anything, either. It was never possible to set or return an Htmlable in the past and it isn't in the present, and it probably shouldn't be as we are talking about a string that defines the icon like 'heroicon-o-building-library'. Does that make sense, or am I missing something?

As per the docs, it's valid to override the getter instead of using the setter, and keeps all the code in the same place. Anyone using the Htmlable feature will do that, its a common pattern to override the getter throughout Filament.

I see where you're coming from now. That will make sense.


New service: get search results instead of queueing them

Reissuing #71 because I had to make another PR for another thing and I need the main branch for myself.

I would like to validate this myself prior to merging, but I will not be able to do that before 26/8

Hi there! Hope you're doing well. Any chance you could take a look at this? Thanks.

merged. I will make a new release asap

I forgot to document the new service! I'll open a new PR within a few days.

I already documented some. Feel free to complete the README.md

I opened https://github.com/bushvin/hass-integrations/pull/74 with some suggestions.
Thanks for crediting by the way!


addHTML() does not export retina PDFs. Files appear blurry.

How can we export PDFs that display sharp letters on retina displays?

var pdf = new jsPDF('p','px','letter');
pdf.addHTML($("#content"), function() {
pdf.save('test.pdf');
});

A bit late to the party, but have a look at: https://github.com/cburgmer/rasterizeHTML.js/blob/master/examples/retina.html
You have to do some modifying to the addHTML function yourself, to gets this to work though. As it is not supported by jsPDF yet.

We are closing this issue, because we will not support any longer fromHTML and addHTML.
Explaination:
We are working on a new html2pdf plugin, which will be based on html2canvas and our context2d plugin. This should lead to more reliable results for your projects. And it will give us the time to focus on the core functionality of pdf-generation because we will not use our energy for writing/supporting/extending 2 html plugins. If you still want to use addHTML or fromHTML you can still use jsPDF 1.4.1.
Best Regards


moodle url name change

The default moodle alb dns name gets populated in the url (e.g.http://moodl-publi-vm8x7xxxxxxxx-878763876.ap-south-1.elb.amazonaws.com/). Wanted to check on the url replacement option - is it better to do it with {wwwroot}/admin/tool/replace/index.php and changing $CFG_root in config.php? or would you recommend any other option considering the same dns name population at other places as well? Please advise. Thanks in anticipation.

We followed https://www.inmotionhosting.com/support/edu/moodle/change-url-2/?option=com_content&view=article&id=1857&catid=274&Itemid=101 however it broke the LMS!

Able to solve the issue. We had to remove the courses as well for replacing name in the DB all across 1000 plus places. Its working finally, Closing the issues here.


Image AutoPlays when thumbail arrow is clicked few times.

When thumbnail arrow is continuously clicked a few times, the images will start to autoplay even though AutoPlay is set False.
Here is my setup for the ngx-gallery:
this.galleryOptions = [
       {
         width: '50%',
         height: '900px',
         preview: false,
         previewAutoPlay:false,
         imageSize: NgxGalleryImageSize.Contain,
         imageAutoPlay: false,
         imageArrowsAutoHide: true,
         thumbnailsArrowsAutoHide: true,
         thumbnailsPercent: 20,
         thumbnailSize:"contain",
         thumbnailsMargin: 5,
         thumbnailMargin: 5,
         thumbnailsColumns:6
       },
       {
         breakpoint:1024,
         width: '90%',
         height: '700px',
         preview: false,
         previewAutoPlay:false,
         imageSize: NgxGalleryImageSize.Contain,
         imageAutoPlay: false,
         imageArrowsAutoHide: true,
         thumbnailsArrowsAutoHide: true,
         thumbnailsPercent: 20,
         thumbnailsColumns:6,
         thumbnailSize:"contain",
         thumbnailsMargin: 5,
         thumbnailMargin: 5,
       },
   ];

Hi @bibash-mi I can't reproduce this issue, could you record a video with this issue? Could you reproduce it using plunker https://plnkr.co/edit/D1tdBCeFo6L9tMOCOb9p?p=preview ?


add post setup hook

This would be useful for running tasks after the setup has completed, such as installing dependencies with Composer. This hook will executed regardless of whether the system is already installed or not

Thank you!


Being able to edit, create httpdocs files with a windows app

Windows Build Number: 14393.693
My problem probably mentioned million times but just want to describe from an amateur web developer perspective. Also, there might be a solution for this that I don't know. I am not as good as you guys.
I have successfully installed lamp on WSL and works incredibly faster than vagrant which made me invest into this. I have been using vagrant for years just for being able to use my text editor to edit, create delete my php files within windows and keep www folder in my E:/Project/Server/www folder. also I use cmder to ssh into vagrant virtual server and do git commands and others.
What I tried was, I tried to created a virtual host with apache2 on WSL and point www folder to my /mnt/e/Projects/Server/www folder. but when I create a file from windows, linux doesn’t see those files.
How can I do this with WSL? If its not possible can you please implement this feature? thanks.

Hi @erdemece -- where (at what path) are these files that you're creating on Windows and not seeing on Linux?  You should be able to create files in C:\ (or D:, E:, etc -- any local NTFS-formatted partition) and see them immediately from Linux in /mnt/c, /mnt/d, /mnt/e, etc.
You can't edit files in the Linux paths /etc, /usr, /home, etc from Windows because (among other reasons) they are required to have Linux file permissions and attributes, and most Windows programs don't know how to correctly set Linux file attributes when the file is saved.  The general recommendation is to keep all files that you need to edit frequently, somewhere in C:\ (or E:, in your case).  You can then symlink to that path from /etc, /home, etc as needed.

@aseering thank you so much for taking time to answer. This is an awesome tool and I really want it to work with it.
To make sure we are on the same page let me explain; I have a folder called projects in my e drive. I also created a folder called Server in my projects folder. In the Server folder I want to create virtual host folder for apache. for example I create folder a called wordpress.dev and point the virtual server to /mnt/e/Projects/Server/wordpress.dev in apache config file for documentroot. I gave the necessary apache permissions but when I create, edit or move files in wordpress.dev linux doesn't see them.
how can I achive this with symlink ?
Thanks again.

Never mind. It was a bug I guess. I removed WSL and installed again now linux sees the files I created on windows folders.
Thanks.

Did it delete all your packages when you reinstalled? Does it retain everything?

From up above:

I gave the necessary apache permissions but when I create, edit or move files in wordpress.dev linux doesn't see them.

With the -o metadata feature available in the April Update this apache2 on /mnt/c scenario should now be supported. You don't need (and shouldn't use) a symlink unless you have a particular reason to do so. If it doesn't work, that should be investigated further under a different cover following the issue template.


[BUG] Clicking ->] Logout button in the (R) user menu should redirect to / or /login

With the Login working correctly, and the UI styled for Login and Register,
The Logout function should:

Kill the session, etc.
and Redirect the user to / or /login

It's hard to tell if the logout function actually works as there is no visual clue that you're logged out.
Add a toast, popper, snackbar or alert  to tell the user that he is either logged in or logged out.
Also the Login should welcome the user by name or user id.

I can fix this issue can you assign it to me @gbowne1
I will toast menus and redirecting functionality

Ok I will assign this to you @ratishjain12


Misleading information about Dataflows partitions regarding XMLA endpoints

[Enter feedback here]
https://docs.microsoft.com/en-us/power-query/dataflows/incremental-refresh#incremental-refresh-implementation-details
The second sentence from the paragraph is misleading. Unless there is ADLS Gen2 subscription attached, the dataflows partitions
are not visible. And XMLA-endpoints do not work for Dataflows, they only work for Datasets.
Source:
Incremental refresh implementation details
Dataflows use partitioning for incremental refresh. After XMLA-endpoints for Power BI Premium are available, the partitions become visible...

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

ID: ffc816e2-78f6-ca70-92a3-b2153461759d
Version Independent ID: e6fec9a8-1c47-b739-5146-0fa717c4535e
Content: Using incremental refresh with dataflows - Power Query
Content Source: powerquery-docs/dataflows/incremental-refresh.md
Service: dataflows
GitHub Login: @bensack
Microsoft Alias: bensack

Please ignore (I'm using bot automation to add labels). #please-open

Please ignore (I'm using bot automation to add labels). #please-open

Hi @bstar92
Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. We are closing this issue for now, but if you feel that it's still a concern, please respond and let us know. If you determine another possible update to our documentation, please don't hesitate to reach out again. #please-close


Fixed the navbar at top

Fixed the issue #179
As you told I have fixed the navbar at top and adjusted the other components after fixing the navbar
Now it looks like this
https://github.com/Anandsg/Hungry-hero/assets/102857774/181949fa-6016-4aaa-8884-b04b5a5e7914

@Pinaka-Pani-18 This feature is already deployed can you please look into other issues


Make sure contracts work with CAR files

Should at least test the CAR file approach before publishing contracts since this is the modern way of uploading collections and is how OpenSea recommends doing it in their tutorial: https://docs.opensea.io/docs/part-3-adding-metadata-and-payments-to-your-contract. This is what I followed for the original NFT.storage instructions.

They do work, provided the creator doesn't screw anything up. We'll manually inspect collections to make sure things are correct before launcing on mainnet.


improveimprove json support empty keys

Proposed changes
backport: https://github.com/apache/doris/pull/36762
Issue Number: close #xxx

run buildall

run p0

run p0

run p0


able tò scape Ambitionbox  website and get compaines with there ratings

Description

The changes made in this pull request should be briefly described.

Resolves: [Issue Number]
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[ ] Have you adhered to the repository's defined coding convention rules?
[ ] Have you updated the 'documentation.md' file with the method/function documentation?
[ ] Have you sent a message along with the result or response?
[ ] Have you used the try-catch technique?
[ ] Has the method/class been added to the documentation (md file)?

Screenshots

Uploading a screenshot illustrating the approach you developed for validation is required.

Additional Notes/Comments

Any additional remarks or suggestions concerning this pull request are welcome.

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

@nikhil25803 i have added changes can review it once

Great work @PlanetDestroyyer  !!
Do not forget to

Share your contribution on socials and tag Clueless 🫂
Give this repository a star ✨
Follow Clueless Community on GitHub ✅

Thank you @nikhil25803


fix a slight mistake

Signed-off-by: Tiger9Tu<EMAIL_ADDRESS>

@Tiger9Tu  please rebase this PR to dev branch. Change target to dev branch. Also make an entry in CHANGELOG.md under the WIP-DEV branch.

is there anything happening on this one?

Hi @tiger9tu,
Sorry for the long delay, as we are working on a new process of contributions.
master is currently the release branch, could you update your PR, and targeting it to the dev branch ?

Shouldn't this PR be closed by now?


Help for Mongo Implementation

Hi @richorama
Seems that we share a lot of tech stacks. I have working on an improvement of a indexer solution based on Orleans and then I found this project. I have taken the idea to implement a custom directory and "adapted" your code to MongoDB:
https://github.com/Squidex/squidex/tree/text-indexer/backend/src/Squidex.Domain.Apps.Entities.MongoDb/FullText
I have not done so much around locking as the code is only used in a grain. But if you have time it would be great if you can review it. Perhaps as part of this PR: https://github.com/Squidex/squidex/pull/454

Hi @SebastianStehle, small world!
I sort of adopted this repo (I'm not sure why!), without knowing too much about Lucene internals, so I'm more of a janitor than a develop on this one.


Backtesting rsi sanchit

Added a back-testing mechanism
implemented structure for bot
Implemented and tested various strategies for the bots
Connected Luno go SDK functionality to former back-testing structure to operate bots on live data

merging final backtesting branch into master before going live