Loop unrolling and compile-time constant parameters

We eventually need to implement the semantics of the HLSL [unroll] attribute in our back-end. Furthermore, to really match the behavior people expect when generating GLSL/SPIR-V we may also need to detect loops that require unrolling (even if the user hasn't added the [unroll] atribute).
An important challenge is that a loop that needs unrolling might be in a function, where the loop termination depends on a function parameter. In that case, we also have an implicit restriction that the function parameter needs to be a compile-time-constant. (Also, when generating GLSL/SPIR-V we'd need to ensure that we either inline the function or specialize it for each call site).
My proposed model for implementing this is to add a notion something like C++ constexpr (I'd prefer either constant or @Constant...), and then allow functions to have constant parameters. When calling a function with a constant parameter, the corresponding argument would then be restricted to be constant, etc.
(Note: if should in principle be possible for interface requirements to have constant parameters, which would then allow (but not require) an implementation to mark the corresponding parameter as constant)
In addition to an explicit constant modifier, we'd probably also need an implicitlyConstant modifier that indicates that a parameter needs to be a compile-time constant, but the front-end can't actually enforce this because of HLSL compatiblity.
After generating initial IR in the front-end, we can identify SSA instructions that need to be constant (either explicitly or implicitly) and then do a backwards dataflow pass to infer instructions that need to be constant in order to make things work (e.g., if c = a + b and c is implicitly constant, then we can infer that a and b are implicitly constant, etc.).
(If a function call instruction gets marked constant, then we need to ensure that it is a function we can constant-fold; for now that might be limited to a pre-selected set of builtins, but eventually it should be possible for the user to mark functions with the equivalent of C++ constexpr)
When an ordinary block parameter needs to be constant, we first need to make sure that any argument passed to the block for that parameter is also constant. In principle we also need to ensure that any branch decision that determines which entry edge for the block gets taken is based on a constant value. Getting that bit right will require computing a control dependence graph, and then figuring out how to use it to isolate the conditions we care about.
A loop that is marked [unroll] should force any branch condition that the loop header is control-dependent on to be marked constant (if I'm understanding correctly).
If a function parameter that wasn't explicitly marked constant gets inferred to be constant, then we'd need to issue an error message if that function is part of the public interface of a module being compiled as a library, or is used to satisfy an interface requirement (that is, it is referenced in a witness table entry). For backwards compatibility, a user module being compiled for its entry points would be considered to have no public symbols.
Once a function parameter is inferred to be constant, any call sites for the function need to infer the corresponding argument to be constant. (For calls into interface methods with constant parameters, the front-end should have done the marking).
All of the marking can in principle be done during front-end IR generation, because there will be explicit constant annotations on any imported symbols so that the inference step doesn't need to cross module boundaries.
In the back-end, once the full call graph is fixed (all specialization has been performed), We should be able to perform a kind of specialization step where a specialization is triggered for a function + a list of values for its constant parameters. Functions with no constant parameters would form the initial work list.
Within a function, the specialization process can work by lazily constructing specialized blocks (or re-using existing unspecialized blocks). Similar to the case for functions, the per-block specialization step would use a cache indexed on a block + values for the constant parameter of the block (and intially the work-list starts with the entry block).
When specializing a block we can directly re-use (or clone...) the non-constant instructions in the body, and constant-fold the constant instructions. When we reach the end of the block, we can identify specialized successor blocks that need to be generated. (We should avoid requesting/generating successors in cases where the branch condition is a known constant...)
(One gotcha I'm just realizing there is that the right specialization for a block might also depend on how any of its dominators have been specialized, so the keying needs bit more thought than block+arguments)
If we do this right, it should serve to both perform simple specialization for constant values and loop unrolling. One big gotcha is that nothing about the constant propagation step will ensure that a loop that needs to be unrolled will actual unroll to a finite number of blocks, so we'd probably need to have a termination condition like fxc for the case where a loop takes too long to unroll.

The more I think about this, the more I'm convinced I don't know what the definitions should be for the two big challenges here:
Loop Unrolling
When we decide that a loop should be [unroll]ed, which values in the IR should then be marked as constants? My original message says anything that a loop back-edge is control-dependent on, which seems reasonable, but rules out certain cases where you have a loop with a bounded number of iterations, but also some early-exit conditions.
As an example:
for(int ii = 0; ii < COUNT; ++ii) {
    if(someBuffer[ii]) break;
    // do stuff
}

The challenge in that example is that the loop body first tests the ii < COUNT condition, which is the one we expect to turn out to be constexpr, and then tests someBuffer[ii], which is never going to be constexpr.
If we compute control-dependence for this code, we'll find that hte loop back-edge is control-dependent on the second test, and not the first (because the second test is that one that leads to the back-edge definitely being executed).
For the loop to be unroll-able, we really just require that one of the loop termination conditions is a constant expression. That is, for any path from the loop header back to itself, there should be at least one block with a branch based on a constant condition where the alternative not taken can lead out of the loop.
The challenge in a case like this is then in identifying which conditions inside the loop should be the ones marked as constants.
Propagation of Constant-ness
The other problem continues to be propagation of constant-ness in the presence of control flow.
Specifically, when we discover that a "phi" needs to provide a constant result (and lets assume for now that it is not a phi in a loop header...), we need to identify which branch conditions should be marked constant, such that it will always be statically determined which edge is used to enter the block.
(Actually, we'd really want to identify which equivalence class of incoming edges is taken, using equivalence of constant arguments provided to the block. One could imagine a pre-process that identifies when multiple predecessors of a block with a phi pass in the same arguments (for constant parametesr) and replace them with a new block that represents the merge of all of them, after which each equivalence class would show up as a single edge...)
A naive answer would be to look at the predecessors of the phi block, and find conditions that each of them is control-dependent on. The problem is that control dependence tells us "when this condition goes a certain way, this block/edge is definitely executed," and we actually don't care about when the block is definitely executed - we care that in cases where the phi is going to be executed a particular predecessor will be executed.
To try to make a concrete example:
for(...) {
    int x = 0;
    if(someCondition) {
        if(someOtherCondition) continue;
        x = 1;
    }
    callThatRequiresConstant(x);
}

In this example, the edge that would pass x = 1 to callThatRequiresConstant is control-dependent on someOtherCondition and not someCondition, but looking at the code above, it is clear that for constant-ness to be correct here, we require that someCondition be marked constant, and we don't actually care about someOtherCondition (whether or not it is true doesn't affect what value the downstream call sees).

Okay, I think I've got an idea of how to solve the second problem ("I need this block parameter to be constant, what conditions also need to be constant?") using an iterated solver on the CFG.
For every block, we'd define its corresponding "decision-maker" block, which is conceptually the block that decides what value(s) reach the constant parameter(s) of our target block X.
The decision-maker block for each predecessor P of X will be initialized with P itself, because P determines which values reach X. If we want to get fancy, we could pick one representative predecessor for each unique equivalence class of values being passed along.
The decision-maker for all other blocks would be initialized to null to indicate that we don't even know if X is reachable from those blocks.
Now we can iterate to update the decision-maker for each block B, based on its successors:

If there is only one successor S and decisionMaker(S) is non-null, then set decisionMaker(B) to decisionMaker(S).

If there are multiple successors, but there is only one non-null decision-maker between them, then set decisionMaker(B) to that decision-maker block

If the successors have more than one unique non-null decision maker, then set decisionMaker(B) to B itself

This should be monotonic, so that the decision-maker for a block can only ever change from null, to the block itself, to some other block.
We might need to be a little careful to not overwrite the decision-maker for any of the predecessors of X, and we shouldn't need a decision-maker for X at all. In fact, we should not bother going past the immediate dominator of X in the CFG, since control-flow decisions there can affect the flow of values to X, but not the edge used to enter X.
(I'll need to go to a whiteboard and convince myself this will actually work in the presence of loops)
After things have converged, any block that has multiple non-null decision-makers among its successors would need to constrain its branch condition to be a constant. This might work.

This is implemented. We now have [ForceUnroll] and basic AST-level analysis of static loop bounds.


Add Node.js 10.

/CC @vladikoff

@vladikoff: can you also protect all master branches of this organization's repos? So that force pushes are not allowed, including admins. Ideally, I'd also require CI to be passing.

@vladikoff: I created the tag here but I don't have npm publish rights so please publish it


steamvr leap motion

hello I have done all the steps but can not find openvr and it still not working on steamvr can you help thank you

First of all you need to download the Leap Motion Developer Kit for VR and install it before you move on.

Step download this driver

Stop download the SDraw driver https://github.com/SDraw/driver_leap/releases/tag/0.0.8

Step extract the leap motion driver and the SDrawer driver

Step install this driver

Step go to where you've installed this driver usually: "C:\Program Files\SteamVR Leap Motion driver" and copy the "leap" folder.

Step go to your Steam install location usually: "C:\Program Files (x86)\Steam" and go to the sub folder "\steamapps\common\SteamVR\drivers" (usually the full path is "C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers") and past the "leap" folder copied in step 5.

Step copy all files from inside the SDraw driver folder

Step go again to your Steam folder like in step 6 and got to this subfolder: "\leap\bin\Win64" (usually the full path is: "C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\leap\bin\Win64") and paste all the files in it (overwrite files if it asks you).
Your folder should look like this:

Step start Steam and than SteamVR, it should detect 2 additional controllers (your hands :D ).

Thank you does this affect VR games because ever since I downloaded it my
game seem to laggout also how can I uninstall the leap motion just in case
I've got the wrong one then i will download the right one thank you
On Mon, Apr 8, 2019, 11:20 PM ich777<EMAIL_ADDRESS>wrote:

First of all you need to download the Leap Motion Developer Kit for VR and
install it before you move on.

Step download this driver
2.
Stop download the SDraw driver
https://github.com/SDraw/driver_leap/releases/tag/0.0.8
3.
Step extract the leap motion driver and the SDrawer driver
4.
Step install this driver
5.
Step go to where you've installed this driver usually: "C:\Program
Files\SteamVR Leap Motion driver" and copy the "leap" folder.
6.
Step go to your Steam install location usually: "C:\Program Files
(x86)\Steam" and go to the sub folder "\steamapps\common\SteamVR\drivers"
(usually the full path is "C:\Program Files
(x86)\Steam\steamapps\common\SteamVR\drivers") and past the "leap" folder
copied in step 5.
7.
Step copy all files from inside the SDraw driver folder
8.
Step go again to your Steam folder like in step 6 and got to this
subfolder: "\leap\bin\Win64" (usually the full path is: "C:\Program Files
(x86)\Steam\steamapps\common\SteamVR\drivers\leap\bin\Win64") and paste all
the files in it (overwrite files if it asks you).
Your folder should look like this:
[image: Screenshot]
https://user-images.githubusercontent.com/28066518/55760710-30e0ad80-5a5d-11e9-8768-524b48f0136c.jpg
9.
Step start Steam and than SteamVR, it should detect 2 additional
controllers (your hands :D ).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cbuchner1/driver_leap/issues/42#issuecomment-481029411,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AtpqAi8pae_evxhnqLstr7N_WIjnB8R4ks5ve8CTgaJpZM4bINU5
.

What do you mean exactly, if the driver works your hands are emulated htc vive controllers.
To delete:
Just delete the folder created in step 8 (usually "C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\leap") and uninstall the driver from "Programs and Features" in the "Controll Panel".

I see thank you it did work but after downloading it is seem to lagout my
system but I downloaded the wrong thing I think first but thank you I'll
delete it and re-download the right one
On Mon, Apr 15, 2019, 10:57 AM ich777<EMAIL_ADDRESS>wrote:

What do you mean exactly, if the driver works your hands are emulated htc
vive controllers.
To delete:
Just delete the folder created in step 8 (usually "C:\Program Files
(x86)\Steam\steamapps\common\SteamVR\drivers\leap") and uninstall the
driver from "Programs and Features" in the "Controll Panel".
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cbuchner1/driver_leap/issues/42#issuecomment-483187737,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AtpqAjFwf1Q780UjYIJzIy3lySzCjtl8ks5vhE0FgaJpZM4bINU5
.

Hello! Is there a way you can link to the "Leap Motion Developer Kit for VR"? I can't seem to find it.

I don't know if you can still download it since the company is now named Ultraleap and the software now I think is Gemini if I'm not mistaken.
I haven't done much lately with it so I really can't help here.


Unit testing

Automate testing via official framework, and use Continuous Integration
As far as I can tell, the unit tests in demos/unit_tests.m are not automated and instead plot results that are meant to be interpreted by a human.
We should export these tests where they can be automated into tests using the official MATLAB Unit Testing Framework that was released as of version 2013a by, in part, the author of the unofficial xUnit testing kit.
Surprisingly, this built-in testing kit is capable of Continuous Integration using Jenkins -- this means that once we have tests built, we can use Jenkins to AUTOMAGICALLY run the test suite for every commit we want it to (or just every commit), which will make it MUCH easier to both debug new bugs and understand how much is broken by new code changes.
The only caveat is, if it takes too much processing power (or there are firewall/network issues) to run the tests on someone's login-node account on the SCC, then we'll need some dedicated unix/linux server with MATLAB on it to run the Continuous Integration (this isn't necessary for testing in general). This shouldn't be a big problem though as I know there's at least one box with MATLAB on it in Caroline's/Ben's/Jason's office and Caroline has said we could use it. I've never used CI before, but my guess is there's just a Jenkins server/process that, when someone makes a commit, simply runs the test suite and then somehow saves/uploads the results of the test run.
The hard part of this will be converting/building tests that are automated and dependent on some value or properties of the output of the functions. E.g. do we want to use canonical models, where we pass in specific seeds and test for explicit simulated results? The problem with this is floating point error (e.g. from cosmic radiation hitting the CPU giving us a very slightly different number, and yes this is a real concern...really!), although this may easily be solved by broad logical checking e.g. V(t=100000) < -65. My gut feeling based on thinking about this for two minutes is: where it's easy and it makes sense, we write in some canonical modeling/simulation tests for simple models that meet different categories (single cells, N cells of same population, multiple populations with different synapses, differentn synaptic connectivity paradigms, etc.), but because so much of the code is not actually doing any math and instead transforming data or generated data structures, most of the code can have simpler tests than what I just described.

https://www.mathworks.com/help/matlab/class-based-unit-tests.html

if we convert all nested functions to local functions, we can use function localfunctions to get function handles to the local functions and test them separately.

should we end up having a separate branch including the mat files for unit testing?

How about master (i.e., our debug branch)?
On Tue, Mar 21, 2017 at 1:04 PM, Erik A. Roberts<EMAIL_ADDRESS>wrote:

should we end up having a separate branch including the mat files for unit
testing?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/DynaSim/DynaSim/issues/22#issuecomment-288147767, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGGOVZLyrb9ydl03LnIciru9tTVa5yRPks5roAM1gaJpZM4HetJ6
.

how do we prevent the files from adding to stable when merging?  i guess we could have separate gitignores?

I put some guidelines for unit testing on the wiki
Here's an example of function ready for unit testing

new branch iss22_xunit

http://blogs.mathworks.com/developer/2015/01/20/the-other-kind-of-continuous-integration/

Do we need to use the full Class testing framework, or would simple function tests work for the core DynaSim code? I thought only the extensions use classes.

need to test branch on cluster for ds package.

bugs from option parameters not being unique across files.

issue with autogen of checkStudyinfo when given relative path to a directory not in autogenDirs

TODO: fix parfor mode for dissimulate, and finish making createbatch

Let's go for CI next:
http://uwethuemmel.com/continuous-integration-workflow-with-matlab-git-and-jenkins/

I'm adding in code coverage:
https://www.mathworks.com/help/matlab/ref/matlab.unittest.plugins.codecoverageplugin-class.html

Do we have any of this working at all? It would be very useful for checking DynaSim across matlab versions...

I haven't tested it since all the changes have been made. It probably still works for the most part or could be fixed easily. The key thing is to have the code working and then automatically generate the "good" data to be tested against. Or, take a few examples and manually make the data. Also, some of the newer functions probably don't have the necessary code for autogen testing.  I wrote how to do it here but am not sure people went through the effort of adding it to new functions. The testing template is here, and threre's lots of other examples for testing in the unit-test repo.


Random TLS/SSL CERTIFICATE_VERIFY_FAILED errors on calls to azure api via a proxy

Hi,
I'm seeing random TLS/SSL CERTIFICATE_VERIFY_FAILED  errors on calls to azure api via an explicit proxy. We are using ansible to make various calls to the api from inside our azure deployment. Direct outbound access is blocked and we route via an explicit proxy.
I get the following from time to time
Traceback (most recent call last):
  File "/tmp/ansible_OyZENy/ansible_module_azure_rm_securitygroup_facts.py", line 286, in <module>
    main()
  File "/tmp/ansible_OyZENy/ansible_module_azure_rm_securitygroup_facts.py", line 283, in main
    AzureRMSecurityGroupFacts()
  File "/tmp/ansible_OyZENy/ansible_module_azure_rm_securitygroup_facts.py", line 236, in __init__
    facts_module=True)
  File "/tmp/ansible_OyZENy/ansible_modlib.zip/ansible/module_utils/azure_rm_common.py", line 173, in __init__
  File "/usr/lib/python2.7/site-packages/msrestazure/azure_active_directory.py", line 403, in __init__
    self.set_token()
  File "/usr/lib/python2.7/site-packages/msrestazure/azure_active_directory.py", line 434, in set_token
    raise_with_traceback(AuthenticationError, "", err)
  File "/usr/lib/python2.7/site-packages/msrest/exceptions.py", line 50, in raise_with_traceback
    raise error
msrest.exceptions.AuthenticationError: , SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579)
", "module_stdout": "", "msg": "MODULE FAILURE"}
"Traceback (most recent call last):
  File "/tmp/ansible_OyZENy/ansible_module_azure_rm_securitygroup_facts.py", line 286, in <module>
    main()
  File "/tmp/ansible_OyZENy/ansible_module_azure_rm_securitygroup_facts.py", line 283, in main
    AzureRMSecurityGroupFacts()
  File "/tmp/ansible_OyZENy/ansible_module_azure_rm_securitygroup_facts.py", line 236, in __init__
    facts_module=True)
  File "/tmp/ansible_OyZENy/ansible_modlib.zip/ansible/module_utils/azure_rm_common.py", line 173, in __init__
  File "/usr/lib/python2.7/site-packages/msrestazure/azure_active_directory.py", line 403, in __init__
    self.set_token()
  File "/usr/lib/python2.7/site-packages/msrestazure/azure_active_directory.py", line 434, in set_token
    raise_with_traceback(AuthenticationError, "", err)
  File "/usr/lib/python2.7/site-packages/msrest/exceptions.py", line 50, in raise_with_traceback
    raise error
msrest.exceptions.AuthenticationError: , SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579)
", "module_stdout": "", "msg": "MODULE FAILURE"}

The following ansible fragment can be used to recreate this after exporting http_proxy and https_proxy variables

hosts: localhost
connection: local
tasks:

name: get facts for security group
azure_rm_securitygroup_facts:
resource_group: test-rg
register: result
with_sequence: start=0 end=50

We are running azure 2.0.0rc5 as that is currently a requirement in ansible.
I raised the issue with ansible at https://github.com/ansible/ansible/issues/23518 but they have closed and suggested I open it here instead

Hi @awalker125
I never saw this issue, and it comes from requests, so I have no idea right now :/
@yugangw-msft have you already seen this before? I know it's not ADAL, but what do you think?

The cert at proxy doesn't pass the cert validation. You can either turn off the cert validation at sdk client object, or supply bundle file to the client including the temp cert at the proxy. If you don't expect the cert to be invalid, assuming your proxy is public facing, you can always use https://www.ssllabs.com/ to verify the cert chain

Hi, I've verified the hostname (management.azure.com) with ssl labs and it all looks ok. Frustratingly if I run 20 requests 19 will work and then a failure so I do not believe this to be a problem with the bundle file. My hands are somewhat tied with turning cert validation off because its ansible that is calling the SDK and I cant easily change that without forking ansible. I'm also currently tied to 2.0.0rc5. I suspect this to be an issue in requests if I'm honest.

Probably duplicate https://github.com/Azure/azure-sdk-for-python/issues/1384


Implemented non-blocking requestor/replier pattern code sample

Implemented the code samples for a non-blocking requestor/replier pattern.
The API itself handles the whole management of registering callbacks to the outbound messages under publish.
This allows the client to focus on the main business logic.

I think this looks good once my comments above are resolved. Has @aaron-613 already taken a look at this one?

Hey ok, getting on this now.  Had one issue with the Replier not staying online and connected, @HariRangarajan-Solace already fixed and pushed that, thanks!  So now looking again.
Running from command line, req/reply interaction looks correct!  Tried running the BlockingRequestor as well and that worked great too.  👍🏼
Huh, ok now the Replier won't quit after pressing [ENTER].  Even though the main thread says it's quitting.  I'm guessing either the ExecutorService is not getting shut down, or maybe the threads are not getting created as daemons..?  (need to build a custom ThreadFactory for the latter).

I also noticed that both the Blocking and NonBlocking Requestor apps shutdown hard with no "quitting" message and no log message, so the app must be exiting before a graceful disconnect:
Correct:

--LOG-- 16:45:43.350 [main] INFO  com.solac.jcsmp.proto.impl.TcpClientChannel - Client-1: Channel Closed (smfclient 1)
Main thread quitting.

Repliers:
<blank>  doesn't have either of those lines

That's it for now, please fix.  I'll continue the code review

Interesting behaviour: when the Replier is not running, the non-blocking Requestor will continue pushing out requests every second, while the 3 second timeout error shows up later.  Huh!  I guess that's expected from a non-blocking request.
Java DirectRequestorNonBlocking connected, and running.
The outbound message being published is : Hello, this is the request number:  #0
The outbound message being published is : Hello, this is the request number:  #1
The outbound message being published is : Hello, this is the request number:  #2
Publishing action timed out without any reply. Error : : com.solace.messaging.PubSubPlusClientException$TimeoutException: Request Timeout
Publish timed-out for message with payload :Hello, this is the request number:  #0
The outbound message being published is : Hello, this is the request number:  #3
Publishing action timed out without any reply. Error : : com.solace.messaging.PubSubPlusClientException$TimeoutException: Request Timeout
Publish timed-out for message with payload :Hello, this is the request number:  #1
The outbound message being published is : Hello, this is the request number:  #4
Publishing action timed out without any reply. Error : : com.solace.messaging.PubSubPlusClientException$TimeoutException: Request Timeout
Publish timed-out for message with payload :Hello, this is the request number:  #2
The outbound message being published is : Hello, this is the request number:  #5
Publishing action timed out without any reply. Error : : com.solace.messaging.PubSubPlusClientException$TimeoutException: Request Timeout

Hey ok, getting on this now. Had one issue with the Replier not staying online and connected, @HariRangarajan-Solace already fixed and pushed that, thanks! So now looking again.
Running from command line, req/reply interaction looks correct! Tried running the BlockingRequestor as well and that worked great too. 👍🏼
Huh, ok now the Replier won't quit after pressing [ENTER]. Even though the main thread says it's quitting. I'm guessing either the ExecutorService is not getting shut down, or maybe the threads are not getting created as daemons..? (need to build a custom ThreadFactory for the latter).

I also noticed that both the Blocking and NonBlocking Requestor apps shutdown hard with no "quitting" message and no log message, so the app must be exiting before a graceful disconnect: Correct:

--LOG-- 16:45:43.350 [main] INFO  com.solac.jcsmp.proto.impl.TcpClientChannel - Client-1: Channel Closed (smfclient 1)
Main thread quitting.

Repliers:
<blank>  doesn't have either of those lines

That's it for now, please fix. I'll continue the code review

@aaron-613 : the code is fixed. Can you please verify if we can merge it in ?

1. DirectReplierNonBlocking.java
a) Hard core spin
        while (System.in.available() == 0 && !isShutdown) {
            //loop to keep the receiver running.
        }

This is a tight loop, which spins the core super hard.  Note:

Please use a sleep and check intermittently.  See: https://github.com/SolaceSamples/solace-samples-java-jcsmp/blob/master/src/main/java/com/solace/samples/jcsmp/patterns/DirectReplier.java#L131-L141
b) Still doesn't quit
If you press [ENTER] after it connects, the program quits as expected.  But if you start a requestor (blocking, non-blocking, JCSMP, doesn't matter), as long as it starts responding, then pressing [ENTER] doesn't terminate the program:

Not sure what needs to be done.  Since we see "main thread quitting" message, then I'm assuming that some other thread has been defined as non-daemon and is being kept alive (even with the terminate(500) code.  So not sure if this is an API bug?  Best bet to run in debug in Eclipse or IntelliJ and figure out which thread thread is created once it starts receiving messages from the requestor (since it doesn't exhibit this behaviour before messaging starts), and see what threads don't get shutdown when trying to exit.
This should have easily been caught if trying multiple combinations of running from command line.
2. DirectRequestorNonBlocking.java
        requestReplyMessagePublisher.terminate(10000);

Why a 10 second grace shutdown length?  The other Requestor got 500ms.  I think 500ms is good here too.

Hi @HariRangarajan-Solace , I thought this was all resolved, so sorry for the late review/comments.  The last week has been a little stressful with travel and being stuck in Vancouver and etc. excuses..!  My replies:

DirectReplierNonBlocking.java Hard spin: sleeping here in the main thread has nothing to do with responding in a timely manner to incoming requests, that's handled separately by the Context thread(s).  This tight loop does nothing except checking for user input to quit the program... it spins a core at 100% for no reason. The main thread is not involved with any messaging.  Let me know if this makes sense, or we can have a further chat about it.  Please add a sleep of some sort to prevent this.
DirectReplierNonBlocking.java Doesn't quit: you shouldn't need to do a System.exit() for normal operation.  I debugged this by running in Eclipse debug mode and looking at the threads that were spawned: the ScheduledExecutorService that you're using is spawning normal threads that keep the program alive after main thread ends.  https://github.com/SolaceSamples/solace-samples-java/blob/feature/requestor-replier-nonblocking/src/main/java/com/solace/samples/java/patterns/DirectReplierNonBlocking.java#L83  Either shutdown() the executor service before the app quits, or modify the thread factory used by the executor to spawn daemon threads.
DirectRequestorNotBlocking.java Quit timeout: cool, thanks for the explanation.  I did some testing and see how the timeout/grace period behaves when there are outstanding requests vs. not . Anyhow, since the req/reply timeout is 3000ms, should this terminate grace period be maybe 4000ms or something a bit tighter?  Or maybe REQUEST_TIMEOUT_MS+500 or something..?

Thanks!

Hey @aaron-613 : I made all the changes that you identified above. Can you please do a final review and approve the pr if everything is fine ?

Yup, all looks good now.  Thanks!  Good to push to main.


issues while testing an installation with php 8.3

currently trying to open an xot project in the editor fails via workspace and via management and results in a grey editor window and spinner. Editing Bootstrap seems fine so just a bug with xot projects

Is this an issue just with your install Ron? Working ok on beta site and I've just checked and the graphics & sound page hasn't changed for a couple of years! Missing model file?

@FayCross it's on the install that @torinfo has setup for testing with PHP 8.3. I haven't tested the same thing locally because the purpose was for testing PHP 8.3 issues.

@ronm123 Graphics and sound page seems to work fro me in php8.3. Can you share the project that does not work with me?

@torinfo just shared my initial test project with you which doesn't open in the editor after having been closed.
I have another test project and if I add a graphics and sound page to that and then play it and navigate to that page I get the error I reported earlier e.g.

So I'm removing from that project before closing so I can re-open.
BTW in testing some of the management functionality I played template id 2 and that has a similar error on page 2:
Er is geen template beschikbaar voor dit pagina type. (script)


The server is uploaded with partial information

The data that is send to the server is incomplete (or logged from time to time and not at every epoch).
I am saying this because the number of epochs on the server is 72 whereas in reality is over 200 (when I print in jupyter notebook). The wandb sends data for just 190 epochs, although in the notebook the training is running to 1000 epochs. At the end of the training (1000 epochs) I receive this error:
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Can anyone please tell me what the cause of this error is and how can it be fixed?

Hi @ioanacretu97, we've seen this issue in the past and it could be directly attributed to users proxy and SSL certificates. Please provide the debug.log and debug-internal.log files for the crashed run, the files may provide additional clues. Thanks

Hi @ioanacretu97 since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!

Hi @ioanacretu97 thank you for updating us on your use case and how it contributed to the error you ran into. I'm glad you were able to run your experiments offline successfully and sync them to your workspace. Please do reach out again when any additional questions come up.


Need checking for needed credentials in .env file when run the app

When the app starts, the .env file should be check if it contains all the necessary credentials. If it doesn't, there should be appropriate error message.

solved


[backend] Unit testing

Description
It is time we start unit testing for good. There should be unit tests for basically all of the backend and its logic.
The only tests present at the moment target the transport module on a low level (checking the protocol codec and other simple parts). It would be advisable to start there due to the close proximity to the vehicle and build from there.
Testing the logic might be a bit complicated and might involve mocking modules and changing a bit the existing code.
Related
Notes
There will be multiple issues for this task

[ ] Transport Short
[ ] Broker Short
[ ] Logger Short
[ ] Boards Short
[ ] Transport Long
[ ] Broker Long
[ ] Logger Long
[ ] Boards Long
[ ] GitHub Actions


Rec not printing correct name in some cases

Checking
package Empty where

def Empty : Type =
  @self ∀
  (0 P : ∀ Empty -> Type) ->
  P self

def absurd (A: Type) (x: Empty): A = (case x) (λ _ => A)

If we remove the (λ _ => A) from absurd and try checking:
def absurd (A: Type) (x: Empty): A = (case x)

Then
Checking package Empty at bafy2bzacecoefmntlllb2t6nfcc7yjb3yuck65appexyoy2s2bpf2whrvi6qo
Checking definitions:
✓ Empty: Type
✕ absurd: ∀ (A: Type) (x: Empty) -> A
                                           ▼
8 | def absurd (A: Type) (x: Empty): A = (case x)
                                                 ▲
Error: Type Mismatch from 8:39 to 8:45 in bafy2bzacebdxkcb4pengirlb2eaelsjm6hxsjfg4ucybe2v452ao4fea6jnak
• Context:
  - ω A: Type
  - ω x: Empty
• Expected: A
• Detected: ∀ (0 P: ∀ (_: #^) -> Type) -> P x

The #^ syntax is the internal display format of the Rec constructor and should never appear to the user. When we convert from DAG to Term to generate the CheckError::TypeMismatch:
https://github.com/yatima-inc/yatima/blob/ef9108be7e5d2adc282ccf9f429ab0f253320786/yatima_core/src/check.rs#L210
we pass a re_rec: Bool argument to to_term to indicate that we should not convert the DAGPtr::Var or DAGPtr::Ref nodes back to a Term::Rec. What we want is:
• Detected: ∀ (0 P: ∀ (_: Empty) -> Type) -> P x

where Empty is either a Var or Ref on the detected : Term so it prints correctly.

fixed as of #48


TFLite: How to mix floating-point kernels with quantized kernels for different parts of the graph.

URL(s) with the issue:
https://www.tensorflow.org/lite/performance/post_training_quant
Description of issue (what needs changing):
On this page it says:

TFLite supports on the fly quantization and dequantization of activations to allow for:

Using quantized kernels for faster implementation when available.
2. Mixing of floating-point kernels with quantized kernels for different parts of the graph.

Where is it documented how this can be done?
Clear description
I would like to create a TFLite model where the first and last layer use floating-point kernels and the intermediate layers use use quantized kernels. From the bold section above it seems possible.
The TFLite version of my model has high accuracy using float32. But it has really poor accuracy with int8. I've narrowed the issue down to my convolution layer which is used to pre and post process my audio signal. These layers have a very low parameter count compared to the rest of my model.
If I could quantized the only the big, middle portion of my model then I could get a high accuracy model with much faster accuracy and latency.
If there's another solution to this I'd love to hear about it.
Correct links
Yes
Parameters defined
Yes
Returns defined
Yes
Raises listed and defined
Yes
Usage example
Is there a usage example?
No
Request visuals, if applicable
No
Submit a pull request?
No

I don't see how the rest of the template is relevant but I filled it out as best I could.


No Email Verification After Sign-Up

Description
Currently, the sign-up process does not include email verification. Users are able to register with any email address, and no verification is required to confirm ownership. This can result in users registering with fake or incorrect email addresses, leading to issues with account recovery, spam, and lack of communication with users.
Steps to Reproduce

Go to the sign-up page.
Enter a valid or invalid email address.
Complete the registration form.
Observe that no verification email is sent, and the account is created without confirming the email address.

Expected Behavior
Upon signing up, users should receive an email with a verification link or code. Only after verifying their email should they be able to fully access the platform. This ensures that the email is valid and belongs to the user.
Actual Behavior

Users can sign up with any email, valid or invalid, without receiving a verification email.
Accounts are created without confirming the ownership of the email address.

Please assign this issue to me for Hacktoberfest and GSoC-ext.

Would like to work on this issue


RustEnhanced Run not working on Windows 10

Sublime Text Version
Sublime Text 3 (Build 3126)
Rust Enhanced Version
v1.2.2
Operating system
OS Name	Microsoft Windows 10 Pro
Version	10.0.14393 Build 14393
Expected behavior
When running RustEnhanced Run i expect the plugin to run my binary
Actual behavior
Its failing because its not falling into the windows setting (bizarre)
Steps to reproduce

Create a simple "hello world" rust file
Compile it with RustEnhanced (in the build systems)
Call RustEnhanced Run and see if it runs

Screenshot
The screenshot clearly shows that it should be running the binary as test.exe
but instead (look in the output) its running ./test
Is this happening for anyone else? Is sublime broke? Our plugin or my sublime thinks its linux/mac for some reason?

I think it's a bug in RustEnhanced.sublime-build:17.
By default the command is specified using shell_cmd, but the Windows version overrides cmd, leaving shell_cmd intact.
However, shell_cmd takes precedence over cmd when both are specified
(http://docs.sublimetext.info/en/latest/reference/build_systems/exec.html).
Possible solution would be to use something like this instead:
            "windows":
            {
                "shell_cmd": "\"$file_base_name.exe\""
            }


Add workIsPublicDomain flag in indexedProperties for ML

If the work has a subject_to field, and cc0 or rso:pd is in that slot, then add workIsPublicDomain: 1 into indexedProperties in the MarkLogic mapper.

Done


Is it possible to call a callback in any thread?

Is it possible to call a callback in any thread?

It should work! That being said, I haven't added a test for this yet. Callbacks are done using napi_threadsafe_function in order to enable this, so if it doesn't work, that's a bug.

I'm going to close this since it seems your question is answered. Feel free to re-open if you think that's needed.


Can run on Raspberry?

Or how to modify it to support raspberry.

If you follow the instructions to build for Linux, it will run on a raspberry pi. I just tested it on a pi4

This issue seems to be resolved, is there anyone moderating?

Still could not get it work on raspberry 4, could someone please identity it?

already ran: sudo apt-get update && sudo apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev
errors:
DllNotFoundException: Unable to load shared library 'WebWindow.Native' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment varaible. libWebWindow.Native: cannot open shared project file. No such file or directory


Panic when Set and Fetch used concurrently with constant number of goroutines

https://github.com/mgnsk/evcache/blob/dfcb922c3e9b91e3082756c24ec1337b32b0a45d/list.go#L68-L76

Here's a failing program:
package main

import (
	"fmt"
	"math/rand"
	"sync"
	"sync/atomic"
	"time"

	"github.com/mgnsk/evcache"
)

func init() {
	rand.Seed(time.Now().UnixNano())
	evcache.SyncInterval = time.Millisecond
}

// This is a test program for discovering race conditions in the cache.
func main() {
	// n := 10
	concurrency := 32
	c := evcache.New().
		WithCapacity(10).
		WithLFU().
		Build()
	var key uint64
	wg := sync.WaitGroup{}

	for i := 0; i < concurrency; i++ {
		wg.Add(1)
		go func() {
			defer wg.Done()
			for {
				k := atomic.AddUint64(&key, 1)
				if k%10000 == 0 {
					fmt.Println(time.Now())
				}
				ms := rand.Intn(20)
				time.Sleep(time.Duration(ms) * time.Microsecond)

				oldKey := atomic.LoadUint64(&key)

				_, _, _ = c.Fetch(atomic.AddUint64(&key, 1), 0, func() (interface{}, error) {
					return 0, nil
				})

				c.Set(oldKey, 0, 0)
			}
		}()
	}

	wg.Wait()
}

https://github.com/mgnsk/evcache/commit/7c029e4e0aaff339e93b7b78a36eef836a31e167 fixes another issue but this one still persists.

Fixed in https://github.com/mgnsk/evcache/commit/a4f412efb09c30d553e46302c7a357bef048ad09
r.Value can be nil when a key is removed from the list due to overflow but not yet evicted from the cache.


v1.11 backports 2022-01-14

#18333 -- Add basic kube-apiserver policy matching e2e test  (@christarazi)
#18358 -- bgp,bugfix: parse ips when converting from slim_core to k8s service (@ldelossa)
#18470 -- docs: Remove incorrect beta note for host policies (@pchaigno)
#17871 -- Skip node ipset updates if iptables masquerading is disabled (@pchaigno)

Skipped due to conflicts -
PR: 18431 -- Set debug.verbose to "flow" as a default for all CI runs (@christarazi) -- https://github.com/cilium/cilium/pull/18431
@christarazi Please check if the whitespace changes are intended.
PR: 17980 -- builder: Enable building images on arm64 (@jrajahalme) -- https://github.com/cilium/cilium/pull/17980
Non-trivial conflicts
@jrajahalme
Once this PR is merged, you can update the PR labels via:
$ for pr in 18333 18358 18470 17871; do contrib/backporting/set-labels.py $pr done 1.11; done

#18333 -- Add basic kube-apiserver policy matching e2e test  (@christarazi)

Build failures are because GetFirstNodeWithoutCilium helper doesn't exist in 1.11. There was a focused backport already created for the upstream issue - https://github.com/cilium/cilium/pull/18464, but the labels weren't correctly updated.

test-backport-1.11

test-backport-1.11

test-backport-1.11

@pchaigno Backporting #17980 depends on also backporting #18441 first, do you think that would be a good idea?

5.4 failure is similar to - https://github.com/cilium/cilium/issues/14959.

4.9 failure seems related to one of the commits in this PR - https://jenkins.cilium.io/job/Cilium-PR-K8s-1.23-kernel-4.9/97/testReport/junit/Suite-k8s-1/23/K8sDatapathConfig_Etcd_Check_connectivity/

2022-01-18T07:34:44.565452261Z level=debug msg="Adding IP to ipset cilium_node_set_v4" ipAddr=<IP_ADDRESS> subsys=iptables
2022-01-18T07:34:44.568969222Z level=error msg="Command execution failed" cmd="[ipset add cilium_node_set_v4 <IP_ADDRESS> -exist]" error="exit status 1" subsys=iptables
2022-01-18T07:34:44.569009096Z level=warning msg="ipset v7.5: The set with the given name does not exist" subsys=iptables
2022-01-18T07:34:44.569150274Z level=error msg="Failed to add IP to ipset cilium_node_set_v4" error="exit status 1" ipAddr=<IP_ADDRESS> subsys=iptables

/cc @pchaigno

Oh... :face_exhaling: I thought I got rid of those issues in the PR. Let's avoid backporting https://github.com/cilium/cilium/pull/17871 for now then and I'll try to fix that. Sorry for the trouble.

ci-aks-1.11

/ci-gke-1.11

/ci-aks-1.11

ci-l4lb-1.11

/ci-awscni-1.11


Review link instead of docs link

This page uses the url ("review"):
https://review.docs.microsoft.com/en-us/azure/storage/blobs/blob-inventory#inventory-policy.
instead of the public
https://docs.microsoft.com/en-us/azure/storage/blobs/blob-inventory#inventory-policy.
Most outside org users cannot access 'review' app.

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

ID: 6b9d4e24-cd52-851d-b0c7-bdf81b906b4c
Version Independent ID: f5508f3b-df8b-5919-3587-d68cdc88c986
Content: az storage account blob-inventory-policy
Content Source: latest/docs-ref-autogen/storage/account/blob-inventory-policy.yml
Service: storage
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

storage


How to Get Connecting Flghts airport and time,  and the issue about Time format,

Hi, So happy to find your solution in this project, it has been a great help ,
here is three more specific question, I might need your support and help:
1#   for example, I search a flight, with 1 stop in DXB,  how can I get the details for the connecting flight as DXB, like:  exact time, and airport name, e.tc.  , For my project and work, we need all the details information in the  Connecting flighs.
2#   I found a situation , that I am a little confused:  e.g.   I run the code, and get result printed out: as:  Flight(is_best=True, name='Turkish Airlines', departure='12:45 AM on Sat, Nov 2', arrival='11:00 AM on Sat, Nov 2', arrival_time_ahead='', duration='17 hr 15 min', stops=1, delay=None, price='0'),   and I check the web page for comparing and varify it.   on the Web Page, departure time is shown as"  00:45"  ,  or , as I understood the conventional way, shall be wriiten as" 00:45 AM",     so, I 'd to check with you, that , if this is a bug? or  How can I adpat to this code, and convert it to the old fashion way?
3#   when I printed the result.flights, as all the flights,   i got some record, may shown this "Flight(is_best=False, name='Separate tickets booked togetherThis trip includes tickets from multiple airlines. Missed connections may be protected by Gotogate.Learn more', departure='7:30 PM on Sat, Nov 2', arrival='2:50 PM on Sun, Nov 3', arrival_time_ahead='+1', duration='26 hr 20 min', stops=2, delay=None, price='0'),"        is it a bug? or how can I fix, and improve this?
Thank you very much.

Hey there,

Connecting flights (or multi-leg flights) are not yet implemented, but it's planned. In fact, some awesome people who created pull requests have done it, you could check them out!

& 3. Admittedly, I'm not aware of these issues. Could you take screenshots (web) and provide the console outputs for me to better analyze what's going on here? Thanks!

If you have any other problems, don't hesitate to ask.
AWeirdDev

Bro,Thanks a lot, for your timely answer,  I will try to find some pull requests jobs you mentioned.


error flull screen ios

in ios no rotate video when is full screen

We're not able to reproduce this issue, closing this for now feel free to re-open it if it's still exists.
Please check it with the latest version. Thanks.


AbsoluteHand -> HandSide

It represents the side of a hand, not an "absolute" hand.

It used to be MainHand and I renamed it. It's used in many other places other than the main hand option, such as armor stands.
It's absolute because we already have a Hand enum relative to the main hand.

That is meaningless reasoning and still doesn't explain what "absolute" means at all in this context. Anyhow, I have further reviewed the code, and realise MainHand is too ambiguous and implies wrong intent, as you may have felt too. A better name would be HandSide, which I am now putting forward as the change proposal. Related mappings have been updated for this too.

"Hand side"?? To me a HandSide would be an enum containing PALM and BACK...

It makes sense to me. There's the phrase "left-hand side" and "right-hand side."

I think the general agreement is on HandSide?

I agree with Runemoro, it's too strongly implying to be about the side of a hand, not a side the hand may be located at.
The translation string implies this is exclusively about the main hand and "HandSide" is trivially confused with "Hand". Maybe something like MainHandPosition works better and separates this niche use class further from the other "Hand" class.

After much further review, I have concluded that the ideal name for this class would really be Arm. It represents the arm that the main hand or off hand resides on, and is also used as an argument when positioning the arms of models.
model.setArmAngle(90.0F, Arm.LEFT) // sets the angle of the left arm to 90
livingEntity.[getMainArm() or getMainHandArm()] // returns the arm that the main hand is on
// in GameOptions, the Arm that the client player's main hand is on
public Arm mainHand = Arm.RIGHT;

Using arm for one and hand for the other just seems like a trick to avoid naming two classes the same (the names can be inverted and they would still be correct).
I think we should use a meaningful name that describes what this class does different. Maybe this one should be Hand, and the other one should be renamed to HandType, or RelativeHand?

The other should not be touched, it is the reference Hand used throughout the code. This one can afford being more verbose.

Handedness?

I will be reopening this as a new ticker for a fresh slate on reviews and approvals


General mod compatibility patch suggestion

Mod source
Factorio Mod Portal
Which mod are you having an issue with?

[ ] pyalienlife
[ ] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[ ] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[X] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[ ] Crash
[ ] Progression
[ ] Balance
[ ] Pypostprocessing failure
[ ] Other

What is the problem?
Mods like Beautiful Bridge Railways depend on technologies like the base game Railway tech that are made unresearchable by PyPP, making their techs unavailable.
Discord user valencefox created this patch mod and shared it in Discord, which essentially attempts to fix these issues by reassigning prerequisites for any non-Py tech that depends on one of those specific delisted technologies. The mod is not uploaded to the mod portal, however, and is difficult to find in Discord, would it be possible to integrate it into the PyPP mod directly? I asked valencefox via DM a week or so ago if this was okay (mostly to be polite, I don't know how license stuff works), but they have not responded.
py-tech-patch_0.1.1.zip
Steps to reproduce
No response
Additional context
No response
Log file
No response

I believe this is the wrong approach.
The problem is that we are mapping the dependencies of one vanilla tech onto a py tech.
A simpler solution would be to just change the internal names of the py techs to match the vanilla techs.
This way the 3rd party mod dependencies would be automatically migrated.

If that is easily done then that would definitely be better, yeah--I just wasn't sure how the PyPP code worked (and am currently using this patch) so I suggested it.


Drop setuptools for flit and pyproject.toml

Changes

Drop setup.py and move configurations into pyproject.toml using the flit backend
Update testing to remove DeprecationWarnings and support newer Python version testing
Update README.rst to reflect changes in this cookiecutter
Add new hooks and remove obsolete hooks in pre-commit configuration
Unpin most build dependencies
Remove Travis CI configurations

@RondeauG
No need to go too in-depth, but you mentioned that there were some documentation changes that you wanted to make. Feel free to do so here, or simply give me an idea, and I'll see what I can do.


Wi-Fi Not Working on Ventura 13.0

Just recently installed Ventura 13.0 on my Lenovo T460s rig under
EFI-T460s-OP.zip
Opencore 0.87 with the following specs:
i5-6300U Processor
14.0" FHD
8 GB DDR4 2133MHz
Intel HD Graphics 520 integrated
M.2 SSD, SATA Intel 256GB OPAL 2.0
Intel Dual Band Wireless-AC 8260, 2x2, Wi-Fi + Bluetooth® 4.1
Everything seems to be working except for the Wi-Fi. Used the guidelines & resources of this link, ThinkPad-T460s-macOS-OpenCore. Used the latest Airportitilwm.kext. Wi-Fi icon shows up but no network is shown when scanning. My EFI is attached. Some kext files are dropped to cut down on the file size.
EFI-T460s-OP.zip
Can anyone help?

If what you mean by WiFi not working is WiFi not scanning any network then it's a known itlwm issue https://github.com/OpenIntelWireless/itlwm/issues/799
You might be able to temporarily fix it by running sudo pkill airportd (https://github.com/OpenIntelWireless/itlwm/issues/799#issuecomment-1368108175)

If what you mean by WiFi not working is WiFi not scanning any network then it's a known itlwm issue https://github.com/OpenIntelWireless/itlwm/issues/799
You might be able to temporarily fix it by running sudo pkill airportd (https://github.com/OpenIntelWireless/itlwm/issues/799#issuecomment-1368108175)

If what you mean by WiFi not working is WiFi not scanning any network then it's a known itlwm issue OpenIntelWireless/itlwm#799
You might be able to temporarily fix it by running sudo pkill airportd (OpenIntelWireless/itlwm#799 (comment))

I have the same problem.But I sudo pkill airportd doesn't work.
Used this releases 0.8.5 EFI.
i5-6300U Processor
Intel Dual Band Wireless-AC 8260, 2x2, Wi-Fi + Bluetooth® 4.1

It sometimes took a few attempts and/or require you to wait a few minutes for some reason... Honestly, if you could I suggest downgrading to (or staying on) Monterey for now, there are just too many issues on Ventura. Unless there's a feature from Ventura you actually rely on.

It sometimes took a few attempts and/or require you to wait a few minutes for some reason... Honestly, if you could I suggest downgrading to (or staying on) Monterey for now, there are just too many issues on Ventura. Unless there's a feature from Ventura you actually rely on.

Thank you for your answer. I'm considering downgrading to Monterey.


MaterialBuilder public constructor

Hi,
is there a specific reason why MaterialBuilder does not have a public constructor? What if I want to load a custom material at runtime and MaterialFactory doesn't offer anything suitable? In my example (see screenshot) , I would like to load a material (only at runtime) with "fade" as blending attribute. As you can see the Material from MaterialFactory.makeTransparentWithTexture is not applied to specular lighting.

A workaround is to bundle your custom material in a .sfb with a simple model (1 triangle) and use getMaterial() after loading the .sfb.

@romainguy Hi, thank you for the suggestion. I think I have no other alternative. Nevertheless, it would be nice if it could be possible in the future.

We should definitely improve this API. I'll reopen the issue so we can track this feature.

Looking for this feature too!

@any update on this?


Added option to set Monday as first day of week

Just for i18n.
Set the directive's attribute firstDay to firstDay="1" to show the calendar weeks beginning on monday.

I've changed the attribute name and value to mondayfirst=true|false because I think that make more clear it's function.

I merged your PR. I will add description for this in the next release.


Added support for AT24C device family

Description

Added classes to support At24c32c, At24c64c, At24c128c, and At24c256c ICs.
Moved the existing AT24C128C class into the At24cxx directory to be consistent with other device family implementations in nanoFramework.Iot.Device.
Changed the namespace of AT24C128C from Iot.Device.At24C128C to Iot.Device.At24cxx.
Changed the constructor of At24c128c to accept an I2cDevice reference instead of being passed device address and i2cBus ID.
Added support for sequential read.

Motivation and Context
The At24 EEPROM family contains 9 different ICs each with a different memory size, page count, and page size. Each chip can only write up to its page size in bytes per write cycle. Using the appropriate class now throws an exception if more data is written that the chip will allow per write cycle. The At24 family also contains an internal address counter that allows for sequentially reading bytes. The existing implementation did not provide a way to take advantage of this feature.
How Has This Been Tested?
The provided sample code was tested with At24c32c, Cat24c32wi, Cat24c64yi, Cat24c128wi and Cat24c256wi on a ESP32-WROOM-32.
Types of changes

[x] Improvement (non-breaking change that improves a feature, code or algorithm)
[ ] Bug fix (non-breaking change which fixes an issue with code or algorithm)
[x] New feature (non-breaking change which adds functionality to code)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Config and build (change in the configuration and build system, has no impact on code or features)
[ ] Dependencies (update dependencies and changes associated, has no impact on code or features)
[ ] Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
[ ] Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

[x] My code follows the code style of this project (only if there are changes in source code).
[ ] My changes require an update to the documentation (there are changes that require the docs website to be updated).
[ ] I have updated the documentation accordingly (the changes require an update on the docs in this repo).
[x] I have read the CONTRIBUTING document.
[x] I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
[ ] I have added new tests to cover my changes.

@DoNotTapeOver reopening the PR, not sure why it's been closed. Let me know if there is anything I can do to help!

I took a look at the addressing and noticed that I might not be handling it correctly on chips less than 8kbits in size. I just ordered a few today so I can test the code on them (I only have the datasheets and an At24c32 to work with atm). I closed the PR so potentially non-working code would not get merged in. I will resubmit in a few days.

I took a look at the addressing and noticed that I might not be handling it correctly on chips less than 8kbits in size. I just ordered a few today so I can test the code on them (I only have the datasheets and an At24c32 to work with atm). I closed the PR so potentially non-working code would not get merged in. I will resubmit in a few days.

I see. So I converted it to draft, should do the trick then in the mean time ;-)

@DoNotTapeOver any help needed to fix the conflicts? And also the comments I left? Then we're good to go!

Not sure on why there are still two conflicting files. Both 'devices/At24C128C/samples/At24C128C.samples.nfproj' and 'devices/At24C128C/samples/packages.config' have been deleted on my local copy and do not show as existing anymore on my current commit in git. I'm pretty new to git so I could just be overlooking something though...

@DoNotTapeOver regarding the conflicts: deleting the local files won't make that go away.
Click the link above and git will show you the steps required to fix this:

I guess I am still not seeing it, here is what I see on my end...

In Github Desktop...

Here's the instructions from github:
Step 1: From your project repository, check out a new branch and test the changes.
git checkout -b DoNotTapeOver-add-At24cxx develop
git pull https://github.com/DoNotTapeOver/nanoFramework.IoT.Device.git add-At24cxx
Step 2: Merge the changes and update on GitHub.
git checkout develop
git merge --no-ff DoNotTapeOver-add-At24cxx
git push origin develop
You may not see issues at your end as these are from the eventual merge with the upstream branch.
Sometimes git can be a bit painfull, so please be patient and try to learn about it. Poor consolation, but I've been there too an struggled a lot in my initial weeks with git. Then it started to become easier. 😅

hey @DoNotTapeOver any plans to resume work on this? 😃

The code works and has been verified on all the chips in the family. I have had zero luck fixing the remaining merge issues that are keeping it from being checked in though. Unfortunately, I have lost pretty much all of my free time for the foreseeable future so haven't been able to spend any time learning Git. If anyone would like to take the code and merge it in, please feel free.

@DoNotTapeOver I'll take over and clean those in the coming days. I'll tag you to check things still work fine. Then we'll merge.


React project load failed

I've been able to open and run this solution in VS 2015 up until yesterday. What's happening is the React project is failing to load with the following errors:
C:\Projects\Samples\react-aspnet-boilerplate\src\React\React.xproj : error  : Import "Microsoft.VisualStudio.Web.ProjectSystem.UnconfiguredWebProject.IdleScheduler" could not be satisfied.
C:\Projects\Samples\react-aspnet-boilerplate\src\React\React.xproj : error  : Instantiated part(s) threw exception(s) from IDisposable.Dispose().
Any ideas?

What happens when you build with DNX directly?
dnu restore
dnx web

If that works, I suspect this issue has to do with the tooling for Visual Studio. Did you recently update Visual Studio, or the beta-bits for ASP.NET Core?

If I run those commands, everything works.
I didn't manually run any updates but maybe something happened in the background.

Ya, that actual xproj stuff is entirely Visual Studio and the tooling for the new .NET Core, which isn't done. Before I look into anything with VS, we should wait for release versions, or maybe RC2 will fix it. I'll keep an eye on it.
One thing you can try is removing (and deleting) the .xproj. I think VS creates it automatically, based off of the global.json. You might have to make a change in global.json to trigger the update.

Thanks for the help. I tried what you said but didn't change anything. I'll keep at it.

Dude... it was a an extension called Productivity Power Tools that was causing the issue.

The irony...


Support R2 scope for token permissions in api_token_permission_groups datasource

Current Terraform and Cloudflare provider version
Terraform v1.5.0
on windows_amd64

provider registry.terraform.io/cloudflare/cloudflare v4.12.0

Description
Now that R2 bucket scoped tokens are out, there is a new scope of com.cloudflare.edge.r2.bucket and it would be nice if it was a separate scope in the api_token_permission_groups datasource rather than having to use the legacy permissions output.
I can work on this if accepted and a name chosen, maybe just r2.
Use cases
Making R2 API tokens that are bucket scoped.
Potential Terraform configuration
data "cloudflare_api_token_permission_groups" "all" {}

# Get R2 Write permssions.
output "r2_write_permissions" {
  value = data.cloudflare_api_token_permission_groups.all.r2["Workers R2 Storage Bucket Item Write"]
}

References
Part of a custom module I wrote
https://github.com/Cyb3r-Jak3/terraform-cloudflare-api-permissions/blob/main/outputs.tf#L13-L16
Permissions
https://api.cyberjake.xyz/cloudflare_api/token_permissions?scope=r2

sounds good 👍 do you want to send over a PR for this?


Adding an option to toggle ModernCamera

Any possibility of adding a key bind toggle to enable/disable ModernCamera vs the default camera?

Added in v1.4.0


init: error mounting computers.txt

When run docker compose up -d I get this error:
admin@localhost gptwol-1.0.9]$ sudo docker compose up -d
[+] Running 0/1
⠼ Container gptwol  Starting                                                                                0.4s
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/admin/Descargas/gptwol-1.0.9/computers.txt" to rootfs at "/app/computers.txt": mount /home/admin/Descargas/gptwol-1.0.9/computers.txt:/app/computers.txt (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

Hi,
If you are using the same docker-compose.yml as the readme :
you have the following line :  - ./computers.txt:/app/computers.txt
In your case docker-compose didn't find the file name  ./computers.txt, it may have create a directory name computers.txt.
You can remove it with
rmdir computers.txt
now to make it work, you have to create a file (on the docker-compose directory) with :
touch computers.txt
and then docker-compose up -d

Thanks... that solve this issue...

It's an odd way of doing it but if I change it now it will make a breaking change for users (all will have to modify the mounted volume)


fix: send Teams error message on system failure

Motivation
If something unexpected happens, like an unhandled error, a message will be sent to Teams notifying the users that something is wrong. This will reduce the cognitive load of the users since they don't have to check the logs to see if something is wrong.
Future work
The errors could be unwrapped for a nicer user experience, but at this point, it seems like premature optimization.

Thanks for the review


SQLStatement cache for parser-engine should not be a singleton object

we have used a singleton ParsingResultCache which key is prepared logic-sql to cache the SQLStatement. if the sharding-rule of the logic-sql have changed, or access the same logic-sql from multi-sharding-datasources, we will get an unexpected SQLStatement which sharding-condition is wrong. so we should cache the parsed SQLStatement within lifecycle of ShardingContext.

[x] Make ParsingResultCache multi-instances available
[x] Using ParsingResultCache in ShardingContext
[x] resolve memory leak for hash map

fixed with #1921

fixed with #1921

is there any way to resolve this problem in version 3.1.0?thank you!


Some comments do not increment lineno on context

This code results in a RuntimeError with 2 (should be 3):
class Foo
  # foo
  raise __LINE__.to_s
end

These two code examples results in a RuntimeError with 5 (should be 6):
class Foo
  def self.foo
    # foo
    nil
  end
  raise __LINE__.to_s
end

class Foo
  def foo
    # foo
    nil
  end
  raise __LINE__.to_s
end

Adding an argument to the method results in the correct line number (6):
class Foo
  def foo(bar)
    # foo
    nil
  end
  raise __LINE__.to_s
end

I'm using the latest mruby master @ 1685c459dde54956f4203d2f739dadd2465e7c2d


-es.timeout is not defined

Hi team
Thanks for exporter. When I give -es.timeout 10s as command arguments, it shows me not defined error.
    image: justwatch/elasticsearch_exporter:${ELASTICSEARCH_EXPORTER_TAG:-latest}
    command:
     - '-es.uri=http://elasticsearch:9200'
     - '-es.timeout 10s'
     - '-es.all'
     - '-es.indices'
    restart: always

elasticsearch_exporter    | flag provided but not defined: -es.timeout 20s
elasticsearch_exporter    | Usage of /bin/elasticsearch_exporter:
elasticsearch_exporter    |   -es.all
elasticsearch_exporter    |     	Export stats for all nodes in the cluster.
elasticsearch_exporter    |   -es.ca string
elasticsearch_exporter    |     	Path to PEM file that conains trusted CAs for the Elasticsearch connection.
elasticsearch_exporter    |   -es.client-cert string
elasticsearch_exporter    |     	Path to PEM file that conains the corresponding cert for the private key to connect to Elasticsearch.
elasticsearch_exporter    |   -es.client-private-key string
elasticsearch_exporter    |     	Path to PEM file that conains the private key for client auth when connecting to Elasticsearch.
elasticsearch_exporter    |   -es.indices
elasticsearch_exporter    |     	Export stats for indices in the cluster.
elasticsearch_exporter    |   -es.timeout duration
elasticsearch_exporter    |     	Timeout for trying to get stats from Elasticsearch. (default 5s)
elasticsearch_exporter    |   -es.uri string
elasticsearch_exporter    |     	HTTP API address of an Elasticsearch node. (default "http://localhost:9200")
elasticsearch_exporter    |   -version
elasticsearch_exporter    |     	Show version and exit
elasticsearch_exporter    |   -web.listen-address string
elasticsearch_exporter    |     	Address to listen on for web interface and telemetry. (default ":9108")
elasticsearch_exporter    |   -web.telemetry-path string
elasticsearch_exporter    |     	Path under which to expose metrics. (default "/metrics")
elasticsearch_exporter exited with code 2

Hi Onur,
this feature is not yet in the latest release (binary/docker). So you'll need to build the exporter from source or wait for the next release. I was on holidays and there are a few issues/PRs pending. I'm planning a release for the next week

@occelebi I just released a RC


When a report is written, have a way to store Evidence info

This is mostly a note for myself:
in the pattern:
'extract these bad files and make a report', how do we preserve how we found those. Evidence.local_path may only point to a temporary local mount_point, where we woud like:
'This was in RawDisk image.dd, in DockerContainer ID blablabla'

@rgayon: Is this issue still relevant? or did #309 fix this?

Going to close this one since this mechanism now exists with the Evidence.parent_evidence property.


Does not work when the canvas is not in Screen Space - Overlay

This issue is due to how you are testing for the mouse position.
Here is the modification from my variant that corrected the problem
private static bool GetLocalMouse(RectTransform rt, out Vector2 result)         {             RectTransformUtility.ScreenPointToLocalPointInRectangle(rt, Input.mousePosition, Camera.main, out mousePosition);             result.x = Mathf.Clamp(mousePosition.x, rt.rect.min.x, rt.rect.max.x);             result.y = Mathf.Clamp(mousePosition.y, rt.rect.min.y, rt.rect.max.y);             Debug.Log(rt.rect.Contains(mousePosition));             return rt.rect.Contains(mousePosition);         }
Note I have also changed most of the code at this point to remove any local declrations to variables within funcitons that can be called on an update loop such as the GetLocalMouse function hince the new private static mousePosition that use as opposed to var mp as it was in your code branch.

Thanks for your fix there. Unfortunately when i use ScreenPointToLocalPointInRectangle, the mouse input handling breaks for Canvases with Screen Space - Overlay Render Mode. Also the code breaks if no camera is tagged as MainCamera. We can either:
Detect the Render Mode for the parent canvas and the attached Render Camera / Event Camera.
Supply the camera to the picker script in some way.
Let the user supply the mouse positition.
More?

Yes my usual preference is to on start of the GO see if a camera was provided by the dev e.g. in a Camera field if not I set the field to main camera if that is null I go looking for the top most event camera.
As to handling events you could get around that by leveraging the event data already coming from the UI controls which represent the various inputs e.g. the UnityEngine.UI.Textures for the saturation and hue where in you would handle drag event on each repsectivly and where that was meaningful you would pass that change up to the parent color picker to process. The advantage here is that you spliting that logic out to each respective element thus its a bit easier to modify for the dev without impacting the picker its self the draw back is its yet anotehr behaviour script to maintain but considering at current its all in one thats not to bad.

Ah forgot to comment on use when in screen space overlay.
Personally I rarely if ever use that mode but to support it you could simply look up to the canvas your on and if its in that mode use a different function for handling the input than if its not ... thats just off the top of my head I'm sure there is a more elegant way but as I basicly never use overlay I dont know :)

Any chance of the complete edited code to work in World space? I'm having trouble getting your code snippet above to integrate with the existing code.


Aws docs cleanup

AWS docs cleanup. The work in this PR supersedes the work in https://github.com/killbill/killbill-docs/pull/555. So once this PR is merged, https://github.com/killbill/killbill-docs/pull/555 can be closed.
Currently in DRAFT status. Once @vnandwana  addresses the issues discussed on Slack, we can merge.

I am just summarizing the pending work here:

Move update CF stack information to the appropriate section in the how-to-maintain-a-cloud-formation-system doc
Add missing screenshots to the metrics-cloudwatch doc from aws-cf.adoc#cloudwatch
Delete aws-cf.adoc. once the above changes are made.

I can merge this PR and the above can be addressed separately. What do you think @pierre, @sbrossie?
cc @vnandwana.


Update typescript version & change broken link for React Logo

Typescript version < 3.8 gives this error when you npm start :: TypeScript error in /home/alex/create-react-app-uifabric/node_modules/jest-diff/build/diffLines.d.ts(8,13): '=' expected.  TS1005 so updated version on package.json in order for the app to compile successfully.
Also, replaced the broken logo img link with the logo.svg @ App.tsx.

thank you!

thank you!


Alternative for DatabasesEndpoint.list()

Since DatabasesEndpoint.list() is deprecated, are there any other ways to query all available databases?

Search pages for more details
This endpoint is deprecated and is only available on API version "2021-08-16" and earlier. Use the Search API instead. This endpoint will only return explicitly shared databases, while search will also return child pages. This endpoint's results cannot be filtered, while search can be used to match on page title.

https://developers.notion.com/reference/get-databases


soft_purge doesn't actually issue soft header - it's a hard purge

Same code as https://github.com/fastly/fastly-rails/issues/61. Running fastly-rails#0.7.1 using httplog to watch requests.
I don't see any Fastly-Soft-Purge:1 header being sent with the request as the docs indicate. It looks like fastly-rails/client.rb is keeping it too simple and not deferring the the fastly api gem to do this correctly.
after_save :soft_purge results in
DEBUG -- : [httplog] Sending: POST http://api.fastly.com:443/service/ABC123/purge/mykey/123
DEBUG -- : [httplog] Data:
DEBUG -- : [httplog] Status: 200
DEBUG -- : [httplog] Benchmark: 0.12983361499937018 seconds
DEBUG -- : [httplog] Response: {"status": "ok", "id": "577-xxxx-32"}

From the docs I'm expecting to see a PURGE request and a header sent

@mrthan I don't see any request headers being logged in your paste above.
fastly-rails#0.7.1 uses fastly-ruby#1.6.0 which supports soft purging by accepting an optional argument in the purge_by_key method. This method is defined here: https://github.com/fastly/fastly-ruby/blob/de9ec93d1cb8444b0fa3e6ae344de96cd429ff24/lib/fastly/service.rb#L72
When the soft argument is true, we append the Fastly-Soft-Purge header to the API request.
We call Fastly::Service#purge_by_key here: https://github.com/fastly/fastly-rails/blob/306dfc8944e969b6f5899e59732c18c32f3bdb74/lib/fastly-rails/client.rb#L12 which is called by the soft_purge method here: https://github.com/fastly/fastly-rails/blob/8245aa86030a8cd46896a804adf35d2b450f9597/lib/fastly-rails/active_record/surrogate_key.rb#L41 (note the true argument)
Could I have you confirm that the Fastly-Soft-Purge header is indeed not being sent?


depictions - license and copyright holder organization.

I got a critic from a data provider, that full information about copyright is not displayed on the public pages.
This is the current attribution:
Holotype: NHRS-GULI000105271. Depicts Habitus, lateral view, an Observation. (c)2023 . Created by Gunvi Lindberg. Attribution
The provider stated, that the copyright of the image is not spelled out
The license "CC-BY 4.0" is not displayed,
The copyright of the image belongs to the institution, and this information is also not displayed.
What needs to be done.

[x] Spell the license
[ ] Add attribution to the organisation
[ ] Remoe "an Observation" statement.

This is the page which have all of this information in TW.

Attribution should already reference organizations.


The Linux toolchain CMake build dependency (CMake 3.14 or higher is required. You are running version 3.10.2)

Hi team,
For awareness, I wanted to bring up the issue I faced by compiling my application using the Linux (Ubuntu) Snap. Regression of the CMake dependency might not be an option in this case. However. if someone is searching the web for this issue they have a way forward.
https://github.com/flutter/flutter/issues/101726
https://github.com/canonical/flutter-snap/issues/53
build$ flutter run -d Linux
Downloading linux-x64/linux-x64-flutter-gtk tools...               11.6s
Downloading linux-x64-profile/linux-x64-flutter-gtk tools...         7.5s
Downloading linux-x64-release/linux-x64-flutter-gtk tools...         5.0s
Launching lib/main.dart on Linux in debug mode...
CMake Error at flutter/ephemeral/.plugin_symlinks/sqlite3_flutter_libs/linux/CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.14 or higher is required.  You are running version 3.10.2

Please do not intentionally file duplicates of your own issues.

Sorry @stuartmorgan I submitted it to the wrong project


structural compatibility of union types / mutable union

Consider the following code:
declare var a: {type: "a" | "b"};
const c: {type: "a"} | {type: "b"} = a;

Flow says those types are not compatible with one another
    2: const c: {type: "a"} | {type: "b"} = a;
                                            ^ object type. This type is incompatible with
    2: const c: {type: "a"} | {type: "b"} = a;
                ^ union: object type(s)

While flow is right to say so, since the declared var is not compatible with either one of the variants. But it is compatible with both of them.
What I want to do is the following:
I want to have a union type that is mutable at runtime. I tried to do that via a class whos properties are the sum of all of the unions variants properties. But flow always says it is not compatible.
To elaborate further, consider this example code:
type NotLoaded = {
    loaded: false;
};
type Loaded = {
    loaded: true;
    content: string;
};

class Loader {
    loaded: boolean; // or `true | false` if you wanna be pedantic
    content: string;
}

The problem is that I absolute need internal mutability / referencial integrity, via the class. But I also want to be typesafe on the outside, via the union type.

The problem is that I absolute need internal mutability / referencial integrity, via the class. But I also want to be typesafe on the outside, via the union type.

These properties are kind of mutually exclusive. If you want mutability then type refinement is not possible.

These properties are kind of mutually exclusive. If you want mutability then type refinement is not possible.

Why would that be? Other languages with proper language-level unions/enums can also have internal mutability.

@Swatinem any example?

For example in rust:
#[derive(Debug)]
enum U {
    A(u32),
    B(bool),
}

fn main() {
    let mut u = U::A(42);
    std::mem::replace(&mut u, U::B(true));
    println!("{:?}", u);
}

Ok, provided that rusts borrowck would complain if you had any references to that object, but there are also ways to deal with that.
My point is that at least for the example in comment#1, the class properties are compatible with every one of the union variants, so mutating the discriminant should still yield a valid type. It does so at runtime, thats for sure.
The problem here is more of what the programmers intent is. I could just use the plain class and access .content without a problem. But I want to add discriminant to say "hey, .content is not valid unless .loaded is true."
Like I said, I could just use a plain class, but that would not be sound anyway since flow does not enforce that properties are actually initialized, so .content might be null anyway and throw at runtime.

I see. It probably should be possible if all properties in the union are covariant. One caveat though is that flow should invalidate refinement after function calls, because they can potentially mutate the type.
To be fair, your example seems to be very specific to Rust.

Ok, then let me elaborate more on a js example:
type NotLoaded = {
    loaded: false;
    load: () => void;
};
type Loaded = {
    loaded: true;
    load: () => void;
    content: string;
};
type ILoader = NotLoaded | Loaded;

class Loader {
    loaded: boolean; // or `true | false` if you wanna be pedantic
    content: string;

    constructor() {
        this.loaded = false;
    }

    load() {
        this.content = "foobar";
        this.loaded = true;
    }
}

const l = new Loader();

l.content.length; // this will not warn at compile time but throw at runtime, because of #650
// which is a flaw in flow anyway, but lets ignore that for now. In practice you should define the prop anyway because of hidden class optimizations.

const il: ILoader = new Loader(); // <- this will warn at compile time, what this issue is about.

il.content.length; // this will warn at compile time and is exactly what I want!

il.load();
if (il.loaded) {
    il.content.length; // I want this to only be valid inside the branch checking for `.loaded`!
}

Right now when you assign a value to a union type, it needs to match at least one branch. I'm not sure that it's going to change

BTW, here is your Rust example in Flow:
type MutT<T> = { val: T };
function Mut<T>(val: T): MutT<T> {
  return { val };
}

function replace<T>(mut: MutT<T>, val: T) {
  mut.val = val;
}

type U =
  | { t: 'A', v: number }
  | { t: 'B', v: bool }
;

function A(v: number): U {
  return { t: 'A', v };
}

function B(v: bool): U {
  return { t: 'B', v };
}

const u = Mut(A(42));
replace(u, B(true));

Is this actually a feature request, or a question?
Making {type: "a" | "b"} compatible with {type: "a"} | {type: "b"} would be unsound in light of mutability and refinement. (You could end up with the value {type: "a"} having type {type: "b"})

Closing, since I am not interested in a solution here anymore.


Corrects VersionFetchURL variable and build/VERSION file

What type of PR is this:

/kind bug
What does this PR do / why we need it:
$subject
Which issue(s) this PR fixes:

Fixes #5442
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:
Follow steps in original issue.

/lgtm
/approve

/retest-required


Added Settings Page with DefaultSyncDays settings

Linked Issue(s)
#500
Acceptance Criteria fulfillment

[x] Reducers for Getting and Updating DefaultSyncDaysSetting
[x] NextJs common setting API for Getting and Updating Org settings.
[x] NextJs API for Resetting Bookmark
[x] Added Required types
[x] Settings Page and SyncDaysSetting component
[ ] Call /sync API on updating settings successfully.

@samad-yar-khan @jayantbh Is this approach ok? The settings page still need changes to easily add further settings. We can discuss about it.

@Kamlesh72 Can you also add a screenshot for the UI changes that goes with this PR. Thanks :)

https://github.com/user-attachments/assets/05a15de4-cf9f-4ccd-bc36-714e8e851f07

@jayantbh I will add code to handle the less than currentSyncDays input case. What should be maximum sync days? 365,366?
I am thinking of some way to handle all settings collectively. Will share the approach soon.

I think let's not set a maximum... but, let's start by setting it to 366 days. @Kamlesh72

@samad-yar-khan do I need to call syncReposForOrg() after updating Sync Days?

@samad-yar-khan do I need to call syncReposForOrg() after updating Sync Days?

@Kamlesh72  yes you should. You can also ask the customer if they want to backfill data as per current changes or let the system handle in next sync cycle.

https://github.com/middlewarehq/middleware/pull/516#issuecomment-2288883466

@samad-yar-khan In future we might have more settings and they gets updated together. So asking customer for change might not be a good choice. I think it will be better to just call the sync in background.

@Kamlesh72 I agree with @samad-yar-khan. Either the data fills itself in the next iteration, or the customer force syncs. calling it quietly in the background might not be very intuitive for the user.
If we were so start the sync as soon as the user sets the setting, it would be better to show some message to the user that the sync has started or something along those lines. @jayantbh What are your thoughts on this?

@Kamlesh72 how would we handle multiple setting updations leading to multiple sync calls. Do you think this might overload the sync server?

@samad-yar-khan On every /sync request we are aquiring a lock on redis, so multiple sync calls need to wait till that. So I don't think this will overload the sync server.
If you are asking how we will manage multiple settings, then API call will only be made for settings which are updated by user. Once this PR gets merged, my Next PR will be to handle setting changes collectively. https://github.com/middlewarehq/middleware/pull/516#pullrequestreview-2232670225

@Kamlesh72 were the visual changes that I requested, made? Asking because a bunch of other discussion has happened, and I wonder if I missed it. :) No pressure, just ensuring that I didn't miss anything.

@jayantbh
https://github.com/user-attachments/assets/2a71e659-ec1d-4e1f-ba38-f9b85cab152a

Just one tiny change.
Make the confirmation action (Save) be on the left, and the rejection action (Discard) be on the right.
That's generally how accept/reject CTAs work everywhere. :)
Good going on this though! 👍🏽

I've approved it, but I'd like @samad-yar-khan or @adnanhashmi09 to also cross check.

You guys sure this PR can't use ~12 more comments? 😛

The initial PR and the PR in its current state is significantly different.
Great growth @Kamlesh72 👏🏽
This must have been something to persevere through, but great job sticking to it.

Thanks a lot everyone! Your feedback and guidance have made all the difference.
The learnings I got is invaluable.

LGTM @Kamlesh72 Great Work 🚀

LGTM @Kamlesh72 , good stuff! Merging this 🎉
cc: @samad-yar-khan @adnanhashmi09 @jayantbh

Aw shucks. 93 (94 with this) comments. We were 6 away from greatness. 😂


more docs for somatic exome

@jasonwalker80 @jhundal can you +1 content

@tmooney  Is this more what you had in mind, this is my understanding based on reading the cwl

@zlskidmore Yeah, something like that.  I'd prefer to describe them as optional extra regions for further metric generation rather than "redundant".  But at a minimum they are definitely not YAML files! 😄

Hi @zlskidmore, this input doc sounds relevant with my recent PR each other. I wrote a doc for exome alignment_and QC.

https://github.com/genome/analysis-workflows/pull/882

yeah, I you suggesting we merge PRs?

@zlskidmore - doing a little cleanup here. Did this get merged into gchang's PR, or otherwise included?  Are there changes that still need to be made?  I'm all for extra documentation - just wondering where this PR stands.  Thanks!

I don't think it was ever merged, perhaps @gschang can verify, I never did a merge though


Server Error in '/' Application.

`Server Error in '/' Application.
I have hosted on AZURE but using a remote MySQL database running on Ubuntu 14 hosted on digitalocean.com
This works at some point but in other days, the connection to mysql database seems to go offline. Any help?
Am getting

Unable to connect to any of the specified MySQL hosts.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
   MySql.Data.MySqlClient.NativeDriver.Open() +1154
   MySql.Data.MySqlClient.Driver.Open() +22
   MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +239
   MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() +11
   MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +286
   MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +93
   MySql.Data.MySqlClient.MySqlPool.GetConnection() +65
   MySql.Data.MySqlClient.MySqlConnection.Open() +629
   Serenity.Data.WrappedConnection.Open() in P:\Sandbox\Serene\Serenity\Serenity.Data\Connections\WrappedConnection.cs:120
   itax.SiteInitialization.EnsureDatabase(String databaseKey) in C:\Users\BEN\Documents\Visual Studio 2017\Projects\itax\itax\itax.Web\App_Start\SiteInitialization.Migrations.cs:79
   itax.SiteInitialization.ApplicationStart() in C:\Users\BEN\Documents\Visual Studio 2017\Projects\itax\itax\itax.Web\App_Start\SiteInitialization.cs:40
   itax.Global.Application_Start(Object sender, EventArgs e) in C:\Users\BEN\Documents\Visual Studio 2017\Projects\itax\itax\itax.Web\Global.asax.cs:26

[HttpException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +10063289
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10044576
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2053.0`

Check db connection in web.config published, and test if remote db is up.
If you use standard Serenity connection (default and another, ex. northwind), check both

Sorry but connection issues are not related to Serenity itself.


fix: pgweb needs

:tada: This PR is included in version 1.13.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Does the project support zuul-core?

Greetings,
We are building an API gateway in a project, instead of using spring-cloud-zuul, we use zuul-core for some reasons.
Recently we have a need of doing ratelimit and found this project. We were wondering if this project can be used with zuul-core? If not, does it have a version or module that directly support the zuul-core?
Thanks,

Hi @isaacchiang this project is built expecting some of the spring-cloud-* features to work. If you want to use it with the plain zuul-core you probably need to declare manually all the filters, and @Beans from the RateLimitAutoConfiguration.
Unfortunately, there's not a version only for zuul-core.

@marcosbarbero Got it, thank you!


Use typescript

I've already spent too much time debugging things that didn't work because types were incompatible.

Almost done, only one package remaining: simulator.


Delegate Update and Unit Test

Updated delegate rolesHavePermission to compare URI list to URI list (previously String List to URI List)
Updated unit test for delegate.

@mohideen I am closing this as the PR to which it is applied has been closed (the delegate was completely reimplemented in a different way)


Option to always use Claude

Hi, I'm using the new Claude 3.5-Sonnet model with Copilot (amazing feature btw congrats to the team), and I was wondering if it's possible to make it the default model for Copilot
For example:

When using the chat, instead of having to change the model, if I can always set it to Claude

When using the inline chat mode:

When using the quick chat mode:

Once you select it, the selection should stick for the next chat session, after window reload, etc. But it is remembered separately for the different chat locations. Is this not working for you?

It stays for the next session, in that sense, yes the feature is working perfectly
I was wondering if there was a config for making it persistent across different workspaces

I hear this request, it's a bit hard to do as-is because saving UI state as global data with multiple windows open can lead to confusing results. I'll think about whether we need to provide a setting or something to do this globally though.

It's a good feature

@roblourens just having a user/workspace/etc. setting with a dropdown for default model would be ideal.

I'm looking for this feature as well. It can be an option to define a default model.

i don't know if my issue is a bug rather than a feature request, but i cannot get it to stick with claude even within the same workspace even within the same session. i select claude, make an inline request, it opens a chat window and answers with gpt. i change it to claude and reload the prompt, it changes back to gpt. i finally succeed in changing the prompt in the chat window, then the next time i use the inline prompt, it's gpt again. it's infuriating. a workspace and user config setting for this would be vv welcomed.

@rsslldnphy I'm seeing the same behavior.

+1 It's really confusing when the user switches e.g. "GPT 4o" → "Claude 3.5 Sonnet" in one view, but then in the next view they use it's back to "GPT 4o" again. And this confusion is further exacerbated by the increasing number of copilot/chat views (each of which is awesome):

Chat in sidebar
Chat in editor window
Inline chat
Quick chat
Copilot Edits (new!)

Adding a global setting to control all of them in one place would be very helpful.


runjobs argument handling fails

It seems that runjobs does not work on python3, django 1.10. Specifically, it rejects any arguments with the error: "error: unrecognized arguments: hourly" (or daily, weekly, etc.)
Reverting 21aa884 seems to fix the issue locally.

seems the patch 21aa884 was incomplete and needs another add_argument line for the arguments.

The following commit on git master should solve it: a72e0265156b869a347f726091c1843eb588f1bc
Could you please test this patch ?

Looks good and seems to be working, thanks for the quick fix!


Fixed redirect with completion property not being called

The new completion properties weren't getting called due to the bad respondsToSelector check.
I updated the test suite to provide test coverage for this property, as well as made that test suite a little cleaner by using a unique manager each time through.
@cnoon The same treatment may be needed here for the other properties you added to 3.3, but I'm not familiar with those yet.

This looks great @kcharwood. Thanks for putting it together. I'm going to merge these changes then get the other closures fixed up as well. 🍻


RDBES: Update descriptions for RS_CatchCategory

The description for RS_CatchCategory should be updated to the following (Spelling error in desc. for RegDis: Registered):
Code	Description
BMS 	Below Minimum Size landing
Catch 	Catch (when landing and discard is mixed)
Dis 	Discard
Lan 	Landing
RegDis 	Logbook Registered Discard

@cekv to implement

Implemented on 28/05/2021 by Cecilia