More polishing to the specification

Is the intent of a __riscv_vsetvl_* intrinsic be exactly min(avl, VLMAX), and not be possible to map directly to a vsetvli rd, rs1, ... instruction without some additional computation of the min()?
If that's the case, then the current LLVM and GCC implementations are non-conformative, as they do map directly to vsetvli: https://godbolt.org/z/bzYG3vxzM.
For example, on a VLEN=128 implementation (i.e. VLMAX=4 for e32m1), a wrap(6) call would result in a vsetvli instruction that is allowed to, on a RVV1.0-compliant RISC-V implementation, produce a vl of either 3 or 4, as per "ceil(AVL / 2) ≤ vl ≤ VLMAX if AVL < (2 * VLMAX)" of section 6.3 of the V spec, and thus wrap(6) could equal 3, while this document specifies min(avl,VLMAX) = min(6,4) = 4.

Do I understand correctly that the intent of a __riscv_vsetvl_* intrinsic is to be exactly min(avl, VLMAX), and thus be impossible to map directly to a vsetvli rd, rs1, ... instruction without some additional computation of the min()?
If that's the case, then the current LLVM and GCC implementations are non-conforming, as they do map directly to vsetvli: https://godbolt.org/z/bzYG3vxzM.
For example, on a VLEN=128 implementation (i.e. VLMAX=4 for e32m1), a wrap(6) call of the LLVM/GCC output would result in a vsetvli instruction that is allowed to, on a RVV1.0-compliant RISC-V implementation, produce a vl of either 3 or 4, as per "ceil(AVL / 2) ≤ vl ≤ VLMAX if AVL < (2 * VLMAX)" of section 6.3 of the V spec, and thus wrap(6) could equal 3, while this document specifies min(avl,VLMAX) = min(6,4) = 4.

Ah, yes. You have found the hidden piece of the intrinsic implementation. However if you see this snippet https://godbolt.org/z/Wx4TPq7fs, the compiler is not respecting the element width and length multiplier provided by vsetvl. The vsetvl intrinsic is not intended to map to an exact instruction, the compiler is responsible to insert the appropriate vsetvl instruction.

Do I understand correctly that the intent of a __riscv_vsetvl_* intrinsic is to be exactly min(avl, VLMAX), and thus be impossible to map directly to a vsetvli rd, rs1, ... instruction without some additional computation of the min()?
If that's the case, then the current LLVM and GCC implementations are non-conforming, as they do map directly to vsetvli: https://godbolt.org/z/bzYG3vxzM.
For example, on a VLEN=128 implementation (i.e. VLMAX=4 for e32m1), a wrap(6) call of the LLVM/GCC output would result in a vsetvli instruction that is allowed to, on a RVV1.0-compliant RISC-V implementation, produce a vl of either 3 or 4, as per "ceil(AVL / 2) ≤ vl ≤ VLMAX if AVL < (2 * VLMAX)" of section 6.3 of the V spec, and thus wrap(6) could equal 3, while this document specifies min(avl,VLMAX) = min(6,4) = 4.

Ah, yes. You have found the hidden piece of the intrinsic implementation. However if you see this snippet https://godbolt.org/z/Wx4TPq7fs, the compiler is not respecting the element width and length multiplier provided by vsetvl. The vsetvl intrinsic is not intended to map to an exact instruction, the compiler is responsible to insert the appropriate vsetvl instruction.

The compiler is still required respect the VLMAX implied by the SEW and LMUL. This means the compiler must respect the ratio between SEW and LMUL given to the intrinsic. The intrinsic must return the value the hardware vsetvli intruction would return for that VLMAX which is not always min(avl, VLMAX).

Right, I am not saying that __riscv_vsetvl_e32m1 should necessarily map to vsetvli rd, rs1, e32, m1; indeed, vsetvli rd, rs1, e32, m1 and vsetvli rd, rs1, e64, m2 will result in the same rd value, and thus a compiler can choose to use those interchangeably for calculating rd.
What I am saying is that __riscv_vsetvl_e32m1(avl), if specified to be min(avl, VLMAX), can not be implemented as vsetvli rd, x[avl], e32, m1 (or ..., e64, m1, etc), even if the compiler wanted to do so, because the behavior of that vsetvli instruction is not guaranteed to be min(avl, VLMAX), as per the aforementioned section 6.3. of the V extension 1.0 specification.

@nick-knight @dzaima @topperc Just made an update to description associated with "control of vl" and pseudo intrinsics vsetvl and vsetvlmax. Please check again, thank you.

Ping.

Ping.

Merging this PR now. Thanks all people that helped to work this through!


[App]: Web UI freezes when trying to load thousands of gradients in deep models

Current Behavior
I notice that the browser loading time of gradients increases as a model goes deeper.
In particular, when the number of gradients is in the 1000s range, the browser starts to slow down before the gradients appear.
When in the 2000s range, the browser may freeze for minutes until the gradients display properly.
I assume that the web UI tries to load all the gradients to the browser before displaying them.
Expected Behavior
I expect the gradient loading time to be consistent regardless of the size of the models.
Since the screen can display only 10-20 gradients at once, I expect the web UI to load them on demand to improve the loading speed.
Steps To Reproduce
No response
Screenshots
No response
Environment
OS: core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
Browsers: Firefox
Version: 108.0.1
Additional Context
No response

Hi @kenmbkr , When you say number of gradients in the 1000s or 2000s do you mean the number of steps?
How do you log the gradients in your code? It will be helpful if you could share your wandb workspace.
When logging do you use the log_freq argument? If yes I would recommend to increase the number to increase performance as it defaults to 100.

No, I mean the number of charts in the gradient panel. For example, the web UI is logging 621 gradients in the attached screenshot. When the number of charts are more than 1000, especially when larger than 2000, those charts will be spinning for minutes until they are visible.

Hi @kenmbkr , When you say number of gradients in the 1000s or 2000s do you mean the number of steps?
How do you log the gradients in your code? It will be helpful if you could share your wandb workspace.
When logging do you use the log_freq argument? If yes I would recommend to increase the number to increase performance as it defaults to 100.

Bill Morrisson commented: I understand but I will need to know how you log your gradients in your code(specific function or example maybe) and what value you used for your log_freq argument.

This is how I log the gradients in my code:
wandb.init(config, project='name', resume='allow')
wandb.watch(mode, log='all', log_freq=100)

Bill Morrisson commented: Thank you @kenmbkr for your patience! Please try to change the log_freq argument to a higher value( 350 and above) to enable a better performance when loading your gradients.

May I know if there are any scaling rules for the recommended log_freq?
For example, should it be directly proportional to the number of layers being logged or the number of steps per epoch? Or is it 350 and above all the time?

Not exactly! The rule is that log_freq logs gradients and parameters every N batches so the more you increase the number from the default(100) you will be logging a greater number of batches for each log step.
So to summarize log_freq is related to the number of batches not the number of layers.

Bill Morrisson commented: Hello @kenmbkr,
I am circling back to ask if you tested out the suggestion mentioned and if there is any other issue you want me to help with.

I set the log_freq argument to 350 and the charts are still spinning for a couple of minutes until they can be fully loaded like before. Please kindly advise what I can try next.

I think it solved my problem. Thanks a lot for your help.


[Improvement] Enter BIOS directly after VM restart

ISSUE TYPE

Improvement Request

COMPONENT NAME
VM lifeccle

CLOUDSTACK VERSION
4.14, 4.15

CONFIGURATION
N/A
OS / ENVIRONMENT
N/A
SUMMARY
It would be nice to have a mechanism to enter BOS directly without user intervention after a VM restarts. Currently, users can access BIOS hitting F2.
STEPS TO REPRODUCE
- Restart VM, selecting a new option to enter BIOS

EXPECTED RESULTS
BIOS displayed on console proxy

ACTUAL RESULTS
Hit F2 to enter BIOS on boot

Is something like this even feasible?
I'm sure it would at least be hypervisor dependent...

Hi @onitake, my intention was bringing up this idea as a nice to have, but honestly, I haven't gone into thinking how to do it rather than imagining use cases. I think the initial effort with this ticket will be evaluating if it is possible and how it can be achieved for different hypervisors.

Ah, I see.
I guess it might be useful, as there is often very little time to react at startup.
It seems like VMware does have an API for this: http://vmware.github.io/vsphere-automation-sdk-rest/6.5/operations/com/vmware/vcenter/vm/hardware/boot.get-operation.html
value.enter_setup_mode

@nvazquez did we do some in-house work on this one - what's the idea, going to be in 4.14 or shall I move this to 4.15 milestone?

@nvazquez we've a boot into bios mode feature now, closing based on that.


How to run PowerShell script even if Set-ExecutionPolicy is banned?

I had a similar problem and found the solution here do your library make sure this is implemented...?
http://stackoverflow.com/questions/9271681/how-to-run-powershell-script-even-if-set-executionpolicy-is-banned

Hello,
JPowerShell does not launch PS scripts using the -file parameter. What it does is to read and to execute each line of the script. Thus, it can handle any returned error code properly.
If you just want to bypass the security policy in your script I guess you just have to add the -executionpolicy bypass switch on your sensible command lines.
https://social.technet.microsoft.com/Forums/en-US/d5f1789e-eb1a-45a8-b220-a2d2f77ddc3c/client-setting-powershell-execution-policy-bypass?forum=configmanagerapps
Regards

Hello @aky0,
I have make a change in 1.9 version that should bypass the execution policy.
Can you check if it works?
Regards


Persist PostgreSQL Database in Docker

As a developer, I want to configure the PostgreSQL database to persist data in Docker so that data is retained across restarts and environments are easily reproducible.

Size/Points: M (3)
Priority: High
Risk: Medium (Configuring Docker volumes and ensuring proper permissions for PostgreSQL)
Child of Epic: Infrastructure Setup
Ideal Time: 3 days

Acceptance Criteria:

PostgreSQL data must persist using Docker volumes.
Database data should be retained after container restarts or re-deployments.
Scripts for initializing the database with default data must support the persistent setup.

It is done in branch 117/backend-db since it is necessary to initialize db.

but since not finalized, must move to next iteration.


fix: schema_name is optional to enable future pipe grant

schema_name optional for future pipe grants
Rename futurePipes to onFuture for consistency

Test Plan
make test
CGO_ENABLED=1 go test -race -coverprofile=coverage.txt -covermode=atomic  ./...
?       github.com/Snowflake-Labs/terraform-provider-snowflake  [no test files]
ok      github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/datasources  3.711s  coverage: 3.7% of statements
?       github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/db   [no test files]
?       github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/helpers      [no test files]
ok      github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/provider     2.318s  coverage: 25.5% of statements
ok      github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/resources    14.246s coverage: 48.2% of statements
ok      github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/snowflake    1.247s  coverage: 52.0% of statements
?       github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/testhelpers  [no test files]
ok      github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/validation   0.999s  coverage: 38.0% of statements
?       github.com/Snowflake-Labs/terraform-provider-snowflake/pkg/version      [no test files]

References
https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/1219

Hello @bennylu2 there is a merge conflict which is a bit confusing for me to decipher since the variables are getting renamed, but the error messages are the same. Can you please rebase to main branch and fix the merge conflict?
<<<<<<< future-pipe-grants
	if (schemaName == "") && !onFuture {
		return errors.New("schema_name must be set unless on_future is true.")
	}
	if (pipeName == "") && !onFuture {
		return errors.New("pipe_name must be set unless on_future is true.")
=======
	if (pipeName == "") && !futurePipes {
		return errors.New("pipe_name must be set unless on_future is true")
	}
	if (pipeName != "") && futurePipes {
		return errors.New("pipe_name must be empty if on_future is true")
>>>>>>> main

@sfc-gh-swinkler rebased and ready for review

@bennylu2 im just going to go ahead an approve this, and fix the issues with go fmt and check docs to get it out in the latest release.
For future reference, you need to run go fmt ./... and also make docs since the schema changed.

@bennylu2 im just going to go ahead an approve this, and fix the issues with go fmt and check docs to get it out in the latest release.
For future reference, you need to run go fmt ./... and also make docs since the schema changed.

@sfc-gh-swinkler ah thanks, will keep in mind for future. I thought I did run make docs tho


Don't overwrite comment on PR. Make new one

#minor#
Changelog

No longer query to see if there is an existing comment (which is then overwritten). Just post a new comment

Visual Acceptance tests:
No changes

Wouldn't this result in a whole stack of comments when we just want the latest result?  If this is addressing #90, then the issue is more that subsequent pushes have no images than it is that the comment is being overwritten.

@sglanzer So if the newest comment results in a "No Changes" comment, don't post and keep the previous?
Just realized this would be dumb in the case of build matrices any ways

@EWhite613 re: "No changes" - exactly - we want to see what the PR is going to do to the target branch, we don't really care what it did to the previous commit in the PR

@sglanzer @rox163 Little confused. Say if a have a test that says "color" to "colour" , resulting in a PR comment that shows changes. Then I add another commit that fixes the readme and now the PR says "No Changes"?

@sglanzer @rox163 or is it I have a pr that changes "color" to "colour", PR comment has changes.
Then I do another commit that changes "colour" back to "color" resulting in a "No Changes" PR comment (but you really wanna show the previous)?

Not quite the situation - we were pushing a number of updates to a PR (for modals) - the first push showed the visual report, all subsequent changes (including additional captures, modifications to existing captures, etc.) showed "No Changes"

Added a 👍 to the situation that applies above

Really? As long as the actual images aren't committed it should show up

Yeah, I was surprised as well ;)
We probably were doing something wrong, but that's the behavior I was seeing - @rox163 am I describing it correctly?
We commented out the captures in ember-frost-modal, but we could easily do a PR with 2 pushes, enable one capture per push and see what happens

I'll post the result here

Yep that sounds about right.

See this PR. https://github.com/ciena-frost/ember-frost-modal/pull/20  I added captures in more than one commit pushed to the PR. The acceptance tool overwrote its comment and said no changes. Locally I saw new captures when I ran the tests.

Started a new PR with one initial capture https://github.com/ciena-frost/ember-frost-modal/pull/27 will screencap the first result, then push with a second capture

Not a great capture, but at least a capture

Pushing the second


Memory leak (TestNG seems to keep all test object in memory)

TestNG Version
6.9.10
Expected behavior
After completing a test, we expect test object to be garbage collected.
Actual behavior
Test objects are not finalized / garbage collected => which leads to an out of memory problem when running a large test suite
Is the issue reproductible on runner?

[x] Shell
[ ] Maven
[x] Gradle
[ ] Ant
[ ] Eclipse
[x] IntelliJ
[ ] NetBeans

Test case sample
Please find below a standalone main class reproducing this problem.
It shows that test objects are not garbage collected / finalized

package test;

import org.testng.TestNG;
import org.testng.annotations.Test;

/**
 * This class reproduces a memory leak problem when running TestNG tests.
 * The same (memory behavior will be shown when running this test as normal TestNG test (e.g. using Intellij)
 */
public class MemoryLeakTestNg {

    public static void main(String[] args) throws Exception {

        // we run the test programmatically
        runTest();
        // lets wait for garbage collection
        waitForAllObjectsDestructed();
    }

    public static void waitForAllObjectsDestructed() throws InterruptedException {
        while (true) {
            System.out.println("waiting for clean up...");
            // enforce a full gc
            System.gc();

            // check if there are still instances of our test class
            if (MyTestClassWithGlobalReferenceCounter.currentNumberOfMyTestObjects == 0) {
                // if we reach this point, all test instances are gone,
                // ... however this never happens ...
                break;
            }
            // let's wait 5 seconds and try again ...
            Thread.sleep(1000);
            System.out.println("["+MyTestClassWithGlobalReferenceCounter.currentNumberOfMyTestObjects+"] test object(s) still exist.");
        }
    }

    private static void runTest() {

        // create TestNG class
        TestNG testng = new TestNG() {
            @Override
            protected void finalize() throws Throwable {
                // it seems that this object will never be finalized !!!
                System.out.println("TestNG finalized");
            }
        };

        // and set a test (which also will never be finalized ... see later)
        testng.setTestClasses(new Class[]{
            MyTestClassWithGlobalReferenceCounter.class,
        });

        // lets run the test
        testng.run();

        // At this point the test run through and we expect both instances
        // - testng and
        // - the test object of type (MyTest)
        // will be garbage collected when leaving this method
        // ...

    }

    /** we create a test NG class here, which has a global counter, counting all instances. */
    public static class MyTestClassWithGlobalReferenceCounter {

        /** global counter that keeps track on how many objects are currently on the heap */
        public static int currentNumberOfMyTestObjects = 0;

        public MyTestClassWithGlobalReferenceCounter() {
            System.out.println("constructor");
            // increase the counter
            ++currentNumberOfMyTestObjects;
        }

        @Test
        public void aTestMethod1() {
            System.out.println("test method 1");
        }

        @Test
        public void aTestMethod2() {
            System.out.println("test method 2");
        }

        @Override
        protected void finalize() throws Throwable {
            System.out.println("finalize");
            // this will be called when this object is removed from the heap
            --currentNumberOfMyTestObjects;
        }
    }
}

Thanks for the report.
First, could you try with the latest version? Maybe it is already fixed.
But, by design, TestNG is keeping objects in memory for its reporters. An option could be to disable them.

@gluche
This was a neat trick. I never knew one could do that :) Thanks for sharing this.
TestNG testng = new TestNG() {
    @Override
    protected void finalize() throws Throwable {
        // it seems that this object will never be finalized !!!
        System.out.println("TestNG finalized");
    }
};

I have a couple of observations. I believe the call to System.gc() doesn't necessarily always force a GC to happen but its more of like a Dear JVM please clean up un-used memory and that is the only time when finalize() is invoked.  But in your case the greedy while loop is constantly querying the static data member in your MyTestClassWithGlobalReferenceCounter class and this class's finalize() method is also having a reference to the static counter.
So I guess your while loop is actually the one that is stopping the JVM from gc'ing MyTestClassWithGlobalReferenceCounter instance. I tried running your sample from the IDE and found it running continuously. So I thought I should give the benefit of doubt to the built in reporters from IntelliJ (Since @juherr mentioned that TestNG does hold reference to objects in reports) and run the test from the command prompt via maven (Here I guess the IntelliJ TestNG plugin has no role to play because the test class is being executed via a main() method rather than a @Test triggering it.)
When I ran the code using the command
mvn exec:java -Dexec.mainClass="com.rationaleemotions.github.issue1461.MemoryLeakTestNg"

I found the same behavior i.e., the test doesn't run to completion.
So I was wondering, is the code you shared that is causing the problem rather than TestNG blocking gc by holding up references to test class objects ?
@juherr

But, by design, TestNG is keeping objects in memory for its reporters. An option could be to disable them.

When the execution of TestNG.run() finishes and when the method runTest() exits TestNG has already done its part, I was under the assumption that at that time even the report execution should have completed. Is that a correct understanding ? So it looks like somewhere a reference to TestNG instance is still being maintained because I don't see the finalize() method of TestNG also be invoked. Do you think that the sample has any issues ?

@krmahadevan

So I guess your while loop is actually the one that is stopping the JVM from gc'ing MyTestClassWithGlobalReferenceCounter instance.

You are right, the MemoryLeakTestNg instance keeps querying the counter, but that should not keep the GC from getting rid of the MyTestClassWithGlobalReferenceCounter instance ?
I actually tried to run the same setup with the latest JUnit version ( just to be sure, that not this construct is causing the GC from removing our Test instance ). As expected the test exists with the following output:
constructor
test method 1
constructor
test method 2
waiting for clean up...
TestNG finalized
finalize
finalize
[0] test object(s) still exist.
waiting for clean up...

Here is source code (tested with Java 1.8.0_101-b13 and JUnit 4.12 ): https://gist.github.com/kiru/b87a1d42c720966f8fe0b9b99a4bedd6
@juherr

First, could you try with the latest version? Maybe it is already fixed.

Tested with the latest stable version ( 6.11 ), memory leak is still present.

@kiru What if you disable all reporters?

@juherr Disabling all reporters should not be the solution, but maybe a good workaround. I am not sure how to disable all the reporters, I tried with the following changes, but had no effect.
        testng.setUseDefaultListeners(false);
        testng.getReporters().clear();;

testng.setUseDefaultListeners(false);

should be enough.
And the idea was to find the root cause. If the problem still exists without listeners/reporters, then the problem is somewhere else.

Hello Julien,
I found the reason why in this case the TestNG instance is not GC'ed. It seems that TestNG is a singleton class. It keeps the latest created instance as a reference:
  private static TestNG m_instance;
and later
  private void init(boolean useDefaultListeners) {
    m_instance = this;

    m_useDefaultListeners = useDefaultListeners;
    m_configuration = new Configuration();
  }

Currently, that instance is only used by ExitCodeListener. To fix the above test case, I changed the run-
method as follows:
  public void run() {
    // ... skipped ..
    m_instance = null;
    m_jCommander = null;
  }

Nevertheless, it does not fix the actual memory leak. You mentioned that by design the reporters keep an instance of the test instance. I don't see that with the JProfiler.
What I see is, that the TestNG.m_configuration keeps a list of m_configurationListeners. One of the listeners seems to keep an instance to TestNGMethod.
Thank you,
Kiru

The ITestResult retains the test parameters. I use an IInvokedMethodListener to replace the parameters with their toString representation. That lets my build run millions of tests with low memory usage.

@ben-manes  I'm not quite familiar with the IInvokedMethodListener. Do you have any code samples?

Sure

I'm seeing a similar issue.
We use an IInvokedMethodListener and after each invocation, we write the results to a DB and then technically we are done with the TestResult.
I'm seeing that org.testng.internal.MethodHelper is holding onto a bunch of records in a static field and eventually is causing an OOM.  I bumped to 6.14.3 hoping the above fix would help, but it hasn't.
Is there some way of getting testng to let go of these results?  We basically are running a suite of tests on demand and creating a new TestNG object each time.  In theory, when the suite of tests is done we should be able to clear everything.
Note I do have an hprof if anyone is interested in it.

@jeffwcook The patch for this issue did not fix the memory leak. We ended up writing a method to set all the non static fields in the tests to null after the tests were done. That way our objects were freed, but TestNG was still keeping an instance to the Test.

That's interesting.  Do you have some sample code of that?

Most of the code is proprietary, but it looks similar to this:

FieldUtils is from https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/reflect/FieldUtils.html
void setAllFieldsToNull(Object object) throws IllegalAccessException {
    Field[] allFields = FieldUtils.getAllFields(getClass());
    for (Field eachField : allFields) {
        boolean notPrimitive = !eachField.getType().isPrimitive();
        boolean notStatic = !Modifier.isStatic(eachField.getModifiers())
        if(notPrimitive && notStatic){
            eachField.set(object, null);
        }
    }
}

The above snippet should be enhanced to add all the Fields from superclasses as well.
Hope this gives you a starting point.

You might also want to look at the sample I gave earlier doing this in an IInvokedMethodListener.

I'm seeing a similar issue where an object doesn't get cleared from a WeakHashMap by System.gc(), and a WeakReference or PhantomReference to it never gets queued. Replacing System.gc() with Thread.sleep(1000) updates the WeakHashMap but still doesn't queue anything.

@Pr0methean try using Guava's GcFinalization which does a good job before failing on a timeout.

Also, don’t use G1 for reference caching tests. It uses regions which are collected independently, so it might not eagerly collect soft/weak references. Use ParallelGC for predictable tests if you rely on GC behavior.


Replace code fold icons with octicons

replace font-awesome icons with octicons
clean up js and css surrounding the code expansion and file folding
fix hover color on arc-green

before:

after:

blob_excerpt.tmpl was re-indented, so best viewed with whitespace hidden in the diff.

One more tweak pushed, bg hover effect on the fold buttons:

Also fixed background on fold line in gitea theme which was reddish for some reason.

Doing a few more color tweaks, don't merge yet.

Line number column colors tweaked and also incread vertical padding on fold line a bit:

Should be good to go now.

Please resolve conflicts

rebased

:rocket:


correct YAML under examples and remove duplicate inline YAML

correct YAML under examples, using the inline YAML
remove duplicate inline YAML
double confirm that pod-with-graceful-termination.yaml is not referenced anywhere else

What it looks like now:

@DanteMustCode Good spot and thanks for the fix.
Deploy Preview: deploy-preview-40214

LGTM makes sense!
Congrats on your first PR 🎉
/lgtm

/remove-lgtm
There are multiple PRs from first time contributors to decide which implementation is good to merge.

/remove-lifecycle stale

Hello @DanteMustCode, please advise if you're still working on this PR. Failing to respond by 25th August, 2023 will result in closure of the PR.


Feat support ShowTabletStorageFormat command in nereids

What problem does this PR solve?

Issue Number: close #42783

Related PR: #xxx
Problem Summary:
Check List (For Committer)

Test

[ ] Regression test
[ ] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No colde files have been changed.
[ ] Other reason

Behavior changed:

[ ] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[ ] Yes.

Release note

None

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall

Output Screenshot

pr's related issue is SHOW TABLET STORAGE FORMAT VERBOSE?, but the commits add the ADMIN SHOW TABLET STORAGE FORMAT VERBOSE? linked here: #42634

please rebase latest master and resolve the conflicts

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run doris_compile

run buildall

run buildall


When update the data source,the host and port show error

What is the purpose of the pull request
When update the data source,the host and port show error
Brief change log
When update the data source,the host and port show error

Codecov Report

Merging #2821 into dev-1.3.0 will decrease coverage by 0.10%.
The diff coverage is 0.00%.

@@               Coverage Diff               @@
##             dev-1.3.0    #2821      +/-   ##
===============================================
- Coverage        37.47%   37.36%   -0.11%
+ Complexity        2585     2581       -4
===============================================
  Files              436      436
  Lines            20127    20132       +5
  Branches          2455     2457       +2
===============================================
- Hits              7542     7522      -20
- Misses           11912    11938      +26
+ Partials           673      672       -1

Impacted Files
Coverage Δ
Complexity Δ

...scheduler/api/controller/DataSourceController.java
3.63% <0.00%> (ø)
2.00 <0.00> (ø)

...olphinscheduler/api/service/DataSourceService.java
2.20% <0.00%> (-0.07%)
3.00 <0.00> (ø)

.../org/apache/dolphinscheduler/common/Constants.java
83.33% <ø> (ø)
1.00 <0.00> (ø)

...phinscheduler/dao/datasource/OracleDataSource.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...lphinscheduler/service/process/ProcessService.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

.../server/worker/processor/TaskExecuteProcessor.java
10.00% <0.00%> (-26.67%)
1.00% <0.00%> (-2.00%)

...nscheduler/server/entity/TaskExecutionContext.java
81.18% <0.00%> (-5.95%)
57.00% <0.00%> (-3.00%)

...he/dolphinscheduler/api/service/LoggerService.java
91.30% <0.00%> (+8.69%)
10.00% <0.00%> (+1.00%)

Continue to review full report at Codecov.

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


Fix dependencies missing from pom.xml

Because of the way datafusion-java creates custom artifacts, the dependency information isn't automatically included in the generated pom.xml. This can lead to confusion for users when they don't realise they need to install an extra dependency.
This fixes the problem by editing the pom.xml to add the required dependencies.
The generated dependencies look like:
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.36</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.arrow</groupId>
      <artifactId>arrow-format</artifactId>
      <version>13.0.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.arrow</groupId>
      <artifactId>arrow-vector</artifactId>
      <version>13.0.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.arrow</groupId>
      <artifactId>arrow-c-data</artifactId>
      <version>13.0.0</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.arrow</groupId>
      <artifactId>arrow-memory-unsafe</artifactId>
      <version>13.0.0</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

Publishing failed so I had to revert

Hi @Jimexist, where did it fail? It looks like it passed on the "release" action: https://github.com/datafusion-contrib/datafusion-java/actions/runs/6080556797/job/16495138255
The only failure I see is on the "build" action: https://github.com/datafusion-contrib/datafusion-java/actions/runs/6080556796/job/16494678153, but that looks unrelated to my change, and GitHub was having issues around that time: https://www.githubstatus.com/incidents/smdz34v7j8q0


Keepdims incorrectly documneted fix

Reference issue
Close https://github.com/scipy/scipy/issues/17196
What does this implement/fix?
Made changes to the docstring to match with the function structure
Additional information
added the addedversion tag for the same function.

closing the following PR and will raise a new one with only one file.


stuck at "Cookie" at conversion from hertz to fasthttp and vice versa.

1st try temp conversion of hertz to fasthttp req and vice versa for resp.
stuck at "Cookie"
possible to suggest what else i'm missing?
func ProxyHandlerTemp(c context.Context, ctx *app.RequestContext) {

	var ctxTemp fasthttp.RequestCtx

	ctx.Request.Header.VisitAllCookie(func(k, v []byte) {
		ctxTemp.Request.Header.SetCookieBytesKV(k, v)
	})

	ctxTemp.Request.Header.SetMethodBytes(ctx.Request.Header.Method())
	ctxTemp.Request.SetHostBytes(ctx.Host())
	ctxTemp.Request.SetRequestURIBytes(ctx.Request.RequestURI())
	ctxTemp.Request.Header.SetUserAgentBytes(ctx.UserAgent())
	ctxTemp.Request.SetBodyRaw(ctx.Request.Body())

	ProxyHandler(&ctxTemp)

	ctxTemp.Response.Header.VisitAllCookie(func(k, v []byte) {
		ctx.Response.Header.SetCookie(string(k), string(v))
	})
	ctx.Response.SetBodyRaw(ctxTemp.Response.Body())
	ctx.Response.SetStatusCode(ctxTemp.Response.StatusCode())
}

sorry but a bit new to this... how do i set returned cookies from fasthttp to "Cookie"?
too many arguments in call to ctx.Response.Header.SetCookie
        have (string, string)
        want (*protocol.Cookie)

Hello @ultperf  Why not just copy the response header?
refer to https://github.com/cloudwego/hertz/blob/develop/pkg/app/context.go#L1000,It appears to be very well annotated.

can u pls help just provide the code for fasthttp getcookie to setcookie for hertz?
coz i dont really know how to port or migrate to that.
i've seen the link u sent but i seem to need to extract so many things from fasthttp?

Set the header directly

@li-jin-gou i normally dont do that so i dunno how to set the header directly. i always thought u need to do a VisitAllCookies() kind of thing.
can u provide the example for fasthttp to getcookie header to hertz?
if i have to guess.
ctx.Header.Set("Cookie", ctxFasthttpTemp.Header.Peek("Cookie")) <- like this?

use https://github.com/cloudwego/hertz/blob/develop/pkg/protocol/cookie.go#L350 💕

My opinion is to use hertz directly. refer to https://github.com/cloudwego/hertz/issues/386#issuecomment-1320763519

last bit of help pls.
it's not easy to convert everything to hertz immediately. i am testing and trying out http2 for now.
how do i set the cookie from ctxTemp (fasthttp) response to ctx (hertz)?
pls help out this. shld be the last part. sorry i not very well verse with this cookie part.
	//ctx.Response.SetCookie(cookie * Cookie)
	cookie := ctxTemp.Response.Header.Peek(fasthttp.HeaderCookie)
	ctx.Response.Header.SetCookie(cookie)
	//ctxTemp.Response.Header.VisitAllCookie(func(k, v []byte) {
	//	ctx.Response.Header.Set(string(k), string(v))
	//})

i want to use hertz directly but there is too many things to be converted at the moment. i wish to try out the http2 first. so far all things are ok except the reverse proxy part and cookie.
so pls help out this first and i think the rest i can slowly transition.

possible to provide a conversion solution pls? this is not working. why?
	cookie := ctxTemp.Response.Header.Peek(fasthttp.HeaderCookie)

	cookieNew := protocol.AcquireCookie()
	cookieNew.Parse(string(cookie))
	ctx.Response.Header.SetCookie(cookieNew)

possible to provide a conversion solution pls? this is not working. why?
	cookie := ctxTemp.Response.Header.Peek(fasthttp.HeaderCookie)

	cookieNew := protocol.AcquireCookie()
	cookieNew.Parse(string(cookie))
	ctx.Response.Header.SetCookie(cookieNew)

try this, maybe will work
cookieNew := protocol.AcquireCookie()
cookieNew.Parse(string(cookie))
ctx.Response.Header.SetCookie(cookieNew)
// pls add this
protocol.ReleaseCookie(cookieNew)

@justlorain it's not working

@justlorain it's not working, what is wrong? what is missing i wonder. it ran ok but seems cookie not working that's all. coz cannot login.
func ProxyHandlerTemp(c context.Context, ctx *app.RequestContext) {

	var ctxTemp fasthttp.RequestCtx

	ctx.Request.Header.VisitAllCookie(func(k, v []byte) {
		ctxTemp.Request.Header.SetCookieBytesKV(k, v)
	})

	ctx.Request.Header.VisitAll(func(k, v []byte) {
		ctxTemp.Request.Header.SetBytesKV(k, v)
	})

	ctxTemp.Request.Header.Set("X-Real-IP", ctx.ClientIP())
	ctxTemp.Request.SetHostBytes(ctx.Host())
	ctxTemp.Request.SetRequestURIBytes(ctx.Request.RequestURI())
	ctxTemp.Request.SetBodyRaw(ctx.Request.Body())
	FirewallProxyHandler(&ctxTemp)

	ctx.Response.SetBodyRaw(ctxTemp.Response.Body())
	ctx.Response.SetStatusCode(ctxTemp.Response.StatusCode())

	cookie := ctxTemp.Response.Header.Peek(fasthttp.HeaderCookie)

	cookieNew := protocol.AcquireCookie()
	cookieNew.Parse(string(cookie))
	ctx.Response.Header.SetCookie(cookieNew)
	// pls add this
	protocol.ReleaseCookie(cookieNew)

	ctxTemp.Response.Header.VisitAll(func(k, v []byte) {
		ctx.Response.Header.Set(string(k), string(v))
	})
}

This will only set an empty cookie, I think you need to use these Set functions to set your cookie manually, here is a example, hope this will help you.

@ultperf Sorry, it seems that I misunderstand this code. The Parse should be called in the VisitAllCookie like following:
ctx.Response.Header.VisitAllCookie(func(key, value []byte) {
    p := ctxTemp.Response.Header.Peek(fasthttp.HeaderCookie)
    cookie := protocol.AcquireCookie()
    cookie.ParseBytes(p)
    ctx.Response.Header.SetCookie(cookie)
    protocol.ReleaseCookie(cookieNew)
})

erm... but there's no "key" in your setcookie etc... doesnt seem right.

@li-jin-gou can u see that his FastHttpctx is the one using the visitallcookie but hertzctx does not touch "key" anywhere?

value contains key


Master

Add an ability to make a map view static, providing a map view only for interacting with code instead of user actions.

Most options of mapbox-gl are supported in the new version.


How could I create an interactive terminal

I created an extension, which creates a new terminal and executes some shell commands (there are some logic around each commands output, I was using onDidWriteData to do that), then users can keep working with terminal.
I notice that the new terminal api finalized, the onDidWriteData function is gone. The pseudoterminal seems not able to be interactive, well the terminal doesn't have onDidWriteData anymore.
I am not sure if I missed something. Is there an option to turn pseudoterminal to be interactively? Or how can I listen terminal output data (like onDidWriteData before) ?

Terminals using Pseudoterminal are interactive it can implement onDidWrite (for output) and handleInput. onDidWriteData changed to window.onDidTerminalWriteData and it remains proposed, chances are that it won't become stable API.

Cool, thanks for the explanation.
The way Pseduoterminal interactive is different with normal terminal. It's like TerminalRenerer (not sure if I remember correctly). I mean, base on the new api example, with Pseduoterminal users can type simple characters, such as 'Y|N' to do their tasks, but not like normal terminal can use shell.

onDidWriteData changed to window.onDidTerminalWriteData and it remains proposed, chances are that it won't become stable API.

I am also wondering what is your guys concern about this? For security reasons or performance ? I mean do you think should not give extensions the power of creating terminal instance?
By the way window.onDidTerminalWriteData this api seems not been documented.

with Pseduoterminal users can type simple characters, such as 'Y|N' to do their tasks, but not like normal terminal can use shell

You can theoretically do everything that you can do with a shell as Pseudoterminal is pretending to be the shell, it's implementing the same interface as a regular process pty is.

I am also wondering what is your guys concern about this? For security reasons or performance ?

Both security and performance.


Skip async_malloc tests on unsupported device

It seems Windows + TCC does not support async malloc.
https://github.com/cupy/cupy/pull/5889#issuecomment-1063588178
Testing with CUDA 11.6 on Windows:
https://ci.preferred.jp/cupy.win.cuda116/96658/

/test full


Use Uuid Provider for PayPalCredentials

fixes https://github.com/Sylius/PayPalPlugin/issues/146

Thanks, @SirDomin! :1st_place_medal:


fix: Update email regex to allow longer domain names

Fixes #<issue_number>
Description
The email regex in the InputWidgetV2 component was updated to allow domain names with up to 6 characters. This change ensures that valid email addresses with longer domain names are accepted.
Fixes #Issue Number
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test<EMAIL_ADDRESS>@tag.Sanity, @tag.Binding"
:mag: Cypress test results

[!TIP]
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/9872927695
Commit: e2e99648eee0c0c71e05e8f3879124b2be17023f
Cypress dashboard.
Tags: @tag.Input, @tag.Sanity, @tag.Binding
Spec:
Wed, 10 Jul 2024 11:29:58 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

@coderabbitai review

/build-deploy-preview skip-tests=true


Motion

Added motion object and move function that implements it. Added JUnit tests for this move function. Also added unit platform console and license to run JUnit tests.

Ok


Create manifest.json file when deploying

Is it possible for the 'sprout deploy' command to make a 'manifest.json' file that contains all the images and metadata files? Even better if they are pair together in one json object. I've attached a mocked up example.
manifest.json

Here is my draft to address your request.  Do you think this is enough, or is the intent to also push that file to datalayer? My assumption is it for offline use.
Just a quick idea to wedge the file output into the existing structure.
https://github.com/MichaelTaylor3D/ChiaSproutCli/pull/5

wow thanks for looking into this for me, i was just thinking i needed to work on it :)
we need it in datalayer, but should be very easy to do by running the utility function as the first step in deploy command. Just got to make sure the manifest.json is being generated in the deploy directory thats specified in sprout.config.json

Awesome! Yes, what i'm hoping to do is build a 'generic' index.html that would consume that manifest.json file and build a galley for an nft collection. Something that people would be able to just drop in there datalayer folder for a collection, deploy and it's has a nice webpage gallery for it.

Would that be something we just want to include in the utility itself? Seems like we could just drop an index.html into each storeId and always have a basic thumbnail view for each store synced with each deploy. I could add that with this WIP PR. Both updates would take place in same location of script(s), no?

That may be the best option long term. I can get the CSS file loaded from local but not any JSON. Even trying to use XMLHttpRequest(). For my own collections (for now) I'm just going to write some Bash to build the index.html. But long-term for the Sprout project, I think that is an excellent idea. I just don't have the Javascript chops to do it (yet).

@RytekDigital no we don't want to include index.html generation in the utility. @steppsr is making a custom gallery for his collection. The datalayer link service already generates a generic index.html if ones not provided from the store.
Not every store is an NFt collection also

The manifest.json however would be good for anyone that want to make a custom index.html file that uses the manifest to populate the index.html they create


Do not open modules to JUnit

Closes #276

Codecov Report

Merging #295 (0b10c57) into main (b5ba122) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@           Coverage Diff           @@
##             main     #295   +/-   ##
=======================================
  Coverage   70.69%   70.69%
=======================================
  Files          89       89
  Lines        2744     2744
  Branches      237      237
=======================================
  Hits         1940     1940
  Misses        725      725
  Partials       79       79


refactor: drop support for webpack < 4

This PR contains a:

[ ] bugfix
[ ] new feature
[x] code refactor
[ ] test update
[ ] typo fix
[ ] metadata update

Motivation / Use-Case
Drop support for webpack < 4
Breaking Changes
Yes
Additional Info
No

It would be great if this change could be documented in the v2 release notes.


Sync downstream devel

sync downstream devel from upstream devel
important change:
rbd: get description from remote status

Not sure we can cherry-pick to 4.12 without a BZ

/assign @agarwal-mudit


Refactor the server module

This commit refactors the server module as we discussed a bit offline.
The main changes are:

The entry point is how Http, the implementation of ServerProto.
This type has a new constructor as well as builder methods to
configure it.

A high-level entry point of Http::bind was added which returns a
Server. Binding a protocol to a port requires a socket address
(where to bind) as well as the instance of NewService. Internally
this creates a core and a TCP listener.

The returned Server has a few methods to learn about itself, e.g.
local_addr and handle, but mainly has two methods: run and
run_until.

The Server::run entry point will execute a server infinitely, never
having it exit.

The Server::run_until method is intended as a graceful shutdown
mechanism. When the provided future resolves the server stops
accepting connections immediately and then waits for a fixed period of
time for all active connections to get torn down, after which the
whole server is torn down anyway.

Finally a Http::bind_connection method exists as a low-level entry
point to spawning a server connection. This is used by Server::run
as is intended for external use in other event loops if necessary or
otherwise low-level needs.

Er, I didn't realize deleting that branch would close this. I had finished merging the tokio branch into master, and it was now out of date. Also, noticed there is a compile error in the benches/end_to_end.rs.

Sure thing, I'll send the PR against master instead


Enchance layout and responsiveness

Commit Description:
Updated quotes container styles for better layout and responsiveness:

Changed #quotes-container to a grid layout with three columns.
Adjusted hover effect on .quote-block to use scaling.
Added media queries for responsiveness on smaller screens.

Screenshot Section:

Demo Video Section:
https://github.com/user-attachments/assets/6dc5fca4-2946-463c-ab2f-e20eeebf2e9e
Other Changes:
Added new quotes to data.json

Hii @coder-ralph
can you please resolve the conflicts as there seem to be some updated changes and then apply your grid layout changes?
you can add your fav quote, but only 1.
also please don't change the styling and colors for page as well as for hover.
Thanks!

Hi @JayShukla8 ,
I’ve resolved the conflicts and fetched the latest changes. I’ve also added only one quote to the data.json as requested. Thanks!

Hii! This is becoming confusing. Can you make a new pr for your new quote?


[biswap] Biswap, changes

Fixes # .
Changes proposed in this pull request:

add new pool in biswap strategy

thanks!


Cannot exclude auto-generated code from code coverage with .runsettings file

Description
Cannot exclude auto-generated code from code coverage with .runsettings file.
We are importing ElasticSearch which generates code under the path "/_/src/Elastic.Clients.Elasticsearch/_Generated" which is then deleted after the build is complete.  (I cannot find this code when I search; we have no src and no _Generated directories.)
In our .runsettings file, I have tried multiple ways to exclude the ElasticSearch DLLs and the ElasticSearch generated code with negative results.
<ModulePaths>
    <Include>
      <!-- Include all loaded .dll assemblies (but not .exe assemblies): -->
      <ModulePath>.*\.dll$</ModulePath>
    </Include>
    <Exclude>
      <!-- But exclude some assemblies: -->
      <ModulePath>.*\Elastic.Clients.Elasticsearch.dll$</ModulePath>
      <ModulePath>.*\Elastic.Transport.dll$</ModulePath>
      <!-- Exclude all file paths that contain "Temp": -->
      <ModulePath>.*Temp.*</ModulePath>
      <ModulePath>.*src.*</ModulePath>
      <ModulePath>.*_Generated.*</ModulePath>
    </Exclude>
  </ModulePaths>

  <Functions>
    <Exclude>
      <Function>^Elastic.Clients.Elasticsearch.*</Function>
    </Exclude>
  </Functions>

  <Sources>
    <Exclude>
      <Source>.*src.*</Source>
      <Source>.*_Generated.*</Source>
    </Exclude>
  </Sources>

Steps to reproduce
What steps can reproduce the defect?

Import ElasticSearch
Create a .runsettings file with the code snippit above.
Run the following command:
dotnet-coverage collect -f cobertura,coverage "dotnet test --logger trx" -s .\.runsettings

Expected behavior
Auto-generated source code under the "src" and/or "_Generated" directories are excluded from code coverage.
Actual behavior
All auto-generated source code under the "src" and/or "_Generated" directories is included with code covaerage.
Diagnostic logs
log.txt
Environment
Windows 11 Version 23H2 (OS Build 22631.3447)
dotnet --version = 8.0.204

@cliffAtOsaic <Include>/<Exclude> are regex patterns. Can you please check if your source path/module path match patterns provided in runsettings? If it still persists, then can you please provide a small repro solution?

Just seeing this; not sure why I didn't get an email.  I'll take a look at this tomorrow and post what I learn.  Thanks!

@cliffAtOsaic <Include>/<Exclude> are regex patterns. Can you please check if your source path/module path match patterns provided in runsettings? If it still persists, then can you please provide a small repro solution?

Just seeing this; not sure why I didn't get an email. I'll take a look at this tomorrow and post what I learn. Thanks!

Can you please provide an update on this?


'unexpected error: ValidationFailed' when calling acquire_next_image

I'm getting a unexpected error: ValidationFailed panic when calling swapchain::acquire_next_image(self.swap_chain.clone(), None). I haven't found anything significant on this error on the internet, can someone explain what it means? I have already tried messing with the swapchain, but to no avail. This only happens on my project, the examples work fine.
   9: vulkano::swapchain::swapchain::{{impl}}::from
             at \<panic macros>:8
  10: vulkano::swapchain::swapchain::acquire_next_image_raw<winit::Window>
             at C:\Users\Friz64\.cargo\registry\src\github.com-1ecc6299db9ec823\vulkano-0.10.0\src\swapchain\swapchain.rs:1175
  11: vulkano::swapchain::swapchain::acquire_next_image<winit::Window>
             at C:\Users\Friz64\.cargo\registry\src\github.com-1ecc6299db9ec823\vulkano-0.10.0\src\swapchain\swapchain.rs:84
  12: ecsvulk::graphics::renderer::Renderer::draw
             at .\src\graphics\renderer.rs:652

Can you please provide more details? I'm guessing this is for your project https://github.com/Friz64/ecsvulk ? If you push your changes (to a seperate branch if you want) then I can take a look.

Thank you for your answer!
That is indeed the right project and i have now published the changes although this issue was initially created to understand the error message.

Ok, I played around with your code a bit, found two issues, there could be more.

you tried to create too many queues for a given family. I would just do what the triangle example does here.
2   You arent doing anything with acquire_future. You need to join this with other futures to ensure your previous tasks have completed. again the triangle example demonstrates this.

In general  you would be able to determine such things by comparing your code to the triangle example and also by resolving warnings.

Thank you for your time, my issue is now fully resolved and it works!


Properly handle cuts in LHS of flatMap calls and Not/Lookahead/Filter

We were not properly propagating the cuts in the LHS of flatMaps; that meant that if there was a cut inside the left hand parser, it doesn't take effect if something fails in the RHS of the flatMap call, or if the flatMap succeeds but something fails later.
Also makes ! and & negative/positive lookaheads behave as NoCuts: the whole point of those operators is to backtrack, so there isn't any conceivable use-case where someone would want to use them and have a cut disable-backtracking/drop-buffer when inside one of these operators.
Also properly propagates cuts in foo.filter(pred) when foo passes but pred fails.
Found these when investigating the build failure in https://github.com/lihaoyi/fastparse/pull/122. Possibly not the only issue, but it's something. This changes behavior, but if this makes any tests fail, I'll fix them.
Review by @vovapolu

In theory, this should be all that is necessary to make https://github.com/lihaoyi/fastparse/pull/122 pass


Carthage fails with exit 65 when building CocoaLumberjack with Xcode 12 command line tools

Issue Info

Info
Value

CocoaLumberjack Version
3.6.2

Integration Method
Carthage 0.35.0

Xcode Version
12.0 beta 3 (12A8169g)

macOS Version
10.15.6 (19G73)

Repro rate
all the time (100%)

Demo project link
https://dsc.cloud/2600e7/Test.zip

Issue Description and Steps
Based on comments in https://github.com/CocoaLumberjack/CocoaLumberjack/pull/1148#issuecomment-663441179,
it appears that there are currently no known issues to the team with regard to using CocoaLumberjack with Xcode 12.
However, I cannot seem to use Carthage to build CocoaLumberjack at all when using the Xcode 12 command line tools:
JJs-Mac-Pro:~ Junjie$ xcode-select -p
/Applications/Xcode-beta.app/Contents/Developer

Where Xcode-beta.app is 12.0 beta 3 (12A8169g).
It keeps failing with exit code 65. Log reflects:
** BUILD FAILED **

The following build commands failed:
	Ld /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Intermediates.noindex/Lumberjack.build/Release-iphonesimulator/CocoaLumberjack.build/Objects-normal/arm64/Binary/CocoaLumberjack normal arm64
(1 failure)

To reproduce, create a new folder, add a Cartfile with the contents:
github "CocoaLumberjack/CocoaLumberjack"

Then, run carthage update:
JJs-Mac-Pro:Test Junjie$ carthage update
*** Fetching CocoaLumberjack
*** Checking out CocoaLumberjack at "3.6.2"
*** xcodebuild output can be found in /var/folders/22/9f8740yd0lb6d4fx7jfj55p40000gn/T/carthage-xcodebuild.0lv3Ec.log
*** Building scheme "CocoaLumberjackSwift" in Demos.xcworkspace
Build Failed
	Task failed with exit code 65:
	/usr/bin/xcrun xcodebuild -workspace /Users/Junjie/Documents/Test/Carthage/Checkouts/CocoaLumberjack/Demos/Demos.xcworkspace -scheme CocoaLumberjackSwift -configuration Release -derivedDataPath /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2 -sdk iphonesimulator -destination platform=iOS\ Simulator,id=D7233C03-CF71-4CBF-9945-0E828341CC90 -destination-timeout 3 ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES build (launched in /Users/Junjie/Documents/Test/Carthage/Checkouts/CocoaLumberjack)

This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/22/9f8740yd0lb6d4fx7jfj55p40000gn/T/carthage-xcodebuild.0lv3Ec.log
JJs-Mac-Pro:Test Junjie$

The full log file can be found here: https://dsc.cloud/2600e7/carthage-xcodebuild.0lv3Ec.log

An excerpt of the portion from the logs of the portion that failed:
Ld /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Intermediates.noindex/Lumberjack.build/Release-iphonesimulator/CocoaLumberjack.build/Objects-normal/arm64/Binary/CocoaLumberjack normal arm64 (in target 'CocoaLumberjack' from project 'Lumberjack')
    cd /Users/Junjie/Documents/Test/Carthage/Checkouts/CocoaLumberjack
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios8.0-simulator -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.0.sdk -L/Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Products/Release-iphonesimulator -F/Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Products/Release-iphonesimulator -filelist /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Intermediates.noindex/Lumberjack.build/Release-iphonesimulator/CocoaLumberjack.build/Objects-normal/arm64/CocoaLumberjack.LinkFileList -install_name @rpath/CocoaLumberjack.framework/CocoaLumberjack -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Intermediates.noindex/Lumberjack.build/Release-iphonesimulator/CocoaLumberjack.build/Objects-normal/arm64/CocoaLumberjack_lto.o -Xlinker -objc_abi_version -Xlinker 2 -fembed-bitcode-marker -fobjc-arc -fobjc-link-runtime -fapplication-extension -ObjC -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Intermediates.noindex/Lumberjack.build/Release-iphonesimulator/CocoaLumberjack.build/Objects-normal/arm64/CocoaLumberjack_dependency_info.dat -o /Users/Junjie/Library/Caches/org.carthage.CarthageKit/DerivedData/12.0_12A8169g/CocoaLumberjack/3.6.2/Build/Intermediates.noindex/Lumberjack.build/Release-iphonesimulator/CocoaLumberjack.build/Objects-normal/arm64/Binary/CocoaLumberjack
ld: in /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.ios.a(floatditf.c.o), building for iOS Simulator, but linking in object file (/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.ios.a(floatditf.c.o)) built for iOS, file '/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/lib/darwin/libclang_rt.ios.a' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

First of all: Release 3.6.2 is targeting Xcode 11.6. For Xcode 12 you should try master...
From what I see in the logs, I'm not sure that'll fix the issue, though. I'm not even sure if that's a problem we can fix. From your extracted portion of the logs, it seems like the linker is mistakenly linking the wrong lib.
I just found this issue in Carthage, which links to this one that seems to have some workarounds.
Could you try those? If it should turn out to be a problem on our side, we'd need to do some more investigation what is actually going wrong.

Thanks, I did also try to specify master branch, which seems to be a few commits ahead, but I encountered the same problem.

I tried the workaround in suggested in https://github.com/Carthage/Carthage/issues/3019#issuecomment-663563290. More specifically, the steps here: https://github.com/Carthage/Carthage/issues/3019#issuecomment-664099506
It seems to build fine with these settings. Thanks for pointing me in the right direction @ffried!

@junjie You're welcome! I'll close this issue for now, since it seems not to be an issue with CocoaLumberjack but rather Carthage. Feel free to re-open this should we need to make any changes to continue supporting Carthage with Xcode 12.


Fix skipping opt out fields

if validation of $personalEmailConfirmation and $personalPasswordConfirmation should be skipped the fields won't be selected by jquery hence there is no .length which results in an error.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/#/issues/SW-15876.
Please use this issue to track the state of your pull request.


CPS-0002 | Pointer Address Removal

Not exactly sure of the new process or if it has been approved for usage, but I figured this was a good one to test out creating a CPS document before drafting the CIP. Open for comments please.

Thank you for writing this @AndrewWestberg , I agree completely with everything in it (and had been planning on writing something similar myself :) ). The original motivation was to have shorter addresses, more for things like paper wallets and the user experience, but I think in practice no one actually cares about them. This was originally given to the design team a requirement, see 2.4.5 Short Addresses in the Shelley design document.

This seems confused over whether it's a problem statement or a solution proposal. While I think it would be nice to have a separate problem statement, I think in this situation there's really only one plausible solution: remove them. So I think this could just be a CIP.

Note that #379 also depends on removing pointer addresses.

@dcoutts @AndrewWestberg if removing pointer addresses is indeed a dependency of implementing Ouroboros Leios then I would recommend (and will bring up during the triage of this proposal in today's CIP meeting) that this be converted into a CIP with a clear Path to Active indicating that dependency.

Would it make sense to frame this CPS more as a problem than as an actual solution? The problem being that pointer addresses are unpractical for various reasons, they're also an obstacle to getting Leios implement (@dcoutts I'd by the way appreciate some lights on that, because this doesn't strike me as obvious 🤔?).
One "obvious" solution is to remove them; and the less obvious thing is how and what are the implication for owners of those addresses. This can come as a CIP later on; in the implementation plan of Leios.

The problem being that pointer addresses are unpractical for various reasons, they're also an obstacle to getting Leios implement (@dcoutts I'd by the way appreciate some lights on that, because this doesn't strike me as obvious thinking?).

@KtorZ See the report section 4.6 for details. In summary, the correctness of the new "reassembly" operation relies on the ledger having a "determinism" property. We believe the pointer address feature violates this property.

Hey @AndrewWestberg, due to lack of author activity I am going to mark this proposal as waiting for author.
Please let us know if you still want to pursue this problem statement nerd_face.

I think it doesn't need to be pursued as a problem statement. If the plan is already to remove pointer addresses on the IOG roadmap, we don't really need this.

Confirming: the pointer addresses have been removed in the Chang hardfork (IOG Discord): https://discord.com/channels/826816523368005654/1229425972105838642/1279953687393075211


remove pyproject.toml

Description
This PR added a setup.py file to manage the setuptools packaging. However, this seems to conflict with the packaging information in the pyproject.toml file. As a result, for the past few months, the correct dataset yaml files haven't been installed. This means that in my runs, I've been using the old datasets from Dropbox. This bug only became apparent when trying to train on SPICE, as the checksum in the yaml file didn't work with the hdf file on Dropbox.
One easy fix is to remove pyproject.toml.
Todos

[ ] Add test to make sure that we are downloading from zenodo

Questions

[ ] Question1

Status

[ ] Ready to go

Ian switched this up in PR #242 which is now merged.  I think we can remove this PR.


get_latest_run_id working on Windows as well

Description
Changed path creation from string manipulation to os.path.join in order to ensure platform independent operation.
Motivation and Context

[ ] I have raised an issue to propose this change (required for new features and bug fixes)

A new experiment used to overwrite the experiment with id 1 on Windows, bevause get_latest_run_id always returns 1
Types of changes

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

Checklist:

[x] I've read the CONTRIBUTION guide (required)
[ ] I have updated the changelog accordingly (required).
[ ] My change requires a change to the documentation.
[ ] I have updated the tests accordingly (required for a bug fix or a new feature).
[ ] I have updated the documentation accordingly.
[ ] I have reformatted the code using make format (required)
[ ] I have checked the codestyle using make check-codestyle and make lint (required)
[ ] I have ensured make pytest and make type both pass. (required)

Note: we are using a maximum length of 127 characters per line

Hello,
thanks for the PR =) (please update the changelog next time too ;) )


Config macro to automatically swap A/B for Nintendo gamepads

Could this swap happen at the remapping phase of connecting a gamepad?

input_binding_gamepad_confirm_button(), input_binding_gamepad_cancel_button()

#706


Container started with --rm isn't removed after start failure

First invocation:
docker run --rm --name=example --link b0rk:b0rk ubuntu
2014/06/29 11:14:22 Error: Could not find entity for b0rk

Second invocation:
$ docker run --rm --name=example --link b0rk:b0rk ubuntu
2014/06/29 11:14:50 Error: Conflict, The name example is already assigned to 7e0e4f5268a8. You have to delete (or rename) that container to be able to assign example to a container again.

This hit me with surprise. I expected the first run to leave no garbage because of --rm. If this is the desired behaviour it should be documented on https://docs.docker.com/reference/run/.
This should also be handed on the daemon side not client side.

That would help me out as well.

https://github.com/docker/docker/pull/11570 covered the first part of this, now we just need to handle the code on the daemon side.

I could do the daemon side validation too if this is ok!

yes for sure!
On Tue, Apr 7, 2015 at 2:25 PM, Antonio Murdaca<EMAIL_ADDRESS>wrote:

I could do the daemon side validation too if this is ok!
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/6757#issuecomment-90736821.

#dibs then! I'll look for anything like trying to run a container with the same name and the like and remove the container if such situations arise in the daemon. Also I was thinking, if container removal should be handled daemon side, would it be ok to put an AutoRemove flag in runconfig/HostConfig struct and then moving existing client removal in the daemon? @jfrazelle

yeah sounds good in HostConfig, then we can remove all the clientside removal code

That's my plan! :smiley_cat:

perfect :D

working on this now :)

:+1: for handling removal daemon side. That's a big win. Is there a plan on how to implement this? Will we see the container get removed if the docker client is killed, for example?

@pwaller could you explain further what you mean by if the docker client is killed?

If you do kill -9 $(pid of 'docker run'), does the container get rm'd?

In order to respond to that, the only way I'm aware of, is to respond to the socket being closed, along the lines of what #9774 does.

ok then yes I think this would be supported when daemon side container removal is implemented (something like what you did in that PR, it's still wip btw)

#12444 could also be fixed with this PR

This should now be fixed by https://github.com/docker/docker/issues/15230


km-0000080a.ini for Spanish Latin American

Thanks for including it!!!
km-0000080a.ini

Also updated xrdp_keyboard.ini is required.

Thanks for your attention!
I need help modifying that file though.
setxkbmap -query:
model:      pc105
layout:     latam

So, I have come with this half of the equation:
[default_rdp_layouts]
rdp_layout_XXX=0x0000080A

[default_layouts_map]
rdp_layout_XXX=latam

[rdp_layouts_map_mac]
rdp_layout_XXX=YYY

I don't know what value to use for XXX, how can I find it out?
Maybe XXX should be equal to "latam" but I am not sure.
And I don't have a Mac so I don't know what should be used for YYY too.
But if you can guide me, I may be able to use the Mac of a friend if necessary.
Thanks a lot!!!

It does not necessarily need to be equal to latam but latam would be fine.


pybids crashing

Pybids crashes immediately when called in qsiprep-0.16.x. Even from a shell into qsiprep-0.16.1 using Singularity on a Linux workstation and calling pybids causes an immediate crash.
$ singularity shell /opt/SingularityImgs/qsiprep-0.16.1.sif
Singularity> pybids
Traceback (most recent call last):
 File "/usr/local/miniconda/bin/pybids", line 5, in <module>
   from bids.cli import cli
 File "/usr/local/miniconda/lib/python3.8/site-packages/bids/cli.py", line 52, in <module>
   def layout(
 File "/usr/local/miniconda/lib/python3.8/site-packages/click/decorators.py", line 308, in decorator
   _param_memo(f, OptionClass(param_decls, **option_attrs))
 File "/usr/local/miniconda/lib/python3.8/site-packages/click/core.py", line 2584, in __init__
   raise TypeError("'multiple' is not valid with 'is_flag', use 'count'.")
TypeError: 'multiple' is not valid with 'is_flag', use 'count'.
Singularity>

I see the pybids version included is 0.13.2 (2021-08-20), whereas current pybids is at 0.15.5 (2022-11-08), perhaps it's time to update pybds:
Singularity> python
Python 3.8.10 (default, Jun  4 2021, 15:09:15)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bids
>>> print(bids._version.get_versions())
{'date': '2021-08-20T12:44:44-0400', 'dirty': False, 'error': None, 'full-revisionid': '8ee63bda6244d10aabc97841d2055960af89b373', 'version': '0.13.2'}
>>>

Where I first noticed the error is from trying to run qsiprep with "--bids-database-dir" pointing to a pre-indexed bids-raw layout_index.sqlite (generated using pybids_v0.15.1 from mriqc-22.0.1.sif) for input into qsiprep-0.16.1. I prefer the control of running individual subjects with fixed resources on my Linux 64-core workstation, and staggering individual runs in parallel to maximize resources while also running other container pipelines (fmriprep, mriqc, etc). The reason I want to run with the "--bids-database-dir" option is that otherwise running one subject from a bids-raw folder with >100 subjects triggers pybids each time to index the entire bids-raw folder even though it is only running one specific subject. A bids-raw input folder with ~200 datasets takes 30-40 mins, and therefore adds 30-40 mins unnecessarily re-indexing the entire bids-raw folder! Obviously this is a second issue, related to Issue #217. Perhaps it would be better to have pybids only index the specific subjects/data that is called with "--participant-label"?
Please let me know how I can help solve either issue.
Thanks,
Carl

I think the bug can be addressed by settings the requirement for pybids from "pybids < 0.16.1" to "pybids < 0.16.1,> 0.13.2" (basically skipping the problematic version).

Perhaps it would be better to have pybids only index the specific subjects/data that is called with "--participant-label"?

Is this something leveraged in other BIDS Apps? If so, it seems like a good thing to add.

I'm not aware of other apps that index a single participant. It adds a big delay to processing for large datasets.
In Python, you can do it by exclusion, you have to exclude all the other subjects with the ignore kwarg
ignore_pattern = re.compile(r'^(?!.*\/sub-mysubject($|\/))')
layout = BIDSLayout(bids_root, ignore=[ignore_pattern])


Exit when the first error occurs

Is it possible to terminate the program on the first error? That would be very useful when using the tool as a CI tool for gitlab per-se.
Current behavior: The program continues event if some error occurs (https://github.com/egnyte/gitlabform/blob/84b7986aacb8417021ed8ea7ee2efcc3e517506b/gitlabform/gitlabform/core.py#L222)
Expected behavior: The program terminates immediately when the first error occurs.

Hi @icy !
This behaviour is intentional as we have > 80 projects in some groups managed by gitlabform and we did not want the recurring job that sets/restores settings for them break because of a single broken project.
But I would gladly merge a PR that would add a command line switch that would introduce optional, non-default behaviour that you would prefer, something like https://github.com/egnyte/gitlabform/blob/master/gitlabform/gitlabform/core.py#L98 .

Is this something i can contribute to? I see this issue is still open.

Sure, @jcovington16 , PRs are welcome.

Awesome @gdubicki I really do appreciate it. What can I do to help? Or what do you guys need some assistance on that I can take and complete?

We just need a Pull Request with this feature. :)

Awesome. I will go ahead and do just that.

Fixed in #137 , thanks @jcovington16 ! This will be released in the next version, probably within a week or two.

This has been released in v.1.18.4. Sorry that forgot to describe this release properly - we fixed it now. :)


Limit data used for schema introspection

When reading JSON files, the schema is determined based on the data. It requires reading parts of the whole file. This could be a problem for large files, so there should be a limit on how much data is read, either in size or the number of records (or both). This can also apply to other file formats, like CSV.

Superseded by #269


Usage of uint32_t mipmap_limit to store -1

Godot version:
4.0.dev.custom_build. 69c81309c
OS/device including version:
Ubuntu 20.04
Issue description:
Error
editor/import/resource_importer_texture.cpp:388:26: runtime error: implicit conversion from type 'int' of value -1 (32-bit, signed) to type 'uint32_t' (aka 'unsigned int') changed the value to<PHONE_NUMBER> (32-bit, unsigned)

https://github.com/godotengine/godot/blob/c39d31899a9e35fb1166834c68b566978ef5066d/editor/import/resource_importer_texture.cpp#L396
Code may be good, but still should be changed to e.g.:
 uint32_t mipmap_limit = uint32_t(mipmaps ? p_options["mipmaps/limit"] : -1);

to suppress warning

Hello,
I've submitted a pull-request with a small change fixing the issue.
Note that this:
 uint32_t mipmap_limit = uint32_t(mipmaps ? p_options["mipmaps/limit"] : -1);

results in a compilation error like this:
operands to ?: have different types 'const Variant' and 'int'
  396 |  uint32_t mipmap_limit = static_cast<uint32_t>(mipmaps ? p_options["mipmaps/limit"] : -1);
      |                                                ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
editor/import/resource_importer_texture.cpp:396:56: note:   and each type can be converted to the other

Please, check my PR above (#52440). I use uint32_t() form in it. I can also change it to use static_cast<>() instead if you believe it's better.


Fix test_hooks for Python 3.10 and str annotations

This makes all tests pass but it shows how clunky the hooks become, once string annotations comes into play. So I wouldn't say it's a resolution for #766, but just a step towards clarity.

better fixed by #774


All cars disappearing from individual stations upon return

I've twice encountered a situation where I revisit a station I've done jobs at and all the freight cars have disappeared.
It first happened at Iron Mine West which I dismissed as a freak occurrence. I reloaded a previous save from IMW and the cars didn't disappear again when revisiting the station.
I've now noticed it happening at Harbour. All cars gone. Including cars that spawned which I didn't touch at all.
These both happened in the same game where I started with the PJ mod from the beginning. However I started a couple days before 3.1.0 released by downloading the raw files from Github and building from source. I then updated to 3.1.0 when that released. There were only a couple more git commits between install from source and update.
Let me know if there's any more detail I can provide.

Hi! Thank you for the detailed problem report. I am sorry to read that you are having trouble. It is good that you started a new game with PJ enabled from the start - that rules out many cornercases already.
PJ deactivates itself if it encounters an exception. The game will then be more or less vanilla again. This could explain your observations.
In order to find out why, I need your Player.log file from right after you encounter what you describe. The game overwrites the logfile on restart, so if you've restarted the game since, we need to have it occur again.
You can also find me on Altfuture Discord.

Roger that. Would you prefer me to post here or Discord? Either is fine with me.
Uploaded Player.log. I loaded my last manual save at the sawmill and then quick traveled to Harbour using the map. Walked around a bit to confirm all the cars are gone and then quit the game.
Player.log
It had been several hours of gametime since I was at the Harbour. When I was there I did a bunch of shunting jobs. Went up to Steve's garage to grab the slug. Then went back to Harbour, took a couple of freight jobs for Machine Factory and pulled them there. Since then I've been to and through a fair few other stations.
I mention all that because just to point out it takes more than just leaving and coming back to a station to trigger this bug. I'd been away more than 2 hours from both Harbour and Iron Mine West when everything despawned so the 2 hour limit may play some part in the bug.
Other mods I'm running: Skin Manager, Numbered Locos, Vanilla Numbered Skins, Discreet Info Plates, Booklet Organiser.
Love this mod btw, helps a lot with immersion- thanks for making it!

Thank you for taking the time to check your savegame and upload the Player.log. However, I cannot see any exception that would originate from PJ.
I may not have been specific enough before. What we need is a Player.log where the problem actually occurs. I guess in your savegame there already weren't any cars at HB and then that did't change when you travelled to HB. But the bug most likely occurred way before that, then you saved, closed the game, and when you started and loaded the savegame as of today, you saw the effect, but not the cause, and thus there is no hint in the log files
I know it may be rather hard to pinpoint it exactly if/when it happens. I'd suggest you reach out to me on discord and we can discuss options?
By the way, there is a console command (they all start with PJ.) To clear the station spawn flag. This way, you can at least make cars spawn again in HB (execute the command and re-enter HB) and not lose youre other progress in the save.
Many thanks for your praise, love it when people love the mod and it helps me stay motivated!

No worries and thanks for the advice on that console command, just tried it.
I just DMed you on Discord. Yes this will be tricky to pinpoint.

I reckon it's past time to close this. I've never been able to replicate this issue again after many hours of gameplay including trying to purposely leave cars in dodgy places halfway out of stations or switches.

Hi James! Many thanks for trying to replicate this bug and deciding it's time to close it. Also, PJ has gone some steps since then, maybe it's just not reproducible anymore.


Depend on Arrow Subcrates

Is your feature request related to a problem or challenge?
Currently the various DataFusion components all depend on arrow, this means that it must wait for the entirety of arrow-rs to compile before it can start compiling crates from datafusion. This is despite crates like datafusion_common likely not needing to depend on heavy crates like arrow-ord and arrow-arith.
Describe the solution you'd like
I'd like DataFusion crates to depend on the relevant subcrates, instead of the top-level kitchen sink crate
Describe alternatives you've considered
We could not do this
Additional context
No response

Refactor the DataFusion Cargo.toml files. For each DataFusion component, update the Cargo.toml file to replace the top-level Arrow dependency with the specific subcrates identified .
For example, if a DataFusion component currently has the following dependency in its Cargo.toml:
[dependencies]
arrow = "x.y.z"

And it only needs the arrow-array, arrow-ipc, and arrow-compute subcrates, you can update the Cargo.toml file as follows:
[dependencies]
arrow-array = { version = "x.y.z", package = "arrow" }
arrow-ipc = { version = "x.y.z", package = "arrow" }
arrow-compute = { version = "x.y.z", package = "arrow" }

-Update the DataFusion source code: Modify the import statements in the DataFusion source code to use the specific subcrates instead of the top-level Arrow crate. This may require updating module paths and potentially some minor code changes to accommodate the new dependencies.
-Test the refactored DataFusion components: After refactoring the dependencies, run the test suite to ensure that all DataFusion components still function correctly. Address any issues that arise during testing.
-Benchmark and document the improvements: Measure and document the improvements in compilation time and binary size reduction as a result of this refactoring. This can serve as a reference for future optimizations.
Please Let me know if this solution is relevant or am I going wrong?

Honestly I think this issue should be closed as there won't be that much value -- e.g., datafusion-common depends on pyarrow which doesn't exist as a standalone crate so you are stuck with arrow, as well as depending on at least 10 arrow subcrates, including the mentioned arrow-ord, for other reasons...

I agree -- the work described in this issue only makes it harder to work with datafusion


Post on no release

Merging this PR will not publish a release.null

Merging this PR will not publish a release.

Merging this PR will publish the following release:

2.0.0 (2017-12-27)
Features

create-changelog: post "no release" if changelog is null (c016a02)
use analyzeCommits as hook to post "no release" comment (7916dfe)

BREAKING CHANGES

Due to limitations in how plugins may be composed,
semantic-release-github-pr must unfortunately hard-code the
analyzeCommits plugin (see discussion
here).

Users may still want to define a custom analyzeCommits plugin,
or want to pass options to the default
analyzeCommits plugin.
To work around this problem, set the desired analyzeCommits configuration in
the release plugin config
inside the githubPr key instead.

Merging this PR will publish the following release:

2.0.0 (2017-12-27)
Features

create-changelog: post "no release" if changelog is null (c016a02)
use analyzeCommits as hook to post "no release" comment (028180e)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits plugin (see discussionhere).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.

Merging this PR will publish the following release:

2.0.0 (2017-12-27)
Features

create-changelog: post "no release" if changelog is null (c016a02)
use analyzeCommits as hook to post "no release" comment (563a163)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits (see discussion here).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.

Merging this PR will publish the following release:

2.0.0 (2017-12-27)
Features

create-changelog: post "no release" if changelog is null (c016a02)
use analyzeCommits as hook to post "no release" comment (563a163)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits (see discussion here).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.

Merging this PR will publish the following release:

2.0.0 (2017-12-27)
Features

create-changelog: post "no release" if changelog is null (d551a80)
use analyzeCommits as hook to post "no release" comment (3007103)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits (see discussion here).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.
[ch2604]

Merging this PR will publish the following release:

2.0.0 (2017-12-28)
Features

create-changelog: post "no release" if changelog is null (d551a80)
use analyzeCommits as hook to post "no release" comment (3007103)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits (see discussion here).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.
[ch2604]

Merging this PR will publish the following release:

2.0.0 (2017-12-28)
Features

create-changelog: post "no release" if changelog is null (d551a80)
use analyzeCommits as hook to post "no release" comment (85535b3)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits (see discussion here).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.
[ch2604]

Merging this PR will publish the following release:

2.0.0 (2017-12-28)
Features

create-changelog: post "no release" if changelog is null (d551a80)
use analyzeCommits as hook to post "no release" comment (bcba9d2)

BREAKING CHANGES

Due to limitations in how plugins may be composed, semantic-release-github-pr must unfortunately hard-code the analyzeCommits (see discussion here).

Users may still want to define a custom analyzeCommits plugin, or want to pass options to the default analyzeCommits plugin. To work around this problem, set the desired analyzeCommits configuration in the release plugin config inside the githubPr key instead.
[ch2604]


API Does Not Return a Web Format

The API is currently returning data in string format like, '[(0.9944695830345154, 73), (0.9944115281105042, 160), (0.994175374507904, 81)]' is not a web format. It should return JSON formatted data.

To be clear, are we looking for:
...
"msg": [
  { "score": 0.994469,
    "incident_id": 73  },
  { "score": 0.994411,
    "incident_id": 160  }
]

That would work. Right now I need to do something like below, which is a lot more hacky than JSON.parse (which could process the above).

msg also looks like it is from an example and likely should either be renamed, or the document beneath it should replace it.

With msg I was trying to encapsulate the return value response from the server away from header and warning information but we can modify that for sure. The string representation is very helpful for internal python work, so would it be absurd to return the data in json format as well as a string, side-by-side?

Encapsulation is fine, but it isn't really a message, it is a result, a collection of similar, or another label.
But Python understands JSON as well...

import json
doc = json.loads(string_representation_json)
str_representation = json.dumps(doc)

We were specifically using the string because it can be literal_eval'd directly to the format that PyTorch likes for cosine similarity, but I suppose we could always write a function that generates json from the list / iterates through the json to generate that list. I'm not personally set on anything.
Would result be a redundant/poor choice for an encapsulating layer?

It is the result but also may be the input for future endeavors in additional lambdas and such, we were wanting to talk about that this coming meeting, and I talk about it briefly in the PR I just opened


Build target "env variables" and compiler-level conditionals

The idea here is to introduce compiler-level conditionals, which would allow pieces of the Lua source to be added or ignored, based on a set of "environment variables" set in the project.json file, more specifically under each build target.
For example, let's say we have the "development" build target, under which the following is added:
{
  "environment": {
    "debug": true,
    "test": "some value"
  }
}

Now, insider our code, we can have something like this:
--#IF debug
system.print('debug is enabled')
--#ENDIF

--#IF test "some value"
system.print('some value provided')
--#ENDIF

In the example above, whenever environment.debug exists and is true, the first block will be added to the source code, while for the second block, whenever environment.test matches "some value", the second block will be added to the source code.

This is a very good idea.
I'm currently working on a Lua-based detection system for environments.
Here is the skeleton I use for my applications
https://github.com/leniver/du-lua-template/tree/master
As you can see in the code, if debug is "true" I am loading file from the disk.
Not sure if I would use more than a single boolean.
--#IF development
system.print('debug is enable')
--#ENDIF

In my case, I use different variables in Lua depending on development and production. As the 'testing' stage is mainly done in-game, I use 'exported' variables to help me with development/testing.
I would certainly use this condition to prevent the exposure of these variables.

Pushed the first pieces of code for this.

Changed syntax to ---@if instead of --#IF;
Added new variables optional property inside build targets;
Added new --var: prefix to the command-line, allowing to override build target values;

@leniver it should be possible to do it with the code in the development branch, it will run in a new directive pre-processing step, essentially transparent to the existing require handling code, which should avoid leaking your testing stuff or shipping debug functions in production scripts.
If you want to try it out, make sure you pull the code from that branch locally and build it with npm run build.


Add Travis badge

sorry, I didn't mean to remove @white238 as a reviewer!

Can you take a pass at adding the appveyor badge as well?
https://www.appveyor.com/docs/status-badges/

I need the URL from you for that one - it's available in the project settings on Appveyor.

Forgot it's under my name some how:
This is the project status one:
[![Build status](https://ci.appveyor.com/api/projects/status/fuaftu9mvp0y488j?svg=true)](https://ci.appveyor.com/project/cyrush/blt)

This is the master only status:
[![Build status](https://ci.appveyor.com/api/projects/status/fuaftu9mvp0y488j/branch/master?svg=true)](https://ci.appveyor.com/project/cyrush/blt/branch/master)

Added.


lack of firewall rules upon install

Hi,
firstly thanks for all your efforts, I installed PiVPN on an Armbian Actions S500 board which seemed to go ok .. but for some reason i ended up without the firewall rules needed for it to work (and be reasonably secure (particularly SSH) ... I know very little about IPtables but i have come up with a set of rules that seem to work and are autoloaded upon the wifi interface coming up :
It would be great if someone more familiar with IP tables could correct any silly errors  I have made
(and perhaps put a vanilla script in the install to help others ?)
thanks in advance
ian

#!/bin/sh
#Firewall rules in script at /etc/network/if-up.d/firewall
#Remember to make this script executable
Drop ALL INPUT FORWARD connections / Accept ALL OUTPUT by default
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#Lock down SSH port to access from local network ONLY
iptables -I  INPUT -s <IP_ADDRESS>/24 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j ACCEPT
#allow the UDP connection on the openvpn port
iptables -A INPUT -i wlan0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
#Allow TUN interface connections to OpenVPN server
iptables -A INPUT -i tun+ -j ACCEPT
Allow TUN interface connections to be forwarded through other interfaces
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
#NAT the VPN client traffic to the Internet. change the ip address mask according to your info of tun0
iptables -t nat -A POSTROUTING -s <IP_ADDRESS>/24 -o wlan0 -j MASQUERADE

In my case, I didn't need the ssh access restrictions and a simpler set of rules worked:
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -s <IP_ADDRESS>/24 -j ACCEPT
iptables -I INPUT -p udp --dport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s <IP_ADDRESS>/24 -j SNAT --to


BUG: Read more option visibility issue

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
The read more option in the benefits container is not completely visible in dark mode due to the the hover effect this hampers the readability of the site .

I would like to work on this issue please assign it to me under GSSOC'24
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@anuragverma108  @huamanraj  please assign this issue to be under GSSOC'24

Assigned!


Look vs look

I ended up using
import look, {StyleSheet} from 'react-look';

instead of
import Look, {StyleSheet} from 'react-look';

Because, I'm enforcing some eslint rules:
I had an error when doing
export default Look(Component);

A function with a name starting with an uppercase letter should only be used as a constructor  new-cap
(http://eslint.org/docs/rules/new-cap.html)
Would you consider migrating from an uppercase to a lowercase in the documentation?
For instance, react-redux is using connect().

Let me have some time to think about why I ever used a uppercase there. But sure you're right, we could have everything migrated, but that's quite a bit of work replacing it everywhere within code blocks while others remain uppercase. Feel free to have a PR ;)

Let me have some time to think about why I ever used a uppercase there. But sure you're right, we could have everything migrated, but that's quite a bit of work replacing it everywhere within code blocks while others remain uppercase. Feel free to have a PR ;)

Let me have some time to think about why I ever used a uppercase there.

May be because Radium do.

Feel free to have a PR

Yes, I was thinking about this. But I haven't decided yet which solution I will use for styling my components :grin:.

@oliviertassinari Have you thought about it? For me it makes sense to rename everything.. I am right now just about to reach a milestone at another projects, will have time for Look again next week!


Oracle Contracts for Testnets (Rinkeby & Kovan)

There have been a few requests for the OrFeed Oracle to be used and tested in testnet environments.
This will require the default tokens (about 15 or, such as SAI, DAI, LINK, CDAI etc) to have addresses updated for the testnets, as well as Synths such as USD, JPY etc in the main contacts (contracts/orfeed.sol and draftpremium.sol) so it can have the same functionality as the main contract.
To solve this, we will need a pull request into the develop branch for new folders in the contracts folders for kovan and rinkeby with the appropriate orfeed.sol contract.
Please verify the contract on Etherscan so it can be tested on etherscan/dapp site.
Additionally, please update the README to have support for instructions on the testnets.

Issue is allegedly solved. Will create another issue for tests. Testnet addresses are at the bottom. @mul1sh, let me know if this doesn't work on your end. I don't know if Synths work properly (USD, EUR, etc)... or just share your telegram ID and we can chat about it.

@mikedeshazer sure no worries, my telegram id is @MuliliN, we can chat more there. Thanks 🙂


Sync with nerves_system_x86

This will sync up with upstream

Thanks for the help with this one @electricshaman :heart: