[Bug] JUnit Reporter doesn't include ignored methods

TestNG Version
<IP_ADDRESS> (latest available)
Expected behavior
I believe that JUnitReportReporter should be compliant with the JUnit 4.12 rules and thus should include the disabled/ ignored tests (the ones marked with @Test(enabled = false) in the XML report under junitreports/ directory.
Yes, I know, I know, this is not how TestNG treats ignored tests - but if we are going to produce a JUnit-compliant test report, then I guess we should stick to the JUnit rules :)
Actual behavior
Now, TestNG doesn't generate absolutely no info about such test in the output xml report.
Is the issue reproductible on runner?
Tested via Maven.
Test case sample
 @Test(enabled = false)
 public void should_be_ignored() {
     assertEquals("abcd", "abc");
 }

I would expect to see followig entry in the generated JUnit report:
<testcase time="0" classname="com.myproject.AbcTest" name="should_be_ignored">
  <skipped/>
</testcase>

@cbeust What do you think?

@cbeust @juherr - Please advise on the expected behaviour. Based on your inputs I would like to try and take a jab at this issue.

I'm fine with that. As far as I recall, these tests don't appear in the reports because they are removed from the suite very early on (at annotation parsing time) so TestNG doesn't even know about them by the time it runs the reports.

@krmahadevan - I'm glad you are willing to tackle this.
Based on what Cedric said, if you are going to implement this feature, then AFAIK you can also make issue #1213 by the way. Because they are quite related. What do you think?
Also one thing that come to my mind: I'm not sure how introducing a "disabled/ ignored"  (for me both mean the same) category for test methods will conflict with the current TestNG implementation.
What do I mean? Although testng-results.xml doesn't contain any notion of disabled tests - when I open a generated HTML report, I can see there: Ignored methods section (above the Chronological view).
@cbeust What do you think? Does it matter?

@gdemecki Now you mention it, I do remember that I made a few changes so that ignored methods actually get preserved for the reports, so what I said earlier is probably no longer accurate (it was a long time ago, my memory is hazy :)).
Either way, I agree it's useful to have that, if we don't already, so the issue is legitimate: let's make sure that ignored methods are available to reporters and listeners.

@gdemecki - Please see if this is what you were after : https://github.com/cbeust/testng/pull/1247#issuecomment-261837443

Hi @krmahadevan, almost, but not exactly.
Issue with additional counter for ignored methods is solved.
But issue titled JUnit Reporter doesn't include ignored methods is not really solved, because report format doesn't conform to the format produced by JUnit Ant task/ Maven Surefire Plugin.
Why? Because you have used <ignored/> xml element:
<testcase name="iShouldNeverBeExecuted" time="0.0" classname="org.rationale.emotions.junit.MyTestcase">
  <ignored/>
</testcase>

instead of <skipped />:
<testcase name="iShouldNeverBeExecuted" time="0.0" classname="org.rationale.emotions.junit.MyTestcase">
  <skipped/>
</testcase>

3rd party tools which are supposed to parse the above XML report won't recognize the new <ignored/> element.  So I believe that we should stick to the rules set by ant/ maven surefire.
Ps. The current schema used by e.g. maven-surefire-plugin you can view here: maven-surefire-plugin/src/site/resources/xsd/surefire-test-report.xsd.
BTW: Thanks for your hard work, I was surprised you was able to come up with the implementation so fast.
Kind regards

@gdemecki - I am a bit confused here. I understand the part wherein you are saying that "ignored" tests should be included in the xml with the tag as skipped instead of ignored (Your original bug report did have that. Somehow I missed that).
But now that you did share the schema (am no big xml expert), I tried generating a sample xml using the schema and this is what I got
<?xml version="1.0" encoding="utf-8"?>
<testsuite name="str1234" time="str1234" tests="str1234" errors="str1234" skipped="str1234" failures="str1234" group="str1234">
  <properties>
    <property name="str1234" value="str1234" />
  </properties>
  <testcase name="str1234" classname="str1234" group="str1234" time="str1234">
    <failure message="str1234" type="str1234" time="str1234">str1234</failure>
    <rerunFailure message="str1234" type="str1234" time="str1234">str1234</rerunFailure>
    <skipped message="str1234">str1234</skipped>
    <error message="str1234" type="str1234">str1234</error>
    <system-out />
    <system-err />
  </testcase>
</testsuite>

I don't see the attribute called "ignored" in the JUnit schema you shared. But now TestNG added it up via https://github.com/cbeust/testng/pull/1247
So aren't we out of sync with what Junit is giving and what now TestNG produces ?
Just trying to understand what value add we would be doing by counting/marking ignored test as skipped in the report, but explicitly calling out ignored count at the suite level tag. How will an end user who looks at the junitreports/xml file be able to differentiate which test was skipped and which one was ignored ?

@krmahadevan You can have a look on the junit reporter from ant: https://github.com/apache/ant/blob/e843dd287f13bc9e87b1af1201d2e557fdcc1897/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java#L331-L336
It marks ignored tests as skipped.

@krmahadevan sure, let me explain:

I don't see the attribute called "ignored" in the JUnit schema you shared. But now TestNG added it up via #1247

It is Ok that you cannot see the attribute ignored there. Because  JUnit-style of report doesn't use ignored word, it just uses the skipped for this purpose. In the JUnit world they are synonyms. Although in the TestNG world they aren't synonyms.

How will an end user who looks at the junitreports/xml file be able to differentiate which test was skipped and which one was ignored ?

Please look at my explanation above. They are synonyms.
I think your confusion is caused by differences in the JUnit and TestNG possible test statues. Basically:
JUnit has four possible test statuses:

Success
Failure (due to AssertionFailedError)
Error (unexpected Exception has been thrown)
Skipped (aka. Ignored)

While TestNG has so far just three (please correct me if I'm wrong) possible test statuses:

Passed
Failed
Skipped (but not ignored! This status is only for tests which were dependent on the failed tests)

So TestNG has no equivalent for the status SKIPPED  from JUnit (although it has already status with the same name, but for a totally different purpose). This is probably root of a confusion.
On the other hand:  JUnit has never had any notion of dependency between tests, so there is no equivalent of the TestNG SKIPPED status.
So thanks to your work there is a new status in the TestNG which is called IGNORED  - which will be/ should be an equivalent for SKIPPED status from junit. Because so far, end user was totally not aware of how many tests were actually permanently disabled in a test suite. Now it will change.
Thanks, and please ping me if something is not clear.
Ps. @cbeust , @juherr please correct me if I was wrong somewhere above.

@gdemecki - Awesome! Thanks for clarifying things. I took my baby steps directly with TestNG so I am not aware of how JUnit works. So this does add a lot of clarity.

So TestNG has no equivalent for the status SKIPPED from JUnit (although it has already status with the same name, but for a totally different purpose). This is probably root of a confusion.

Yes that's why I got confused. In TestNG skipped indicates either an upstream failure (either due to an upstream test failure or due to a config failure). I didn't realise that JUnit had a different meaning for the word skipped.

So thanks to your work there is a new status in the TestNG which is called IGNORED
That wasn't me. It was @cbeust :) I am just bringing that information into the JUnit reports (this information is already available in the TestNG, its just that not all the TestNG default reports show this).
I haven't yet brought out this information in all of the TestNG's html reports (atleast to the best of my knowledge), but this information is atleast now available in the JUnit reports that TestNG produces after my delivery.

@krmahadevan You can have a look on the junit reporter from ant: https://github.com/apache/ant/blob/e843dd287f13bc9e87b1af1201d2e557fdcc1897/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java#L331-L336
It marks ignored tests as skipped.

@juherr - Thanks for pointing me to this.

@gdemecki and @juherr
This is how the xml generated under junitreports/  folder will look like (This is the JUnit compliant xml report produced by TestNG)
cat junitreports/TEST-test.junitreports.SimpleTestSample.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by test.junitreports.LocalJUnitReportReporter -->
<testsuite name="test.junitreports.SimpleTestSample" tests="2" time="0.000" ignored="1" failures="0" timestamp="24 Nov 2016 15:45:53 GMT" skipped="1" hostname="MacBook-Pro.local" errors="1">
  <testcase name="masterTest" time="0.000" classname="test.junitreports.SimpleTestSample">
    <error type="java.lang.IllegalStateException" message="Simulating a llegal state.">
      <![CDATA[java.lang.IllegalStateException: Simulating a llegal state.
	at test.junitreports.SimpleTestSample.masterTest(SimpleTestSample.java:12)
    ........ //Intentionally trimming the stacktrace for breivity
    ........
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
]]>
    </error>
  </testcase> <!-- masterTest -->
  <testcase name="childTest" time="0.000" classname="test.junitreports.SimpleTestSample">
    <skipped/>
  </testcase> <!-- childTest -->
  <testcase name="iShouldNeverBeExecuted" classname="test.junitreports.SimpleTestSample">
    <skipped/>
  </testcase> <!-- iShouldNeverBeExecuted -->
</testsuite> <!-- test.junitreports.SimpleTestSample -->

This is how the xml generated under suite/ folder will look like (This can be visualised as a TestNG report in xml format)
This report has the new category of ignored tests being shown for TestNG users.
cat suite/test.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by test.junitreports.LocalJUnitXMLReporter -->
<testsuite hostname="MacBook-Pro.local" ignored="1" name="test" tests="2" failures="1" timestamp="24 Nov 2016 15:45:54 GMT" time="0.002" errors="0">
  <testcase name="masterTest" time="0.001" classname="test.junitreports.SimpleTestSample">
    <failure type="java.lang.IllegalStateException" message="Simulating a llegal state.">
      <![CDATA[java.lang.IllegalStateException: Simulating a llegal state.
	at test.junitreports.SimpleTestSample.masterTest(SimpleTestSample.java:12)
	at test.junitreports.JUnitReportsTest.runTest(JUnitReportsTest.java:48)
	at test.junitreports.JUnitReportsTest.testJUnitXMLReporter(JUnitReportsTest.java:30)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
... Removed 50 stack frames]]>
    </failure>
  </testcase> <!-- masterTest -->
  <testcase name="childTest" time="0.0" classname="test.junitreports.SimpleTestSample">
    <skipped/>
  </testcase> <!-- childTest -->
  <testcase name="iShouldNeverBeExecuted" time="0.0" classname="test.junitreports.SimpleTestSample">
    <ignored/>
  </testcase> <!-- iShouldNeverBeExecuted -->
</testsuite> <!-- test -->

LGTM

@juherr Thank you. Can you please help approve the PR and kindly help it get merged ?


Add game host setting for disabling mobile system idle timers

Addresses https://github.com/ppy/osu-framework/issues/3308 in adding a new property to GameHost that allows for explicitly disabling any system-level idle timers temporarily.
The use-case behind this is to set it at times when the user might not interact with the game for an extended period of time (eg, watching a game replay etc).
Changes

Add IsIdleTimerEnabled to GameHost class.
Added iOS system integration in IOSGameHost
Added Android system integration in AndroidGameActivity.

Remaining Tasks

I'm still unfamiliar with the code/feature best practices, so these may need refining.
~It should be relatively easy to unit test these too, but I might need some help on how to add tests.~

Keep in mind this actually needs to be used at osu!'s end to be useful.


Allow specifying a different output directory than app/?

Is your feature request related to a problem? Please describe.
I'm trying to use bubblewrap on an existing project that, per Rails conventions, has .rb files in folders under app/ such as app/models. This conflicts with the default bubblewrap build outputs under app/build and app/src.
Describe the solution you'd like
Can we have a flag like --outDir to output to a different location?
bubblewrap build --outDir built

Describe alternatives you've considered
Moving the original app/ to a temp dir before build, then moving the build app/ to another temp folder, and moving the original app/ contents back. I don't like this 😄

You should be able to modify your gradle.properties and specify a different build directory, as described here: https://stackoverflow.com/questions/13915351/change-gradles-working-directory-when-compiling-a-groovy-project
We could add this to twa-manifest.json so that gradle.properties is generated with the correct value when the project is regenerated.

+1, having to dive into Gradle for a web project is not something I'd expect to have to do 😉

The goal is that you shouldn't have to.
Generally, you shouldn't have to care about the app folder too. I wonder if the reason is that you are using it in an existing project? Can you provide more details?

Yup! It's an existing Rails project that has app/, config/, and lib/ directories for Ruby code, alongside a webpack/ directory for frontend code.

My solution was to create a custom npm script in the package.json. I could cd into another directory other than app/ and then run the command. It would look something like this:
"scripts": {
    "build-android": "cd ./android && bubblewrap init ..."
}

Closing out my old issues I no longer have context on. If anybody else is still seeing this, I'd encourage you to file a new issue with more information. Cheers!


Execution of multiple commands is hanging

Hi,
since version 1.3.1 the execution of multiple commands per session is hanging. See the following example:
    PowerShell ps = PowerShell.openSession();

    for (int i = 0; i < 10; i++) {
        System.out.print("Cycle: " + i);

        String output = ps.executeCommand("date").getCommandOutput().trim();

        System.out.println("\t" + output);
    }

Output:
Cycle: 0    Dienstag, 1. März 2016 22:57:23
Cycle: 1    Dienstag, 1. März 2016 22:57:24
Cycle: 2    Dienstag, 1. März 2016 22:57:24
Cycle: 3

I haven't debugged it, but think the problem is that the commandProcessor and/or commandProcessorError tasks are still running and locking the threads from the threadpool. Maybe they should be canceled after runnging a command.
In version 1.3.0 the problem was not there, because each execution of a command has created a new threadpool with new threads... That was also not so nice if you are running many commands in a row. ;-)
Systeminfo:
PS C:\Windows\System32\WindowsPowerShell\v1.0> java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

PS C:\Windows\System32\WindowsPowerShell\v1.0> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           <IP_ADDRESS>
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.17400
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2

Hi r4lly,
In fact, I have never though on use it like that, within a loop.
Thank you for your super-report. Indeed it seems that the threads are not correctly cancelled so I will try to do it manually after each use.
I will keep you updated.
Thank you!

I had only 10 minutes to test. I have tried:
-Cancel the results after using them.
-Increase the max threads in the pool to 20
-Insert a thread.sleep of 3 seconds in each loop execution.
In all the causes the result is the same. It hangs in the third cycle.
I will continue to look maybe tonight with a little more of time.

Ok, I did not test properly. It works ok when we cancel the results after using them.
I am going to build a version 1.3.2 with this fix.
I will tell you when it is ready in order to confirm the solution.

Thanks for your fast response!
After a short debug-session I've noticed that the resultError task is never ending. For each command execution this task blocks an aditional thread from threadpool if the command on powershell doesn't throw an error.
The commandProcessorError (resultError) task stucks in the startReading()-method forever, because it doesn't check for timeout. If this behavior was intended, the task should be canceled at the end of the executeCommand(String command)-method.

the task should be canceled at the end of the executeCommand(String command)-method.

Yes, as I said in my last post it is exactly that what was wrong. Its fixed and I have add an automatic test to check the 'loop' case.
I have just generated a new version 1.3.2 with the fix. It will take some hours to be available on Maven Central but you can download already here:
https://oss.sonatype.org/content/groups/staging/com/profesorfalken/jPowerShell/1.3.2/jPowerShell-1.3.2.jar
Can you confirm that it works?
Thank you!

Ah, thanks for your work!
Unfortunately, your fix seems not to work all of the time. Sometimes it throws a java.lang.InterruptedException: sleep interrupted which is catched by you. So far everything is OK. But when this exception is thrown, the response for the given command is empty.
It looks like that the response from the current command is added to the response of the next command.
Sadly, the problem is not deterministic. It seems to be a concurrence problem...  Maybe you can reproduce this with the following example:
PowerShell powerShell = PowerShell.openSession();
for (int i = 0; i < 100; i++) {
	System.out.print("Cycle: " + i);

	Thread.sleep(100);

	PowerShellResponse response = powerShell.executeCommand("date"); // Line 17 (see exception below)

	if (response.isError()) {
		System.out.println("error"); // never called
	}

	String output = "<" + response.getCommandOutput().trim() + ">";

	System.out.println("\t" + output);
}

(I used "<" and ">" to show the start and the end of the response)
Extract of output:
Cycle: 53	<Mittwoch, 2. März 2016 23:37:33>
Cycle: 54	<Mittwoch, 2. März 2016 23:37:33>
Cycle: 55	<>
Cycle: 56Mär 02, 2016 11:37:33 PM com.profesorfalken.jpowershell.PowerShell executeCommand
SCHWERWIEGEND: Unexpected error when processing PowerShell command
java.util.concurrent.ExecutionException: java.lang.InterruptedException: sleep interrupted
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at com.profesorfalken.jpowershell.PowerShell.executeCommand(PowerShell.java:120)
	at myPowerShellTest.Main.main(Main.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.profesorfalken.jpowershell.PowerShellCommandProcessor.startReading(PowerShellCommandProcessor.java:87)
	at com.profesorfalken.jpowershell.PowerShellCommandProcessor.call(PowerShellCommandProcessor.java:66)
	at com.profesorfalken.jpowershell.PowerShellCommandProcessor.call(PowerShellCommandProcessor.java:34)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

	<Mittwoch, 2. März 2016 23:37:33

Mittwoch, 2. März 2016 23:37:34>
Cycle: 57	<Mittwoch, 2. März 2016 23:37:34>
Cycle: 58	<Mittwoch, 2. März 2016 23:37:34>
Cycle: 59	<Mittwoch, 2. März 2016 23:37:34>

Ok thank you very much for your impressive work finding bugs ;-)
I think that I have a clue of what it is happening. When I cancel the future task I send a flag to force the interruption. I think that I just have to let the task finish before cancelling.
I will do some tests and I will generate an snapshot version to test the solution.
Thanks a lot!

Well, it is not that easy as I though...
I have launched your example a thousand times and it always works OK in my system.
If I try to avoid interrupting when cancel I have the 'hanging' problem in the third cycle.
What I have done is to make an small wait before cancelling in order to make sure that the reading loop is processed.
Can you check if the problem is now solved for you?
https://oss.sonatype.org/content/repositories/snapshots/com/profesorfalken/jPowerShell/1.3.3-SNAPSHOT/jPowerShell-1.3.3-20160303.083919-1.jar
If you confirm it I will generate the 1.3.3 version.
Thanks for your help

Thanks for your fast response and work!
Maybe you can reproduce the problem by removing the sleep in my main loop.
Your fix prevent the InterruptedException in most cases. Just sometimes the exception is shown in the error log. But the problem with the empty response is still there. Unfortunately, it's difficult to say whether it has now become better with your improvement. I think its a little bit better.
I have also tested your added sleep with 20ms and 50ms. 50ms seems to work well, but I think this is dependent on the machine and the background workload. Further increasing of the sleep time will also increase the latency of the commands, so I think this is not the best solution.
In some cases the output from main thread looks like this: (Output from Cycle 4 is shifted to Cycle 5, and the output from Cycle 5 is added to Cycle 6)
Cycle: 3	<Donnerstag, 3. März 2016 10:02:45>
Cycle: 4	<>
Cycle: 5	<Donnerstag, 3. März 2016 10:02:45>
Cycle: 6	<Donnerstag, 3. März 2016 10:02:46

Donnerstag, 3. März 2016 10:02:46>
Cycle: 7	<Donnerstag, 3. März 2016 10:02:46>
Cycle: 8	<Donnerstag, 3. März 2016 10:02:46>

PS: I'm using a system with 2 physical cores, but with HTT (=> 4 logical cores). Maybe your testing system is faster than my system. ;)

PS: I'm using a system with 2 physical cores, but with HTT (=> 4 logical cores). Maybe your testing system is faster than my system. ;)

Well I think that the point is there (n of cores & speed). However, the reason is just the opposite.
In fact I am a Linux guy and I only use Windows into a Virtual Machine. This virtual machine is configured to only use one core. I think  that this explains why it always works for me.
Apparently the JVM tries to optimize speed and parallelize the loop using several cores. This is what causes the concurrency problem.
I will give more cores to the virtual machine in order to reproduce the problem and will try to control it in the smartest way I can.
I will keep you updated
Thank you very much for your help

No luck. Even with two cores I cannot reproduce it.
My system is slower that your (you have an i3, haven't you) because it is just a Pentium G3258 @ 3.2 with physical two cores and no HTT.
However I have created a new Snapshot which adds some logs to try to understand the problem.
Could you please test it and tell me if you have logs of type "Cannot cancel result [...]"?
https://oss.sonatype.org/content/repositories/snapshots/com/profesorfalken/jPowerShell/1.3.3-SNAPSHOT/jPowerShell-1.3.3-20160303.115506-2.jar
Thank you!

Too bad that you can't reproduce the problem. :(
It's quite possible that the amount of cores has an effect on your code. I'm using an ULV i5 (U4200 @ 1,6 - 2.3GHz) on my Windows machine. In a few days I can also test this code on an another Windows system with an AMD Athlon II X4 631 (4 cores @ 2.6GHz).
I have tested your new snapshot with and without an 100ms sleep in the main loop. Also with the sleep I've got errors (0-2 errors / 100 cycles), but not as much as without sleep (0-4/100).
I've got 2 variants of errors:
Cannot cancel result result.isDone(): false resultError.isDone(): true commandOutput.trim():
Cannot cancel result result.isDone(): true resultError.isDone(): false commandOutput.trim():

Each time the trimmed commandOutput is empty.
See the attachment for the full output.
output-1_3_3-SNAPSHOT-2.txt

Thank for such a great feedback. In fact, your logs show me that I was mistaken and it was not exactly what I thought.
I will need to bother you even more and ask you a little bit of help.
Could you check this snapshot and tell me if it works?
https://oss.sonatype.org/content/repositories/snapshots/com/profesorfalken/jPowerShell/1.3.3-SNAPSHOT/jPowerShell-1.3.3-20160304.161935-3.jar
If not, maybe this works?:
https://oss.sonatype.org/content/repositories/snapshots/com/profesorfalken/jPowerShell/1.3.3-SNAPSHOT/jPowerShell-1.3.3-20160304.162218-4.jar
(This last one will take quite long time to execute. It is just a test to understand the cause)
Thank you for your help!

Hi, thanks for your work. I have some good and some bad news for you.
The bad one:
Both of your snapshots will produce the known error. The 2 second sleep helps a lot, but sometimes the error is anyway thrown. (3 Fails in over 8000 Cycles):
Cycle: 401	<Freitag, 4. M?rz 2016 23:12:28>
Cycle: 402	<Freitag, 4. M?rz 2016 23:12:30>
Cycle: 403M‰r 04, 2016 11:12:34 PM com.profesorfalken.jpowershell.PowerShell executeCommand
SCHWERWIEGEND: Unexpected error when processing PowerShell command
java.util.concurrent.ExecutionException: java.lang.InterruptedException: sleep interrupted
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at com.profesorfalken.jpowershell.PowerShell.executeCommand(PowerShell.java:122)
	at myPoweShellTest.Main.main(Main.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.profesorfalken.jpowershell.PowerShellCommandProcessor.startReading(PowerShellCommandProcessor.java:87)
	at com.profesorfalken.jpowershell.PowerShellCommandProcessor.call(PowerShellCommandProcessor.java:66)
	at com.profesorfalken.jpowershell.PowerShellCommandProcessor.call(PowerShellCommandProcessor.java:34)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

M‰r 04, 2016 11:12:34 PM com.profesorfalken.jpowershell.PowerShell executeCommand
SCHWERWIEGEND: Cannot cancel result result.isDone(): true resultError.isDone(): false commandOutput.trim():
	<>
Cycle: 404	<Freitag, 4. M?rz 2016 23:12:32

Freitag, 4. M?rz 2016 23:12:34>
Cycle: 405	<Freitag, 4. M?rz 2016 23:12:37>
Cycle: 406	<Freitag, 4. M?rz 2016 23:12:39>
Cycle: 407	<Freitag, 4. M?rz 2016 23:12:41>

Okay, now the good/bad one:
I have played around with version 1.3.1 of your library (without the cancel calls) and increased the number of threads in the threadpool to 1000. I have run multiple times a 1000 cycles loop without any errors. So it seems that the errors comes from the cancel calls.
Again a good/bad one:
I've found a dirty workaround (based on 1.3.1):
I've integrated a manual cancel flag in your PowerShellCommandProcessor:
Line 89:
if (checkTimeout && timeWaiting > PowerShell.MAX_WAIT) {
changed to:
if ((checkTimeout && timeWaiting > PowerShell.MAX_WAIT) || cancel) {
I've also added a setter to set the cancel flag, but I'm not sure if the cancel flag has to be volatile.
Before the method executeCommand(String command) is ending, i just call the setter method and set the cancel-flag to true;
The workaround is working very well for me.
I hope this will help you. Maybe you will find a better solution.

Umm have you tested just to declare volatile the variable checkTimeout?
Maybe the variable is stored in CPU cache by the JVM and it is not correctly updated.

I don't touched the variable checkTimeout. The instance variable is also just used by one thread, so i think there is no need for volatile. Furthermore the checkTimeout variable has no impact on the error-task, because you initialize it with false.
I have only added the variable private volatile boolean cancel = false; with setter to your CommandProcessor.

Yes I have understand your solution.
You are right about the checkTimeout variable since it is an instance variable, but we could say the same for cancel variable dont we?
Nevertheless I have also added in the last snapshot a synchronized block to enclose the reading process. Could you check if it makes any difference?

I'm not sure if we could say the same for the cancel variable because it is accessed by 2 threads. One thread (main) writes and one thread (commandProcesser) reads this value.
In the evening I will check if the syncronized block makes any difference.

Well the checkTimeout is similar. It is setted by one thread and accessed by other. The checkTimeout is setted on main using the constructor each time:
Callable commandProcessor = new PowerShellCommandProcessor("standard", commandWriter, p.getInputStream(), true);
Callable commandProcessorError = new PowerShellCommandProcessor("error", commandWriter, p.getErrorStream(), false);

Hm, yes. The variable is created by main-thread. But later the commandProcessor is passed to another thread. At this time the variable is never changed by another thread - so no need to synchronize (I'm hope that I'm not wrong). On the other hand the variable is final and can only be set in constructor. Later it cannot be changed.
The cancel variable differs from this, because after changing a volatile variable, the volatile keyword ensures, that all copies of this variables in all threads will be updated.

Yes but if it is created in each instance I wouldn't consider it a shared variable... anyway in the worst case it will not do any harm.
I agree also that the synchronized won't change anything since we create a new instance each time so only one thread will access the instance method at a time.
What really worry me is that I do not understand the problem or how your cancel solution can work.
As your logs show, the exception is produced when we perform the result.get and not the result.cancel.
jPowerShell session maintains a poweshell console opened on background and works sending commands and recovering responses. If we perform many command in parallel I can understand that the console can become stuck.
But with the cancel variable, when we set it in that case the startReading() method will return false an thus we are not going to try to read the output in the call() method, so the call will return an empty output. It is not the case?
I do not understand either why increasing the threadpool to 1000 can fix the problem. In each iteration we only need a thread for standard input and another for error input. If it works it means that the real cause is that a thread is hanging even after cancelling. But in this case I do not understand why the 2 seconds sleep has not worked since it should have exit in timeout.

Ok finally I have found more than 5 minutes to see it properly and I think I have it.
I have partially reproduce your problem using an static lock on command processor (and I got also the interrupted exception).
Finally I came to a solution very similar to yours and I took the opportunity to remove completely the horrible checkTimeout variable.
Could you take a look please?
https://oss.sonatype.org/content/repositories/snapshots/com/profesorfalken/jPowerShell/1.3.3-SNAPSHOT/jPowerShell-1.3.3-20160305.133242-6.jar
Thanks

Hi, you are right. The exception is produced by result.get(), but it have to do with result.cancel(boolean). To confirm this, i had increased the threadpool to 1000 (Its not a fix of this problem!). With the threadpool of 1000 and without result(Error).cancel() I've got no errors, but the loop always stuck at 1000 cycles, because each cycle needs a new thread. New threads are needed, because the commandProcessorError task has no real terminating condition and lives forever. That's why we need to cancel the task with result(Error).cancel(boolean) which interrupts the task.
My workaround does not interrupt the task like the cancel(boolean)-method from the Future-interface. With the manual cancel flag I let the task terminate "normally". When the task terminates, then will also the thread be released to the threadpool.
Unfortunately, your new SNAPSHOT-6 won't work for me. Sometimes I still get the already known exception. Immediately after you close() the commandProcesser you try to cancel the result-task, but this is not needed (see explanation above).
But why the exception is still thrown after the close of the commandProcessor? Its because you only set the close-flag. At this time the commandProcessor-thread is sometimes still in the 10ms sleep. So the task will only terminate, when the thread wake up from the sleep. If the thread is still in sleep and you call the 'cancel()'-method you will get the good old known InterruptedException. In this case you don't give the task any chance to terminate, because you just interrupt the task.
I think the problem is solved when you remove the result(Error).cancel(boolean)-calls (I still not tested this). I hope I could help you to understand the problem of the last SNAPSHOT.

I am lucky of having the help of such a good engineer. Thank you very much for your help.
Yes, after writing the first of my last two posts and when developing the snapshot-6 I understood mostly the problem. However in my artificial tests when setting the close() and even interrupting afterwards, the problem disappeared.
You are completely right. If we perform the close() the cancel/interrupt is not needed anymore since the threads are terminated normally.
Here is the snapshot with the fix:
https://oss.sonatype.org/content/repositories/snapshots/com/profesorfalken/jPowerShell/1.3.3-SNAPSHOT/jPowerShell-1.3.3-20160306.111229-7.jar

Wow, now its working as expected!
Thank you very much for this fix and your power of endurance!
PS: I'm not really a good engineer. I'm still a student and have to learn a lot. ;)

Cool! I am glad it worked out.
It is amazing to know that your are still an student. Yes, you have a lot to learn (as everybody) but your future is just brilliant. Concurrence is not a trivial subject and I can assure you that there are many experienced and well paid engineers that does not even now what does a volatile variable.
Thanks again for your help, I will create & publish the new fixed version right now.


Support for PR's from forks!

I know currently this workflow only supports pull_request events, but it would much better if this can support pull_request_target event too because most PR's usually from contributor's fork! Is there any chance this will be added any soon?
This is what I get now when I used it on pull_request_target event.
Run parkerbxyz/suggest-changes@v1
  with:
    comment: If this PR is not intended to update any previous release, please update the VERSION file to the latest version.
    token: ***
file:///home/runner/work/_actions/parkerbxyz/suggest-changes/v1/dist/index.js:53811
      const error = new RequestError(toErrorMessage(data), status, {
                    ^
RequestError [HttpError]: Resource not accessible by integration - https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request
    at file:///home/runner/work/_actions/parkerbxyz/suggest-changes/v1/dist/index.js:53811:21
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///home/runner/work/_actions/parkerbxyz/suggest-changes/v1/dist/index.js:53128:3 {
  status: 403,
  request: {
    method: 'POST',
    url: 'https://api.github.com/repos/shravanngoswamii/docs/pulls/62/reviews',
    headers: {
      accept: 'application/vnd.github.v3+json',
      'user-agent': 'suggest-changes octokit-core.js/6.1.2 Node.js/20.13.1 (linux; x64)',
      authorization: 'token [REDACTED]',
      'content-type': 'application/json; charset=utf-8'
    },
    body: '{"event":"REQUEST_CHANGES","body":"If this PR is not intended to update any previous release, please update the VERSION file to the latest version.","comments":[{"path":"VERSION","line":1,"body":"````suggestion\\nv0.33.0\\n````"}]}',
    request: {
      fetch: [AsyncFunction: customFetch],
      hook: [Function: bound bound register]
    }
  },
  response: {
    url: 'https://api.github.com/repos/shravanngoswamii/docs/pulls/62/reviews',
    status: 403,
    headers: {
      'access-control-allow-origin': '*',
      'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset',
      'content-encoding': 'gzip',
      'content-security-policy': "default-src 'none'",
      'content-type': 'application/json; charset=utf-8',
      date: 'Sat, 29 Jun 2024 23:48:04 GMT',
      'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
      server: 'istio-envoy',
      'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
      'transfer-encoding': 'chunked',
      vary: 'Accept-Encoding, Accept, X-Requested-With',
      'x-accepted-github-permissions': 'pull_requests=write',
      'x-content-type-options': 'nosniff',
      'x-envoy-upstream-service-time': '94',
      'x-frame-options': 'deny',
      'x-github-api-version-selected': '2022-11-28',
      'x-github-media-type': 'github.v3; format=json',
      'x-github-request-id': '880B:229AB2:3B4D521:6945897:66809D34',
      'x-ratelimit-limit': '5000',
      'x-ratelimit-remaining': '4992',
      'x-ratelimit-reset': '1719708408',
      'x-ratelimit-resource': 'core',
      'x-ratelimit-used': '8',
      'x-xss-protection': '0'
    },
    data: {
      message: 'Resource not accessible by integration',
      documentation_url: 'https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request',
      status: '403'
    }
  }
}
Node.js v20.13.1

Resource not accessible by integration

This appears to be a GITHUB_TOKEN permissions issue. Can you try adding the following to the job that runs this action?
permissions:
  pull-requests: write

Resource not accessible by integration

This appears to be a GITHUB_TOKEN permissions issue. Try adding the following to the job that runs this action:
permissions:
  pull-requests: write

Let me know if that does the trick!

A PR from a fork are limited up to a read permission and can't get more. See the link from https://github.com/parkerbxyz/suggest-changes/issues/15#issuecomment-2041171095
I understand it to be a way to protect users from doing the wrong thing that would cause a security vulnerability.

A PR from a fork are limited up to a read permission and can't get more.

The OP specifically asked about using pull_request_target, which I think should work if the permissions are specified as they are in my example above.
From the documentation:

When a workflow is triggered by the pull_request_target event, the GITHUB_TOKEN is granted read/write repository permission, even when it is triggered from a public fork. For more information, see "Events that trigger workflows."

Please also be aware of the following:

[!WARNING]
For workflows that are triggered by the pull_request_target event, the GITHUB_TOKEN is granted read/write repository permission unless the permissions key is specified and the workflow can access secrets, even when it is triggered from a fork. Although the workflow runs in the context of the base of the pull request, you should make sure that you do not check out, build, or run untrusted code from the pull request with this event. Additionally, any caches share the same scope as the base branch. To help prevent cache poisoning, you should not save the cache if there is a possibility that the cache contents were altered. For more information, see "Keeping your GitHub Actions and workflows secure: Preventing pwn requests" on the GitHub Security Lab website.

Another option is to use a GitHub App token: https://github.com/parkerbxyz/suggest-changes/issues/15#issuecomment-2041263840.


Dylan/onboarding upgrades (pt1)

Problem
Onboarding towards the path of C# and Unity experiences a minor block, alongside minor inconsistencies, bloat and room for UX improvements.
Solution

Fixed a blocking syntax error with the "Hello World" CLI example.
Fixed broken .unitypackage URL in C# ref.
Polished with minor typo fixes, code consistency (basing on other examples), more internal reference links.
Additional warning regarding C# speed vs Rust.
In the Unity tutorial, we go the path of Rust for the module: Unity devs are more-likely wanting C# for a quickstart (since we 100% know they know C#, but unsure regarding Rust):

Linked to C# Module tutorial before we jump to Rust, as a placeholder.
For pt2 (a future PR), I'll work with @jdetter to parity the Rust code in C# to diverge tutorial a bit (or perhaps have code tabs, as John suggested).

Renamed Unity3d refs to the modern-named Unity and added "or Rider" appended to Visual Studio mentions.
Added OneTimeQuery C# api ref.
Related, I opened another PR on spacetime-web that fixes all external links that are currently showing as unstyled.
Verbose Details with Screenshots (Google Doc - Clockwork Only)

Testing
There was a README note instructing how to test below, but there seemed to be no instructions below (I also removed this note). However, I was able to use the preview pane in Rider to ensure expected visuals.
(Edit: Squashed for clarity)

✅ Went through all the raised issues

New commit: Filter and Find being shown interchangeably in C# tutorial. Normalized to Find instead of Filter, since discussing just looking if 1 user exists.

Edited in the Google Doc draft with screenshots and verbose details:
https://docs.google.com/document/d/1qwzb9yZ16NQ_KoO_QdEE9KiKHR43EkcXQWedzMfWX_A/edit

Additionally pushed copy+paste redundant comments in Unity pt1:

New minor commit: Removed a Unity-pt1 using directive, and merged some info with another using statement that seems to now include the one removed:

New minor commit: Better code spacing for a crunched block

New minor commit: Removed speed mention, added foreground memo for standalone mode in Unity pt1 (since we're going to issue 2 commands one-after-another).

There's another fix I want to add, but didn't yet since it's a bit more complex:

Swapping PlayerComponent to nullable with FindBy instead of FilterBy will fix a syntax err. This part is straight-forward.
Then, we probably want to check if is not null, but this suddenly makes me realize: What if it's null?

In the tutorial, we never actually used the CreatePlayer Reducer, although we did create it. Is this the place to use if the PlayerComp is null? CC @bfops

There's another fix I want to add, but didn't yet since it's a bit more complex:

Swapping PlayerComponent to nullable with FindBy instead of FilterBy will fix a syntax err. This part is straight-forward.

Then, we probably want to check if is not null, but this suddenly makes me realize: What if it is null?

In the tutorial, we never actually used the CreatePlayer Reducer, although we did create it. Is this the place to use if the PlayerComp is null? CC @bfops

Edit: How about this?

Discussion: https://discord.com/channels/931210784011321394/1205409581120102451

Final edit, following the resolution of the FilterBy vs FindBy discussion:

Just need review now :)

Just a quick bump ping to @bfops / @jdetter for review when free. No rush (I'm working on other projects while waiting).

After being informed there was only 1 remaining question (answered+fixed), merging!


VRAM Requirement for Video_Chat2

How much VRAM does it need to run Video_Chat2? I am using an RTX 4090 (24GB) to run demo,ipynb but it crashes due to insufficient VRAM.

You can try using the 7B version of VideoChat with 24GB of VRAM or load the 8-bit LLM.


JDK8: External.sanity: Docker file fails to build due to FUNCTIONAL_TEST_TAG error

Summary
Sanity.external docker file appears to require a syntax fix.
Error message
21:30:56       [exec] Step 22/27 : RUN git checkout FUNCTIONAL_TEST_TAG
21:30:56       [exec]  ---> Running in 173e36e3275e
21:30:57       [exec] error: pathspec 'FUNCTIONAL_TEST_TAG' did not match any file(s) known to git
21:30:57       [exec] The command '/bin/sh -c git checkout FUNCTIONAL_TEST_TAG' returned a non-zero code: 1
21:30:57       [exec]

URL
https://ci.adoptium.net/job/Test_openjdk8_hs_sanity.external_x86-64_linux_testList_0/1/console
Next steps
This should be assigned to the POC for external testing so they can fix it. Will add a comment in Slack.

@LongyuZhang - are you running with an additional parameter being set that we are not using in our EA-triggered pipelines on ci.adoptium.net, or is FUNCTIONAL_TEST_TAG supposed to be set from testenv.properties file (even if we are not setting USE_TESTENV_PROPERTIES=true ?

It seems to be related to branch setting through sanitize_test_names to set the tag (link), will look into it.

The ADOPTOPENJDK_SHA used in this test is 7e3811b9d4c6fcf265d2fc7e9852412034fe6260 which is two weeks ago. The tag problem has been fixed by PR later than it https://github.com/adoptium/aqa-tests/pull/5406.

tag problem has been fixed by PR later than it https://github.com/adoptium/aqa-tests/pull/5406

Thanks for the answer Longyu!


Cannot reproduce baseline on DTU

Hi, thanks for your nice work! I want to compare to it, and therefore I am trying to reproduce the results stated in the paper for NerF (baseline) on DTU, when training on 3, 6 and 9 views. According to the paper, you follow the evaluation protocol of PixelNerf.
Therefore, I added in the load_dtu part:
train_idx = [25, 22, 28, 40, 44, 48, 0, 8, 13]
exclude_idx = [3, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21, 36, 37, 38, 39]
test_idx = [i for i in np.arange(49) if i not in train_idx + exclude_idx]
split_indices = {'test': test_idx, 'train': train_idx}
if args.train_sub is not None or args.train_sub > 0:
train_idx = train_idx[:args.train_sub]
According to pixelnerf, test split is on 25 views, and the 3 training views correspond to index  [25, 22, 28], 6 to [25, 22, 28, 40, 44, 48] and 9 to [25, 22, 28, 40, 44, 48, 0, 8, 13]. Is this what you also did?
For the config, as baseline nerf trained on 9 views, i used the following:
expname = standard_nerf
dataset_type = dtu
train_sub = 9
render_test = True
N_rand = 1024
N_samples = 64
N_importance = 128
use_viewdirs = True
raw_noise_std = 1e0
no_ndc = True
colmap_depth = False
depth_loss = False
sigma_loss = False
depth_lambda = 0.
sigma_lambda = 0.
i_testset = 5000
i_video = 0
N_iters = 150000
Yet, when I train on dtu 9 views, I obtained bad results, far from the ones in the paper. For example, on scan40, psnr on the test set is 12. On Scan41, it is 11 and on scan45, 16.
Am i missing something? Thanks for your help.

Hi, thanks for your interest!
Yes, we follow the evaluation protocol of pixelNeRF and your train/test set up looks good to me.
Did you use the given camera poses in the dataset? Inaccurate poses could lead to bad results.

Could you provide the configs for baseline and DS-Nerf on dtu 3/9 views please? It would be much more convenient. Thanks a lot.

Could you provide the configs for baseline and DS-Nerf on dtu 3/9 views please? It would be much more convenient. Thanks a lot.

Hello, may I ask if your issue with DTU has been resolved? Could you please share the DTU dataset you created? Thank you very much.


RTL support

Hello, currently with FilePond and the Image Preview Plugin, adding new images start on the left and are placed to the right until it reaches the end of the row and then the next image goes to the next row. Is there a quick way such that for right to left users, adding the images will start from the right and go left?
Thanks,
Daniel

There is currently no RTL detection in FilePond, so animations will play LTR till this is fixed.

Any Progress @rikschennink ?

Haven't gotten around to it.

Any plans for this?

@alitnk there sure are but time is the issue, with Doka Image Editor v7 soft-launched (it's what finances FilePond development) I can now start to spend more and more time on FilePond.

Hi, any updates on this @rikschennink please?

@Null78 In FilePond v5 (work in progress) this is fixed, FilePond will follow CSS grid settings so if you order from right to left the order of files will be structured in that way as well.


Aggregate discovery results

[ ] Use homomorphic operations to aggregate (sum?) the HE encrypted inputs from all participants.
[ ] Calculate the summary statistics decided in #1 using the aggregated values.
[ ] Store the results in a database

I guess its closed?


Fix build error caused by ParallFor.h

Fixed by add vector header.
Error Message
/Users/macduan/work/native/velox-8/./velox/dwio/common/ParallelFor.h:56:42: error: implicit instantiation of undefined template 'std::vector<std::pair<unsigned long, unsigned long>>'
 std::vector<std::pair<size_t, size_t>> ranges_;
                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/c++/v1/iosfwd:259:28: note: template is declared here
class _LIBCPP_TEMPLATE_VIS vector;
                          ^
/Users/macduan/work/native/velox-8/velox/dwio/common/ParallelFor.cpp:98:25: error: use of undeclared identifier 'begin'
       for (size_t i = begin; i < end; ++i) {
                       ^
/Users/macduan/work/native/velox-8/velox/dwio/common/ParallelFor.cpp:98:36: error: use of undeclared identifier 'end'; did you mean 'std::end'?

This should fixed #8036 too.


fix #555 - wrong typescript typings for GmailDomCompose

I've left some comments on this PR which I think is worth discussing.
Could you please take a look and let me know what you think?

LGTM. Thanks for helping out!


Support STDIN and newer Jupyter

Thanks!

No problem! I left some comments in, I'll make a pr to remove them :)


Weather Widget: Fix Location Lookup

Description
I work in a city that shares a name with a larger one. As such, the weather widget's call to wttr.in was incorrectly giving the weather for the larger city instead of my own.
This PR fixes the issue by instead fetching the weather based on a user's coordinates.
(Possibly) Related: #328
Type of change
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

Observe weather widget with incorrect temp
Click on weather widget, observe incorrect city location
Merge changes
Observe weather widget with correct temp
Click on weather widget, observe correct city location

Test Configuration:

OS version: 14.4.1 (23E224)
Yabai version: yabai-v7.1.0
Übersicht version: Version 1.6 (82)

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my code
[X] I have commented my code, particularly in hard-to-understand areas
[X] My changes generate no new warnings

Changes to make to the documentation
N/A

That's nice, I hadn't thought about handling it this way!
Thanks :)

I had to revert this change as it was not working with my coordinates for unknown reasons...
The code is now working this way:
const { city, zip } = position?.address || {};
location.current = zip || city;

The zip code should be enough to avoid city name collisions. Please let me know if this is working for you.


9.2.5 Fix

The latest patch change the appearance API, this fixes it:
Change line 202-213 to this:
				if (appearanceID) then
					for i, sourceID in ipairs(C_TransmogCollection.GetAllAppearanceSources(appearanceID)) do
						if C_TransmogCollection.PlayerHasTransmogItemModifiedAppearance(sourceID) then
							return true
					end
				end

Uploading full file for easier replace
core.lua.txt
Remove the .txt.

This change does not fix the issue for me, assuming you have have the same issue whereby the addon is correctly suggesting I equip appearances I don't have but isn't suggesting them to be mailed in accordance with my configured recipients.

In my case the addon wouldn't work at all, not the mail and not the /ac command, lua errors would pop up


feat: add timestamp_to_datetime_format_expr optional rule paramameter

Description
No breaking changes.
The goal of this PR is to provide a way to transform a timestamp returned by Elasticsearch before parsing it into a datetime.
This come from an issue we have when using a custom timestamp field that can contains nanoseconds. For now, the parsing of the returned timestamp raise a Value error, as there is 3 additional digit that can't be parse in python (datetime.datetime.strptime format doesn't support nanoseconds). And I found no workaround (other that changing the timestamp format in Elasticsearch of course).
It seems logic that as we can choose a way to modify a timestamp before sending it to Elastisearch, we could also do the same when retrieving one.
So this PR simply add a rule parameter called timestamp_to_datetime_format_expr that does the same thing as timestamp_format_expr in the _ts_to_dt_with_format function instead of _dt_to_ts_with_format.
I didn't want to use the same rule parameter to avoid any breaking changes, and corner case I could not anticipate.
Checklist

[X] I have reviewed the contributing guidelines.
[ ] I have included unit tests for my changes or additions.
[X] I have successfully run make test-docker with my changes.
[X] I have manually tested all relevant modes of the change in this PR.
[X] I have updated the documentation.
[X] I have updated the changelog.

Questions or Comments

Got some docker layer cache issues running make test-docker, will create another small PR to fix that.

Looks like a useful change. Would be nice to get the unit tests included with this PR though. What specific error are you seeing when running make test-docker?

I don't have any error when running make test-docker, every test passes. But that's not surprising as no test case exists for custom timestamp yet.
No really sure where and how I should create those tests.
If you think it's worth it maybe I could create some in tests/base_test.py by taking as example tests like test_some_hits_unix?

I suggest adding a new test to loaders_test.py and perhaps use test_kibana_discover_to_timedelta as a template.

Added tests for timestamp_type custom, timestamp_to_datetime_format_expr and timestamp_format_expr.

Looks good! Thanks for back-filling those related tests.


edited on your comments Security.md and Intro.md

edited on your comments Security.md and Intro.md (PR 293 and 294)

This is a great improvement @mathematicw! Some minor rephrasing and grammar improvements are still required to get it mergeable. I may have missed something, so please make sure to use chatGPT, Grammarly or any other software to check the grammar, I may have missed something :)

Ok

It also looks like we should be able to close PR 294 and PR 293 since this one combines the changes from both, am I right?

Yes :)

made a lot of corrections again. improved the structure, formatting, grammar, and paraphrased some text with OpenAI

thank you, Justin. It's my pleasure.
p.s. going to fix package-lock.json
Sent with Proton Mail secure email.
------- Original Message -------
On Thursday, November 2nd, 2023 at 4:46 AM, Justin @.***> wrote:

@ImmaZoni commented on this pull request.

On package-lock.json:
Thank you for your contribution! I noticed that a package-lock.json was added. We use yarn as our package manager, and having both yarn.lock and package-lock.json can lead to conflicts and potential dependency issues. To maintain consistency, it would be great if we could remove the package-lock.json.
Apart from that, your contribution is fantastic! Truly appreciate all the effort you've put in. 🙏😄
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


shelter/Makefile: support SGX SDK installed in the non-standard path

SGX SDX can be installed in the standard patch(such as '/opt/intel/sgxsdk') and
can be also installed in the non-standard patch(such as
'/opt/alibaba/teesdk/intel/sgxsdk' in the Alibaba teesdk). So we use the
'?=' to replace the ':=' to support both the standard and non-standard
installed path.
Signed-off-by: Yilin Li<EMAIL_ADDRESS>

Ok for me.


why i use the liner_f model got a wrong result

@LianJunjian I solved it. image1 must be converted (BGR to YUV) before it can be input into the network. L-net model is trained for 128x128 YUV  #115


TimberImage resize() filter broken for Bedrock users (and others?!)

I've encountered a bug in TimberImage's conversion of src to a path.
I'm using Bedrock, which is a little "creative" about where things live in the file structure and what they're named.
My wp_upload_dir() function call returns this:
Array
(
    [path] => /Users/alicam/Sites/day3.io/repo/web/app/uploads/2017/05
    [url] => http://day3-io.local/app/uploads/2017/05
    [subdir] => /2017/05
    [basedir] => /Users/alicam/Sites/day3.io/repo/web/app/uploads
    [baseurl] => http://day3-io.local/app/uploads
    [error] =>
    [relative] => /app/uploads
)

At line 373 of ImageHelper.php, this logic is consequently incorrect/inadequate:
			if ( false === strpos($upload_dir['baseurl'], site_url()) ) {
				// use HOME_URL and relative image path
				$tmp = get_home_url().$tmp;
			}

The assumption is made here, that if strpos returns false, it must mean a relative url was given, but that's not the case with Bedrock! Concatenating $tmp with get_home_url() for me therefore incorrectly returns:
http://day3-io.local/http://day3-io.local/app/uploads/.../path/to/my/image.jpg
I managed to resolve this by stripping out the site_url() from the src, before passing it to the resize() filter, but that's only good for now.
I haven't got time to work out a fix, so I'll leave that to someone else for now!
Cheers.
A

We just bumped into the same issue. You can also use the relative filter in the Twig-template for now.
{{post.thumbnail.src|relative|resize()}}


[T4A4][W15-B2]Song Kai

Seems ok, but might want to reconsider the variable name "string" since it is too general, might want to change it to "appendedPrintableStrings" or something along those lines.


build: add ft when PR is approved

Add the FT for when a PR is approved.
It is also used during the API release.

Description

Fixes #(issue)
Types of changes

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

Additional requirements

[x] Tests have been added for the bug fix or new feature
[ ] Docs have been added for the bug fix or new feature

Code of Conduct
By submitting this PR, you agree to follow our Code of Conduct.

[x] I agree to follow this project's Code of Conduct

@MVrachev
All tests are ok.
https://github.com/repository-service-tuf/repository-service-tuf-api/actions/runs/6348766054/job/17245960598?pr=458
LGTM to merge.

@MVrachev
All tests are ok. https://github.com/repository-service-tuf/repository-service-tuf-api/actions/runs/6348766054/job/17245960598?pr=458
LGTM to merge.

Force-squashed as tests already passed.


loading jquery.js, jquery plugins, etc

thanks to #84 , I am able to load third party css, but I am having problem loading jquery, and its plugins.
I had to load it through script-loader, require('script!./vendors/js/jquery.js');.
Just wondering if anyone had experience with it and have better way to do this.

Just put it in static and directly reference it in index.html. You don't want to pack it with your app code because jQuery never changes and would be better cached if loaded separately.

k, thanks Evan.


Improved Keccak implementation

Based on the approach @SyxtonPrime described.
In terms of columns, the changes are:

Store inputs (A) as u32 limbs, rather than individual bits.
Remove C_partial. It was used to store an intermediate product in a 5-way xor, but we've since realized that we can do a 5-way xor directly.
Add C_prime, an intermediate result used to help verify the relation between A and A'.

cc @npwardberkeley FYI. Angus is working on a writeup so it will make sense later :)


Downloads blocked within installer

When I attempt to install this framework, I am receiving an error message that files can't be found. I believe this is due to our web filter blocking the installer's attempts to grab files from the web. Is there anything in specific we should be whitelisting to allow these installations?

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

 Attend this bug!

@quickware @JacobHelton57 Can you tell me the specific build/version of Windows on which you're trying to enable the .NET 3.5 FOD?
FYI - @rakeshsinghranchi has left the team, adding @NikolaMilosavljevic instead.


Flamethrower creates some ghost flames

Mekanism version: 1.7.10-<IP_ADDRESS>
If you fire the flamethrower across the floor, 1/10 of the flame sprites will not "despawn" when the actual fire object (which hurts you) extinguishes.
Firing a flamethrower trail on the floor:

After 10 seconds, there are still some fire sprites left behind, they don't burn. They will go away if you reload the game:

By flame sprites, do you mean the flame "blocks" that are in the snow?

By flame sprites, do you mean the flame "blocks" that are in the snow?

Yes, flame blocks. I wasn't sure those are also blocks.


update(config): update version number to 0.36.1

What type of PR is this?
/kind design
Any specific area of the project related to this PR?
What this PR does / why we need it:
update version number to 0.36.1
Which issue(s) this PR fixes:
Special notes for your reviewer:

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Andreagit97
Once this PR has been reviewed and has the lgtm label, please assign jasondellaluce for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, Issif
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Issif]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 03408eb3bf2273b949c046a37c88e4e6f42aa800


Data > Project List - Add a 'Show less' button

Pain point
As the user goes on clicking 'Show more' button, a lot of results will be displayed. Finding the one on the top requires a lot of scrolling.
Potential solution
A solution would be adding a 'Show less' button that reverts back the 'Show more' button's action i.e. hide 9 cards per click.

Hey! Is this still open? If so let me know if you want me to take it.


chore(deps): upgrade compiler dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-compiler-dependencies-k8s-25-main" workflow

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

Questions ?
Please refer to the Backport tool documentation


Resources being recreated on every execution

Starting with an extremely minimal use of this module to verify my trouble and provide information here. Below is the code that consistently executes successfully and without recreating resources.
# main.tf
module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "1.29.0"

  name = "leehuffman-production-vpc"

  cidr = "<IP_ADDRESS>/16"

  azs = ["us-east-1a"]

  private_subnets = ["<IP_ADDRESS>/22"]
  public_subnets  = ["<IP_ADDRESS>/22"]
}

Once I pass multiple strings into the AZ/subnet lists, subsequent executions want to recreate the aws_route_table_associations. Here's the code:
# main.tf
module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "1.29.0"

  name = "leehuffman-production-vpc"

  cidr = "<IP_ADDRESS>/16"

  azs = ["us-east-1a", "us-east-1b"]

  private_subnets = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  public_subnets  = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
}

And the terraform plan output for the resource in question:
-/+ module.vpc.aws_route_table_association.public[0] (new resource required)
      id:                              "rtbassoc-b02582cf" => <computed> (forces new resource)
      route_table_id:                  "rtb-a8513dd4" => "rtb-a8513dd4"
      subnet_id:                       "subnet-6fe1eb32" => "${element(aws_subnet.public.*.id, count.index)}" (forces new resource)

I believe https://github.com/hashicorp/terraform/issues/13103#issuecomment-356493652 might be describing what I'm seeing? Any ideas?

This is the correct output because you are adding new public subnet and therefore a list of aws_route_table_association should be updated.
The issue you are referring to is not related.

Got it. Let me provide a more complete example.
# main.tf
module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "1.29.0"

  name = "leehuffman-production-vpc"

  cidr = "<IP_ADDRESS>/16"

  azs = ["us-east-1a", "us-east-1b", "us-east-1c"]

  private_subnets     = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  public_subnets      = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  database_subnets    = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  elasticache_subnets = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]

  enable_nat_gateway = true
  enable_vpn_gateway = true

  enable_s3_endpoint       = true
  enable_dynamodb_endpoint = true

  enable_dhcp_options = false
}

First terraform apply is successful. Full output here but the tail of it below.
module.vpc.aws_route.private_nat_gateway[1]: Creation complete after 1s (ID: r-rtb-7b1c73071080289494)
module.vpc.aws_route.private_nat_gateway[0]: Creation complete after 1s (ID: r-rtb-38117e441080289494)
module.vpc.aws_route.private_nat_gateway[2]: Creation complete after 1s (ID: r-rtb-f96d02851080289494)

Apply complete! Resources: 53 added, 0 changed, 0 destroyed.
Releasing state lock. This may take a few moments...

Code unchanged and a terraform plan below.
------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  ~ module.vpc.aws_db_subnet_group.database
      subnet_ids.#:                    "" => <computed>

  ~ module.vpc.aws_elasticache_subnet_group.elasticache
      subnet_ids.#:                    "" => <computed>

-/+ module.vpc.aws_nat_gateway.this[0] (new resource required)
      id:                              "nat-00d45a6357033b5db" => <computed> (forces new resource)
      allocation_id:                   "eipalloc-add391a4" => "eipalloc-add391a4"
      network_interface_id:            "eni-4a9c15cc" => <computed>
      private_ip:                      "<IP_ADDRESS>" => <computed>
      public_ip:                       "<IP_ADDRESS>" => <computed>
      subnet_id:                       "subnet-f95e4ba4" => "${element(aws_subnet.public.*.id, (var.single_nat_gateway ? 0 : count.index))}" (forces new resource)
      tags.%:                          "1" => "1"
      tags.Name:                       "strixleviathan-production-vpc-us-east-1a" => "strixleviathan-production-vpc-us-east-1a"

-/+ module.vpc.aws_nat_gateway.this[1] (new resource required)
      id:                              "nat-0e51cc93541130ecb" => <computed> (forces new resource)
      allocation_id:                   "eipalloc-aad391a3" => "eipalloc-aad391a3"
      network_interface_id:            "eni-eb5bf868" => <computed>
      private_ip:                      "<IP_ADDRESS>" => <computed>
      public_ip:                       "<IP_ADDRESS>" => <computed>
      subnet_id:                       "subnet-ba9875dd" => "${element(aws_subnet.public.*.id, (var.single_nat_gateway ? 0 : count.index))}" (forces new resource)
      tags.%:                          "1" => "1"
      tags.Name:                       "strixleviathan-production-vpc-us-east-1b" => "strixleviathan-production-vpc-us-east-1b"

-/+ module.vpc.aws_nat_gateway.this[2] (new resource required)
      id:                              "nat-0f64cce7e0946ee89" => <computed> (forces new resource)
      allocation_id:                   "eipalloc-6cce8c65" => "eipalloc-6cce8c65"
      network_interface_id:            "eni-de75c14c" => <computed>
      private_ip:                      "<IP_ADDRESS>" => <computed>
      public_ip:                       "<IP_ADDRESS>" => <computed>
      subnet_id:                       "subnet-9c6176b3" => "${element(aws_subnet.public.*.id, (var.single_nat_gateway ? 0 : count.index))}" (forces new resource)
      tags.%:                          "1" => "1"
      tags.Name:                       "strixleviathan-production-vpc-us-east-1c" => "strixleviathan-production-vpc-us-east-1c"

  ~ module.vpc.aws_route.private_nat_gateway[0]
      nat_gateway_id:                  "nat-00d45a6357033b5db" => "${element(aws_nat_gateway.this.*.id, count.index)}"

  ~ module.vpc.aws_route.private_nat_gateway[1]
      nat_gateway_id:                  "nat-0e51cc93541130ecb" => "${element(aws_nat_gateway.this.*.id, count.index)}"

  ~ module.vpc.aws_route.private_nat_gateway[2]
      nat_gateway_id:                  "nat-0f64cce7e0946ee89" => "${element(aws_nat_gateway.this.*.id, count.index)}"

-/+ module.vpc.aws_route_table_association.database[0] (new resource required)
      id:                              "rtbassoc-8a49eff5" => <computed> (forces new resource)
      route_table_id:                  "rtb-38117e44" => "rtb-38117e44"
      subnet_id:                       "subnet-bd4154e0" => "${element(aws_subnet.database.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.database[1] (new resource required)
      id:                              "rtbassoc-8652f4f9" => <computed> (forces new resource)
      route_table_id:                  "rtb-7b1c7307" => "rtb-7b1c7307"
      subnet_id:                       "subnet-e19e7386" => "${element(aws_subnet.database.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.database[2] (new resource required)
      id:                              "rtbassoc-862680f9" => <computed> (forces new resource)
      route_table_id:                  "rtb-f96d0285" => "rtb-f96d0285"
      subnet_id:                       "subnet-d26473fd" => "${element(aws_subnet.database.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.elasticache[0] (new resource required)
      id:                              "rtbassoc-c72583b8" => <computed> (forces new resource)
      route_table_id:                  "rtb-38117e44" => "rtb-38117e44"
      subnet_id:                       "subnet-a04550fd" => "${element(aws_subnet.elasticache.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.elasticache[1] (new resource required)
      id:                              "rtbassoc-cc54f2b3" => <computed> (forces new resource)
      route_table_id:                  "rtb-7b1c7307" => "rtb-7b1c7307"
      subnet_id:                       "subnet-1989647e" => "${element(aws_subnet.elasticache.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.elasticache[2] (new resource required)
      id:                              "rtbassoc-a155f3de" => <computed> (forces new resource)
      route_table_id:                  "rtb-f96d0285" => "rtb-f96d0285"
      subnet_id:                       "subnet-4463746b" => "${element(aws_subnet.elasticache.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.public[0] (new resource required)
      id:                              "rtbassoc-ec5ff993" => <computed> (forces new resource)
      route_table_id:                  "rtb-cd137cb1" => "rtb-cd137cb1"
      subnet_id:                       "subnet-f95e4ba4" => "${element(aws_subnet.public.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.public[1] (new resource required)
      id:                              "rtbassoc-c05afcbf" => <computed> (forces new resource)
      route_table_id:                  "rtb-cd137cb1" => "rtb-cd137cb1"
      subnet_id:                       "subnet-ba9875dd" => "${element(aws_subnet.public.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_route_table_association.public[2] (new resource required)
      id:                              "rtbassoc-4b5dfb34" => <computed> (forces new resource)
      route_table_id:                  "rtb-cd137cb1" => "rtb-cd137cb1"
      subnet_id:                       "subnet-9c6176b3" => "${element(aws_subnet.public.*.id, count.index)}" (forces new resource)

-/+ module.vpc.aws_subnet.database[2] (new resource required)
      id:                              "subnet-d26473fd" => <computed> (forces new resource)
      assign_ipv6_address_on_creation: "false" => "false"
      availability_zone:               "us-east-1c" => "us-east-1c"
      cidr_block:                      "<IP_ADDRESS>/22" => "<IP_ADDRESS>/22" (forces new resource)
      ipv6_cidr_block:                 "" => <computed>
      ipv6_cidr_block_association_id:  "" => <computed>
      map_public_ip_on_launch:         "false" => "false"
      tags.%:                          "1" => "1"
      tags.Name:                       "strixleviathan-production-vpc-db-us-east-1c" => "strixleviathan-production-vpc-db-us-east-1c"
      vpc_id:                          "vpc-f8126783" => "vpc-f8126783"

-/+ module.vpc.aws_subnet.elasticache[2] (new resource required)
      id:                              "subnet-4463746b" => <computed> (forces new resource)
      assign_ipv6_address_on_creation: "false" => "false"
      availability_zone:               "us-east-1c" => "us-east-1c"
      cidr_block:                      "<IP_ADDRESS>/22" => "<IP_ADDRESS>/22" (forces new resource)
      ipv6_cidr_block:                 "" => <computed>
      ipv6_cidr_block_association_id:  "" => <computed>
      map_public_ip_on_launch:         "false" => "false"
      tags.%:                          "1" => "1"
      tags.Name:                       "strixleviathan-production-vpc-elasticache-us-east-1c" => "strixleviathan-production-vpc-elasticache-us-east-1c"
      vpc_id:                          "vpc-f8126783" => "vpc-f8126783"

-/+ module.vpc.aws_subnet.public[2] (new resource required)
      id:                              "subnet-9c6176b3" => <computed> (forces new resource)
      assign_ipv6_address_on_creation: "false" => "false"
      availability_zone:               "us-east-1c" => "us-east-1c"
      cidr_block:                      "<IP_ADDRESS>/22" => "<IP_ADDRESS>/22" (forces new resource)
      ipv6_cidr_block:                 "" => <computed>
      ipv6_cidr_block_association_id:  "" => <computed>
      map_public_ip_on_launch:         "true" => "true"
      tags.%:                          "1" => "1"
      tags.Name:                       "strixleviathan-production-vpc-public-us-east-1c" => "strixleviathan-production-vpc-public-us-east-1c"
      vpc_id:                          "vpc-f8126783" => "vpc-f8126783"

Plan: 15 to add, 5 to change, 15 to destroy.

------------------------------------------------------------------------

Let me know if I can provide anything else that'd be helpful. Appreciate it!

At first, it looks that the plan is right because you have added new subnets - public, elasticache, database - with new CIDR blocks. And it means that bunch of resources should be replanned and updated. Looks good.
Or do you say that the same code tells that terraform plan is going to change something after successful terraform apply?

Or do you say that the same code tells that terraform plan is going to change something after successful terraform apply?

That's correct. The initial execution has already run and the appropriate resources created correctly & successfully. That output is here: https://gist.github.com/leehuffman/a82e77276848d2e99a95256f14118c24. Note that this is from a blank state, applying all of what's defined in my previous comment, not modifying what was provided in my original comment.
After that terraform plan outputs what's above, modifying existing resources that were already created properly, without any modification to the code.

There is something wrong because the output does not do anything with <IP_ADDRESS>/22 (for example), while the plan is trying to change that value to <IP_ADDRESS>/22. I don't see where <IP_ADDRESS>/22 is coming from.
Are you sure that you are not using workspaces and state file is properly configured?

Are you sure that you are not using workspaces and state file is properly configured?

Yeah, confirmed everything on that front.

I don't see where <IP_ADDRESS>/22 is coming from.

Neither do I. The terraform apply output suggests it successfully created <IP_ADDRESS>/22, but after checking manually, it definitely created <IP_ADDRESS>/22 instead. The state file backs this up as well. That'd explain Terraform attempting to move it to .70 on subsequent executions.
In the interest of getting my work shipped I've moved to /24 subnets and these are working fine.

@leehuffman , i think the reason it is "ignoring" your "<IP_ADDRESS>/22" subnet definition, it's because this isn't a valid subnet boundary. indeed for this IP/Mask the network is <IP_ADDRESS>/22. (http://jodies.de/ipcalc?host=<IP_ADDRESS>&mask1=22)


Repair release.yml

I added a code review comment in #132 that suggested my patchset was incomplete, it must have gotten missed. This PR fixes what I broke when the the prior PR was merged.

Fix SEMVER_TAGS environment variable set (really bungled that one)
Remove unused FULL_SNAPSHOT_URL set

I clearly did not see your comment, sorry. Still don't see it in #132 though...

https://github.com/tcort/markdown-link-check/pull/132#discussion_r524909896
But it doesn't matter, it's fixed now! 😁


IResourceProvider.RemoveOwner(IResourceHost owner) does not clear the Owner property

Calling RemoveOwner on FluentAvaloniaTheme does not unset the Owner property, making it impossible to hot swap the base theme to another.

Should be fixed in v1.1.2


Add furb ruff rule

[x] I have read and agree to the contributing guidelines for submitting new pull requests.

Describe your changes
Add refurb ruff rule
Issue ticket number and link
#995

This one introduces some interesting changes. I still think I'm in favor of the consistency though.


Add type definitions for util's cloneableGenerator function

This PR adds type definitions for the cloneableGenerator function for react-redux/utils. It supports up to 6 arguments like the rest of the middleware and helper functions.

👍

Thanks you both!

@zyml @aikoven this PR introduced a failing test (the one testing types definitions), could any of u u check this?

I guess this had been solved already, please ping me once more if not.


SceneReplicationConfig adding/removing sync properties through code does not update the targeted sync properties

Godot version
4.0.beta6
System information
Windows 10
Issue description
As one would expect, the new MultiplayerSynchronizer would sync whatever properties you give it; as long as certain conditions are met. The focus of this issue is not related to, if the conditions are correct or not. But when you add/remove new sync properties through code; it simply does not sync them.
The odd thing here is that it syncs perfectly fine, when adding these sync properties from the Editor.
But when keeping the list empty, and adding them through code. They are not synced anymore. One would immediately assume that the node paths are incorrect. However, even when writing ".:position" directly (where we assume that the root_node is a type of Node2D), it still does not work.
This also happens in reverse. If you already have linked properties in the editor, and try to remove them from code. They still sync... Even when they do not show up in the array, when printing the result from get_properties() in SceneReplicationConfig.
I have also tried to multiplayer.object_configuration_remove(), updated the properties through code and then multiplayer.object_configuration_add() the MultiplayerSynchronizer; in order to see if that updated the properties.
Some things of note: (but most likely does not have an influence on this potential issue)
The test project assumes one of the clients playing, is the host/server
The test project has a dedicated puppet scene and a separate player scene. (puppet is always an external client, and the player is always local)
If there is something I have missed (like a function call or something else) in order to make it work or update the syncing, tell me and this issue will close.
Steps to reproduce
Establish a simple server connection.
Add the local player and client nodes accordingly upon a connection, let them each have a MultiplayerSynchronizer node. (Leave the property list empty)
Set the MultiplayerSynchronizer nodes' authority respectively, according to which client who owns it.
Then link the properties you would like to sync (position, rotation, etc.) through code
MultiplayerSynchronizer.replication_config.add_property("NodePath")
Optionally, you may add controls, so you can see the effect.
Minimal reproduction project
Control the local player with arrow keys. You may also rotate it with "ui_cancel"
The red stick figure with the godot icon is always the local player, and the blue ones are always other clients.
This means that when moving locally, you move the red figure. But for other clients, you appear as the blue figure.
Simple Server Connection.zip

This class is still completely non-functional

For anyone else who comes across this, here's a limited but working alternative implementation.


How to use Volley or retrofit for sending binary data instead of Asyntask

In above example you have used Asyn task for sending binary data, Is there any options for sending binary data using Volley or retrofit.

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

ID: 751ccff2-59c4-e2e4-8a64-d90b195c89ac
Version Independent ID: 6c696aa8-9226-737e-94fe-1f0697e88038
Content: Face API Java for Android tutorial - Microsoft Cognitive Services
Content Source: articles/cognitive-services/Face/Tutorials/FaceAPIinJavaForAndroidTutorial.md
Service: cognitive-services
Product: unspecified
GitHub Login: @SteveMSFT
Microsoft Alias: sbowles

@farislivemaker Thank you for your feedback! We will investigate and get back to you with the relevant info.

@farislivemaker Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.
@SteveMSFT Hi, this should be a product-question & doc-enhancement issue. Can you please help with it and update the document as necessary? Thanks a lot!

hay there, I worked it out, I have created volley class for sending a binary image to FACE API and receive a response, And I found that face_similar API consumes JSON Object parameter and gives JSON Array response.  worked on both section and solved it out.


[Firestore] Error: Cannot encode value: serverTimestamp()

[REQUIRED] Step 2: Describe your environment

Operating System version: NA
Firebase SDK version: "firebase-admin": "^8.2.0"
Firebase Product: Firestore
Node.js version: v10.12.0
NPM version: 6.9.0

[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
I'm getting error for using admin.firestore.FieldValue.serverTimestamp inside transaction.create.
The same is working in a previous deployed different functions. But this is not working this functions deployed now.
Here is my sample code:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

//...
exports.monthlyReports = functions.firestore.document('transactions/{transactionId}').onWrite((snap, context) => {

return firestore.runTransaction(transaction => {

	return transaction.get(reportsRef).then(doc => {

		//....

		transaction.create(eventIdRef, { s: admin.firestore.FieldValue.serverTimestamp } );

		//...

		return Promise.resolve();
	});

});

});

I'm getting the following error:
Error: Cannot encode value: serverTimestamp() {
        return ServerTimestampTransform.SERVER_TIMESTAMP_SENTINEL;
    }
    at Serializer.encodeValue (/srv/node_modules/@google-cloud/firestore/build/src/serializer.js:160:15)
    at Serializer.encodeFields (/srv/node_modules/@google-cloud/firestore/build/src/serializer.js:65:34)
    at Function.fromObject (/srv/node_modules/@google-cloud/firestore/build/src/document.js:93:53)
    at op (/srv/node_modules/@google-cloud/firestore/build/src/write-batch.js:147:58)
    at writes._ops.map.op (/srv/node_modules/@google-cloud/firestore/build/src/write-batch.js:429:44)
    at Array.map (<anonymous>)
    at WriteBatch.commit_ (/srv/node_modules/@google-cloud/firestore/build/src/write-batch.js:429:34)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)

serverTimestamp is a function and should be invoked. Your code is passing it as a value. See https://googleapis.dev/nodejs/firestore/latest/FieldValue.html#.serverTimestamp


Request for translation

Hi there,
I'm currently going through the paper. I was wondering if you will be open to translating it into French. Also as an engineer, are there other avenues where I can contribute to the project?

If you have a plan to open for translation, I am willing to translate it into Korean as well.

I'd recommend just making a pull request with a new file with the translations! It's easier to approve something that is already done.

Thank you for your interest in getting this work out more broadly. We are trying to figure out a translation strategy at the moment, so we will circle back soon with more info. In the meantime, we'd be happy to field PRs for translations if you are interested in submitting one. (@paromix)

im willing to translate to indonesia

I'm willing to translate into Spanish and Romanian
El lun., 13 jun. 2022 8:30, G33kNoob @.***> escribió:

im willing to translate to indonesia
—
Reply to this email directly, view it on GitHub
https://github.com/TBD54566975/tbdex-whitepaper/issues/7#issuecomment-1153525078,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOQC37BRD4DJ4UIIAK2FLO3VO3IQHANCNFSM5IQ5RJKQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Low performance while reproducing ClothoAQA

Hi, thank you for your great work.
I ran VideoLLaMA2.1-7B-AV with the ClothoAQA evaluation benchmark, but received the scores below:
Overall Accuracy: 59.02% Total Responses: 14706
Binary Accuracy: 75.29% Total Binary Responses: 9804
I believe the reported performance is 71.02% in 'Overall Accuracy'.
We download the data and jsonl files from https://github.com/QwenLM/Qwen-Audio/blob/main/eval_audio/EVALUATION.md and process clothoqaq_eval.jsonl to fit into the ClothoAQADataset class in inference_audio.py.
Also, I found that in clothoqaq_eval.jsonl, there are multiple possible answers.
{"audio": "clothoqa/audio_files/helicopter.wav", "gt": "road", "source": "clothoaqa_val", "question": "Where is this sound taking place?"}
{"audio": "clothoqa/audio_files/helicopter.wav", "gt": "train", "source": "clothoaqa_val", "question": "Where is this sound taking place?"}
{"audio": "clothoqa/audio_files/helicopter.wav", "gt": "airport", "source": "clothoaqa_val", "question": "Where is this sound taking place?"}
which makes the answers in merge.json fail to predict.
{"id": 12111, "question": "Question: Where is this sound taking place?\nAnswer the question using a single word.", "answer": "road", "pred": "AIRPORT"}
{"id": 12112, "question": "Question: Where is this sound taking place?\nAnswer the question using a single word.", "answer": "train", "pred": "AIRPORT"}
{"id": 12113, "question": "Question: Where is this sound taking place?\nAnswer the question using a single word.", "answer": "airport", "pred": "AIRPORT"}
Then, even though the VideoLLaMA2.1-7B-AV model got the correct answer ('AIRPORT'), the benchmark makes the two other questions wrong.

For the ClothoAQA dataset, we did not follow Qwen-audio, but the *_clean.csv file in the repository https://github.com/GeWu-Lab/MWAFM

Thank you for the clarification!
How about TUT2017, VocalSound, and MUSIC-QA (Audio-Visual QA)? Can you clarify where the evaluation json source files are from?


User-id

It is sometimes useful to be able to set the user-id/user-agent for the request as the target website may depend on it.

We use requestbehind the scenes, which allows you to do it very easily.
Check this post out. More specifically, the section Be a great lad.

Oh I see. Thank you ruipgil.
As a suggestion, it could be worse documenting it.
Also, it is possible that there is an error in this post. request’s headers option finishes with an “s”.


new Sensor DWD WarnApp - wrong name

**Home Assistant release (hass --version): 0.53.0
**Component/platform: RPi3
**Description of problem: new Sensor DWD WarnApp - wrong name
**Expected: Error: not a known sensor
The name of the sensor platform for the  "DWD WarnApp" may to be wrong.
The documentation says:
# Example configuration.yaml entry
sensor:
  - platform: dwdwarnapp
    region_name: Hansestadt Hamburg

But the dwdwarnapp is not known. The following config is working:
sensor:
  - platform: dwd_weather_warnings
    region_name: 'Hansestadt Hamburg'   # optional

Thanks, RaKa

https://github.com/home-assistant/home-assistant.github.io/commit/06d57a068bf30a66ee93e9679c81153752d6c7d3


refactor: move /connection to /pkg/connection

See #625

Looks like this change broke some dependencies in apigee/registry-experimental. Currently things are working fine because registry-experimental is pinned to v0.4.2. I think we can tag new versions safely, but we won't be able to upgrade registry-experimental to use these new pkg/ packages until everything is wired correctly.

I'll take a look, thanks.


smaller logo for social media preview

Voting in https://discord.com/channels/677546901339504640/758062805810282526/1085884243328114740 - if the last option D with image on the side that takes the least amount of vertical space wins, this is the PR for it.

4 upvotes for D on discord, none for other options => merging


MSS710R Not ignored by ignoreHKNative

What issue do you have? Please be as thorough and explicit as possible.
MSS710R Is HomeKit version of MSS710 but isn’t ignored by setting ignoreHKNative true
Details of your setup.

Do you use (1) Homebridge UI-X (2) Homebridge CLI or (3) HOOBS?

1

Which version of Homebridge/HOOBS do you have?

HB 1.6.1

Which platform do you run Homebridge/HOOBS on (e.g. Raspberry Pi/Windows/HOOBS Box)? Please also mention your version of Node.js/NPM if known.

Intel Mac, HB 1.6.1, Node 18.16.0

Which version of this plugin (homebridge-meross) do you have? Has the issue started since upgrading from a previous version?

9.2.1. Same issue previous versions.

Which Meross devices do you have that are causing issues? Please include product models if applicable.

MSS710R Smart Wi-Fi switch, homebridge compatible.
Please paste any relevant logs below.

Hi @badgertastic  please let me know which hardware version you have of this model

Hi. Looks to be 4.0.0

Thank you. New beta should remove this device:
https://github.com/bwp91/homebridge-meross/wiki/Beta-Version


[Bug]: Korifi API doesn't notice when new ingress certs are mounted

What happened?
If you install korifi and wait 60 days, cert manager will generate a new cert.
Korifi should notice this cert, but it doesn't pick it up until it is restarted.
What you expected to happen
Korifi should notice changes to the tls cert and start serving with the new cert. cert-manager should be updating the Secret containing this cert once it rotates it which will update the secret files that are volume mounted to our deployment.
Acceptance Criteria
GIVEN a Korifi deployment
WHEN I wait 60 days
THEN I see that Korifi is running with a new cert and ingress still works.
How to reproduce it (as minimally and precisely as possible)

deploy korifi
get cert manager to replace the cert somehow.

Anything else we need to know?
We can probably use the same package in controller-runtime that our webhooks are using to watch and reload the cert as it changes on disk:
https://github.com/kubernetes-sigs/controller-runtime/pull/421
Environment
Revision of codebase:
Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:
Others:

I was able to reproduce this by

running deploy-on-kind
deleting the korifi-api-internal secret and certificate
running deploy-on-kind again

This procedure makes a new ingress cert without restarting the pod.

After some further testing, we figured out that we could install the cert in such a way that it rolls every 3 minutes:
In this case, the cert is good for 90 minutes, but renews 87 minutes before it expires, or once every 3 minutes.
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: korifi-api-internal-cert
  namespace: {{ .Release.Namespace }}
spec:
  duration: 90m
  renewBefore: 87m
  commonName: korifi-api-svc.{{ .Release.Namespace }}.svc.cluster.local
  dnsNames:
  - korifi-api-svc.{{ .Release.Namespace }}.svc
  - korifi-api-svc.{{ .Release.Namespace }}.svc.cluster.local
  issuerRef:
    kind: Issuer
    name: selfsigned-issuer
  secretName: korifi-api-internal-cert
  subject:
    organizations:
    - korifi
  usages:
  - server auth

After applying this, we noticed that Contour takes a minute or so to notice the new cert, so even after our fix, there is a 1 minute period where Contour can't talk to the API.


Create a documentation

Write a documentation in the file readme.md

It's fixed !

It's all fixed bro


Arch Linux multilib install error

On line 221 of the install-deps script, it tries to install gcc-fortran, regardless of whether gcc or gcc-multilib was detected as the correct gcc version. To work properly, it needs to install gcc-fortran if it detects gcc, and gcc-fortran-multilib if it detects gcc-multilib. Right now it doesn't work on Arch when gcc-multilib is installed.

umm i left this on the wrong project please ignore oops


Cannot consume nightly builds using NuGet wildcard syntax

Problem: the versioning schema of MSBuild nightly builds breaks support for wildcards. The nightlies -- currently versioned as 15.1.$(BuildNumber)-preview5 -- cannot be referenced using "15.1.*" because the packages contain the "-preview5" preversion suffix.

Unable to resolve 'Microsoft.Build.Runtime (>= 15.1.0)'

This means we have to manually edit dependency versions for every pre-release build.
Suggestion:
Use the versioning format used by .NET Core. 15.1.0-preview5-$(BuildNumber). This would allow consumers to reference prerelease versions using wildcards "15.1.0-*".

Related to #557

NuGet.targets(97,5): error : '15.1.-' is not a valid version string.

Yes, I'm sure.

how do you feel about the fact that when these prerelease packages make a breaking change

We only use floating versions on our dev branch. When we branch for release, we pin to stable versions. We are okay with breaking changes on our dev feed because we want to be made aware of breaking changes ASAP. We use a very small amount of MSBuild API, and it is rarely broken by using floating versions.
Also, when we build, NuGet resolves the floating version and stamps the resolved version into the nuget package we produce. If we ever did need to reproduce an old build, we can look at the artifacts to find which version was used.

Thanks for that info. Interesting.
FWIW, I don't find the argument compelling. If MSBuild rarely breaks you, floating versions doesn't sound that important either.

If MSBuild rarely breaks you, floating versions doesn't sound that important either.

To clarify, API changes in MSBuild from build to build don't break us, but if we don't have the latest packages (which floating version helps us do automatically), then we end up with forced-package downgrades, and that's what break us.
This may be a point-in-time thing though. Once we have stable RTM builds, we can pin to those versions.


how to build c# sample Microsoft.MixedReality.WebRTC.TestAppUWP

hi! my problem is such like the title: how to build c# sample Microsoft.MixedReality.WebRTC.TestAppUWP? I git clone realse 2 , and open Microsoft.MixedReality.WebRTC.sln by vs 2019 ,and then restore nuget packeges， and select Debug, ARM, and click build. However, I cannot build Microsoft.MixedReality.WebRTC.TestAppUWP. Can you tell me how to deal with? or how to build this sample in correct way. Thank you very much!!!

I am happy, I know about it. I should shut close my issue.

Hello, can you describe a bit about how to build it? I took the same steps as you described before and also built it in fail.


move editorial slideshow into separate StreamContainer

          1 Warning

:warning:
Please provide a linked tracker story for this PR in the description

  Generated by :no_entry_sign: Danger