CI builds are broken on Windows

Describe the Bug
Starting yesterday, all CI builds start to break on Windows, especially our nightly: https://github.com/camunda/camunda-modeler/runs/5324718004?check_suite_focus=true
Error output:
node-pre-gyp ERR! install response status 404 Not Found on https://node-precompiled-binaries.grpc.io/grpc/v1.24.10/electron-v12.1-win32-x64-unknown.tar.gz
node-pre-gyp WARN Pre-built binaries not installable for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(electron-v12.1 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error response status 404 Not Found on https://node-precompiled-binaries.grpc.io/grpc/v1.24.10/electron-v12.1-win[32](https://github.com/camunda/camunda-modeler/runs/5324718004?check_suite_focus=true#step:5:32)-x64-unknown.tar.gz
gyp ERR! find VS
gyp ERR! find VS msvs_version not set from command line or npm config
gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
gyp ERR! find VS unknown version "undefined" found at "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
npm ERR! code ELIFECYCLE
npm ERR! errno 1
gyp ERR! find VS looking for Visual Studio 2015
gyp ERR! find VS - not found
gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
gyp ERR! find VS
gyp ERR! find VS **************************************************************
gyp ERR! find VS You need to install the latest version of Visual Studio
gyp ERR! find VS including the "Desktop development with C++" workload.
gyp ERR! find VS For more information consult the documentation at:
gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
gyp ERR! find VS **************************************************************
gyp ERR! find VS
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Visual Studio installation to use

Steps to Reproduce

Open builds
See that all builds are failing on Windows while installing the dependencies, beginning yesterday ~10AM

Expected Behavior
Builds should run green.
Environment

OS: [e.g. MacOS 10.2, Windows 10]
Camunda Modeler Version: [e.g. 2.0.0]
Execution Platform: [e.g. Camunda Platform, Camunda Cloud]
Installed plug-ins: [...]

This might be a wild guess, but I had similar errors (c++ compiler missing) when windows build tools were missing with react development. Do we know how the CI windows is configured?

At least it works on other platforms: https://github.com/camunda/camunda-modeler/runs/5330533353?check_suite_focus=true

Can one of our Windows users maybe verify whether it works locally? By doing a fresh install
npm ci

@philippfromme @Skaiir

 find VS could not find a version of Visual Studio 2017 or newer to use

Trying this one out: https://github.com/camunda/camunda-modeler/actions/runs/1897581013

Might be related to latest virtual environment update https://github.com/actions/virtual-environments/commit/b410b609eb2117007c3ba135b49fa41211d9f8d1
It also fails on other Windows versions that got an update recently (Visual C++ 14.31 is the common change here).

I just saw that the Jobs failed on Windows-2022, when windows-latest was windows-2019 before. Checking with explicit windows-2019: https://github.com/camunda/camunda-modeler/actions/runs/1897615012

Works on windows 2019: https://github.com/camunda/camunda-modeler/runs/5330823564?check_suite_focus=true
What are the next steps? I guess we pin the windows version for now?

Ah guess I figure I was too late with that one, git ci works locally though 🤡, not that this is useful info anymore.

I guess we pin the windows version for now?

+1 for this one. We do already the same with MacOS.
On the longer runner, we should really investigate an Electron upgrade (https://github.com/camunda/camunda-modeler/issues/2538), and get rid of the C++ based grpc dependency (https://github.com/camunda-community-hub/zeebe-client-node-js/blob/master/CHANGELOG.md#breaking-changes).

Found the issue that changes the target windows-latest version:
https://github.com/actions/virtual-environments/issues/4856

This change will be rolled out over a period of several weeks beginning on January, 17. We plan to complete the migration by March, 6.


command error by Running npm

npm install -g cloud-annotations
when i run this command, its gives error that command doesn't found... i dont know how to make it run

Make sure you have node installed

this is the error... node is installed with version 6.4.1
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access '/usr/local/lib/node_modules'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).
npm ERR!      /Users/.npm/_logs/2019-04-26T10_42_16_004Z-debug.log

Oh, you need node version 10+ and if it still doesn’t work and gives you permission errors try running with sudo, but you really shouldn’t have to unless node/npm was set up in a weird way

thanks it worked with sudo

i have 4 classes Speed 20, 30 , 50, 60.....i have uploaded 400 images for annotations... there is no option... how can i annotate my data(which is already in bucket).

for training: which "url" is needed ?

Did you choose classification instead of localization? If so, you need to delete that bucket and create a new one, or modify the _annotations.json file to "localization"

I'm going to close this issue, feel free to open another issue regarding your new question about annotating the data


make VM computed goto dispatch table configurable

Hi!
I've tried to build the project on Windows with MSVC, and I've had to make a few changes to it. The biggest one was disabling computed gotos for the dispatch table on the VM, so I've added an option to make it configurable. I haven't tested it on GCC yet, but hopefully my changes are harmless enough.

Thanks! I've been aware of this MSVC issue, but I've never found the time to do this. The unit tests should tests this automatically and if they pass, I'll merge it.

 And I'm sure you know this but:

If you mean running the unit tests as they are in GCC, they will of course pass, because computed gotos are enabled by default, so nothing will change. If you disable computed gotos, then yeah, it should test my code.
If you mean testing on MSVC, it won't work yet because #include <string> is missing in many places (or adding it to global.h which is what I did, although I'm not sure that's what you wanted) as well as solving ambiguities with the<PHONE_NUMBER>99999999L constant in many tests and some other issues.

I think it would make sense to merge this as a part of MSVC support changes and then make more pull requests for the other changes. And if it's ready, add a GitHub action for testing on Windows using MSVC.

Sure, that was my intention.

And by the way, I've never actually used CMake on Windows, but how did you make the find_package() for nlohmann json and utf8cpp work? Did you install the libraries somewhere manually?

I've just replaced a few bits and I've used vcpkg, it takes care of all the finding and building and whatnot, and the dependencies are explicitly stored on a json file, which is neat.

Looks good! Do you think I should include the dependencies in the repository (as git submodules or make CMake fetch them) so you don't have to change anything to build it?

That's a it of a difficult question, and although I prefer to fetch deps with vcpkg myself, maybe having a copy or CMake FetchContent might be a good idea. I use submodules a lot, but maybe you should avoid them if possible (they're difficult to update if you're not familiar), although that really depends who your target audience is with this repository and what their level of "git-fu" should be.

@Arcnor I use submodules too, even in this project. Check out ScratchCPP Render (which uses libscratchcpp) and ScratchCPP Player (which uses ScratchCPP Render).
ScratchCPP Player will be supported on Windows, by the way. However, I'm going to use MinGW in the official binaries.


v0.1.2 Update command throws NullPointerException

The UpdateCommand class returns null from the routine() method where it should return IO.println("Not Implemented yet!")
Due to this there is a null pointer exception which is not helpful.
to reproduce this error add the following test to v1.1.2
  @Test
    public void testUpdateParserNiy() throws Exception {
        final CLICommand updateCommand = CLIParsers.commandParser.parse("update");
        updateCommand.routine().run(IOContext.fake());
        assertTrue("Should Reach here", true);
    }

Do you mean v0.1.2? v1.1.2 doesn't exist yet!

oops, typo :)

In v0.1.2 the update command is indeed not working. It is also not documented.
The idea behind update was to provide a way for the user to update the dependencies installed in their project after the cookbook has been updated. With the current commands, this is equivalent to:
# Remove the buckaroo folder from your project directory
rm -rf ./buckaroo/

# Run install again
buckaroo install

This should be fixed in v1.2.0, which resolves dependencies slightly differently to v0.1.*.
@nikhedonia should we patch v0.1.2?

If you want to fetch the latest version of the cookbook, the command is:
buckaroo upgrade

Yup, figured that out but a lot of command's routine method still return null in v 0.1.2.
Feel free to mark it won't fix if you want to, I got this version because homebrew provided v0.1.2

Now that v1.2.0 I think we can mark this as won't fix.
The documentation for upgrade and update has been updated.


[BUG] com.azure.resourcemanager.compute.models.VirtualMachines.list() query returns deleted VM

Describe the bug
com.azure.resourcemanager.compute.models.VirtualMachines.list() query returns deleted VM.
Fetching details using the returned VM object will result in ResourceNotFound ApiErrorException
To Reproduce

Manually create a VM from Azure Portal
Query VirtualMachines using com.azure.resourcemanager.compute.models.VirtualMachines.list()
Delete VM from Azure Portal
Query VirtualMachines using com.azure.resourcemanager.compute.models.VirtualMachines.list() with the same client
Find object of deleted VM instance from query result and retrieve powerState from found object to trigger refreshInstanceView
refreshInstanceView will trigger ApiErrorException with code ResourceNotFound

/cc @weidongxu-microsoft

@qooiprww
Delete in step 3 takes time. It could be a minutes or 2. Meanwhile, List in step 4 could still return the VM.
But all depends on timing. If now in step5, when you call the refreshInstanceView, the VM just get deleted in backend, you will have error.
If you do the refreshInstanceView when you know the VM may be in the process of getting delete, please do error handling in your code.

it appears that step 4 is still returning the deleted VM after the delete process is finished.

@qooiprww
Although the virtual machine has been deleted in step 3, the provisioningState  of virtual machine remains in Deleting because the backend process has not been completed, so the List in step 4 can still return the VM. I think it is necessary to add filter .filter(virtualMachine -> !"Deleting".equals(virtualMachine.provisioningState())) for com.azure.resourcemanager.compute.models.VirtualMachines.list().

I did some testing with deleted VMs:
After deleting the VM and verified that it's no longer visible in the Resource Group, the com.azure.resourcemanager.compute.models.VirtualMachines.list() request still returned deleted vm with provisioningState Succeeded

@qooiprww
If you delete virtual machines from the Azure portal using an asynchronous request similar to the code snippet below

the issue you describe will indeed occur because the delete request is not triggered until after the asynchronous request completes. You can avoid this in two ways.

Use a synchronous request to delete virtual machines, such as the following code snippet

Add a filter to the virtual machine name.

@qooiprww
Please elaborate on how you did step 3. If you are doing this via APIs, please provide relevant test code snippets, thanks!


Bug: Component Status shows Duplicates

Duplicate rows for component names in status report

Fixed in 2<IP_ADDRESS>


Multiple API keys supported ?

Hello ! I have a quiet similiar question than here => https://github.com/swagger-api/swagger-codegen/issues/5224#issue-217213572
And if I try to add more than one @Security() decorator at the method level I get an error "Only one Security decorator allowed in ... {method or className}".
Is there a way to add multiple apikeys ?

Moved to https://github.com/thiagobustamante/typescript-rest-swagger/issues/51


contiv-vpp performance issue for host to nodeport

Hi Folks,
I'm running a small performance test with contiv-vpp to measure the bandwidth and throughput using the iperf3.

Looks like the throughput I am getting is less than 4 Gbits/sec for host to nodeport (same node) and less than 1 Mbits/sec for host to nodeport (different node) for my 25 GbE NIC (Intel XXV710 SFP)
It's a simple iperf3 setup on each node and NodePort service configured for each of them.

Anybody trying to do some performance testing or can help to confirm in their environment? Thanks!

You 1MBit/s or 1 GBit/s?
Also, if you haven't done so, please remove the line '    poll-sleep-usec 100' from vpp configuration (/etc/vpp/contiv-vswitch.conf) - that's there for VM deployments, and will impact performance.

Hi,
measuring the performance from host is not really a good way to benchmark contiv-vpp. It means that all NATing happens in the kernel (via iptables rules installed by kube-proxy). Try measuring from POD (NOT with hostNetwrok==True), that way all NATing happens on VPP.

So, I tried  pod to pod (two different nodes) case, and the bandwidth at receiver end is 0.00 bits/sec, whereas,  sender send out merely 69.5 Kbits/sec for the test of 10 seconds over 25GbE NIC.

 Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.03  sec  84.8 KBytes  69.3 Kbits/sec    5             sender
[  5]   0.00-10.03  sec  0.00 Bytes  0.00 bits/sec                  receiver
CPU Utilization: local/receiver 0.0% (0.0%u/0.0%s), remote/sender 0.4% (0.1%u/0.3%s)
iperf 3.0.7

IP route from client:
al-server-a:~$ ip route get <IP_ADDRESS>
<IP_ADDRESS> via <IP_ADDRESS> dev vpp1 src <IP_ADDRESS> uid 1003
    cache

Ping from VPP (client to iperf3 server):
al-server-a:~$ sudo vppctl ping <IP_ADDRESS>
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=63 time=.5222 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=63 time=.4073 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=63 time=.5462 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=63 time=.5253 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=63 time=.5433 ms

Statistics: 5 sent, 5 received, 0% packet loss

Ping from VPP (iperf3 server to client):
al-blacknode-a:~$ sudo vppctl ping <IP_ADDRESS>
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=63 time=.5044 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=63 time=.5138 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=63 time=.3973 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=63 time=.3868 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=63 time=.5670 ms

Statistics: 5 sent, 5 received, 0% packet loss

Hi @rastislavszabo any comments/suggestions? Do you have the same issue in your lab?

Hi @acloudiator, you are pinging from VPP to a remote pod, not from pod to pod. Something is not right with your network topology, and end-to-end pod-to-pod connectivity does not seem to be working. Can you please run the 'contiv-vpp-bug-report.sh' script on your cluster and send us the resulting zip file?
I do not ha ve a bare metal setup, but i ran iperf on my VM setup that I brought up using our Vagrant scripts (VirtualBox on Linux16.04). Everything worked fine. Can you please try it yourself on a vagrant setup, and see if it works for you? Thanks.

Hi,
i ran into the same issue, im trying to measure the performance on both the bare metal and the vagrant setup. The tests on the vagrant setup are working fine, but on the bare metal setup i got results as above.
pod-to-pod connectivity seems working for me.
Ping from  <IP_ADDRESS> to a pod on a different node
root@scapy:/# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=62 time=0.475 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=62 time=0.876 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=62 time=0.635 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=62 time=0.764 ms
64 bytes from <IP_ADDRESS>: icmp_seq=6 ttl=62 time=0.719 ms

Here is the zip from the contiv-bug-report script:
contiv-vpp-bug-report-2018-07-25-15-44.tar.zip

Hi,
can you please share the Linux version being run on the bare metal setup, the deployment yamls for the netperf daemonsets, and the commands/scripts used to perform the test? Are you running netperf against the physical addresses of the netperf pods, or against the netperf-server service address (<IP_ADDRESS>)? Thx.

this isn't some strange fragmentation problem, is it?  MSS of 1448 will be too big for 1500 byte packets once you account for the VXLAN overhead.
at any rate will try to test here on my own bare metal setup

ok works fine for me:
xrvr@i2ss-c2201:~$ kubectl exec iperf3-clients-cfrvc -- iperf3 -c <IP_ADDRESS> -p 5201
Connecting to host <IP_ADDRESS>, port 5201
[  4] local <IP_ADDRESS> port 40764 connected to <IP_ADDRESS> port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   158 MBytes  1.32 Gbits/sec   55    369 KBytes
[  4]   1.00-2.00   sec   182 MBytes  1.53 Gbits/sec   39    359 KBytes
[  4]   2.00-3.00   sec   164 MBytes  1.38 Gbits/sec   10    332 KBytes
[  4]   3.00-4.00   sec   158 MBytes  1.32 Gbits/sec    4    407 KBytes
[  4]   4.00-5.00   sec   153 MBytes  1.28 Gbits/sec   14    303 KBytes
[  4]   5.00-6.00   sec   168 MBytes  1.41 Gbits/sec   21    334 KBytes
[  4]   6.00-7.00   sec   159 MBytes  1.33 Gbits/sec   12    283 KBytes
[  4]   7.00-8.00   sec   153 MBytes  1.29 Gbits/sec    9    404 KBytes
[  4]   8.00-9.00   sec   135 MBytes  1.13 Gbits/sec   17    335 KBytes
[  4]   9.00-10.00  sec   138 MBytes  1.16 Gbits/sec    6    399 KBytes

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.53 GBytes  1.31 Gbits/sec  187             sender
[  4]   0.00-10.00  sec  1.53 GBytes  1.31 Gbits/sec                  receiver
iperf Done.
maybe we can debug your setup live tomorrow?

ah - my bad. that was on the local host.  I see the issue going over the network :(
xrvr@i2ss-c2201:~$ kubectl exec iperf3-clients-kx7d6 -- iperf3 -c <IP_ADDRESS> -p 5201
Connecting to host <IP_ADDRESS>, port 5201
[  4] local <IP_ADDRESS> port 56150 connected to <IP_ADDRESS> port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  84.8 KBytes   694 Kbits/sec    2   1.41 KBytes
[  4]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes
[  4]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  4]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes
[  4]   4.00-5.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  4]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  4]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes
[  4]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  4]   8.00-9.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  4]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  84.8 KBytes  69.5 Kbits/sec    5             sender
[  4]   0.00-10.00  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf Done.
but if I drop the MSS to 1400 bytes it works fine:
xrvr@i2ss-c2201:~$ kubectl exec iperf3-clients-kx7d6 -- iperf3 -V -M 1400 -c <IP_ADDRESS> -p 5201
iperf 3.0.7
Linux iperf3-clients-kx7d6 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 GNU/Linux
Time: Wed, 25 Jul 2018 18:07:13 GMT
Connecting to host <IP_ADDRESS>, port 5201
Cookie: iperf3-clients-kx7d6.1532542033.6070
TCP MSS: 1400
[  4] local <IP_ADDRESS> port 57864 connected to <IP_ADDRESS> port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   109 MBytes   912 Mbits/sec   93    842 KBytes
[  4]   1.00-2.00   sec   109 MBytes   912 Mbits/sec    0    933 KBytes
[  4]   2.00-3.00   sec   108 MBytes   902 Mbits/sec    0   1014 KBytes
[  4]   3.00-4.00   sec   104 MBytes   870 Mbits/sec    0   1.06 MBytes
[  4]   4.00-5.00   sec   106 MBytes   891 Mbits/sec  387    622 KBytes
[  4]   5.00-6.00   sec   109 MBytes   912 Mbits/sec    0    741 KBytes
[  4]   6.00-7.00   sec   109 MBytes   912 Mbits/sec    0    843 KBytes
[  4]   7.00-8.00   sec   108 MBytes   902 Mbits/sec    0    934 KBytes
[  4]   8.00-9.00   sec   105 MBytes   881 Mbits/sec  271    544 KBytes
[  4]   9.00-10.00  sec   105 MBytes   881 Mbits/sec   57    549 KBytes

Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.04 GBytes   898 Mbits/sec  808             sender
[  4]   0.00-10.00  sec  1.04 GBytes   896 Mbits/sec                  receiver
CPU Utilization: local/sender 5.3% (0.2%u/5.1%s), remote/receiver 5.9% (0.3%u/5.6%s)
iperf Done.
ok - will dig into it here.

ok - had a chance to look at the issue here.  The problem was my Ethernet switch was configured with default 1500 byte IP MTU, but VPP was set to a 9K MTU on the GigE port.   The tap port has a 1500 byte MTU also, so then the 1448 byte TCP MSS becomes 1488 bytes of IP MTU but with VXLAN overhead that expands to 1538 bytes (one extra MAC header of 14 bytes plus 8 bytes each of VXLAN and UDP headers and 20 bytes of IPv4).   So my switch was seeing the packets as "giants".   I reconfigured the switch to support jumbo frames on the interconnect VLAN and the server-facing ports and all was AOK:
======
xrvr@i2ss-c2201:~$ kubectl exec iperf3-clients-kx7d6 -- iperf3 -V -c <IP_ADDRESS> -p 5201
iperf 3.0.7
Linux iperf3-clients-kx7d6 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 GNU/Linux
Time: Thu, 26 Jul 2018 12:26:52 GMT
Connecting to host <IP_ADDRESS>, port 5201
Cookie: iperf3-clients-kx7d6.1532608012.3495
TCP MSS: 1448 (default)
[  4] local <IP_ADDRESS> port 60302 connected to <IP_ADDRESS> port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   109 MBytes   918 Mbits/sec   37   1.21 MBytes
[  4]   1.00-2.00   sec   106 MBytes   891 Mbits/sec    0   1.32 MBytes
[  4]   2.00-3.00   sec   109 MBytes   912 Mbits/sec    0   1.41 MBytes
[  4]   3.00-4.00   sec   104 MBytes   870 Mbits/sec  218   1.06 MBytes
[  4]   4.00-5.00   sec   108 MBytes   902 Mbits/sec    0   1.13 MBytes
[  4]   5.00-6.00   sec   109 MBytes   912 Mbits/sec    0   1.20 MBytes
[  4]   6.00-7.00   sec   109 MBytes   912 Mbits/sec    0   1.27 MBytes
[  4]   7.00-8.00   sec   109 MBytes   912 Mbits/sec    0   1.33 MBytes
[  4]   8.00-9.00   sec   106 MBytes   891 Mbits/sec  137   1.04 MBytes
[  4]   9.00-10.00  sec   106 MBytes   892 Mbits/sec    0   1.13 MBytes

Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.05 GBytes   901 Mbits/sec  392             sender
[  4]   0.00-10.00  sec  1.05 GBytes   900 Mbits/sec                  receiver
CPU Utilization: local/sender 5.5% (0.3%u/5.3%s), remote/receiver 1.1% (0.1%u/1.0%s)
iperf Done.
The default contiv-vpp.yaml sets MTU to 1500 bytes (see the MTUSize statement on line 29).  that seems to work for the tap interfaces but not for the loop0 or the GigE port (which are left at 9K).
If you can't reconfigure your Ethernet switches then you can modify the MTUSize in Contiv-VPP.yaml to 1450 bytes or less.
I did that here and reset my switches to 1500 byte MTUs and iperf3 now works fine (albeit it consumes slightly more CPU given the smaller packets):
======
xrvr@i2ss-c2201:~$ kubectl exec iperf3-clients-f2gml -- iperf3 -V -c <IP_ADDRESS> -p 5201
iperf 3.0.7
Linux iperf3-clients-f2gml 4.4.0-78-generic #99-Ubuntu SMP Thu Apr 27 15:29:09 UTC 2017 x86_64 GNU/Linux
Time: Thu, 26 Jul 2018 13:59:45 GMT
Connecting to host <IP_ADDRESS>, port 5201
Cookie: iperf3-clients-f2gml.1532613585.9540
TCP MSS: 1398 (default)
[  4] local <IP_ADDRESS> port 59554 connected to <IP_ADDRESS> port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   109 MBytes   917 Mbits/sec   53   1.18 MBytes
[  4]   1.00-2.00   sec   108 MBytes   902 Mbits/sec    0   1.29 MBytes
[  4]   2.00-3.00   sec   108 MBytes   902 Mbits/sec    0   1.38 MBytes
[  4]   3.00-4.00   sec   108 MBytes   902 Mbits/sec  483   1.01 MBytes
[  4]   4.00-5.00   sec   108 MBytes   902 Mbits/sec    0   1.09 MBytes
[  4]   5.00-6.00   sec   109 MBytes   912 Mbits/sec    0   1.15 MBytes
[  4]   6.00-7.00   sec   105 MBytes   881 Mbits/sec    0   1.22 MBytes
[  4]   7.00-8.00   sec   109 MBytes   912 Mbits/sec    0   1.28 MBytes
[  4]   8.00-9.00   sec   108 MBytes   902 Mbits/sec  503    965 KBytes
[  4]   9.00-10.00  sec   108 MBytes   902 Mbits/sec    0   1.06 MBytes

Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.05 GBytes   903 Mbits/sec  1039             sender
[  4]   0.00-10.00  sec  1.05 GBytes   902 Mbits/sec                  receiver
CPU Utilization: local/sender 5.8% (0.2%u/5.6%s), remote/receiver 4.1% (0.2%u/3.9%s)
iperf Done.

as an example of the benefits of increasing MTU see the below (where we get to 983 mbits/s instead of 903 simply by using larger MTUs):
xrvr@i2ss-c2201:~$ kubectl exec iperf3-clients-spj2q -- iperf3 -V -c <IP_ADDRESS> -p 5201
iperf 3.0.7
Linux iperf3-clients-spj2q 4.4.0-78-generic #99-Ubuntu SMP Thu Apr 27 15:29:09 UTC 2017 x86_64 GNU/Linux
Time: Thu, 26 Jul 2018 14:11:25 GMT
Connecting to host <IP_ADDRESS>, port 5201
Cookie: iperf3-clients-spj2q.1532614284.8026
TCP MSS: 8836 (default)
[  4] local <IP_ADDRESS> port 44690 connected to <IP_ADDRESS> port 5201
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   118 MBytes   992 Mbits/sec   12   1.58 MBytes
[  4]   1.00-2.00   sec   118 MBytes   986 Mbits/sec    1   1.35 MBytes
[  4]   2.00-3.00   sec   118 MBytes   986 Mbits/sec    0   1.69 MBytes
[  4]   3.00-4.00   sec   116 MBytes   975 Mbits/sec    1   1.47 MBytes
[  4]   4.00-5.00   sec   118 MBytes   986 Mbits/sec    0   1.80 MBytes
[  4]   5.00-6.00   sec   116 MBytes   975 Mbits/sec    4   1.59 MBytes
[  4]   6.00-7.00   sec   118 MBytes   986 Mbits/sec    1   1.36 MBytes
[  4]   7.00-8.00   sec   118 MBytes   986 Mbits/sec    0   1.70 MBytes
[  4]   8.00-9.00   sec   116 MBytes   975 Mbits/sec    2   1.47 MBytes
[  4]   9.00-10.00  sec   118 MBytes   986 Mbits/sec    0   1.80 MBytes

Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.14 GBytes   983 Mbits/sec   21             sender
[  4]   0.00-10.00  sec  1.14 GBytes   982 Mbits/sec                  receiver
CPU Utilization: local/sender 5.8% (0.2%u/5.6%s), remote/receiver 5.9% (0.3%u/5.6%s)
iperf Done.

Changing default MTU to 1450 in https://github.com/contiv/vpp/pull/959

@rastislavszabo
Thanks for merging the fix!
@gilesheron
Thanks for your findings! Have got two questions for you, if you don't mind.

Was this test a pod to pod or host to Nodeport. Please confirm.
What is your NIC capacity? 1 or 10 GbE? I will be trying this thing next week on 25 GbE NIC and share the results. I believe with MTU 1450, it should work for me as well.

I would expect much better performance. any idea?
anyone tested with 25G intel NICs?

Hi @itaimlx ,
in the POD-to-POD setup, the main bottleneck is in the TAP interface between VPP and the POD, which goes via kernel. There are some improvements coming (implementation of Generic Segmentation Offload - GSO on VPP), but that will come later, with VPP 19.04.
To utilize your NIC, you may try scaling this up to several server PODs and several client PODs on each node. You can also use k8s service to load-balance between multiple server PODs - the load-balancing happens on VPP, so there shouldn't be any big performance drop.
Also, you may try tweaking MTUs, and if both nodes are on the same L2 subnet, disable VXLAN between the nodes using the useL2Interconnect: true (https://github.com/contiv/vpp/blob/master/k8s/contiv-vpp.yaml#L25).

@rastislavszabo - thanks for the quick reply!
I also tried to increase the number of cores used by vpp without success (see #1432), but now I understand that it would not help in any case.
few more questions:

my nodes are connected back to back. is there a point tweaking MTUs?
I repeated the test with pure L2 (no vxlan) as you advised and got the same results
what did you mean in your comment above regarding measuring from POD (NOT with hostNetwrok==True)? were you referring to hostNetwrok vswitch parameter in contiv-vpp.yaml ?
does it make sense that same iperf test over contiv (ovs) data plane will give 11Gbits/s, and over contiv-vpp only 2Gbits/s? (https://community.mellanox.com/s/article/reference-deployment-guide-for-kubernetes-cluster-with-contiv-cni-plugin-over-mellanox-25gb-and-100gb-ethernet-solutions). both are   limited by kernel...

@itaimlx

MTU - see https://github.com/contiv/vpp/blob/master/k8s/contiv-vpp.yaml#L33
yeah, might be, since the VXLAN encap (VPP) is not the bottleneck
I meant not setting hostNetwork: true for the PODs with the application (iperf in your case), not contiv PODs
yeah, if it is on exactly same setup & hardware, it would be interesting to dig into it. I would expect the same performance as well. Not sure if OVS uses GSO?


Remove deprecated distutils dependency

The dependency:
File "/home/user/.local/share/virtualenvs/ibind-project-5ZC5ySRt/lib/python3.12/site-packages/ibind/var.py", line 4, in <module>
  from distutils.util import strtobool

distutils is deprecated. It is problematic installing it with newer python versions.
Maybe this could help.

Thanks for pointing out, I'll look into alternatives 👍

This might also help

v0.1.5 has been released addressing this issue. Thanks for your contribution! Feel free to close it 👍

I'm going to close this issue due to inactivity. Thanks for your contribution and please feel free to request a reopen if you'd like to continue the discussion 👍


Turn web.gradle into versioned Gradle Plugin

https://docs.gradle.org/current/userguide/custom_plugins.html

Moved to https://github.com/square/misk-web/issues/8


Description of 'category' parameter missings full usage of the parameter

It says only that it is used with Translator Hub, when in fact, it also can specify SMT, NMT, translation domains (tech, general) in addition to the MT Hub customizations.

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

ID: 1648784c-c385-4120-a2a6-3414a0d752e1
Version Independent ID: 1f90c698-a146-3345-40dd-eb5dabe56cf3
Content: Microsoft Translator Text API Translate Method
Content Source: articles/cognitive-services/Translator/reference/v3-0-translate.md
Service: cognitive-services
GitHub Login: @Jann-Skotdal
Microsoft Alias: v-jansko

@Paul-Dempsey Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.
@Jann-Skotdal Hi, this is a issue about 'category' parameters, can you please check it and update the document as necessary? Thanks a lot!

@Paul-Dempsey The V3 API is neural by default and text can be customized using the Custom Translator, not the Hub which is only available for customizing statistical machine translation. This page has been updated to reflect that. Standard categories (eg. tech, speech are not available with V3. This information has been added to the Migration page (https://docs.microsoft.com/en-us/azure/cognitive-services/translator/migrate-to-v3#customization) and the Customization page (https://docs.microsoft.com/en-us/azure/cognitive-services/translator/customization)

#please-close

@Paul-Dempsey
We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.


🐛 Bug Report: MembersListCard link uses hardcoded catalog route path

📜 Description
In case of using different from 'catalog' route paths clicking on any member in Group page leads to hardocded /catalog/:namespace/user/${metaName} path.
It shouldn't be hardcoded and allow to use route paths different from 'catalog'.
👍 Expected behavior
Dynamic route path should be used here:
https://github.com/backstage/backstage/blob/e8bebb6f5f7e20539511720778afc478510a5cc9/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx#L108
👎 Actual Behavior with Screenshots
Hardcoded route path is used during navigation:

👟 Reproduction steps

Setup Backstage with custom catalog route path:

<Route path="custom-catalog" element={<CatalogIndexPage />} />

Open any Group entity with Members.
Click on any Member.
User should be navigate to corresponding user page.

📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

Hi @ypetrych, I can look into this bug. If someone is able to assign it to me I would appreciate it.


fix: use cgofree oracle client

Hi @Srtpatil godror uses CGO which we are avoiding using in meteor for now. Can you check/test if this client is fine?

Sure I will take a look

HIgh-level tests are passing. Merging it to avoid breaking the pipeline. e2e testing for this can be picked up in parallel.


getVideoData is not a function error

When the script binds to an element that already is an YT player, it breaks. We can fix this by checking to see if YT.get(elementId || 'widget' + n), where n is the count of YouTube iframes we're on. If this is the case, we might be able to attach an event listener.

Dan, I still have this issue in a specific situation (this page). What exactly was the fix? The commit only contains an updated comment.

@rmeekers Should've tagged this: https://github.com/lunametrics/youtube-google-analytics/commit/5162442db198e785e2c9634dba7f5ac27f551ee1#diff-2b793c9228aa48c6a2b22a75d366918bL151
Basically the issue was the code was calling new YT.Player() on all elements that might be YouTube videos, but sometimes YT.Player's had already been created with the element by other code (like yours). Now the script uses YT.get() first to see if a Player has already been initialized on the given DOM element, and uses the existing Player if so.
Try with the latest version and see if it solves your issues.

@DanWilkerson as far as I can see, the binding goes fine.
The iframe gets detected and then this code is executed:
            if (typeof youTubeIframe.pauseFlag === 'undefined') {
              console.log('addYouTubeEvents_2');
                youTubeIframe.pauseFlag = false;
                player.addEventListener('onStateChange', function(evt) {
                    onStateChangeHandler(evt, youTubeIframe);
                });
            }

I've found some info about the getVideoData() function. It's an unsupported function and it seems that Google doesn't provide it in some cases. I'm not sure why. A Google YouTube developer said that we should not use that function because it's not supported and thus not reliable.
We should use the YouTube API instead by calling http://gdata.youtube.com/feeds/api/videos/$targetVideoId?v=2&alt=jsonc. Suggestion how to implement this?

That API was deprecated a little while ago and can no longer be used to retrieve title information; we actually switched to using .getVideoURL() a few versions back because of this. Update to the latest version and you'll be all set.
https://github.com/lunametrics/youtube-google-analytics/issues/34

@DanWilkerson I still get this error for some videos. Even with the current version of the script. I tried debugging it but can't find out what's going wrong. Any suggestions where I can look?
e.getVideoUrl is not a function (script line 285 https://github.com/lunametrics/youtube-google-analytics/blob/master/src/lunametrics-youtube.gtm.js#L285)

If you share a page where I can reproduce, I'd be happy to take a look!

I've sent it by email (contact form on your website) few days ago.

I can't seem to see the page any longer, but I did take a look and my guess is that some code on the page is messing with the functionality of the plugin. I'd try having just the video and the YouTube tracking script, then adding back in other stuff until it breaks again.


Improvements Placement of views on sheets

Situation right now
I made a small correction to the script. Probably related to the used Dynamo version.
See screencast: https://autode.sk/2KjeiNb (201212_Boonen Jan_Geonius_RVT-DYN_Resolve-create-sheets-for-existing-views)
What improvement do you suggest ?

Keep the already existing sheets (now these overwritten / views are removed)
Select different Title Blocks for Sheets (choice is up to Generative Design)
Page arrangement sometimes illogical (floor plans should be with floor plans, elevation views with elevation views, ... )
Possibility to add legend on each sheet
Input possibly (possibility) on the basis of drawn up sheet list

How would this change improve the Primer ?
Better solutions are provided through the use of Generative Design.
Are you ready to help write this addition ?
Yes

Thanks for filing this we will look into it.

Thanks for filing this we will look into it.

Great, what are the next steps?

Great, what are the next steps?


IDE for Chef development

Hi,
I've been doing some Chef work for sometime, and i've tried to work with few tools like IntelliJ Ultimate, RubyMine, VS Code and else as IDE for doing Chef work. None was near to optimal.
I am seeking recommendations to tooling to help with doing Chef coding ?
Thanks,
/Mo

Thanks for filing a GitHub Issue.
At Chef, we use GitHub Issues to track bugs and feature requests. Questions like "How do I .... with Chef?" are better answered by our awesome community on the Chef mailing lists, or on StackOverflow. (Please pick only one place to ask your question, however, as it's considered impolite to post the same question to multiple forums.)
You can find information about joining and asking questions on our mailing lists here. On StackOverflow, please tag your question with the "chef" label so that it shows up in this list.
We will be closing your issue. Please get in touch with the community via the above mechanisms in order to find a solution to your problem.


Clickhouse: issue in CTE

select query failing on saved snippet.

The below query fails:
%%sql
SELECT * from plot_something_subset;

Error:
DatabaseException: Orig exception: Code: 62.
DB::Exception: Syntax error: failed at position 33 (line 1, col 33): (
SELECT * from plot_something_79c5bc LIMIT 3)
SELECT * from plot_something_subset;. Expected identifier. Stack trace:

Hey @neelasha23, I was unable to reproduce the error.
I used the code from jupysql docs for clickhouse to load the taxi table.
I used the following sequence of queries to check the whether I am able to reproduce the error or not.
%sql SELECT * FROM taxi;

%%sql --save taxi_subset
SELECT * FROM taxi LIMIT 3;

%%sql
SELECT * from taxi_subset LIMIT 3;

I used these to mirror your queries and they seemed to work fine. Please check on your end and let me know if you get the same result.

The clickhouse CTE tests were failing : Please check this file: https://github.com/ploomber/jupysql/blob/master/src/tests/integration/test_clickhouse.py
Remove the @pytest.mark.xfail(reason="issue with plotting from snippet #811") line and check if tests are passing now

@neelasha23 I checked the tests and they all passed
You can look at the pull request I drafted for the tests #885


danger-swxftlint 0.7.0 fails when specifying config file

Very odd, tested 0.6.0 and it works fine.
Although, 0.7.0 works with this configuration:
swiftlint.lint_files

It does fail with this:
swiftlint.config_file = '.swiftlint.yml'
swiftlint.lint_files

The logs report fatal error but it doesn't make CI like travis fail the build and it neither report any type of error whatsoever on the pull request.
fatal error: Could not read configuration file at path '/Users/myuser/Projects/myProject/mySubProject/Sources/Auth0Provider/Authentication/Resources/SignIn.swift/.swiftlint.yml': file /Users/marcelofabri/Westfield/SwiftLint/Source/SwiftLintFramework/Models/Configuration.swift, line 167
/Users/myuser/Projects/myProject/mySubProject/Sources/Auth0Provider/Authentication/Resources/SignIn.swift/.swiftlint.yml:File not found.
fatal error: Could not read configuration file at path '/Users/myuser/Projects/myProject/mySubProject/Sources/AuthenticationProvider/Controllers/AuthenticationController.swift/.swiftlint.yml': file /Users/marcelofabri/Westfield/SwiftLint/Source/SwiftLintFramework/Models/Configuration.swift, line 167
/Users/myuser/Projects/myProject/mySubProject/Sources/AuthenticationProvider/Controllers/AuthenticationController.swift/.swiftlint.yml:File not found.

Errors are weird, not sure what's happening there.
Somehow it seems there is some hardcoded path coming from swiftlint directly.
I am using the latest swiftlint 0.20.1.

This is a SwiftLint issue, sorry about that. Filled https://github.com/realm/SwiftLint/issues/1694 to track it.

And PR landed in #1695. Could you please try it to see if it solves the issue?

Also, a current workaround for this issue is to provide an absolute path for --config.

@marcelofabri I can try if you release an hot fix of swiftlint 0.20.2

There are a number of ways to install SwiftLint without requiring an official release. Please see https://github.com/realm/SwiftLint#installation
Notably, brew install swiftlint --HEAD

It seems like SwiftLint 0.21.0 has the same issue.


fix: upgrade vulnerable dependency

This pull request fixes a ReDOS vulnerability in the negotiator dependency, introduced via an outdated version of express.
The PR changes Package.json to upgrade express to the newer 4.14.0 version, which uses the fixed negotiator version 0.6.1, and does not pull in any other vulnerable dependencies.
This vulnerability was identified using Snyk.
You can get alerts and fix PRs for future vulnerabilities for free by registering this repo to be watched by Snyk.
As this PR includes a major version upgrade, and this repo has no automated tests, please check the changes in this PR to ensure they won't cause issues with your project.
Stay secure,
The Snyk Community

moving to a new version of express is beyond my availability of free time.


The mod completely removed the fire overlay

https://streamable.com/vllgai
Here's the video to show that the mod isn't really doing what it meant to do
The fire overlay is completely gone, even without fire resistance or in creative mode
I first thought it was just the "Short Fire overlay" texture from Vanilla Tweaks broke it so I removed the pack, same issue

This mod doesn't remove the fire texture on burning entities, only the fire overlay that you see in first person.
No idea what's going on in that video. Are you sure Why Am I on Fire is causing that? What happens when you remove the mod?


Find out which values fail between the ISO 2533 tables and the calculated values

Assuming #20 gets merged... Awfully few, actually? For whatever reason, the calculations seem to be failing for most of the tests, bar these we originally had... On a quest to find why :)

Found an error that the upper layer was being selected in a place, rather than lower; besides that, only pointing a finger at it so far, but it seems that the data in rows-H is actually more reliable?

E.g. calculations from the corrected layer version:
H = -1750.0
h = -1749.5183624606748
TK = 299.525
TC = 26.375
p_mbar = 1241.913519293671
p_mmhg =<PHONE_NUMBER>492897
rho = 1.4444295950403332
g = 9.81205023017224
p_p_n = 1.2256733474400898
rho_rho_n = 1.179126200032925
root_rho_rho_n = 1.08587577559909
a =<PHONE_NUMBER>1242653
mu = 1.8437529742282412e-05
v = 1.2764574892116896e-05
lambda = 0.026232628838116796
H_p = 8762.644925568891
gamma = 14.172815740483097
n = 3.0034015383879232e+25
v_bar =<PHONE_NUMBER>020716
omega =<PHONE_NUMBER>.2816305
l = 5.625174530861431e-08

Data from rows-h, rows-H:
- H: -1750.0
  h: -1750.0
  TK: 299.528
  TC: 26.378
  p_mbar: 1.24198e+3
  p_mmhg: 9.31563e+2
  rho: 1.44449e+0
  g: 9.8121
  p_p_n: 1.22574e+0
  rho_rho_n: 1.17918e+0
  root_rho_rho_n: 1.08590e+0
  a: 346.948
  mu: 1.8438e-5
  v: 1.2764e-5
  lambda: 2.6233e-2
  H_p: 8762.7
  gamma: 1.4173e+1
  n: 3.0035e+25
  v_bar: 467.92
  omega: 8.3187e+9
  l: 5.6249e-8

- H: -1750.0
  h: -1750.0
  TK: 299.525
  TC: 26.375
  p_mbar: 1.24191e+3
  p_mmhg: 9.31512e+2
  rho: 1.44443e+0
  g: 9.8121
  p_p_n: 1.22567e+0
  rho_rho_n: 1.17913e+0
  root_rho_rho_n: 1.08588e+0
  a: 346.946
  mu: 1.8438e-5
  v: 1.2765e-5
  lambda: 2.6233e-2
  H_p: 8762.6
  gamma: 1.4173e+1
  n: 3.0034e+25
  v_bar: 467.92
  omega: 8.3182e+9
  l: 5.6252e-8

Another data point, calculations:
H = 700.0
h =<PHONE_NUMBER>105015
TK =<PHONE_NUMBER>9999997
TC = 10.449999999999989
p_mbar =<PHONE_NUMBER>813422
p_mmhg =<PHONE_NUMBER>625044
rho = 1.1447687266855282
g = 9.80449032414095
p_p_n = 0.9197488861399873
rho_rho_n = 0.9345050830085944
root_rho_rho_n = 0.9666980309324077
a =<PHONE_NUMBER>21409
mu = 1.7673421772376575e-05
v = 1.5438421194075406e-05
lambda = 0.024984116096128255
H_p = 8303.154212515834
gamma = 11.223873904167418
n = 2.3803168853859527e+25
v_bar =<PHONE_NUMBER>821222
omega =<PHONE_NUMBER>.583608
l = 7.097650713405089e-08

Data from rows-h, rows-H:
- H: 700.0
  h: 700.0
  TK: 283.601
  TC: 10.451
  p_mbar: 9.31944e+2
  p_mmhg: 6.99016e+2
  rho: 1.14478e+0
  g: 9.8045
  p_p_n: 9.19757e-1
  rho_rho_n: 9.34512e-1
  root_rho_rho_n: 9.66702e-1
  a: 337.597
  mu: 1.7673e-5
  v: 1.5438e-5
  lambda: 2.4984e-2
  H_p: 8303.2
  gamma: 1.1224e+1
  n: 2.3803e+25
  v_bar: 455.31
  omega: 6.4149e+9
  l: 7.0976e-8

- H: 700.0
  h: 700.0
  TK: 283.6
  TC: 10.45
  p_mbar: 9.31935e+2
  p_mmhg: 6.99009e+2
  rho: 1.14477e+0
  g: 9.8045
  p_p_n: 9.19748e-1
  rho_rho_n: 9.34505e-1
  root_rho_rho_n: 9.66698e-1
  a: 337.597
  mu: 1.7673e-5
  v: 1.5438e-5
  lambda: 2.4984e-2
  H_p: 8303.2
  gamma: 1.1224e+1
  n: 2.3803e+25
  v_bar: 455.31
  omega: 6.4149e+9
  l: 7.0977e-8

@ronaldtse Should we only use the rows-H data here, or any insights on what's going on?

Thinking about it for a while more, I guess that rows-h would actually need to calculate based on the geometric altitude for us to get the correct results from it...

With the latest version in #20, seems like the constant thing for many variables is actually the number of significant digits, not decimal places, gotta adjust accordingly...

I can see there is now a pattern:
20321 examples, 2830 failures

Among the failures:

lambda: 1 failure
g: 1
mu: 2
v_bar: 3
h: 7
a: 9
H_p: 9
n: 43
omega: 46
gamma: 48
l: 57
v: 59
p_mbar: 439
p_p_n: 441
rho: 454
rho_rho_n: 463
p_mmhg: 492

I just wonder if you might be authorized to give me (in a private channel, I suppose) the whole tables to look at? Forty minutes (and some slower, very precise calculators) in, if some of these are not OCR errors, I'm thinking that some imprecisions might actually have to be introduced this time to replicate some of these results? Now going to look at a Minsk-22 emulator, meanwhile :^)

@newbthenewbd the full document(s) can be found at https://github.com/metanorma/iso-2533/ where you have access.
The tables are already encoded in YAML as the files you originally processed.

@newbthenewbd if we are seeing rounding / floating point issues we need to report them back to the committee that holds this document.

@newbthenewbd the full document(s) can be found at https://github.com/metanorma/iso-2533/ where you have access.

Oo, thank you! But it seems that I don't actually have access to this repo... The YAML version has clearly been OCR-ed and contains at least some errors, e.g. from my git diff right now:
--- a/spec/fixtures/iso-2533-1975-table5.yaml
+++ b/spec/fixtures/iso-2533-1975-table5.yaml
@@ -9823,7 +9823,7 @@ rows-H:
     temperature-K: 277100
     temperature-C: 3950
     p-mbar: 8.25013e+2
-    p-mmHg: 6.l8811e+2
+    p-mmHg: 6.18811e+2
     density: 1.03720e+0
     acceleration: 9.8014

Do you mean that these should be reported in a special way?
I know about BigDecimal, the thing is, for example 6356766×30650/(6356766−30650) pretty sure just really is < 30798.5, not >=

I am basically not saying that the tables are per se incorrect (well, except for the YAML ones, that's on the OCR :^) ), rather, the exact process through which they were devised had been lost along with a 37-bit computer from the 70's, so once improving accuracy doesn't help... I really hope the OCR was just really bad, and would like to check :))

@newbthenewbd Let me fix the access permissions. We obviously want to fix the OCR errors.
Before we report back to the committee we want to be sure that the values we report to be "not reproducible" are really non-reproducible even when we use a more "modern" accuracy. 😉

@newbthenewbd fixed!

Hacked together a quick-and-terrible BigDecimal version, all the errors are still here... Feeling guilty working with little to show for it :(
But if I didn't miss something to BigDecimal-ize, I still contend that too low accuracy is less likely to be our culprit than too high, as Ruby uses double precision IEEE 754 floating point numbers (11 bits of exponent, 53 bits of mantissa), and Minsk-22 has, according to the unofficial emulator's documentation:
	Fixed-point numbers: sign and 36 significant bits

	Binary floating-point numbers (from top to bottom bit):

		sign of mantissa
		28 bits of mantissa
		1 bit unused
		sign of exponent
		6 bits of exponent

	Decimal floating-point numbers (used only for printing):

		sign of mantissa
		28 bits of mantissa (7 decimal digits in BCD)
		1 bit unused
		sign of exponent
		1 bit unused
		5 bits of exponent (2 decimal digits in BCD, the former one truncated to 1 bit)

So, just with regular Ruby floats (equivalent to C doubles), we should actually be more accurate!

With single-precision floats and the operations reordered like this:
float f = 6356766.0f;
f /= 6356766.0f - 30650.0f;
f *= 30650.0f;
printf("%f\n", f);

We actually turn up the "wanted" result for this one:
30798.500000

But the problem is, Ruby doesn't have these!

@newbthenewbd is it possible to use a "diff in least significant digit" difference indicating that the number we get is nearly identical to the original except for the least significant digit?
ie. if a failure is a difference in the last significant digit, we consider that a float implementation difference, not a real error.

That could work as a last resort; I also want to look a little bit closer at these variables with many more failures, could be something more easily correctable there, just haven't gotten to it yet :)

@newbthenewbd once this is somewhat done (matching the numbers isn't the most important) we want to move onto the other tables. Thanks!

Both please 😊

Ok, getting to it when I get home today, definitely waited long enough already... :)

Found something interesting, apparently the original process did limit the pressure layers to six significant digits right in the in calculations, that brings it down to 1847 errors... Taking a break again soon, but this time only for a couple hours :smile:

Or not, because an experiment to try to get some of the calculations closer to their 32-bit float results at least (ugh, Ruby) makes for only 1816 errors...
Honestly, I believe that it might take doing this in a more powerful language, or inventing some very arcane Ruby ourselves, to match them all :( Going to push this unfinished experiment to a separate f32 branch, presuming that the version sans my attempts is actually closest to truth, and do as you say!

@newbthenewbd in any case the point is not really to "match" the numbers, but to say that our numbers are "okay" with a defined rule, e.g. in a range of the (second least significant digit). Once we can make that claim we're already good.

@newbthenewbd so we currently have 401 values out of 20321 calculations that deviate in the last significant digit from the original tables due to floating point rounding:
https://github.com/metanorma/atmospheric/actions/runs/8487801016/job/23256038850
According to the values, these differ in the last significant digit by 2.
Can we have a "relaxed" mode that we relax the rules so that they pass?

I've just tried to generate ISO 2533:1975 based on the outputs of this, and values jump around in order of magnitude abruptly every few rows.

This tells me that the +3, +5 etc order of magnitude signs in the original are not propagating to following rows in the same column, like they are supposed to.


Attention plotting code

Is there any progress on the releasement of the plotting code?
Thanks in advance!

Hi Fabien, I will release the attention plotting code in the next version. I am busy with another project rn, I am targeting the end of November for this. If you need it urgently let me know.
Originally posted by @somepago in https://github.com/somepago/saint/issues/8#issuecomment-945202273

Hi @somepago,
This issue seems to have gone stale? :) I want to request the attention plotting code.
Thanks in advance!


Keep header when list is empty.

Is possible to keep the header in the list when it is empty?
I have the problem when the list is empty the header is not shown.
Thank you for your attention.

Have u resolved this issue?


change to bacon

What/Why/How?
Reference
Testing
Screenshots (optional)
Check yourself

[ ] Code is linted
[ ] Tested with redoc/reference-docs/workflows (internal)
[ ] All new/updated code is covered with tests

Security

[ ] Security impact of change has been considered
[ ] Code follows company security practices and guidelines

... TIL
When running
git push --set-upstream origin <branch> doesn't default to the forked version of a repo.

The origin part is which remote to use, if you have both an upstream repo and a fork, I usually use the org/user names for the remotes, rather than the default "origin" which is whichever repo you cloned first.


Base64 codes for AC

Where should I be looking to find Base64 codes for YB1FA and RC08B AC remote controls?

For YB1FA try Gree codes, 1180 or 1181

Thank you @mac587 : 1180 worked for YB1FA.
Which profile should be used for RC08B?

Try Diatsu 1760, failing that try codes from Midea or Hisense

@mac587 tried codes for Diatsu, Midea, Hisense but no luck. Looking for RC08B remote codes for Electra air conditioner.


provision_cf script doesn't work with latest version of cf-release

It looks like current bosh-lite from master branch does not supports working with the latest v218 cf-release.
The problem is that update scripts were moved from root directory to scripts folder by this commit https://github.com/cloudfoundry/cf-release/commit/2a83461b450ba6e9cd555c4f2048c91a40507bcc. And the current version of provision_cf script does not takes into account this changes.

I believe that this PR https://github.com/cloudfoundry/bosh-lite/pull/293 can cope with this issue. Can't get why this changes are not merged yet. New-comers suffer because of this issue.

Pulled in changes from mega team: https://github.com/cloudfoundry/bosh-lite/pull/299. Closing this one in favor of #299.

Great. Thank you very much.


GCP package uploading

Added package uploading to GCP but only from builds from the main branch.
Uploading has been tested by temporarily disabling the actual tests and enabling uploads from PRs which yielded in the test package: https://console.cloud.google.com/storage/browser/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/continuous/install/20220401-132741.
The actual package will be created and uploaded only upon merge.

Alright. I'm merging this PR. After the merge the CI should build and upload packages from the main branch. If not further corrections will have to be done on that branch directly.


update dependency list & readme for installation

Just a minor change - I needed to install the dependencies for the examples to work

Awesome, thanks!

happy to help, thank you for this amazing library


apt_repository should not use deprecated apt-key anymore

Describe the Enhancement:
The apt_repository ressource (as of Chef 18 as well as on master) leverages apt-key add to import the repository signing key.
This way of importing the key has been deprecated for security reason (it trusts all packages from the repository instead of only the installed package) and will be last available in Debian 11 and Ubuntu 22.04.
Sources:

https://itsfoss.com/apt-key-deprecated/
https://www.linuxuprising.com/2021/01/apt-key-is-deprecated-how-to-add.html

Describe the Need:
We need to refactor the  apt_repository to use this more complex method instead:
wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Current Alternative
As a workaround, one can use the execute resource to import the key before apt_repository
Can We Help You Implement This?:
I'm willing to prepare a pull request. Let me know you opinion and if you think it's needed to keep apt-key add as a fallback method for older Ubuntu/Debian releases (I'm testing on Ubuntu 22.04)

Duplicate of #13168?

Indeed it's a duplicate, sorry I didn't notice the existing #13168


how to get IChatUser detail from email id?

i want to start conversation directly can we get user detail by their email id if exist to firebase
can anyone guild me :)

if you have user mail, you can first retrive all contacts, like this:
private ContactsSynchronizer contactsSynchronizer;
contactsSynchronizer= ChatManager.getInstance().getContactsSynchronizer();
List<IChatUser> users = contactsSynchronizer.getContacts();

then check if with for statement if user mail exist. if true create new contact to start chat with:
for(IChatUser user: users) {
                    if (user.getEmail().equals(YOUR_EMAIL)) {

                        IChatUser contact = new ChatUser();
                        contact.setId(user.getId());
                        contact.setEmail(YOUR_EMAIL);
                        Log.d(TAG, "Open chat with contact: " + contact.toString());
                        ChatUI.getInstance().openConversationMessagesActivity(contact);
                        return;
                    }
                }

use openConversationMessagesActivity(contact) to start the chat directly with the last contact created.
Let me know if it works properly


[SPARK-43924][CONNECT][PYTHON] Add misc functions to Scala and Python

What changes were proposed in this pull request?
Add following functions:

uuid
aes_encrypt
aes_decrypt
sha
input_file_block_length
input_file_block_start
reflect
java_method
version
typeof
stack
random

to:

Scala API
Python API
Spark Connect Scala Client
Spark Connect Python Client

Why are the changes needed?
for parity
Does this PR introduce any user-facing change?
Yes, new functions.
How was this patch tested?

Add New UT.

cc @HyukjinKwon @zhengruifeng

also cc @beliefer

merged to master, thanks @panbingkun @beliefer


remoce the proper plugins from the build

Each time I am trying to test my own code and fetch the backoff dependency it tries to compile proper which create 2 issues imo:

we have to fetch an unwanted dep
it triggers some warning:

/_build/default/plugins/proper/src/proper_typeserver.erl:553: Warning: erlang:get_stacktrace/0 used following a 'try' expression may stop working in a future release. (Use it inside 'try'.)
_build/default/plugins/proper/src/proper_typeserver.erl:556: Warning: erlang:get_stacktrace/0 used following a 'try' expression may stop working in a future release. (Use it inside 'try'.)
_build/default/plugins/proper/src/proper_typeserver.erl:553: Warning: erlang:get_stacktrace/0 used following a 'try' expression may stop working in a future release. (Use it inside 'try'.)
_build/default/plugins/proper/src/proper_typeserver.erl:556: Warning: erlang:get_stacktrace/0 used following a 'try' expression may stop working in a future release. (Use it inside 'try'.)

Woiuld it be possible to have this plugin only set by the users in its own config file?  For the second maybe also a newer version of proper is existing?

I could simply move the proper plugin to go in the test build; it would force to run rebar3 as test proper but that's probably acceptable.

Also the dep is fetched only as a plugin and should never be part of any release, in case that was a concern.

@ferd would be fine yes I guess. I think the most important issue are the warnings also, not sure what can be done on it though.

Yeah nothing about warnings until a new release of proper is cut. The current one is two years old and that explains deprecation warnings.


App pack build service integration

Purpose

integrate app-pack-gen-client libraries (libs/app-package-build-client) into unity-py

Proposed Changes

[ADD] unity-sds-apgs-client requirement
[ADD] code for calling the build commands into ApplicationService.py
[ADD] tests for mocking execution
[CHANGED] - changelog, pyproject version (0.6.0)

Testing

Added new unit test for testing the apgs client library (unit)
Created mdps-tutorial branch for example usage: https://github.com/unity-sds/mdps-tutorial/blob/unity-py-apgs-updates/jupyter-notebooks/tutorials/5_building_application_packages.ipynb
installed unity-sds-client locally and ran the jupyter notebook

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

36 of 64 (56.25%)  changed or added relevant lines in 2 files are covered.
297 unchanged lines in 6 files lost coverage.
Overall coverage increased (+9.9%) to 49.691%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libs/unity-py/unity_sds_client/services/application_service.py
33
61
54.1%

Files with Coverage Reduction
New Missed Lines
%

libs/app-package-build-client/unity_sds_apgs_client/models/ads_acb_mcp_clone_get200_response.py
5
64.71%

libs/app-package-build-client/unity_sds_apgs_client/api/default_api.py
24
45.1%

libs/app-package-build-client/unity_sds_apgs_client/exceptions.py
25
32.22%

libs/app-package-build-client/unity_sds_apgs_client/rest.py
34
31.25%

libs/app-package-build-client/unity_sds_apgs_client/configuration.py
52
63.87%

libs/app-package-build-client/unity_sds_apgs_client/api_client.py
157
22.12%

Totals

Change from base Build<PHONE_NUMBER>7:
9.9%

Covered Lines:
804

Relevant Lines:
1618

💛  - Coveralls


Match limit apparently not working.  Match() exceeding depth 2 never returns?

OrientDB Version, operating system, or hardware.

v2.0 SNAPSHOT[ ] - .18[ ] .17[ ] .16[ ] .15[ ] .14[ ] .13[ ] .12[ ] .11[ ] .10[ ] .9[ ] .8[ ] .7[ ] .6[ ] .5[ ] .4[ ] .3[ ] .2[ ] .1[ ] .0[ ]
v2.1 SNAPSHOT[ ] - .16[ ] .15[ ] .14[ ] .13[ ] .12[ ] .11[ ] .10[ ] .9[ ] .8[ ] .7[ ] .6[ ] .5[ ] .4[ ] .3[ ] .2[ ] .1[ ] .0[ ]
v2.2 SNAPSHOT[ 12] - .rc1[ ] .beta2[ ] .beta1[ ]

Operating System

[x ] Linux
[ ] MacOSX
[ ] Windows
[ ] Other Unix
[ ] Other, name?

16GB RAM, Intel i7, Kubuntu 14.04.
server.sh:
OrientDB auto-config DISKCACHE=8,315MB (heap=5,461MB direct=524,288MB os=15,824MB) [orientechnologies]
Expected behavior
match {as:P, class:HumanProtein} -InteractWith- {as:I, while:($depth<2)} return $elements limit 50
returns 50 elements.
##Actual behavior
match {as:P, class:HumanProtein} -InteractWith- {as:I, while:($depth<=2)} return $elements limit 50
This match (<=2) runs forever.
Studio/console.sh resulting log-message: (and limit of 50 seems to have been forgotten!)
2016-11-12 14:48:12:662 INFO  {db=HumanPPI2} [TIP] Query 'SELECT FROM HumanProtein' returned a result set with more than 10000 records. Check if you really need all these records, or reduce the resultset by using a LIMIT to improve both performance and used RAM [OProfilerStub]
SELECT/TRAVERSE makes sense, but MATCH behaves strange. See below.
Steps to reproduce the problem
The export database in question is available for download. 18000+ human proteins and 7.805 million edges with property. Data are very real indeed. Will share export file(approx 329M) if requested.
Also try with varying parameters:
match {as:P, class:HumanProtein} -InteractWith- {as:I, while:($depth<2)} return P,I,P.ProteinName as ProteinName,I.ProteinName as InteractingWith,I.GOtermName as GOtermName limit 50
SELECT @rid,$depth,ProteinName,GOtermName FROM (TRAVERSE out("InteractWith") FROM #37:307 WHILE $depth <= 4) limit 50
returns nice sensible data.
Running MATCH while $depth exceeding 2 seems to get stuck.

Hi @austx
Thank you for reporting, I'll check it asap
Thanks
Luigi

Hi @austx
I just pushed a fix for this on branch 2.2.x. The fix will be released in v 2.2.13
Thanks
Luigi


sched: Don't duplicate caller file handler when creating kernel thread

Summary
Fix the regression made by: https://github.com/apache/incubator-nuttx/pull/5379
Impact
Kernel thread doesn't inherit the caller file handler anymore
Testing
Local test

@masayuki2009 could you try this patch? it pass my test locally.

@xiaoxiang781216
I confirmed that my automatic tests passed.


clcache binary choice can be fuzzy

Hello,
I've found a "maybe can be improved" situation in Nuitka.
When compiling, nuitka will select any clcache binary it finds, even if it doesn't belong to the current python we're running.
In my case,  while I compiled with the interpreter found in C:\Python38-64, nuitka relied on clcache found in the interpreter C:\Python37-32 since the latter one had clcache installed.
I use to set NUITKA_CLCACHE_BINARY=C:\Python38-64\Scripts\clcache.exe in my build scripts when clcache is detected in current interpreter, but since it wasn't, that variable wasn't set.
While I did read the logic in  nuitka/build/SconsCaching.py which tries to find clcache belonging to the current interpreter first,  it might be useful to emit a warning message when the clcache binary belongs to another interpreter than the current one, just to make sure to be informed.
I'd be happy to make the corresponding PR if you think this makes any sense.
[SIDEQUEST]
Reasons for this remark were some clcache permission errors I encountered (see below).
While the error does not come from Nuitka itself (see https://github.com/frerich/clcache/pull/334/files), the fact that nuitka did use another interpreter's clcache made me jump to conclusions too fast in the first place.
It seems that clcache development has stalled, and while the fix described above is 2 years old, there is no newer clcache package on PyPI (github repo has been archived).
I've checked the forks, but none seems to be 'official'.
Just some ideas... How about shipping nuitka with the latest clcache code, or maybe I can create a 'clcache-nuitka' PyPI package that includes last fixes ?
[/SIDEQUEST]
Best regards.

Nuitka version, full Python version and Platform (Windows, OSX, Linux ...)

<IP_ADDRESS>
Python: 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)]
Executable: c:\Python38-64\python.exe
OS: Windows
Arch: x86_64

How did you install Nuitka and Python (pip, anaconda, deb, rpm, from source,
what is a virtualenv ...), this is very important usually.

c:\Python38-64\python.exe -m pip install nuitka

Many times when you get an error from Nuitka, your setup may be so special
that even a "hello world" program will not work, please try that and report
it instead.

If possible please supply a Short, Self Contained, Correct, Example
that demonstrates the issue i.e a small piece of code which reproduces
the issue and can be run with out any other (or as few as possible)
external dependencies.

Not needed here I guess.
Here's my test scenario:
Compilation command line
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 && C:\Python38-64\python.exe -m nuitka --python-flag=-OO --assume-yes-for-downloads --standalone --plugin-enable=multiprocessing --include-package=urllib3 --windows-product-version="<IP_ADDRESS>" --windows-file-description="My Supertool" --windows-company-name="Company" --windows-icon-from-ico="C:\GIT\PROJECT\SSRC\NSIS\some.ico" --output-dir="C:\GIT\PROJECT\SSRC\PYTHON_BUILD64" C:\GIT\PROJECT\PythonSRC\mysupertool.py

Nuitka will output the following
Nuitka:INFO: Starting Python compilation.
Nuitka-Plugins:INFO: multiprocessing: Injecting pre-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" load environment.
Nuitka-Plugins:INFO: multiprocessing: Injecting post-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" for compiled methods.
Nuitka-Plugins:WARNING: Use '--plugin-enable=pylint-warnings' for: Understand PyLint/PyDev annotations for warnings.
Nuitka:INFO: Completed Python level compilation and optimization.
Nuitka:INFO: Generating C source code for backend compiler.
Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C level backend compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: cl (cl).
Traceback (most recent call last):

  File "c:\python37-64\lib\runpy.py", line 193, in _run_module_as_main

    "__main__", mod_spec)

  File "c:\python37-64\lib\runpy.py", line 85, in _run_code

    exec(code, run_globals)

  File "C:\Python37-64\scripts\clcache.exe\__main__.py", line 7, in <module>

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 1577, in main

    return processCompileRequest(cache, compiler, sys.argv)

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 1604, in processCompileRequest

    return scheduleJobs(cache, compiler, cmdLine, environment, sourceFiles, objectFiles)

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 1656, in scheduleJobs

    exitCode, out, err, doCleanup = future.result()

  File "c:\python37-64\lib\concurrent\futures\_base.py", line 428, in result

    return self.__get_result()

  File "c:\python37-64\lib\concurrent\futures\_base.py", line 384, in __get_result

    raise self._exception

  File "c:\python37-64\lib\concurrent\futures\thread.py", line 57, in run

    result = self.fn(*self.args, **self.kwargs)

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 1677, in processSingleSource

    return processDirect(cache, objectFile, compiler, cmdLine, sourceFile)

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 1707, in processDirect

    return processCacheHit(cache, objectFile, cachekey)

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 1495, in processCacheHit

    stats.registerCacheHit()

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 753, in __exit__

    self._stats.save()

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 663, in save

    json.dump(self._dict, f, sort_keys=True, indent=4)

  File "c:\python37-64\lib\contextlib.py", line 119, in __exit__

    next(self.gen)

  File "c:\python37-64\lib\site-packages\clcache\__main__.py", line 124, in atomicWrite

    os.replace(tempFileName, fileName)

PermissionError: [WinError 5] Acc\xe8s refus\xe9: 'C:\\Users\\Me\\clcache\\stats.txt.new' -> 'C:\\Users\\Me\\clcache\\stats.txt'

As for the clcache initial issue about the permission error, I could around by doing the following
SET PATH=%PATH%;C:\Users\myuser\AppData\Local\GitHubDesktop\app-2.6.1\resources\app\git\mingw64\bin
c:\Python38-64\python.exe -m pip install -U git+https://github.com/frerich/clcache.git#egg=proj

Since I'm working on Windows, I had to add the path to my git.exe
If we choose this as a current workaround, shall I make a doc PR ?

Well nope, still got a permission error from time to time on one, one one of my build stations with 16 cores where race conditions are more likely. Uninstalling clcache for now.

You can force it to use one currently with NUITKA_CLCACHE_BINARY specified. I have had issues with too old clache btw, specifically the one in Anaconda is too old, use the one from pip in any case.
I wouldn't use git to install, we can apply the same method as with Nuitka factory, can we not, there we do this:
pip install -U "https://github.com/Nuitka/Nuitka/archive/factory.zip"
Arguably, that is probably the test reaction, e.g. nowadays ccache is downloaded automatically too. Us executing that command would be no problem, except that the scons might not be running inside that virtualenv, and use the wrong Python for that, and it may not even be a supported version, I think 3.6 or higher should be used.
Can you @deajan report which clcache versions these were? I am using only the latest and old stable. But I have had permission errors often, probably due to concurrent compiles, in fact so often, that the test runner checks for these and retries. The clcache is also unmantained, is it not? Last i checked it was archived on Github and that e.g. also might cause us to loose it eventuallyand when 3.9 will e.g. break it, how to tell.
Moving this extra ball stuff lower into say scons itself may also be an option.
Including clcache inside of Nuitka is also an option, I have age old permission from the author to do it, and that may in fact the easiest way. We could then also compile it outselves in accelerated mode for that Python when needed, currently I am using a pyinstaller accelerated binary from PyPI wheel, and that feels wrong for Nuitka. But we can definitely start out with any compilation at all, and use the Python files directly.
Essentially we could also try and fix the permission error in an inline copy of clcache, because how hard can it be?
Maybe you could start by investigating how different current git and last stable release are. I have not had luck contacting the author about it or finding any statements on it.

The resolution order currently is PATH search, then these:
def _getPythonDirCandidates(python_prefix):
    result = [python_prefix]

    for python_dir in (
        sys.prefix,
        os.environ.get("CONDA_PREFIX"),
        os.environ.get("CONDA"),
    ):
        if python_dir and python_dir not in result:
            result.append(python_dir)

    return result

That is the Python version used to run Nuitka, the one used to run Scons, then Anaconda environments. Same is done for ccache.exe btw, this code is reused. In the later case, I am also tempted to only accept the downloaded version, since I have seen ccache binaries that hang sometimes forever, e.g. ones from MSYS2, where that had been the one I had used before, but after an update, it wasn't good anymore.

I had originally considered to iterate registry and find all Python installations btw, so that any clcache installed anywhere could be detected.

I just had a realization. What we need to do here, is simple. We create a fork of clcache on Github in the Nuitka organisation, fix it up, e.g. being unable to provide a statistics file update, we do not have to care. If caching fails, then it does.
From that then we provide a wheel to install, changing it from pyinstaller to Nuitka and/or provide a .dist zip file to download with the usual means, like gcc and ccache and dependency walker are installed as well.
That should enable us to solve this very much perfectly I guess. What do you think @deajan ?

I used clcache v4.2.0 (the one that comes with pip) and the latest git release.
Indeed, forking and maintaining as 'mature' project would be a good idea IMHO.

I offered the take over, but a fork could also make sense, I can also imagine running the clcache code directly inside of scons, and then we could just make it special cases, e.g. we only update the cache when everything is done in one go, with only one lock take, and that would essentially replace the daemon use case.
We are more allowing about errors, and so on. Let's see how the owner responds to my request. I also want to have a look at how pyinstaller is integrated there, and if maybe there is a way to simply hook this out with another target, or be compatible in how that is done.

Ok, this has been accepted, and I am  now going to follow the plan of having an inline copy for the Nuitka Windows release, and make it so that the Scons runs it not as an external binary, but inside the own process as a thread probably (things are already a thread there).
Then we could make it so, that one Nuitka compilation does at least not compete with itself over a lock file to update the statistics file that we do not care about as much, maybe even make it possible to disable that if not already the case.

There we go https://github.com/Nuitka/clcache
I deleted stale branches, and added a develop branch, where we should do our changes and then eventually release clcache with a version 5.

While making initial changes after takeover, e.g. updating URLs, I now noticed why an inline copy wasn't as good. I think clcache is not running on older versions, but I am not sure of that.

While making initial changes after takeover, e.g. updating URLs, I now noticed why an inline copy wasn't as good. I think clcache is not running on older versions, but I am not sure of that. We might explore the 3to2 route that I am considering for other Nuitka plugins too.

I have had success with making changes, so that when setting an environment variable, my Python3.8 would run clcache after importing to to the scons instance, and wow, was it fast in the cached case.
The plan is now to make this through an inline copy of clcache needed files, and to use that for those Python3 versions that can use it. Going back with Python versions with applying selective 3to2 fixers, although I imagine that e.g. removing annotations from the inline copy (it's not for reading) would e.g. be a good thing anyway.
With this, the lock file behavior for Nuitka may exponentially better, because it is only one program updating the cache typically instead of many instead of "your core many count ones" competing for the files.
Using the server wasn't really an option, as there was no way of knowing when to stop it.

I pushed to factory the clcache inline copy. When using Python 3.6 or higher it's used unless overriden by NUITKA_CLCACHE_BINARY, but that should go away.
I have used 3to2 to trim the code of annotations, which only waste memory, and to apply some portability improvements, which I believe might suffice to make it work on Python2. The code was using a useless yield from with a generator expression, instead of just returning that, otherwise it's not really Python3 code at all I think, and we only use a small portion of it.

Ok, factory ought to be good now. I got clcache to work with Python2 easily, with just one more small change needed.
But the execution was flawed, in that our entry point didn't pass environment variables on, which needed clcache changes to pass it on to where the execution happens.
Also Python2.6 on Windows now needs a higher version Python installed for Scons, that is probably for the better, as it makes sure we only maintain one of the scons inline copies, the one for 2.7 or higher. I had previously kept the old one that was best patched and less buggy, but that has likely reversed due to bitrot. We do that for 3.3 and 3.4 already on all platforms, so that is not new.
The clcache stats file and the cache files have moved to appdata folder. The stats file is now per Nuitka build, and therefore should be impossible to have a lock collision as you had.
Once this proves to be working in my private CI, the old clcache searching code will be removed, and providing an external one will not be supported anymore. That definitely will make it less fuzzy and also less complex in terms of documentation and CI needs.
I have yet to try it with clangcl.exe which had changes on the branch of old clcache repo that were unreleased, but I had thought it was already working, but maybe not.
Also also many changes I made to clcache should have broken it for other purposes, but we need to get the tests up and running eventually. For now, I hope it's not too bad.

The the current pre-release has this included, and doesn't search for clcache outside of Nuitka anymore. The clangcl.exe works just fine with it.
The code of clcache in Nuitka is 2.7 ready, but the locking doesn't work, due to different ways how threading works in Python2 and Python3. In the later, a system mutex acquired by a thread is not held by the process, in Python2 it is, breaking the locking between them. Since I don't really care, using a Python3 for scons is now mandatory and that's it. So 2.7 won't cut it there, but having a Python3 installed is no big requirement bump, is it, esp. since it's located automatically.
Glad how this turned out, clcache is now really fast to use with Nuitka, before it was very prone to hanging and locking issues, that I have not yet again yet.

The the current pre-release has this included, and doesn't search for clcache outside of Nuitka anymore. The clangcl.exe works just fine with it.
The code of clcache in Nuitka is 2.7 ready, but the locking doesn't work, due to different ways how threading works in Python2 and Python3. In the later, a system mutex acquired by a thread is not held by the process, in Python2 it is, breaking the locking between them. Since I don't really care, using a Python3 for scons is now mandatory and that's it. So 2.7 won't cut it there, but having a Python3 installed is no big requirement bump, is it, esp. since it's located automatically.
Glad how this turned out, clcache is now really fast to use with Nuitka, before it was very prone to hanging and locking issues, that I have not yet again yet.

Released as part of 0.6.11

Released as part of 0.6.11


inline restore_critical_section and add parameters to restore_critical_section

Summary
In the SMP, when a context switch occurs, restore_critical_section is executed.
In order to reduce the time taken for context switching,
we inline the restore_critical_section function and we directly pass the required
parameters to restore_critical_section instead of acquiring them repeatedly.
Given that restore_critical_section is small in size
and is called from only one location, inlining it does not increase the size of the image.
Impact
none
Testing
ostest

Please include a commit log explaining why to implement it as inline macro instead of just changing the function to inline

ok

@hujun260 please fix the conflict


enhancements to github ISSUE_TEMPLATE files & bug report flow

What is the change?

change bug_report.md to bug-report.yml & feature_request.md to feature_request.yml to enable Github's form based issue template

https://youtu.be/qQE1BUkf2-s?t=23

add config.yml file to help direct users to the helpful pages

Motivation

encourage's bug reporter's to put more care into their bug report before submission
this may help maintainer's receive more detailed & higher quality bug report's
adds helpful tips for user's during the process of creating a bug/issue report

Demo of Change

this PR is similar to this one I created for solidjs repo: https://github.com/solidjs/solid/blob/main/.github/ISSUE_TEMPLATE/bug_report.yml

I also enabled "Allow edits from maintainers" ✅

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork#enabling-repository-maintainer-permissions-on-existing-pull-requests

Feel free to make edit to my branch 😄  Also github now has Codespaces enabled for nearly all repos on Github.com 🎉
My fork: https://github.com/cliffordfajardo/squoosh

I've signed the CLA with 2 different accounts, personal and work email & I don't see the CLA updating 😅
If you do think the PR is good, would @surma or @jakearchibald  be able to run a small commit on my branch so the CLA is happy 🙏 ?
I'm going to unlink my work email from my chrome browser profile next time I'm doing anything with github

Going to close and open a new one -- Git is acting strange and I'm not able to revert the package-lock change that occured. I think this happened because I open the repo in github codespaces and it started npm installing things without my constent 😅  or knowledge


Fix autocomplete for taxon name relationships

@proceps- you think think we need autocomplete for taoxn name relationships at all?

Are we talking about Edit TaxonName page? If yes, I am using either default values or the List

No- TaxonNameRelationships index page- just the data card.
On Thu, Dec 13, 2018 at 2:48 PM Dmitry Dmitriev<EMAIL_ADDRESS>wrote:

Are we talking about Edit TaxonName page? If yes, I am using either
default values or the List
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SpeciesFileGroup/taxonworks/issues/718#issuecomment-447115610,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABYSCUDH0Q6jAqOiQIIcBH0SC9sFdHMks5u4r0wgaJpZM4ZP3ZD
.


500 Error When Applying / Submitting CV

INSERT SHORT DESCRIPTION EXPLAINING THE HIGH-LEVEL REASON FOR THE NEW ISSUE HERE.

Screenshots
Current
Expected

Hi, I've completed an application successfully as "Bullhorn Tester." It's possible the content of the pdf file you used wasn't able to be interpreted by our parser. We have seen some errors in testing scenarios when the resume content is very minimal, ie., only contains a few sentences, but almost anything an applicant would supply as resume content should meet the minimum requirements.
There doesn't appear to be anything incorrect in your use and setup of the portal itself, so it may be useful to work through Bullhorn support so they can gather additional troubleshooting information from you, including the specific file and email address used, etc.

This could be possible but I would never know as the user of the admin for the website. There does not appear to be any validation on errors for uploading, file transfer or parsing. Can you help me understand what is available in this regard? I'd like the candidate to have some sort of onscreen details letting them know if there is an issue with their CV upload.
Additionally, is there a url I can use to upload any resume? If a candidate wants to send a resume without applying for a specific job...

I am experiencing this issue as well. BH throws a generic http 500 error if it can not parse a resume. At a minimum, the server should attach the un-parsed file, but limitations on the BH parser should not
preclude candidates from submitting applications.
Is this issue being addressed by Bullhorn?

Any update on this issue ? as i am also getting the same error

Hello Joey and nnadeem,
We have enhanced the Open Source Career Portal error handling process so when an Applicant submits a resume file that results in an error the below process will occur:

If resume parsing process fails, the system will create a candidate record (using first name, last name, email address, phone number) and attach the resume file to the candidate’s file tab. Note:The resume will not be parsed.

The email that gets generated to the published recruiter contact will be appended to include the following text:
“Please note: the candidate resume did not parse successfully. The resume is attached to the candidate record and available for your review under the candidate's Files/Attachments tab.”

If you are experiencing further errors with your resume parsing please contact our support team following the steps in this article


Breaking change: pubspec.yaml must contain a Dart SDK constraint

Background
Dart apps and packages often use a pubspec.yaml file to declare various metadata such as dependencies. It can also contain a Dart SDK constraint such as:
environment:
  sdk: '>=2.10.0 <3.0.0'

This expresses that the app/package requires a Dart SDK that is at least 2.10.0, and strictly less than 3.0.0. This is commonly used to express that the code uses a feature only available in more recent Dart releases, for example Dart 2.7 if using extension methods. The SDK constraint is documented here: https://dart.dev/tools/pub/pubspec#sdk-constraints
Currently it is allowed to omit this SDK constraint. In that case Dart interprets this as having a lower constraint that is the same as the version of the Dart SDK being used.
What is the change
We're making it an error for apps to have a pubspec.yaml that doesn't have this SDK constraint specified. Concretely, for a pubspec not containing the Dart SDK constraint, the pub/dart pub/flutter pub command will abort dependency resolution for apps and fail with an error like:
pubspec.yaml has no lower-bound SDK constraint.
You should edit pubspec.yaml to contain an SDK constraint:

environment:
  sdk: '>=2.10.0 <3.0.0'

Why are we making this change
For the Dart null safety feature we're relying on the SDK constraint to tell if a Dart app/package us using null safety semantics or not. Because of the current defaulting to current SDK version when the SDK constraint is omitted, this results in such projects being opted-in to null safety implicitly. This in turn results in lots of null safety errors.
Making the SDK constraint required ensures that all apps and packages are forced to make a choice about what Dart version they need.
Effect of the change
All existing pubspec.yaml files that don't contain an SDK constraint will start to see resolution errors. They will need to add an SDK constraint like this to their pubspec. After adding this they will continue to run as before.
environment:
  sdk: '>=2.10.0 <3.0.0'

Timeline
This change is blocking the progress on null safety, so the change will be made immediately in the Dart master channel (where the Dart 2.12 version is underway).

cc @jonasfj @leafpetersen @vsmenon @franklinyow

Posted to Dart announce: https://groups.google.com/a/dartlang.org/forum/#!topic/announce/TyaUVp4hXwU

cc @Hixie @matanlurey

@Hixie I fear that having pub get modify your pubspec.yaml without prompts or a flag would be surprising behavior.
We could do a pub fix command, but it just seems a bit arbitrary. Also what else could/should it fix..
As for modifying YAML, it's not trivial, but we had a GSoC project create package:yaml_edit to make this easy. I think the hard part is designing a CLI interface for exposing this logic.

We might want to look into adding a quick fix in the analysis server for this case.

marking this as Approved

How about adding a key to pubspec: uses-null-safety: true instead of relying on constraints? As a user, I don't want to remember since which version you added a null safety.

As a user, I don't want to remember since which version you added a null safety.

I think the upside is that once migrated, you'll probably stop thinking about this. A boolean would instead continue to pollute forever.

Closing this as this is already in Dart 2.12


Automated code quality check

Run Netbeans Inspect and Transform on the code base (unused imports, try-with-resources, possible issues ...)
Somewhat related to #790

[ ] unused imports
[ ] try-with-resources
[ ] diamond inference
[ ] @Override annotation
[ ] multi catch instead of repeating catch blocks
[ ] isEmpty() instead of size() == 0
[ ] lambda expression instead of anonymous class
[ ] auto (un)boxing

For try-with-resource you should check if this case shows up:

This is a false positive and should not be refactored.

@barthanssens  I hope you don't mind. After checking for try-with-resource with the intellij inspection I ended up fixing a couple of them.

isEmpty() instead of size() == 0 will probably lead to some performance improvements ;)

Not at all :-) Most of the try-with-resources were fixed in a previous run
Most issues Netbeans I/T noticed are suggestions to use diamond inference, and using multi catch instead of multiple catch blocks repeating the same code
And a list of suggestions to make fields final


Update highlightFirstItem to take tags in to consideration

This pull request includes a

[x] Bug fix
[ ] New feature
[ ] Translation

The following changes were made:

Update Results.prototype.highlightFirstItem to check for unselected options and if the tags option is set. If so, highlight this first instead of a previously selected option.

This works at the moment when no tags exist, but not when there are existing selected tags.
Fix

Current

I've been thinking about this one for the last 9 days and I think the solution I'm aiming to go for is instead of modifying Result to check for tags, is to add a new decorator that is injected when tags is enabled that overrides this method to provide this extra functionality.

No problem, sounds like a neater way of doing it 👍

Reopening as a reminder about the decorator plan since I don't see an attached ticket.

Reopening as a reminder about the decorator plan since I don't see an attached ticket.


Java is downloaded even when it is installed

When java_download_from_oracle: true is set, this role downloads the Java package even when it is installed. This takes up bandwidth and time, and makes this role not indempotent.
Currently, the installed version is checked just before installation. This check should be done earlier, before the download.

Sorry, just realised that the creates parameter does this checking. So I can get the desired behaviour by doing 2 things:

Specifying java_download_path to be something other than /tmp, so that it does not get deleted by the OS
Setting java_remove_download: false

Actually, the creates parameter in tasks/fetch.yml is not set correctly.
Instead of: creates: "{{ java_download_path }}/jdk-tarball-{{ jdk_version }}
It should be: creates: "{{ java_download_path }}/{{ jdk_tarball_file }}.rpm
This will ensure that the file is not re-downloaded unnecessarily.


3 checksums (md5, sha1, sha256) for release assetes but two for build_visit assets (md5, sha256)

Honestly, I am not sure why we have all the different forms of checksums. Do we really need 'em? Isn't one sufficient? Finally, why do we have 3 for release assets but then only two for build_visit assets?

FYI...when the change is made to reduce to just sha256, I think it also makes sense to ensure the associated .txt files for this and also for sizes file that get wrapped up in the release include the version number of the release in their name. That is instead of visit_sha256_checksums.txt and visit_filesizes.txt adjust names to be visit3_3_3_sha256_checksums.txt and visit3_3_3_filesizes.txt. These and INSTALL_NOTES are the only release assets that are not also identified with the VisIt version number they are associated with.


DRILL-4974: NPE in FindPartitionConditions.analyzeCall() for 'holistic' expressions

Changes: Added a missing null check in FindPartitionConditions.analyzeCall(), to ensure that opStack.peek() value is dereferenced only after a null-check. Without this check, if the expression is holistic, opStack can be null, so using the value of opStack.peek() without a check can cause an NPE.

@amansinha100 Can you please review this change.