RX550/i7-8850u PCI reject atomics

I have checked the ROCm supported hardware before purchasing the Samsung notebook NP940X5N. But still rocm driver is not working after apt-get install the rocm binary. Detailed info below. Can anyone guide what to debug next?
OS: Ubuntu 19.04
Intel® Core™ i7-8550U CPU @ 1.80GHz × 8
lspci | grep Display
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon RX 550/550X] (rev c3)
dmesg | grep kfd
[    4.324747] kfd kfd: skipped device 1002:699f, PCI rejects atomics
dkms status
amdgpu, 2.5-27, 5.0.0-17-generic, x86_64: installed

This looks to be identical to #806. Your PCI bus ID looks the same and the kfd message is identical.
The output of lspci and lspci -t should show how the GPU is connected. Look for AtomicOpsCap (using -vvv) you should see a line reporting the atomics supported unless none are supported (likely the case).
In #806 it appeared that the GPU was connected to a so called "Chipset PCI Express Root Port" which appeared to be different to the direct to CPU Root Port. It wasn't clear in that issue why this was. I speculated that it might be related to how the laptop's motherboard had been designed.
Unfortunately, it doesn't look like these laptops can actually use ROCm. In short this is because the chipset link used appears to reject atomics (although according to Intel specs it supports them, more detail in #806).
You could try looking in the BIOS and examining PCIe related options. Without any feedback from the manufacturer it's impossible to determine why support for atomics is not being reported (appears to be a design oversight).
As this is not a fault with ROCm I don't think there is much that can be done by the developers to correct it, although they might want to inform somebody at AMD so they can pass the information along to manufacturers.

Right. lspci -vvv | grep Atomic does not return anything.
I can return this laptop. Do you have the recommended laptops or desktops on which ROCm works?

Do you have the recommended laptops or desktops on which ROCm works?

It's difficult to say for laptops, but it looks like those with the RX 550 are unlikely to work.
Support for Vega M GL based laptops was recently added (#651). The Vega M chip is significantly better performing than the RX 550. It's built with the Intel i7-8705G CPU but it's only used in a few laptops.
Another Laptop option might be those with the RX 560, many of these use Ryzen CPUs and should (in theory) work with ROCm. Again, as you have found, manufacturers might cut corners in design that prevent ROCm from working. I think AMD should probably make a list of known tested and working laptops in future to avoid the problem you have been facing.
It's far simpler for desktops. Anything which has a supported CPU and GPU will work unless the manufacturer has designed it badly (very rare I think). Any desktop tower from a major brand that is equipped with an RX 500 series or Vega GPU will work. I would personally recommend a desktop for ROCm because there are few good laptops using AMD GPUs and desktops are not power constrained and so offer much better performance and therefore value for money.

A bit of a summary/re-hash of https://github.com/RadeonOpenCompute/ROCm/issues/827, but modified since it's a laptop, not a desktop (running ROCm on a mobile platform is a bit of a crapshoot, as you'll see below)
We require PCI Atomics for ROCm for GFX8 GPUs, and if the motherboard doesn't support it, then we can't run ROCm on that GPU .
Because your RX550 is GFX8 (Polaris12), it requires PCIe atomics in order to run ROCm. The i7-8850u  CPU (at least based on its architecture) can support PCI atomics, but if it's not reporting it as available (as @JMadgwick confirmed in your lspci output), then you're out of luck since the laptop manufacturer either disabled that in the motherboard, or the 8850u is a special CPU designed to fit a certain price point and the PCI atomics functionality isn't there.
GFX9-and-newer (Vega) can get by without PCI atomics, so if you find a Vega-based GPU (not VegaM, that's a misnomer and is really GFX8), then you can definitely get ROCm going regardless of the motherboard support.
Unfortunately, as @JMadgwick said, some manufacturers remove support for certain things to maintain a certain price point or performance level for their hardware, either in the CPU, GPU or motherboard. And since there are so many laptops that have AMD GPUs inside, it's impossible to keep a master list of what works and what doesn't. Mostly it comes down to anecdotal information from other github users. It would be great to have it, but unfortunately the majority of testing for ROCm comes down to the desktops and specific GPUs, since we have control over those instead of the numerous variants on the same chip that we find in mobile offerings. Even the "same" mobile GPUs with the same chip ID can have different features added/removed based on what the laptop manufacturer wants (again, price point and performance levels, trying to provide a balanced catalog of offerings), which makes kernel support really difficult. The only way to know for sure is to either get GFX9-based GPUs, or to contact the laptop manufacturer to confirm PCIe Atomics support.
For more information, see https://github.com/RadeonOpenCompute/ROCm_Documentation/blob/master/Installation_Guide/More-about-how-ROCm-uses-PCIe-Atomics.rst
You can also refer to https://github.com/RadeonOpenCompute/ROCm#supported-gpus for the whole supported list of GPUs and below that the supported GPUs, with the atomics caveats.

I am aware that current focus is on future generations of hardware.
But my question is: given that vega is capable to be used without PCI-E
atomics, could polaris also achieve the same result purely through software
or it is missing the required hardware capability?
I am asking because the old driver didn't had this requirement. And also
because it might be very benefical for AMD to support it for polaris also
due to the amount of mobile devices in the market, this might increase the
adoption among ML engineers on ROCm.

Sent from mobile, apologies for typos.

Unfortunately GFX8 doesn't have the ability to work around the Atomics issue like GFX9+ does, which is why we're stuck in this situation. The old driver didn't use the Atomics functionality, but this resulted in an incredibly noticeable performance drop compared to the newer releases. So you can use pre-1.8 ROCm, to get around the HW limitations, but the performance is really not great there. It's unfortunate, but it's something we're stuck with due to the hardware, and how we use Atomics in ROCm.

Appreciated for all the advises. I agree. Desktop with the dGPU is the preferred way to mess with rocm. In case you have space limitation like me, I have been able to install rocm on
Acer Predator Helios 500 after disable secure boot.
Here is the output of rocminfo:

Agent 2

Name:                    gfx900
Vendor Name:             AMD
Feature:                 KERNEL_DISPATCH
Profile:                 BASE_PROFILE
Float Round Mode:        NEAR
Max Queue Number:        128
Queue Min Size:          4096
Queue Max Size:          131072
Queue Type:              MULTI
Node:                    1
Device Type:             GPU
Cache Info:
L1:                      16KB
Chip ID:                 26751
Cacheline Size:          64
Max Clock Frequency (MHz):1301
BDFID:                   2048
Compute Unit:            56
Features:                KERNEL_DISPATCH
Fast F16 Operation:      FALSE
Wavefront Size:          64
Workgroup Max Size:      1024
Workgroup Max Size Per Dimension:
Dim[0]:                  67109888
Dim[1]:                  134218752
Dim[2]:                  0
Grid Max Size:<PHONE_NUMBER>
Waves Per CU:            40
Max Work-item Per CU:    2560
Grid Max Size per Dimension:
Dim[0]:<PHONE_NUMBER>
Dim[1]:<PHONE_NUMBER>
Dim[2]:<PHONE_NUMBER>
Max number Of fbarriers Per Workgroup:32
Pool Info:
Pool 1
Segment:                 GLOBAL; FLAGS: COARSE GRAINED
Size:                    8372224KB
Allocatable:             TRUE
Alloc Granule:           4KB
Alloc Alignment:         4KB
Acessible by all:        FALSE
Pool 2
Segment:                 GROUP
Size:                    64KB
Allocatable:             FALSE
Alloc Granule:           0KB
Alloc Alignment:         0KB
Acessible by all:        FALSE
ISA Info:
ISA 1
Name:                    amdgcn-amd-amdhsa--gfx900
Machine Models:          HSA_MACHINE_MODEL_LARGE
Profiles:                HSA_PROFILE_BASE
Default Rounding Mode:   NEAR
Default Rounding Mode:   NEAR
Fast f16:                TRUE
Workgroup Max Dimension:
Dim[0]:                  67109888
Dim[1]:                  1024
Dim[2]:                  16777217
Workgroup Max Size:      1024
Grid Max Dimension:
x<PHONE_NUMBER>
y<PHONE_NUMBER>
z<PHONE_NUMBER>
Grid Max Size:<PHONE_NUMBER>
FBarrier Max Size:       32
*** Done ***

I'm facing the same problem. I bought a new Lenovo Laptop with RX550X + i7-8565U in the hope of using ROCm to learn and prototype and now I have a machine with a useless GPU (since I do not game). I tried to install a prior version of ROCm (1.7.2) to see if it works on my HW, no luck either. rocminfo just hangs with no feedback or error.
Now I regret of not saving a little more money to buy a NVIDIA GPU =(

@JMadgwick Thank you very much. You are the only person, who can tell whether hardware could support atomics exactly. It is so painful that I can merely find out which cpu/motherboard could support atomics, moreover, the PCIe from pch cannot support atomic too, even if cpu supports.
I think the ROCm team should add how to judge atomic into the offical document.

Hello. i have a same problem. Lenovo e580 Latest 1.49 bios installed.  In Linux distros; In boot messages, I tried LTS kernel (5.15) or 6.1x new version or distributions using the latest software, unfortunately I get these error messages.
(I have tried this on all 10 of the most used linux distributions known. I am getting the same error on all of them.)
It has been going on for years and no fix has been released by either amd or lenovo. It's very sad.
[ 9.298192] kfd kfd: amdgpu: skipped device 1002:699f, PCI rejects atomics 730<0

---
ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [TBF3] at bit offset/length 262144/32768 exceeds size of target Buffer (262144 bits) (20220331/dsopcode-198)
ACPI Error: Aborting method \_SB.PCI0.GFX0.GETB due to previous error (AE_AML_BUFFER_LIMIT) (20220331/psparse-529)
ACPI Error: Aborting method \_SB.PCI0.GFX0.ATRM due to previous error (AE_AML_BUFFER_LIMIT) (20220331/psparse-529)
failed to evaluate ATRM got AE_AML_BUFFER_LIMIT

My hardware list:
glc@glc-pc:~$ lspci -nnk
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5914] (rev 08)
Subsystem: Lenovo Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [17aa:5068]
Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07)
Subsystem: Lenovo UHD Graphics 620 [17aa:5069]
Kernel driver in use: i915
Kernel modules: i915
00:08.0 System peripheral [0880]: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model [8086:1911]
Subsystem: Lenovo Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model [17aa:5068]
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
Subsystem: Lenovo Sunrise Point-LP USB 3.0 xHCI Controller [17aa:5068]
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
Subsystem: Lenovo Sunrise Point-LP Thermal subsystem [17aa:5068]
Kernel driver in use: intel_pch_thermal
Kernel modules: intel_pch_thermal
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
Subsystem: Lenovo Sunrise Point-LP CSME HECI [17aa:5068]
Kernel driver in use: mei_me
Kernel modules: mei_me
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)
Subsystem: Lenovo Sunrise Point-LP SATA Controller [AHCI mode] [17aa:5068]
Kernel driver in use: ahci
Kernel modules: ahci
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 [8086:9d10] (rev f1)
Kernel driver in use: pcieport
00:1c.4 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 [8086:9d14] (rev f1)
Kernel driver in use: pcieport
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 [8086:9d18] (rev f1)
Kernel driver in use: pcieport
00:1d.2 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #11 [8086:9d1a] (rev f1)
Kernel driver in use: pcieport
00:1d.3 PCI bridge [0604]: Intel Corporation Device [8086:9d1b] (rev f1)
Kernel driver in use: pcieport
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e] (rev 21)
Subsystem: Lenovo Sunrise Point LPC Controller/eSPI Controller [17aa:5068]
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
Subsystem: Lenovo Sunrise Point-LP PMC [17aa:5068]
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
Subsystem: Lenovo Sunrise Point-LP HD Audio [17aa:5068]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_soc_skl, snd_soc_avs, snd_sof_pci_intel_skl
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
Subsystem: Lenovo Sunrise Point-LP SMBus [17aa:5068]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
02:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] [1002:699f] (rev c0)
Subsystem: Lenovo Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] [17aa:5069]
Kernel driver in use: amdgpu
Kernel modules: amdgpu
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 10)
Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [17aa:5068]
Kernel driver in use: r8169
Kernel modules: r8169
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963 [144d:a804]
Subsystem: Samsung Electronics Co Ltd SM963 2.5" NVMe PCIe SSD [144d:a801]
Kernel driver in use: nvme
Kernel modules: nvme
05:00.0 Network controller [0280]: Intel Corporation Dual Band Wireless-AC 3165 Plus Bluetooth [8086:3166] (rev 99)
Subsystem: Intel Corporation Dual Band Wireless-AC 3165 [8086:4210]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
06:00.0 SD Host controller [0805]: O2 Micro, Inc. SD/MMC Card Reader Controller [1217:8621] (rev 01)
Subsystem: Lenovo SD/MMC Card Reader Controller [17aa:5068]
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci
glc@glc-pc:~$

Continue:..
glc@glc-pc:~$ sudo lspci -t
-[0000:00]-+-00.0
+-02.0
+-08.0
+-14.0
+-14.2
+-16.0
+-17.0
+-1c.0-[02]----00.0
+-1c.4-[03]----00.0
+-1d.0-[04]----00.0
+-1d.2-[05]----00.0
+-1d.3-[06]----00.0
+-1f.0
+-1f.2
+-1f.3
\-1f.4

Continue:....
glc@glc-pc:~$ lspci -tnnv
-[0000:00]-+-00.0 Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5914]
+-02.0 Intel Corporation UHD Graphics 620 [8086:5917]
+-08.0 Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model [8086:1911]
+-14.0 Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f]
+-14.2 Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31]
+-16.0 Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a]
+-17.0 Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03]
+-1c.0-[02]----00.0 Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] [1002:699f]
+-1c.4-[03]----00.0 Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168]
+-1d.0-[04]----00.0 Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963 [144d:a804]
+-1d.2-[05]----00.0 Intel Corporation Dual Band Wireless-AC 3165 Plus Bluetooth [8086:3166]
+-1d.3-[06]----00.0 O2 Micro, Inc. SD/MMC Card Reader Controller [1217:8621]
+-1f.0 Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e]
+-1f.2 Intel Corporation Sunrise Point-LP PMC [8086:9d21]
+-1f.3 Intel Corporation Sunrise Point-LP HD Audio [8086:9d71]
\-1f.4 Intel Corporation Sunrise Point-LP SMBus [8086:9d23]
glc@glc-pc:~$

Is there a way to completely disable this external / discrete video card in linux distributions? Thank you in advance for your help. have a nice day.


dotnet ef database drop always ask if it wants to drop the database regardless of the existence of the db

The command always prompts for Are you sure you want to drop the database ... without verifying if it exists. Running it twice makes it appear as if it hasn't done any work the first time around.

What behavior is expected?

It'd be nice if it says it doesn't exist (Cannot drop TestDatabase. Are you sure it exists?) or something along these lines.

We don't preemptively check if the database exists, but EnsureDeleted does return a bool letting us know if there was a database to drop or not... so we could log the result.

@rowanmiller It's a good point, can i grab this issue and made PR for this?

@laskoviymishka go for it, we moved it out of 1.0.0 purely for scheduling reasons, more than happy to take the change if it looks good. Take a look at this recent PR for guidance on how to store strings etc.

@rowanmiller yeah - everything to a resources. Thx!


Built-in methods/keywords highlighted when they shouldn't

Godot version:
3.1.1
Issue description:

Method calls from other objects might use some words that are normally highlighted red. This shouldn't happen IMO (I mean, this should appear as normal member method call, i.e. blue).

CC @vnen

CC @Paulb23

Still valid in 6831da6

Fixed by #45479

Fixed by #45479


Seconds not filled in correctly

Minutes are used as seconds in scheduled appointment. I will create a pull request for this bug.

This had been resolved in #24 but was re-introduced with the addition of rrules.

Don't know when I'll get to this.  If someone sends a PR, I'll review and merge.

New to git so not sure how to provide in a better manner but the issues is with the following two lines that are feeding minutes into the seconds field.
Line 126  var end_seconds = ("00" + (end_date.getMinutes().toString())).slice(-2);
Line 133  var now_seconds = ("00" + (now_date.getMinutes().toString())).slice(-2);
Update .getMinutes() to .getSeconds()


Installer should reopen all last opened folders

VSCode Version: 1.1.0
OS Version: Windows

Steps to Reproduce:

Have more than one workspace folder open
Update to a new version

Observe: only on window is reopened. I would expect that all open folders get reopened.

@bpasero unsure if this is the installer or the workbench.

It is a setting (window.reopenFolders) which is checked here (https://github.com/Microsoft/vscode/blob/ben/stacks/src/vs/code/electron-main/windows.ts#L846) and if we know that VS Code was restarted because of an update, it should be easy to force reopen of folders from there.

I might be able to just do this by storing a temporary setting before applying the update.

@dbaeumer @jrieken pushed a change to reopen windows when an update is applied. Please let me know from your self host usage if this works on Mac and Windows.

Looking forward to it !


how open trust wallet not metmask?

every time open metamask, what is the parmas need to change to use trust wallet ?

try this
connector.createSession(
        onDisplayUri: (uri) {
final trustWalletUri = Uri.https('link.trustwallet.com', 'wc', {'uri': uri});

}
);

Take a look here: walletconnect_qr_modal

I just want users connect with metamask, how should I do? I don't want to show the select of all the wallet app,connect default with metamask

try this
connector.createSession(
        onDisplayUri: (uri) {
                final trustWalletUri = Uri.https('link.trustwallet.com', 'wc', {'uri': uri});
        }
);

@WingCH I just want connect with metamask, how should I do? I don't want to show the select of all the wallet app. just connect default with metamask

@ShallowGreen
You can use the Metamask universal link, metamask.app.link, which works in the same way as Trust Wallet.
walletUri = Uri.https('metamask.app.link', 'wc', {'uri': uri})


Unify style guide

Hi, @shravanngoswamii. Can you improve the preview Github Action so that comments are posted only once, and future comments override existing comments?
You might find the setups in Tapir helpful: https://github.com/compintell/Tapir.jl/blob/7411e016ebac84da282c91fcaf7829fe65d3f98f/.github/workflows/CI.yml#L108C7-L121

#460


fix(dev-server): pin webpack-dev-server version

Summary
fix #7782
rspack-dev-server use some internal api of webpack-dev-server, which cause it's easily broken if webpack-dev-server do some internal refactor
so the temporary solution is to pin the webpack-dev-server version
we need redesign rspack-dev-server implemention and shouldn't rely on internal api

Checklist

[x] Tests updated (or not required).
[x] Documentation updated (or not required).

It would be interesting if rspack team could rewrite this part in rust too.


Bump Maven from 3.8.7 to 3.9.4

Codecov Report

Merging #196 (fff4587) into master (fb57013) will decrease coverage by 63.04%.
The diff coverage is n/a.

:exclamation: Current head fff4587 differs from pull request most recent head bc55b82. Consider uploading reports for the commit bc55b82 to get more accurate results

@@             Coverage Diff              @@
##             master    #196       +/-   ##
============================================
- Coverage     63.03%   0.00%   -63.04%
============================================
  Files            12      12
  Lines          1028    1028
  Branches        149     149
============================================
- Hits            648       0      -648
- Misses          325    1028      +703
+ Partials         55       0       -55

see 10 files with indirect coverage changes


Fix release

Remove .npmrc as it seems to be messing with semantic-release.

Coverage remained the same at 100.0% when pulling e3b7996952315a0531c79c98c0021c8d09e9fb16 on fix-release into a7941a54bdf6067611af9a6e718e57885e9c8da2 on main.


RFC: Use mozilla slugify

Description:
Use mozilla slugify library with UTF-8 support:
https://github.com/mozilla/unicode-slugify
Fix: #19184

I definitely have localized entity ids that could be improved.
Kinda hard to give comments though, some before/after examples would be nice ... maybe as tests?

@pvizeli Please test results with this method https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/core.py#L78

Breaking change because any entity that does not have a unique ID and has foreign characters in their name will get a new entity ID.

Maybe we need move to https://github.com/un33k/python-slugify because the mozilla pypi packages is very outdated

This change did break a lot of unique_ids in my setup:
# before
"unique_id": "coordination158d0002a4f9f8"

# after
"unique_id": "coordination_158d0002a4f9f8"

It looks like a "-" character was removed in the past. Now it's mapped from "-" to "_".

uhm, unique IDs should not get slugified. Maybe you want to add a PR that copies the old slugify function into the xiaomi_aqara component and use that to prevent a breaking change.

I will update the xiaomi_aqara component.


Fixes #2105/#1763. Cached resolution: removes duplicate callers during merge

Fixes #2105/#1763
In #2097 which became 0.13.9-RC2 I ended up regressing on OOM (#1763), which I thought I tested locally, but apparently I tested on an older SNAPSHOT.
I've gotten to the root cause of the bloating caller info this time, I think. It's my merge code that was flatMaping all callers across the subprojects. So the more subproject you add the more it was duplicating the callers.
/review @jsuereth, @dwijnand

LGTM


Added support for ZBLANK

This was a bit tricky to test out but I managed to get started by using fpack to create a real-life compressed file with a NaN. I think we didn't actually previously support this properly in astropy or fitsio. With the reference file included here produced by fpack:
fitsio:
In [1]: from fitsio import FITS

In [2]: FITS('compressed_with_nan.fits', 'r')[1].read()
Out[2]:
array([[  0.24800134,   0.93837476,   1.86717916,   2.7572279 ,
          3.8365202 ,   4.81325245,   6.07874541,   7.19016685,
          8.25755919,   8.94436647,  10.21816534,  10.96331429],
       [ 11.85326338,  -5.32149553,  13.81193948,  15.10613155,
         15.78522205,  16.83257818,  17.81239832,  19.09749043,
         19.89572431,  21.02495848,  22.16447399,  23.12375106],
       [ 24.11236739,  24.82116628,  26.16324592,  27.07616186,
         28.25843024,  29.11530542,  29.81170208,  30.84318564,
         31.8651949 ,  33.00300841,  34.18679967,  34.95438466],
       [ 36.13891673,  36.87695789,  38.01172495,  38.83706474,
         40.02535057,  40.85193944,  42.00145825,  42.88512335,
         44.13053724,  44.81240045,  45.81124977,  47.16511866],
       [ 47.8302145 ,  48.75466275,  49.81585455,  51.12784076,
         52.08974266,  53.09945488,  53.84582118,  55.18520071,
         55.7960822 ,  56.83639076,  57.83776176,  59.11492913],
       [ 59.85114574,  61.26117682,  62.04878569,  62.82218981,
         63.88607383,  64.83932519,  66.15294444,  66.80629131,
         68.15489802,  69.21407623,  70.22950176,  70.79220729],
       [ 72.03176049,  73.24666723,  73.84131311,  75.10758251,
         76.15610049,  76.74972581,  78.121889  ,  78.85475872,
         80.08750787,  81.25353301,  82.20820131,  83.24902675],
       [ 83.92690852,  85.20415628,  86.25493305,  87.07144213,
         88.18303637,  89.00969058,  89.79208753,  90.98874658,
         92.06370719,  93.09941351,  93.80499528,  95.06551634],
       [ 96.03795214,  96.8279785 ,  97.87266748,  99.11046648,
<PHONE_NUMBER>6,<PHONE_NUMBER>1,<PHONE_NUMBER>9,<PHONE_NUMBER>4,
<PHONE_NUMBER>5,<PHONE_NUMBER>8,<PHONE_NUMBER>9,<PHONE_NUMBER>2],
       [108.23702145,<PHONE_NUMBER>6,<PHONE_NUMBER>8,<PHONE_NUMBER>8,
<PHONE_NUMBER> ,<PHONE_NUMBER>2,<PHONE_NUMBER>7,<PHONE_NUMBER>5,
<PHONE_NUMBER>1,<PHONE_NUMBER>7,<PHONE_NUMBER>6,<PHONE_NUMBER>4],
       [120.09037049,<PHONE_NUMBER>9,<PHONE_NUMBER>1,<PHONE_NUMBER>2,
<PHONE_NUMBER>1,<PHONE_NUMBER>6,<PHONE_NUMBER> ,<PHONE_NUMBER>4,
<PHONE_NUMBER>9,<PHONE_NUMBER>9,<PHONE_NUMBER>7,<PHONE_NUMBER>7],
       [132.22038248,<PHONE_NUMBER>5,<PHONE_NUMBER>5,<PHONE_NUMBER>8,
<PHONE_NUMBER>4,<PHONE_NUMBER>9,<PHONE_NUMBER>2,<PHONE_NUMBER>4,
<PHONE_NUMBER>5,<PHONE_NUMBER>5,<PHONE_NUMBER>2,<PHONE_NUMBER>7]])

astropy before this PR:
In [1]: from astropy.io import fits

In [2]: fits.open('compressed_with_nan.fits')[1].data
Out[2]:
array([[  0.24800134,   0.93837476,   1.86717916,   2.7572279 ,
          3.8365202 ,   4.81325245,   6.07874541,   7.19016685,
          8.25755919,   8.94436647,  10.21816534,  10.96331429],
       [ 11.85326338,  -5.32149553,  13.81193948,  15.10613155,
         15.78522205,  16.83257818,  17.81239832,  19.09749043,
         19.89572431,  21.02495848,  22.16447399,  23.12375106],
       [ 24.11236739,  24.82116628,  26.16324592,  27.07616186,
         28.25843024,  29.11530542,  29.81170208,  30.84318564,
         31.8651949 ,  33.00300841,  34.18679967,  34.95438466],
       [ 36.13891673,  36.87695789,  38.01172495,  38.83706474,
         40.02535057,  40.85193944,  42.00145825,  42.88512335,
         44.13053724,  44.81240045,  45.81124977,  47.16511866],
       [ 47.8302145 ,  48.75466275,  49.81585455,  51.12784076,
         52.08974266,  53.09945488,  53.84582118,  55.18520071,
         55.7960822 ,  56.83639076,  57.83776176,  59.11492913],
       [ 59.85114574,  61.26117682,  62.04878569,  62.82218981,
         63.88607383,  64.83932519,  66.15294444,  66.80629131,
         68.15489802,  69.21407623,  70.22950176,  70.79220729],
       [ 72.03176049,  73.24666723,  73.84131311,  75.10758251,
         76.15610049,  76.74972581,  78.121889  ,  78.85475872,
         80.08750787,  81.25353301,  82.20820131,  83.24902675],
       [ 83.92690852,  85.20415628,  86.25493305,  87.07144213,
         88.18303637,  89.00969058,  89.79208753,  90.98874658,
         92.06370719,  93.09941351,  93.80499528,  95.06551634],
       [ 96.03795214,  96.8279785 ,  97.87266748,  99.11046648,
<PHONE_NUMBER>6,<PHONE_NUMBER>1,<PHONE_NUMBER>9,<PHONE_NUMBER>4,
<PHONE_NUMBER>5,<PHONE_NUMBER>8,<PHONE_NUMBER>9,<PHONE_NUMBER>2],
       [108.23702145,<PHONE_NUMBER>6,<PHONE_NUMBER>8,<PHONE_NUMBER>8,
<PHONE_NUMBER> ,<PHONE_NUMBER>2,<PHONE_NUMBER>7,<PHONE_NUMBER>5,
<PHONE_NUMBER>1,<PHONE_NUMBER>7,<PHONE_NUMBER>6,<PHONE_NUMBER>4],
       [120.09037049,<PHONE_NUMBER>9,<PHONE_NUMBER>1,<PHONE_NUMBER>2,
<PHONE_NUMBER>1,<PHONE_NUMBER>6,<PHONE_NUMBER> ,<PHONE_NUMBER>4,
<PHONE_NUMBER>9,<PHONE_NUMBER>9,<PHONE_NUMBER>7,<PHONE_NUMBER>7],
       [132.22038248,<PHONE_NUMBER>5,<PHONE_NUMBER>5,<PHONE_NUMBER>8,
<PHONE_NUMBER>4,<PHONE_NUMBER>9,<PHONE_NUMBER>2,<PHONE_NUMBER>4,
<PHONE_NUMBER>5,<PHONE_NUMBER>5,<PHONE_NUMBER>2,<PHONE_NUMBER>7]])

with this PR
In [1]: from astropy.io import fits

In [2]: fits.open('compressed_with_nan.fits')[1].data
Out[2]:
array([[  0.24800134,   0.93837476,   1.86717916,   2.7572279 ,
          3.8365202 ,   4.81325245,   6.07874541,   7.19016685,
          8.25755919,   8.94436647,  10.21816534,  10.96331429],
       [ 11.85326338,          nan,  13.81193948,  15.10613155,
         15.78522205,  16.83257818,  17.81239832,  19.09749043,
         19.89572431,  21.02495848,  22.16447399,  23.12375106],
       [ 24.11236739,  24.82116628,  26.16324592,  27.07616186,
         28.25843024,  29.11530542,  29.81170208,  30.84318564,
         31.8651949 ,  33.00300841,  34.18679967,  34.95438466],
       [ 36.13891673,  36.87695789,  38.01172495,  38.83706474,
         40.02535057,  40.85193944,  42.00145825,  42.88512335,
         44.13053724,  44.81240045,  45.81124977,  47.16511866],
       [ 47.8302145 ,  48.75466275,  49.81585455,  51.12784076,
         52.08974266,  53.09945488,  53.84582118,  55.18520071,
         55.7960822 ,  56.83639076,  57.83776176,  59.11492913],
       [ 59.85114574,  61.26117682,  62.04878569,  62.82218981,
         63.88607383,  64.83932519,  66.15294444,  66.80629131,
         68.15489802,  69.21407623,  70.22950176,  70.79220729],
       [ 72.03176049,  73.24666723,  73.84131311,  75.10758251,
         76.15610049,  76.74972581,  78.121889  ,  78.85475872,
         80.08750787,  81.25353301,  82.20820131,  83.24902675],
       [ 83.92690852,  85.20415628,  86.25493305,  87.07144213,
         88.18303637,  89.00969058,  89.79208753,  90.98874658,
         92.06370719,  93.09941351,  93.80499528,  95.06551634],
       [ 96.03795214,  96.8279785 ,  97.87266748,  99.11046648,
<PHONE_NUMBER>6,<PHONE_NUMBER>1,<PHONE_NUMBER>9,<PHONE_NUMBER>4,
<PHONE_NUMBER>5,<PHONE_NUMBER>8,<PHONE_NUMBER>9,<PHONE_NUMBER>2],
       [108.23702145,<PHONE_NUMBER>6,<PHONE_NUMBER>8,<PHONE_NUMBER>8,
<PHONE_NUMBER> ,<PHONE_NUMBER>2,<PHONE_NUMBER>7,<PHONE_NUMBER>5,
<PHONE_NUMBER>1,<PHONE_NUMBER>7,<PHONE_NUMBER>6,<PHONE_NUMBER>4],
       [120.09037049,<PHONE_NUMBER>9,<PHONE_NUMBER>1,<PHONE_NUMBER>2,
<PHONE_NUMBER>1,<PHONE_NUMBER>6,<PHONE_NUMBER> ,<PHONE_NUMBER>4,
<PHONE_NUMBER>9,<PHONE_NUMBER>9,<PHONE_NUMBER>7,<PHONE_NUMBER>7],
       [132.22038248,<PHONE_NUMBER>5,<PHONE_NUMBER>5,<PHONE_NUMBER>8,
<PHONE_NUMBER>4,<PHONE_NUMBER>9,<PHONE_NUMBER>2,<PHONE_NUMBER>4,
<PHONE_NUMBER>5,<PHONE_NUMBER>5,<PHONE_NUMBER>2,<PHONE_NUMBER>7]])

I didn't yet implement the ability to write per-tile different values of ZBLANK but as far as I can tell we didn't expose that before anyway so I don't think it needs to be done (I'm not even sure how one would have written any file out with ZBLANK before).

Why would you even want different tile ZBLANKS?

I don't know but the FITS standard allows it :laughing:


CNV-45584: Update Edit CPU | Memory modal UI

📝 Description
This PR updates the design of the CPU/memory modal to give the user two methods for configuring the CPU: enter the CPU topology manually and entering the number of desired vCPUs.
Jira: https://issues.redhat.com/browse/CNV-45584
🎥 Screenshots
Before

After

/retest

/retest

/lgtm
/retest


datree: 1.6.42 -> 1.6.48

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/datreeio/datree/releases.
meta.description for datree is: "CLI tool to ensure K8s manifests and Helm charts follow best practices as well as your organization’s policies"
meta.homepage for datree is: "https://datree.io/"
meta.changelog for datree is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.6.46 with grep in /nix/store/mr1sm3d4d13szgdzxk9hiyavl4lwdii8-datree-1.6.46
found 1.6.46 in filename of file in /nix/store/mr1sm3d4d13szgdzxk9hiyavl4lwdii8-datree-1.6.46

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
datree

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/mr1sm3d4d13szgdzxk9hiyavl4lwdii8-datree-1.6.46 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A datree https://github.com/r-ryantm/nixpkgs/archive/ca3b31d81ef572425ef4f30162cf6c373bb3ac05.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/mr1sm3d4d13szgdzxk9hiyavl4lwdii8-datree-1.6.46
ls -la /nix/store/mr1sm3d4d13szgdzxk9hiyavl4lwdii8-datree-1.6.46/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

datree

Maintainer pings
cc @jceb for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/datreeio/datree/releases.
meta.description for datree is: "CLI tool to ensure K8s manifests and Helm charts follow best practices as well as your organization’s policies"
meta.homepage for datree is: "https://datree.io/"
meta.changelog for datree is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.6.48 with grep in /nix/store/98l4an13rq754n0k08z0d4mbiw4gakmf-datree-1.6.48
found 1.6.48 in filename of file in /nix/store/98l4an13rq754n0k08z0d4mbiw4gakmf-datree-1.6.48

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
datree

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/98l4an13rq754n0k08z0d4mbiw4gakmf-datree-1.6.48 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A datree https://github.com/r-ryantm/nixpkgs/archive/8cd7d737896ddb1333f00bf7ce172ff1f767554d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/98l4an13rq754n0k08z0d4mbiw4gakmf-datree-1.6.48
ls -la /nix/store/98l4an13rq754n0k08z0d4mbiw4gakmf-datree-1.6.48/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

datree

Maintainer pings
cc @jceb for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/datreeio/datree/releases.
meta.description for datree is: "CLI tool to ensure K8s manifests and Helm charts follow best practices as well as your organization’s policies"
meta.homepage for datree is: "https://datree.io/"
meta.changelog for datree is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.7.1 with grep in /nix/store/1n195sd88rkf97abl2aabm4kknm9cja0-datree-1.7.1
found 1.7.1 in filename of file in /nix/store/1n195sd88rkf97abl2aabm4kknm9cja0-datree-1.7.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
datree

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1n195sd88rkf97abl2aabm4kknm9cja0-datree-1.7.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A datree https://github.com/r-ryantm/nixpkgs/archive/4bfe6aee1f05741459f57cf1eaf8c8095bfeb870.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1n195sd88rkf97abl2aabm4kknm9cja0-datree-1.7.1
ls -la /nix/store/1n195sd88rkf97abl2aabm4kknm9cja0-datree-1.7.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

datree

Maintainer pings
cc @jceb for testing.

Will be handled in #200601.


Keymap normalization not compatible with  key

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Announcement

[X] I have checked Breaking change announcement.

Minimal reproducible full config
if has('vim_starting')
  set encoding=utf-8
endif
scriptencoding utf-8

if &compatible
  set nocompatible
endif

let s:plug_dir = expand('/tmp/plugged/vim-plug')
if !filereadable(s:plug_dir .. '/plug.vim')
  execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim', s:plug_dir)
end

execute 'set runtimepath+=' . s:plug_dir
call plug#begin(s:plug_dir)
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/vim-vsnip'
Plug 'neovim/nvim-lspconfig'
call plug#end()
PlugInstall | quit

" Setup global configuration. More on configuration below.
lua << EOF
local cmp = require "cmp"
cmp.setup {
  snippet = {
    expand = function(args)
      vim.fn["vsnip#anonymous"](args.body)
    end,
  },

  mapping = {
    ['<CR>'] = cmp.mapping.confirm({ select = true }),
    ['<Leader>g<Space>'] = cmp.mapping.complete()
  },

  sources = cmp.config.sources({
    { name = "nvim_lsp" },
    { name = "buffer" },
  }),
}
EOF

lua << EOF
local capabilities = require('cmp_nvim_lsp').default_capabilities()

require'lspconfig'.cssls.setup {
  capabilities = capabilities,
}
EOF

Description
Add this config:
  mapping = {
    ['<CR>'] = cmp.mapping.confirm({ select = true }),
    ['<Leader>g<Space>'] = cmp.mapping.complete()
  },

This keymap <Leader>g<Space> is not functioning properly, while it was working fine before.
Result with imap:
i  <*Leader>g<Space> * <Lua 24: /tmp/plugged/vim-plug/nvim-cmp/lua/cmp/utils/keymap.lua:133>
                 cmp.utils.keymap.set_map

Steps to reproduce
Included in reproducible config file.
Expected behavior
The keymap should worked.
Actual behavior
It not worked after upgrade cmp. Result in imap looks wired.
Additional context
No response

Not sure if is this a bug:
let g:mapleader = "\<Space>"
map <Leader> <Cmd>echo "work"<CR>
map <*Leader> <Cmd>echo "not work"<CR>
map <Space> <Cmd>echo "work"<CR>
map <*Space> <Cmd>echo "work"<CR>

But here is a workaround:
'<Leader>g<Space>' -> (vim.g.mapleader or '\\') .. 'g<Space>'

#2073
Please test the latest version.

I tried the latest version, but the problem still persists.
I guess this commit caused the issue: https://github.com/hrsh7th/nvim-cmp/commit/19bd8c7c9a834e31db1f15cb04635bf44219a7cb. It attempted to use <*xxx> to properly handle the modifier key, but <Leader> is not a terminal keycode.
The workaround solution is working well, thanks for your help!


Create AIDecipher.md

📝 Description
AIDecipher is an intelligent assistant, designed to simplify complex tasks, provide insightful information, and enhance productivity.
💣 Is this a breaking change (Yes/No):

[ ] Yes
[x] No

🚧 How to migrate?
Don't need.
📝 Additional Information
lol

@AruSeito, could you please review this PR when you have a moment? Your feedback would be greatly appreciated. Thank you!


Syntax errors in the clinvar-xrefs ZOOMA datasource

Reported by James McLaughlin on 2021-03-29 via email. (Apologies it took a while to triage.)
Copying @udp @henrietteharmse from SPOT and @afoix @apriltuesday @M-casado @tcezard from this repository.

Hi Kirill,
I wonder if you might know who we could contact about this. We download this file:

ftp://ftp.ebi.ac.uk/pub/databases/eva/ClinVar/latest/clinvar_xrefs.txt

as part of our ZOOMA data release. However, it is currently breaking because of spaces in URIs, for example:
RCV000497953    rs782393002     disease Syndromic X-linked intellectual disability Turner type  http://www.orpha.net/ORDO/Orphanet_ 85328       clinvar-xrefs   20/03/21 04:53

note the extra space between _ and 8
A few days ago this was not an issue, so I guess something must have changed?
thanks,
James

The issue in the code has been very likely fixed; reopening this ticket until the updated files are submitted to the FTP

Just adding the remaining steps here as well for traceability:

Re-run the evidence string generation pipeline
Make sure that the problem is indeed fixed and the updated clinvar_xrefs file is all good
Submit the clinvar_xrefs file to ZOOMA via copying to the FTP directory on the cluster
Also it's probably worth sending ClinVar<EMAIL_ADDRESS>feedback that they have extra whitespace symbol in their data, I'm pretty sure it's not supposed to happen

@afoix Correction, the whole evidence string generation pipeline does not need to be re-run, my mistake. Just the last step which generates the clinvar_xrefs file, which is independent of everything else

@tskir @afoix Please give us a shout when the file is updated. Then can we can get a Zooma data release running ASAP.

@henrietteharmse the new file is now available in FTP. Let me know if I can help in anything else.


Missing labels in ConfigMaps and Lease

There are three ConfigMaps and one Lease resource created by istio-operator that are missing recommended labels.
I would be satisfied with labels such as:
metadata
    labels
        operator.istio.io/version: 1.10.3

name:  istio-namespace-controller-election, kind: ConfigMap

name: istio-validation-controller-election, kind: ConfigMap

name: istio-operator-lock, kind: ConfigMap

name: istio-operator-lock, kind: Lease

Why do you need the labels? I have never seen any controller set these for leader election. For example...:
$ kubectl get cm -A --show-labels | rg 'lock|elect'
default           consul-controller-lock                                         0      46d     <none>
kube-system       cert-manager-cainjector-leader-election                        0      7d22h   <none>
kube-system       cert-manager-cainjector-leader-election-core                   0      7d22h   <none>
kube-system       gke-common-webhook-lock                                        0      89d     <none>
kube-system       ingress-gce-lock                                               0      89d     <none>

I use a script to associate all resources in the cluster to yaml files we have in our repository.
When there are no files, ie when the operator creates the resources, then the script has no way to know who the resource belongs to.
In the examples you use, we have the files for them in the cert-manager.yaml so if cert-manager decides to change the name of the leader-election, for example when upgrading, then my script would notify me that there is no one using the dangling resource by comparing the kustomize build with the kubectl diff -k output.
When it comes to operator resources that are missing labels, I usually find a .metadata.ownerReference that works as well.

A leader election configmap should not be stored in a git repo. It's
transient in-cluster state.
On Tue, Aug 17, 2021, 9:53 PM Ramilito @.***> wrote:

I use a script to associate all resources in the cluster to yaml files we
have in our repository.
When there are no files, ie when the operator creates the resources, then
the script has no way to know who the resource belongs to.
In the examples you use, we have the files for them in the
cert-manager.yaml so if cert-manager decides to change the name of the
leader-election, for example when upgrading, then my script would notify me
that there is no one using the dangling resource by comparing the kustomize
build with the kubectl diff -k output.
When it comes to operator resources that are missing labels, I usually
find a .metadata.ownerReference that works as well.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/34744#issuecomment-900810608, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXOUVRHIXXLXOI25QLLT5M4FJANCNFSM5CKBQ4XQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

We are using infrastructure as code but that's beside the point I think, I'm not sure how kuberenetes would garbage collect those resources and that's why we want to associate every resource to its owner, and I cannot be sure that Istio Operator is still using that resource unless there is a version tag on it.

Kubernetes controllers almost always implement leader election. They almost always use this package to do so: https://github.com/kubernetes/client-go/blob/v0.22.0/tools/leaderelection/resourcelock/interface.go#L100. This does not set any labels nor ownerRefs. Kubernetes own usage of the same library is the same.
Given the overwhelming pattern in the ecosystem I get the impression this is not a recommended pattern. If we get feedback from the Kubernetes team that this is a good idea we can consider it but until then I think it's best we stick to prior art.

It seems that you are correct, I guess il just ignore those resources manually. Thank you for looking into this!


Document.logger.warn does not get displayed during render - yaml2text

Steps to reproduce:

pull https://github.com/CalConnect/csd-calendar-systems
bundle exec metanorma -t iso sources/iso-34999.adoc

The original yaml file supplied in yaml2text block has some broken chars, the error gets thrown, caught here - https://github.com/metanorma/metanorma-plugin-datastruct/blob/master/lib/metanorma/plugin/datastruct/base_structured_text_preprocessor.rb#L117 but never gets disaplyed

There is no iso-34999 document in that repository, and I have been able to compile the iso-34300 document that is there without incident. Please provide correct file reference.

There is no iso-34999 document in that repository, and I have been able to compile the iso-34300 document that is there without incident. Please provide correct file reference.

i have created a test file in a separate branch
branch - hotfix/broken-logging
bundle exec metanorma -t iso spec/assets/broken_logging.adoc

Something went wrong with the 1.8.6 release of metanorma-iso: the CSS file was not generated, so Metanorma was trying to recompile it.
The 1.9.0 release I've just done has generated it correctly; so once I update metanorma-cli, this issue will go away.


table-name正则匹配问题

set table-name to user_* to monitor all the user_ prefix tables
去查sink表，没有数据。
检查taskmanager 日志，发现：
2020-08-31 14:22:06,854 INFO  io.debezium.connector.mysql.SnapshotReader                   [] - 	 'dashboard.user_00' is not added among known tables
2020-08-31 14:22:06,854 INFO  io.debezium.connector.mysql.SnapshotReader                   [] - 	 'dashboard.user_00' is filtered out of capturing
2020-08-31 14:22:06,854 INFO  io.debezium.connector.mysql.SnapshotReader                   [] - 	 'dashboard.user_01' is not added among known tables
2020-08-31 14:22:06,854 INFO  io.debezium.connector.mysql.SnapshotReader                   [] - 	 'dashboard.user_01' is filtered out of capturing
将'table-name' = 'user_[0-9][0-9]'，数据可以正常sink到表

要写成 user_.*

要写成 user_.*

@shizhengchao it works,thanks！@wuchong 要在FAQ改下了

Thanks! 多谢提醒


V0p1p3b

Codecov Report

Merging #12 (9c48eed) into main (80ee0c3) will decrease coverage by 10.73%.
The diff coverage is 93.75%.

@@             Coverage Diff             @@
##             main      #12       +/-   ##
===========================================
- Coverage   95.45%   84.72%   -10.74%
===========================================
  Files           3        3
  Lines          66       72        +6
===========================================
- Hits           63       61        -2
- Misses          3       11        +8

Impacted Files
Coverage Δ

src/Dataverse.jl
100.00% <ø> (ø)

src/downloads.jl
75.00% <83.33%> (-8.34%)
:arrow_down:

src/pyDataverse.jl
87.27% <96.15%> (-12.73%)
:arrow_down:

Continue to review full report at Codecov.

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


Fix small problems that prevent this package to build

Change the way how DPDK version is checked, as bindings doesn't expose anything that was changed since DPDK 21.11
Fix package naming
Fix some tests/examples to reference correct package names
Update some of the dependencies to their latest version
Do options_bytes_mut().copy_from_slice instead of set_options_bytes in examples/checksum_offload_tx (seems that set_options_bytes were removed long time ago, but example was never fixed)

I probably forgot to mention that there were some dependencies missing that I've added and probably few other small things that I forgot.
On my test bench it seems that tests are working fine with DPDK 23.11:
warning<EMAIL_ADDRESS>Compiler version doesn't include clang or GCC: "cc" "--version"
    Finished test [unoptimized + debuginfo] target(s) in 0.03s
     Running unittests src/lib.rs (target/debug/deps/rpkt-391f469e21628f0e)

running 20 tests
test arp::packet::tests::packet_build ... ok
test arp::packet::tests::packet_parse ... ok
test cursors::tests::test_cursor ... ok
test cursors::tests::test_cursor_mut ... ok
test ether::packet::tests::packet_build ... ok
test ether::packet::tests::packet_parse ... ok
test icmpv4::packet::tests::packet_build ... ok
test icmpv4::packet::tests::packet_parse ... ok
test ipv4::option::tests::test_ipv4_option ... ok
test ipv4::packet::tests::packet_build ... ok
test ipv4::packet::tests::packet_parse ... ok
test tcp::option::tests::option_build ... ok
test tcp::option::tests::option_parse ... ok
test tcp::packet::tests::packet_build ... ok
test tcp::packet::tests::packet_parse ... ok
test udp::packet::tests::cursor_parse1 ... ok
test udp::packet::tests::cursor_parse2 ... ok
test udp::packet::tests::fake_nat ... ok
test udp::packet::tests::packet_build ... ok
test udp::packet::tests::packet_parse ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/rpkt_dpdk-2209dc90bf80a778)

running 7 tests
test lcore::tests::bind_2_cores_to_the_same_lcore ... EAL: Detected CPU lcores: 32
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
EAL: Probe PCI driver: mlx5_pci (15b3:101d) device: 0000:16:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:101d) device: 0000:16:00.1 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1013) device: 0000:34:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1013) device: 0000:34:00.1 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:52:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:52:00.1 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1013) device: 0000:70:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1013) device: 0000:70:00.1 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1013) device: 0000:8e:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1013) device: 0000:8e:00.1 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1019) device: 0000:ac:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1019) device: 0000:ac:00.1 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1019) device: 0000:ca:00.0 (socket 0)
EAL: Probe PCI driver: mlx5_pci (15b3:1019) device: 0000:ca:00.1 (socket 0)
ok
test lcore::tests::bind_lcore_to_thread_0 ... ok
test mbuf::tests::mbuf_data_append_remove ... ok
test mempool::tests::alloc_mbuf_from_multiple_threads ... ok
test mempool::tests::create_mempool_with_same_name ... ok
test mempool::tests::mbuf_alloc_and_size_check ... ok
test mempool::tests::mbuf_data_unchanged_after_realloc ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.24s

     Running unittests src/lib.rs (target/debug/deps/rpkt_dpdk_sys-de39f984e373d377)

running 54 tests
test bindgen_test_layout_cpu_set_t ... ok
test bindgen_test_layout_rte_eth_conf ... ok
test bindgen_test_layout_rte_eth_conf__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_eth_conf__bindgen_ty_2 ... ok
test bindgen_test_layout_rte_eth_dcb_rx_conf ... ok
test bindgen_test_layout_rte_eth_dcb_tx_conf ... ok
test bindgen_test_layout_rte_eth_desc_lim ... ok
test bindgen_test_layout_rte_eth_dev_info ... ok
test bindgen_test_layout_rte_eth_dev_portconf ... ok
test bindgen_test_layout_rte_eth_intr_conf ... ok
test bindgen_test_layout_rte_eth_rss_conf ... ok
test bindgen_test_layout_rte_eth_rxconf ... ok
test bindgen_test_layout_rte_eth_rxmode ... ok
test bindgen_test_layout_rte_eth_rxseg ... ok
test bindgen_test_layout_rte_eth_rxseg_capa ... ok
test bindgen_test_layout_rte_eth_rxseg_split ... ok
test bindgen_test_layout_rte_eth_stats ... ok
test bindgen_test_layout_rte_eth_switch_info ... ok
test bindgen_test_layout_rte_eth_thresh ... ok
test bindgen_test_layout_rte_eth_txconf ... ok
test bindgen_test_layout_rte_eth_txmode ... ok
test bindgen_test_layout_rte_eth_vmdq_dcb_conf ... ok
test bindgen_test_layout_rte_eth_vmdq_dcb_conf__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_eth_vmdq_dcb_tx_conf ... ok
test bindgen_test_layout_rte_eth_vmdq_rx_conf ... ok
test bindgen_test_layout_rte_eth_vmdq_rx_conf__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_eth_vmdq_tx_conf ... ok
test bindgen_test_layout_rte_ether_addr ... ok
test bindgen_test_layout_rte_mbuf ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_1__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_2 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_2__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_3 ... ok
test bindgen_test_layout_rte_mbuf__bindgen_ty_3__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mbuf_ext_shared_info ... ok
test bindgen_test_layout_rte_mbuf_sched ... ok
test bindgen_test_layout_rte_mempool ... ok
test bindgen_test_layout_rte_mempool__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mempool_cache ... ok
test bindgen_test_layout_rte_mempool_memhdr ... ok
test bindgen_test_layout_rte_mempool_memhdr__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mempool_memhdr_list ... ok
test bindgen_test_layout_rte_mempool_objhdr ... ok
test bindgen_test_layout_rte_mempool_objhdr__bindgen_ty_1 ... ok
test bindgen_test_layout_rte_mempool_objhdr_list ... ok
test bindgen_test_layout_rte_memzone ... ok
test bindgen_test_layout_rte_memzone__bindgen_ty_1 ... ok

test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/rpkt_time-0b4369f3e2b46778)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests rpkt

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests rpkt-dpdk

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests rpkt-dpdk-sys

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests rpkt-time

running 9 tests
test rpkt-time/src/instant.rs - instant::Instant::as_unix_nanos (line 179) ... ok
test rpkt-time/src/instant.rs - instant::Instant::checked_duration_since (line 83) ... ok
test rpkt-time/src/instant.rs - instant::Instant::duration_since (line 61) ... ok
test rpkt-time/src/instant.rs - instant::Instant::elapsed (line 134) ... ok
test rpkt-time/src/instant.rs - instant::Instant::now (line 40) ... ok
test rpkt-time/src/instant.rs - instant::Instant::raw (line 23) ... ok
test rpkt-time/src/instant.rs - instant::Instant::saturating_duration_since (line 107) ... ok
test rpkt-time/src/lib.rs - cycles_per_sec (line 53) ... ok
test rpkt-time/src/lib.rs - tsc_stable (line 37) ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.86s

Add second commit fixes benches.
If you are interested, here are the results I got: https://gist.github.com/Civil/852836624bb1e61b206370d6ae31f73c

This is the final form of the PR right now.
I've decided not to try to de-dup code where possible because I still need to become more familiar with it.
There is a chance I'll send more PRs after doing more tests around the library if that is ok with you.

I haven't really got time to check this repo for about a month or so.
Thank you for your pr!


how to create jars for various platforms

gradle packageUberJarForCurrentOS
packages a jar for current os, which is great. how can one package jars for other OS, to avoid creating msi / deb / msi and provide a more straight forward upgrade path to users doing "java -jar whatever-it-is-new-now.jar".

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Auto label for issue/pr

This PR adds an automated workflow to label issues based on keywords in the title or body. It helps categorize issues automatically, reducing manual labeling efforts.
issue #72
fix #72
please add level2 or level3 label @tanishaness

Hello @tanishaness may i know the reason for closing the pr


DoneJS Slim Loader Integration

This is an epic for getting the new slim loader working in DoneJS apps.

@matthewp https://github.com/direktspeed/donejs-slim
ready to implament it and make pull request once you show me where that slim loader is :D

@matthewp as this slim loader is in now what would you suggest to make that happen?

codemods for that via a donejs-slim generator?

If you download zenhub you can see the issues associated with this "Epic".

@matthewp i watched now and installed it for chrome and there are only the both options that i have asked about or zenhub is not working right so my question remains is this epic still valid because Justin suggests to make this the default behavior
if this is really only related to the one issue of creating a donejs-slim then i only need to add the codemod for that and its done as i prepared a generator biolerplate

No, this is an issue that encapsulates many other issues, not just a generator.

@matthewp why can't i see all this related stuff with zenhub would i need to be added to this organization for that it shows only 2 issues in the board and also here: DoneJS Slim Loader Integration hasno dependencies

@matthewp ah i think i got it
there is a small list of related issues now! thanks for information.

This was completed.


Changing SizesWindow's rootViewController after initial setup doesn't remove the old child view

Expected Behavior
Only ViewB should be on screen.
Actual Behavior
ViewA is on screen on top of ViewB.
Steps to Reproduce the Problem

Set SizesWindow as app window in AppDelegate
Set the root view controller of the window to ViewControllerA
Later on in the app, change the root view controller of the window to ViewControllerB
Observe that both ViewA and ViewB are on screen

Specifications

Version:
Platform:
Subsystem:

I already spotted the problem and can provide a PR with a fix:
open class SizesWindow: UIWindow {

    public let sizesViewController = SizesViewController()

    override open var rootViewController: UIViewController? {
        get {
            return sizesViewController.containedController
        }
        set {
            guard let root = newValue, !root.isKind(of: SizesViewController.self) else {
                return
            }
            super.rootViewController = sizesViewController
            sizesViewController.contain(viewController: root)
        }
    }
}

In the setter, before adding another child view controller we should remove the existing one if it's there. I can submit a PR.

Exactly. I think we need to modify the contain(viewController: _) method to remove the previously contained view controller. I'd really appreciate a PR :).

Done! 🙌

Closed in #20


Upload packing support

This PR is the final upload packing PR. After merging it, users will be able to enable upload packing through the corresponding setting.
After some testing I decided to not store the partial slabs in the database and instead in a file. Storing them in the database worked but the performance was horrible. Individual 4 kib files took around 5-40s to be added to the MySQL buffer. MySQL also started printing warnings related to the redo log capacity.
Using separate files I was able to do 5+ files per second which is reasonable considering multiple fsyncs are required per file and considering that my test node was running off of HDDs and not SSDs.

Tested this quite extensively on my node and it looks like everything seems to work. Removing slabs that are in the buffer doesn't reset the buffered slab size though, I guess that's fine I'm just wondering whether it makes sense to add something like pruneSlabs or maybe use WriteAt instead of Append or something.

Should we extend the /objects/stats endpoint with some details on the buffered slabs directory? (thought I left this in a comment but can't immediately find it)

Should we extend the /objects/stats endpoint with some details on the buffered slabs directory? (thought I left this in a comment but can't immediately find it)

Yes, I have a bunch of minor things planned for a f/u. I also want to introduce a threshold that makes a buffer "complete" once there are only a few bytes left to avoid fragmentation for small files.

Tested this quite extensively on my node and it looks like everything seems to work. Removing slabs that are in the buffer doesn't reset the buffered slab size though, I guess that's fine I'm just wondering whether it makes sense to add something like pruneSlabs or maybe use WriteAt instead of Append or something.

I think that adds too much complexity for little benefit tbh. The fact that a buffer is append-only is currently a core guarantee for atomicity combined with the Size in the database.


How to use it in Vue?

I've tried 👍
import {svgPanZoom} from 'svg-pan-zoom'
and
import {svgPanZoom} from 'svg-pan-zoom/dist/svg-pan-zoom.js'

then use

svgPanZoom('#Id');

Error: Object(...) is not a function"
It seems like that it is imported wrong and  svgPanZoom() cannot be identified as a function.

Are you talking about https://vuejs.org/ ?
I guess your path to svg-pan-zoom.js respective svg-pan-zoom.min.js is wrong.
Do you have copied or forked it to your own space or do you load it from the original location?
Latest version:
https://cdn.jsdelivr.net/npm/svg-pan-zoom/dist/svg-pan-zoom.min.js
Specific version (example):
<EMAIL_ADDRESS>I assume that these are the correct links - not tested in my project because I use a different approach. I never have used "import module" but I use pure javascript:
<script type="text/javascript" src="<...path...>/svg-pan-zoom.min.js"></script>
By the way, it's useful to keep the reference to be able call more functions later:
<script type="text/javascript"> // svg-pan-zoom
"use strict";
[...]
const panZoom = svgPanZoom("#svg", { ... };
[...]
panZoom.resize();
panZoom.fit();
panZoom.center();
[...]

For me, to use svg-pan-zoom:
npm install --save svg-pan-zoom`

In js:
import * as svgPanZoom from 'svg-pan-zoom'
...
mounted () {
    this.zoom = svgPanZoom('#svg')
  },

In the template:
<svg id="svg" :width="width" :height="height" >

And that's all!

Guys, there is a Vue component implementing this library.
See here.

Well, there is a warning at the beginning of the README :  "WARNING: the module is young, basic, probably will have its API change with no notice, and likely to have bugs. Use at your own risk, send patches for my eternal gratitude."
When the use of a package is so easy, I wonder if it's necessary to use a new and maybe not very stable wrapper...

Well, there is a warning at the beginning of the README : "WARNING: the module is young, basic, probably will have its API change with no notice, and likely to have bugs. Use at your own risk, send patches for my eternal gratitude."
When the use of a package is so easy, I wonder if it's necessary to use a new and maybe not very stable wrapper...

You are right about their readme comment. However, I have been using the plugin without problems in production for months. OP also can examine the plugin and make his own Vue integration :)

work for me
import svgPanZoom from "svg-pan-zoom";

I use it in this way:
import { SVG as svgjs } from<EMAIL_ADDRESS>import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>


Updating the firmware is not working at all

I'm trying to update the firmware version of my Movesense sensors in my Flutter App, here's what i'm doing:
      @override
      Future<void> startDeviceFirmwareUpdate(String deviceId, String serial, int value) async {
    final Map<String, int> contract = {};
    contract["NewState"] = value;
    await MdsAsync.put(Mds.createRequestUri(serial, "/System/Mode"), jsonEncode(contract));

      NordicDfu().startDfu(
        deviceId,
        'assets/dfu.zip',
        fileInAsset: true,
        onDeviceDisconnecting: (string) {
          print('deviceAddress: $string');
        },
        onDeviceConnected: (address) {
          print("device is connected");
        },
        onDeviceConnecting: (address) {
          print("Device is connecting");
        },
        forceDfu: true,
        onError: (address, error, errorType, message) {
          print(" error  $error, errorType: $errorType, message: $message");
        },
        onProgressChanged: (
          deviceAddress,
          percent,
          speed,
          avgSpeed,
          currentPart,
          partsTotal,
        ) {
          print('deviceAddress: $deviceAddress, percent: $percent');
        },
      );

  }

calling the function :
      void connectMovesenseBleDeviceById({
    required BleDevice device,
    required VoidCallback onConnect,
    required VoidCallback onDisconnect,
     })
     bleDataSource.connectMovesenseDeviceById(
          device.id,
          onConnnect: (serial) async {
            final metaData = await bleDataSource.getMovesenseSensorInfo(device.serial);
            final deviceAppData = await bleDataSource.getMovesenseSensorAppInfo(device.serial);
            device.metaData = metaData;
            device.appData = deviceAppData;
            // HERE'S where I'm calling it ===>
            bleDataSource.startDeviceFirmwareUpdate(device.id, device.serial, 12);
            if (device.metaData!.isCompatible && device.appData!.isCompatible) {
              onConnect();
              bleDeviceLocalDataSource.persistBleDevice(bleDeviceModel: device as BleDeviceModel);
            }
            if (!_connectedDevicesStreamController.isClosed)
              _connectedDevicesStreamController
                  .add(device.copyWith(status: BleDeviceConnectionStatus.connected) as BleDeviceModel);
          },
          onDisconnect: () {
            onDisconnect();
            if (!_connectedDevicesStreamController.isClosed)
              _connectedDevicesStreamController
                  .add(device.copyWith(status: BleDeviceConnectionStatus.disconnected) as BleDeviceModel);
          },
          onError: () {
            //TODO: add translations and exception
            throw BluetoothException('Error occured when pairing the device');
          },
        );
      }

My problem here is that after putting the device into update mode, it disconnects from the phone, AND the NordicDfu().startDfu() doesn't print anything, i can't tell if the state of the device.
meaning I can't update it successfully. how can I achieve my goal?

Hi, this issue has been fixed in v6.1.2


Adding 3 CNN examples to ncappzoo

@m-georgiev, we are updating the tensorflow projects to provide a much cleaner and simpler approach to running TF models on NCS. Please use https://github.com/movidius/ncappzoo/tree/master/tensorflow/inception as a template for all future TensorFlow projects.
NOTE: I noticed that your pull request has dedicated projects for different versions of inception_resnet. Can you merge the projects into a single project by adding a VERSION tag to the Makefile? See inception/Makefile for reference.


Allow possibility to re-use an existing env

Hi @trywe-ltd. Good idea. I'm thinking of adding a -n|--name parameter that will be used by all the use, ls and rm commands currently there, instead of having a new use-named command.

Hey Eric - cool!


Aligned IMSUser/IMSOrg to ims/user and ims/organization

Addressing #189
Based on suggestions from https://github.com/theManikJindal/xdm/commit/01534666a2811159d07fd4908f264c0b5d2f665f

@theManikJindal I believe I've addressed the remaining issues. Thanks for the thorough assistance!

@asteed please take a look at the conflicts.

@trieloff the conflicts should have been addressed


Fix messed up profile name

some profiles end up looking like this.

probably an issue with the encoding we decode the XML with

unable to reproduce

And now I am unable to reproduce after a windows update

We are unable to set encoding in XElement and XDocument when using .Parse(). And we download the XMl with forced UTF-8 encoding. If this still is an issue, then it probably is WPF

I really cannot reproduce this any which way. Maybe the problem was server-side? Closing this for now as I can't reproduce it.


Do we have any constraints that we should know or its like a standard installtion?

What kind of constraints do you have in mind? As long as you have a Kubernetes-compatible cluster running, the operator should run just fine in it...

Let say, we want to install Jaeger operator and Jaeger instance in one namespace and I have a product/application which is running in other namespace which has its own role, rolebinding, service accounts.
Is there any limitations for Jaeger operator to trace my application namespace.

I believe your answer is in the documentation: https://www.jaegertracing.io/docs/1.19/operator/


Add vertex label to Neptune stream records when a vp is updated

Add vertex label to the stream record when a vertex property is updated
{
  "id": "an ID string",
  "label": "vertex label"   #suggested property to be added
  "type": "vp",
  "key": "the property name",
  "value": {
    "value": "the new value of the node property",
    "dataType": "the datatype of the node property"
  }
}

Thank you for your request.  I will forward this to our product managers.  As Neptune Streams is a production feature of Neptune and not one of the opensource utilities in this repository, I am going to close this out.
In the meantime, if you need such functionality you may want to build vertex/edge IDs that also include the vertex/edge label.  Ex:  Instead of 3ae78bc use label-3ae78bc and then parse the label out in your stream consumer code.


In need of test framework

We currently have a series of example scripts that could serve as a basis for a test platform. It would be great to see these scripts be called and their results measured to ensure that future modifications to the code base do not alter the ability to perform all features.

I will work on a basic test platform with a student.  We'll look into Python's unittest framework first, with the goal of running the test-tgfb-data.py analysis and checking whether the output files match previously saved reference files.

We're moving forward with pytest instead of unittest for testing.  We'll submit a pull request with a simple unit test as a proof-of-concept before writing the full end-to-end test.

Use cases to cover in integration tests:

Garnet without expression data
Garnet with expression data
Forest with Garnet and protein data
Forest with protein data only

A test case for Forest with protein data only is nearly ready.

The Forest-only test case has been added.  We could use this as a model for a Garnet-only or Garnet+Forest test case in the future.

Pull request #14 from @aabaker99 enabled Travis CI continuous integration testing for our Forest unit tests.

Pull request #25 adds a Garnet integration test.  There is a lot of room to further improve our testing, but I think we can close this issue once #25 is merged because we'll have end-to-end tests for Garnet and Forest (individually, not run back-to-back).

Agreed, thanks to everyone who worked on these important tests!


Decouple httptrigger and cronjob controllers from kubeless-controller-manager

FEATURE REQUEST:
Currently, kubeless-controller-manager manages httptrigger and cronjob custom resources as well. Although kubeless supports a bunch of ingresses as httptriggers, users like us need something else. So in order to have an absolute decoupling of httptrigger and cronjobs, I propose to cut out httptrigger and cronjob from kubeless-controller-manager and have their own controllers. We can install these controllers in the out-of-box set up. But the real benefit of this will be to allow the power users to configure based on their needs and have an ala-carté experience altogether.
Additionally, it would be possible to rewrite custom controllers for these custom resources while  keeping the kubeless-cli features(e.g. kubeless trigger) intact.
What happened:
If the CRDs for http-trigger and cronjobare not created(as they won't be used) then kubeless-controller-manager keeps spamming with a ton of errors:
E0528 13:35:58.382354       1 reflector.go:205] github.com/kubeless/kubeless/pkg/controller/cronjob_trigger_controller.go:133: Failed to list *v1beta1.CronJobTrigger: the server could not find the requested resource (get cronjobtriggers.kubeless.io)

Additionally, it is not possible to rewrite a custom controller for these custom resources.
Environment:

Kubernetes version (use kubectl version): 1.8+
Kubeless version (use kubeless version): v1.0.0-alpha.x

I am fine to totally decouple, and install some trigger controllers (http trigger perhaps) by default so users can quickly try Kubeless.
@sayanh would you like to give a try? Should be failry easy they are already seperate components except they are rolled into same binary, deployment etc.

@murali-reddy sounds good

@sayanh may be this can rolled into #695 which i am working on it

So with #871 HTTP and cronjob triggers have their own controller that run in an independent container in the controller pod.


replace all gopkg.in imports and use only go mods

First step of moving gitbase to go modules is moving this to go modules. We already do the versioning with it, so there's no point in versioning with gopkg.in as well.

Shall we merge this, @ajnavarro?


Upgrade hawkular-client-ruby gem to 2.7.0

Please @yaacov and @simon3z can you test to validate it is ok with the container provider work ?
@theute
/cc @Jiri-Kremser @pilhuhn @abonas

@miq-bot add_label providers/hawkular

LGTM ( read metrics from real server ) :-)

LGTM :+1:
Any objection anyone? @theute @Jiri-Kremser @pilhuhn @abonas


Update Ar crud.php local

Add Langs For Some Crud Like ( filters navbar view & filters & InlineCreateOperation & Fields)
WHY
BEFORE - What was wrong? What was happening before this PR?
Missing In Arabic Language
AFTER - What is happening after this PR?
Is shown Now
HOW
How did you achieve that, in technical terms?
Added it
Is it a breaking change?
no
How can we test the before & after?
change local to ar and check some crud will be shown as missing lang like this

Oh, excellent. Thank you @EGYWEB-Mohamed !

Merged - will be available later today, after we tag and release it.
Cheers!

@tabacitu Thanks ♥


Allow monitoring resources to be created when using enmasse operator

Overview
Currently in Integreatly on OpenShift 3, Enmasse is installed via ansible bundle. For Integreatly on OpenShift 4 we are using the enmasse operator to install & manage it. Integreatly depends on monitoring resources (Alerts & Dashboards) that are specific to Enmasse. In the ansible bundle, there is a ‘monitoring’ var to instruct the installer to create these monitoring resources. However, in the enmasse operator there is no equivalent. This means Integreatly is missing valuable monitoring when running on OpenShift 4.
Design
TBD
Ideally there is a field in a CR (e.g. ConsoleService) that can be set accordingly so the operator creates these resources.
Tasklist
TBD

cc @lulf

I think we should support installing the monitoring CRs in some way via the operator. Ideally, I think we should have an "enmasse" CRD where the current ConsoleService, IoTConfig, monitoring schema/settings and more could live.
An alternative shorter term could perhaps be to add MONITORING_ENABLE environment variable to enmasse-operator.
wdyt @k-wall @ctron @vbusch @robshelly  ?

I don't think having an über CRD makes sense. Different parts might evolve in different paces, having a single big CRD would make it more complex updating that.
And for IoT, we might end up at some point having multiple IoT configurations available.
Also I don't really see the benefit of having a big CRD, compared to having a modularized configuration.

I don't think having an über CRD makes sense. Different parts might evolve in different paces, having a single big CRD would make it more complex updating that.

That they evolve at different pace is fine, as long as things are released and tested together. Having it in a single CRD could make it easier to coordinate changes affecting multiple parts of the schema. I.e. common configuration applied to all enmasse components, even iot, could be kept in the same place. I can understand how IoT might be a bit different to things like console though.

Also I don't really see the benefit of having a big CRD, compared to having a modularized configuration

I see the main benefit as making EnMasse simpler to understand for a new user or a service admin. Having to wrap your head around all our CRDs might make sense to us as developers who know this very well, but I think its harder for everyone else. IMO sometimes we should focus on user experience, not what makes sense to us from a code point of view.
What would be your preferred alternative to the uber CRD for monitoring?

I think we should follow the concept that OpenShift 4 has, to have a single CRD for each major aspect of the system:
[jreimann@jreimann ~]$ oc get -A infrastructures.config.openshift.io
NAME      AGE
cluster   111d
[jreimann@jreimann ~]$ oc get -A dnses.config.openshift.io
NAME      AGE
cluster   111d
[jreimann@jreimann ~]$ oc get -A schedulers.config.openshift.io
NAME      AGE
cluster   111d

Having a single CRD for monitoring, console, IoT, tracing, … makes sense to me. Having a single CRD for enmasse is to big in my opinion.
I also think that e.g a monitoring CRD would be used across components. Meaning: there should only be a single monitoring CRD, not one for EnMasse, IoT and Console.

I think we should follow the concept that OpenShift 4 has, to have a single CRD for each major aspect of the system

I think it remains to be seen how easy users will find it to understand the over 100 CRDs in OpenShift, but point taken :)

I also think that e.g a monitoring CRD would be used across components. Meaning: there should only be a single monitoring CRD, not one for EnMasse, IoT and Console.

I kind of like that, good idea.

@lulf @ctron What are the touchpoints for adding a new CRD?
I'd imagine one of them is adding a new monitoring_controller to the enmasse operator, with the sole purpose of creating the various monitoring resources if a Monitoring CRD exists?
I can't think of any fields the CRD might need at this time

@david-martin Yes, that would be my expectation. I'd like some comments from more of the team on this before we decide the direction though. @k-wall @robshelly @rgodfrey .

@lulf @ctron So one of the discussions I was having recently was about having an uber-CRD (sorry Jens - can't be bothered to use an umlaut - also I think in this case we English have just stolen the word) such that the EnMasse operator can be installed, but nothing is laid down until there is an instance of the EnMasse CRD. In saying that I don't say that everything needs to be in that single CRD, there's certainly a case to be made for separating out IoT aspects for a start.  In terms of monitoring I'm not sure I see what the conceptual distinction is in having it as a section in an uber-crd versus an "uber-enmasse-monitoring" crd

I think we need some more rounds on this, and its maybe a bit early for us to decide/agree on the path forward at this point.
I propose that we go for now with a simple environment variable for the enmasse-operator to turn monitoring on/off so that we can get it into the next upstream release, while allowing us to think the design through wrt. how we want to model these CRDs. Would that work for you @david-martin ?

We're using olm and an 'integreatly' OperatorSource and CatalogSource rather than ones directly from operatorhub for each product. We're syncing the crds and csv at specific version so we can reference them for a detereminstic deploy.
https://github.com/integr8ly/manifests/blob/master/integreatly-amq-online/amq-online-1.2.2/
If there was an env var, we'd have to modify the operator deployment in the csv after we sync it to integreatly repo, or do a patch of the deployment via kube api.
That sounds like a way forward for now.
Is this issue the best place to track further discussion for a way to do this via crd?

@david-martin This probably spans more than just monitoring, so we should raise a separate issue for the general CRD discussions. Feel free to keep this for the immediate work.

@lulf Just to confirm, the immediate work would be:

including monitoring resources in the bundling of the enmasse-operator
adding an environment variable to the enmasse-operator
based on this env var, install the monitoring resources to the same namespace as the enmasse-operator

And an optional task (up to you if this makes sense):

update the ClusterServiceVersion file to set this env var to something by default (ideally true, but we can live with false and replacing the value when we take the csv file for the integreatly-operator)

@david-martin Yes, that sounds like a reasonable scope to me.

Linking (private downstream) issue for immediate work https://issues.redhat.com/browse/INTLY-4672.
PR to follow, and will link it here.

Main feature needed by this issue is implemented. 1.0 will provide a Monitoring CRD based on #4107


[Bug][Relay] Embedding give a different inference result between keras and tvm

For the layer Embedding, TVM and Keras have different inference results based on the same input data.
Expected behavior
The inference result for TVM and Keras should be consistent.
Actual behavior

What actually happened
Environment
Any environment details, such as: Operating System, TVM version, etc
Steps to reproduce
import tvm
import tvm.relay as relay
import numpy as np
from tensorflow import keras
from tensorflow.keras import layers, models

input_shape = (1, 2)
input_data = np.random.randint(10, size=input_shape)
x = layers.Input(shape=input_shape[1:], dtype='int32')

layer = keras.layers.Embedding(10, 4)
layer.set_weights(layer.get_weights())

y = layer(x)
model = models.Model(x, y)
model.summary()
res_keras = model(input_data)

shape_dict = {'input_1': input_shape}
mod, params = relay.frontend.from_keras(model, shape_dict)
print(mod)
with tvm.transform.PassContext(opt_level=3):
    model = relay.build_module.create_executor("graph", mod, tvm.cpu(0), 'llvm', params).evaluate()

test_x_tvm = input_data
res_tvm = model(tvm.nd.array(test_x_tvm.astype('int32'))).numpy()

np.testing.assert_allclose(res_keras, res_tvm, atol=1e-3, rtol=1e-3)

Triage

frontend:keras

cc @shingjan

This bug was triggered when input_dtype= 'int32'. If we use dtype='float32', TVM and Keras have the same inference results.


Fix pyproject-fmt version

Description
Noticed that a recent PR was failing due to pyproject.toml file formatting, since pyproject-fmt released a version that breaks for us. This PR fixes the version to 0.10.0 which is known to be working for our files.
Testing done
Tested by running python -m pyproject_fmt --indent 4 pyproject.toml and verifying it does not suggest changes.

@medikoo ready for review 🙏

@selcukcihan wouldn't it be better to upgrade to latest version of fmt, and apply to its formatting?

We can do that, but it seems like they keep changing the order they expect from version to version.


Angular 8 does not load the scripts and styles described in angular.json

🐞 Bug report
Command (mark with an x)

- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [x] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Description
I need to use bootstrap4 with Angular8, but when mapping style files and scripts in angular.json, when running the server, the files are not loaded. I know you could put the link directly in index.html, but if the oriented form is in angular.json it should be working. How to solve this issue of angular.json?
🔬 Minimal Reproduction

npm install bootstrap jquery popper.js --save (Install libs)
Configure angular.json

"styles": [
  "node_modules/bootstrap/dist/css/bootstrap.css",
  "src/styles.scss"
],

"scripts": [
  "node_modules/jquery/dist/jquery.js",
  "node_modules/popper.js/dist/umd/popper.js",
  "node_modules/bootstrap/dist/js/bootstrap.js"
]

Insert a component boostrap in app.component.html to test;

<div class="alert alert-primary" role="alert">
  A simple primary alert—check it out!
</div>

run ng serve

🔥 Exception or Error
There is no exception, the scripts and style simply do not load.

🌍 Your Environment

Angular CLI: 8.3.6
Node: 12.9.1
OS: linux x64
Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.803.6
@angular-devkit/core         8.3.6
@angular-devkit/schematics   8.3.6
@schematics/angular          8.3.6
@schematics/update           0.803.6
rxjs                         6.4.0

**Anything else relevant?**

Hi, it doesn’t seem that you are dependent on @angular-devkit/build-angular, are you using custom builders to build you application?

No, Alan, I don't use custom builder. The installation is standard. I use "npm install -g @ angular / cli", just that to install Angular8. I haven't changed anything, nor added anything else besides the Bootstrap4, jquery and popper.js libraries.

Hi @GonzagaNeto, I tried to replicate the issue, however I am unable too.
Can you setup a minimal repro please?
You can read here why this is needed. A good way to make a minimal repro is to create a new app via ng new repro-app and adding the minimum possible code to show the problem. Then you can push this repository to github and link it here.
This might be related to your directory structure so its really important to get an accurate repro to diagnose this.

I managed to solve the problem, although I did not identify the cause. Redo the installation of Node and Angular, then bootstrap along with jquery and popper.js, according to the same procedure described above. It worked, it was probably something connected to the Node or Angular installation.


Use custom url for s3 using AWS_ENDPOINT_URL

Describe the feature
AWS_ENDPOINT_URL is now supported by the AWS for custom url (for example localhost).
More info about it docs and original github issue. It was merged into botocore in this pr.
Use Case
I need this in this sdk as it is used by pyarrow and will solve this issue.
Proposed Solution
No response
Other Information
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

Hello @Kotwic4 ,
Thank you very much for your submission. We definitely plan to implement this feature for the AWS CPP SDK.
I have marked this feature request as a p3 as this feature is pretty new (as you can see this has only been implemented in the CLI and python a couple of weeks ago) and is an enhancement with an available workaround.
I will keep you updated on the status of the implementation here!
If anyone would like to showcase their interest interest for this Feature you can do so by adding a thumbs up to the issue submission.
Best regards,
Yasmine


[RESOLVED] High ICMP ping response time

Problem started at 02:07:33 on 2023.08.14
Problem name: High ICMP ping response time
Host: S100-Santiago
Severity: Warning
Operational data: Value: 196ms
Original problem ID: 36113
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23518&eventid=36113

Problem has been resolved in 5m 0s at 02:12:33 on 2023.08.14
Problem name: High ICMP ping response time
Host: S100-Santiago
Severity: Warning
Original problem ID: 36113


Make things more Webpack friendly?

Using babylonjs core with webpack/npm was straight forward. However, getting webpack working with materialsLibrary, inspector (babylon-v3.0), etc. turned out to be complicated (I did find forum posts and some work arounds are possible through webpack loaders, HtmlWebpackPlugin, etc.). Depending on what proportion of babylon community is interested in webpack, could you provide stencils/recommendations on webpack integration as part of standard documentation?

Can you suggest some improvements?

Other than providing a webpack stencil (a starting point that people can adopt/customize), we could make other files in dist/ available through the npm babylonjs distribution (for example materialsLibrary/*, inspector/*, etc.) or make them available as separate npm distributions if core is considered sacrosanct.

I'll update npm package then :)

Thanks @deltakosh


Create a ListCollection on an array of strings?

A user asked me if there is an easy way to create a sidre::View on an array of strings (e.g. std::vector<std::string>>).
I think this can be done with a ListCollection, but didn't see an example/test for this use case.
Presumably, it would use this function:
https://github.com/LLNL/axom/blob/cab5877121dbc467a716237eef1128c861a4baba/src/axom/sidre/core/Group.hpp#L934-L958
Would a simple modification of the following work (using createStringView() instead of createScalarView())?
Or are there gotchas to look out for?
https://github.com/LLNL/axom/blob/cab5877121dbc467a716237eef1128c861a4baba/src/axom/sidre/tests/sidre_group.cpp#L455-L466

Can this be closed?  The test added in the PR shows a usage pattern that at least somewhat addresses the request, though consideration could be given to adding a more sophisticated feature.

I think we can close it and make a new issue if/when we need to.


build: browser-side compilation

PR for Issue #24

When trying to run the tests I get the following error:
FAIL   dom  test/modules/tag.spec.ts
  ● Console

    console.error
      Error: Cross origin http://localhost forbidden
          at dispatchError (/Users/attila/Projects/bee-js/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:62:19)
          at Object.validCORSHeaders (/Users/attila/Projects/bee-js/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:74:5)
          at receiveResponse (/Users/attila/Projects/bee-js/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js:796:19)
          at Request.<anonymous> (/Users/attila/Projects/bee-js/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js:657:36)
          at Request.emit (events.js:311:20)
          at Request.onRequestResponse (/Users/attila/Projects/bee-js/node_modules/request/request.js:1059:10)
          at ClientRequest.emit (events.js:311:20)
          at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:603:27)
          at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17)
          at Socket.socketOnData (_http_client.js:476:22) undefined

      at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45)
      at dispatchError (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:65:53)
      at Object.validCORSHeaders (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:74:5)
      at receiveResponse (node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js:796:19)
      at Request.<anonymous> (node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js:657:36)
      at Request.onRequestResponse (node_modules/request/request.js:1059:10)

When trying to run the tests I get the following error:
FAIL   dom  test/modules/tag.spec.ts
  ● Console

    console.error
      Error: Cross origin http://localhost forbidden

u should allow the CORS on ur bee client.
it is possible with the --cors-allowed-origins="*" flag at startup.


Guidance to generate standalone files for each theme combination

Resolves issue #227

Great, thanks a lot! :)


Student 23 branch

This PR handles case insensitivity in our count_substring algorithm. It also adds a test for that situation.
Thanks in advance for the feedback, @molhuang !

This passes all CIs and the code looks good to me.
Also, thank you for your module today, I learned a lot!


Add innit game to sample projects

@micutio just migrated their game innit to Bracket, so let's add it to the list :)

This looked good - thank you! Sorry about the delay, as you know I've had some interesting life stuff going on. Merged.


Rank and files

This does two things:

Allow dataset_format to be specified as input-output. I was also considering to call it custom. But basically it's just "don't do anything". I feel like this is the correct default in cases where a local dataset is being passed in because it's likely that the file can be formatted however one wishes and the docs say to make it input/output which is a sensible default
We also look at LOCAL_RANK to set the device_map to force everything to a single device. This allows torch run to do it's work. (admittedly, I'm a noob on this stuff, but it does seem to work well enough)

LGTM!

Thank you @tobi! I agree the default format should be input-output and the device map specification looks good to me. It will be useful to have it working with torch run!

Thank you for your contributions!


double check presence of vendor directories

...during collection of deprecation rules to prevent issues in case of custom composer installers

:+1:


Marshalling: Advanced overload resolution

When calling a .NET overloaded method from JS, the JS marshaller must look at the number and type of supplied arguments to select the best overload to call. Currently only the basic JS type is considered (string, number, object, etc.). But that is not sufficient to choose between overloads that differ only in the type of object in one of the parameters. For example:
class Example {
    void OverloadedMethod();
    void OverloadedMethod(ClassA a);
    void OverloadedMethod(ClassB b);
}

When JS code calls the method with a single object parameter, the JS marshaller can obviously eliminate the 0-argument overload but currently cannot choose between the other two options. So it throws an error:

Multiple overloads were found for the supplied argument types (Object)

To resolve this, the overload resolution logic will need to examine the actual class of object supplied, when necessary to select a distinct overload.

I've made progress on this, I have it mostly working, there are just a few more special cases I need to handle before it's ready for PR.