[BEAM-10775] Added a typescript precommit job

The job runs 2 checks: jest for unit tests; eslint for lint and
format.
The job is triggered on change under
sdks/python/apache_beam/runners/interactive/extensions. Any
typescript code outside this directory needs to be explicitly added
to the trigger pattern and the copyTsSource task.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Run Portable_Python PreCommit


Enable DCAT clean_tags

This prevents the harvesting process from crashing whenever it finds a dataset with an invalid tag.
This option was added in https://github.com/ckan/ckanext-dcat/pull/104 to fix problems like we're currently seeing in the harvesting process:
  File "/data/vhost/ckan/shared/venv/lib/python2.7/site-packages/ckanext/harvest/queue.py", line 425, in fetch_and_import_stages
    success_import = harvester.import_stage(obj)
  File "/data/vhost/ckan/shared/venv/lib/python2.7/site-packages/ckanext/dcat/harvesters/_json.py", line 282, in import_stage
    p.toolkit.get_action('package_update')(context, package_dict)
  File "/data/vhost/ckan/shared/venv/src/ckan/ckan/logic/__init__.py", line 457, in wrapped
    result = _action(context, data_dict, **kw)
  File "/data/vhost/ckan/shared/venv/src/ckan/ckan/logic/action/update.py", line 299, in package_update
    raise ValidationError(errors)
ckan.logic.ValidationError: {'tags': [u'Tag "Adults\' Services" must be alphanumeric characters or symbols: -_.', {}, {}, {}, {}, {}]}

Trello Card

This doesn’t seem to have solved the problem.


[EHN] EEGMiner

Small benchmark
Cross-Session

Cross-Subject:

Regarding the licence, you could add a NOTICE file to indicate that EEGMiner is CC by-nc

Hi @sylvchev, do have contraints on the FC matrices you want to use (ie should they have to be SPD...)? I might have some ideas but I'd to be sure that it makes sense for the project! :)

No constraints on the FC @mccorsi and @sylvchev

Here is a non-exhaustive list of FC metrics :

Coherence-based metrics: cf the one already implemented in pyriemann & used in FUCONE
more generally, mne-python increased the set of spectral FC metrics: Coherence, Coherency, Imaginary part of Coherency, Canonical Coherency (CaCoh), Maximised Imaginary part of Coherency (MIC), Multivariate Interaction Measure (MIM), Phase-Locking Value (PLV), Corrected Imaginary PLV (ciPLV), Pairwise Phase Consistency (PPC), Phase Lag Index (PLI), Unbiased estimator of squared PLI, Directed PLI (DPLI), Weighted PLI (WPLI), Debiased estimator of squared WPLI, State-space Granger Causality (GC), State-space GC on time-reversed signals
bicoherence: to measure the coherence from two different bins of frequency

I am currently working on metrics that would capture non-linearities but it is still under development. I will let you know when it is ready (and implemented in python)!


Causes list-collapse-indicator exception

Thank you developer, it's really great plugin, but I'm having a problem with it, when I enable the plugin it causes an exception with list-collapse-indicator, I don't know what the problem is!
Please refer to the following video
https://github.com/christianwannerstedt/obsidian-tags-overview/assets/276357/89dc6077-e744-48df-a3fe-ddd51984a11d

Thanks for bringing this to my attention. It turned out to be due to an issue where the styling in this plugin was not properly wrapped in a namespace and therefore affected styling outside of it, in this case the collapse icon.
The issue is now fixed in version 0.1.3, so it should work fine if you just update the plugin.


SignalFx TraceSpan Support

This involved rearranging the existing metric code to accommodate tracing.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: keitwb
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: douglas-reid
Assign the PR to them by writing /assign @douglas-reid in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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

Hi @keitwb. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@keitwb: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

I need to fix it up to work with the new context.reporter.type attr since the context.reporter.local attr appears to be deprecated now and doesn't work in tests.

@kyessenov I'm trying to use your new context.local.type attribute in place of context.reporter.local but it seems to not like that type is a Go keyword and I get the following error in my tests:
failed to evaluate expression for field 'ClientSpan': failed to parse expression 'context.reporter.type == "outbound"': unable to parse expression 'context.reporter.type == "outbound"': 1:18: expected selector or type assertion, found 'type'
Am I doing something wrong or does that attr need to be renamed?

The attribute is being renamed, should be in shortly.

@keitwb: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@geeknoid I think I have all the issues with attributes resolved now.

/assign @geeknoid

/lgtm

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

Needs approval from an approver in each of these files:

OWNERS [geeknoid]

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

@geeknoid it looks like the needs-ok-to-test label is blocking merging.


[IZPACK-928] Create console implementation of DataCheckPanel

@hiteshbosamiya you could open a PR in draft mode too...


Bug 1981775: fix Deployment creates a huge number of ReplicaSets

backport of #50

/bugzilla refresh

/bugzilla refresh

/bugzilla refresh

/bugzilla refresh

[patch-manager] :rocket: Approved for z-stream by score: 0.90
picked


Doesn't work on qcacld3.0 driver (not part of the Linux kernel)

 # echo 4 > /sys/module/wlan/parameters/con_mode
# hcxdumptool -i  wlan0
Requesting interface capabilities. This may take some time.
Please be patient...

failed to arm interface
2 errors during runtime
bye-bye

I know that Qualcomm Is listed as unrecommened because of no packet Injection , but that doesn't prevent it from capturing pmkid right?

hcxdumptool is an interactive tool. There is no single receive only mode. The driver must support full monitor mode and full packet injection via RTNETLINK and NL80211 as well as channel management via NL80211.
That is not he case, e.g.:
https://unix.stackexchange.com/questions/709392/does-qualcomm-qca9377-support-packet-injection
https://developer.qualcomm.com/forum/qdn-forums/hardware/qca9377/34827
I don' see a way that hcxdumptool will work on this driver.

To record WiFi traffic, I recommend tshark.

I think we can close this, because the driver doesn't support to set monitor mode by NL80211. Instead it use its own mode:
echo 4 > /sys/module/wlan/parameters/con_mode
Also it doesn't support full packet injection:
Known bugs/limitations

    firmware does not support association to the same AP from different virtual STA interfaces (driver prints “ath10k: Failed to add peer XX:XX:XX:XX:XX:XX for VDEV: X” in that case)
    packet injection isn't supported yet
    applying ath9k regulatory domain hack patch from OpenWRT causes firmware crash (reason: regulatory hint function is never called and ath10k never sends scan channel list to the firmware which in turn causes firmware to crash on scan)
    tx rate is reported as 6mbps due to firmware limitation (no tx rate information in tx completions); instead see /sys/kernel/debug/ieee80211/phyX/ath10k/fw_stats
    WEP doesn't work with AP_VLANs - frames are sent unencrypted (observed on: 999.999.0.636, <IP_ADDRESS>-1, 10.1.467.2-1)
    TX speeds are extremely poor on certain chips (QCA6174 is one). A patch (https://gist.github.com/harrykipper/d1bedb234c4af0692f7ccd33329a02d7) solves the issue in most cases (https://bbs.archlinux.org/viewtopic.php?pid=1689990#p1689990))

https://wireless.wiki.kernel.org/en/users/Drivers/ath10k

Well it's a qcacld3.0 qca6390 and I can send deauth packets in aireplay-ng but must run airodump-ng in another session

We can try this:
Search for this line:
if(nl_set_monitormode() == false) return false;
and comment it:
# if(nl_set_monitormode() == false) return false;
set monitor mode by qualcomm
echo 4 > /sys/module/wlan/parameters/con_mode
and run hcxdumptool.
This is the function where we arm the interface:
https://github.com/ZerBea/hcxdumptool/blob/master/hcxdumptool.c#L3689

It is mandatory that the driver support NL80211, To discover what NL80211 features are supported you can monitor this by nlmon:
activate nlmon:
$ sudo ip link add  nlmon0 type nlmon
$ sudo ip link set dev nlmon0 up
run Wireshark and capture traffic from nlmon
run
$ hcxdumptool -L
$ hcxdumptool -I your_wlan_interface
stop hcxdumptool
stop Wireshark capturing and save the dump file
add the dump file here.

BTW:
hcxdumptool transmit several different types of frames because it does complete AUTHENTICATIONs with APs and CLIENTs.
Additional it has a channel management. All this is done via RTNETLINK and NL80211 messages.
The driver must support that.

BTW:
Please comment the output of
$ hcxdumptool -L
and
$ hcxdumptool -I your_wlan_interface
This are NETLINK requests to retrieve the features of the driver/interface.

Well it's a qcacld3.0 qca6390 and I can send deauth packets in aireplay-ng but must run airodump-ng in another session

That explains a lot, because it is not a native Linux driver provided by the Linux kernel.

You may have noticed that I changed the head line. Problem is the driver,

Looks like there are some more problems on this driver:
https://github.com/aircrack-ng/aircrack-ng/issues/2179

I think I need to recompile the kernel with CONFIG_NLMON=y for this to work
# ip link add nlmon0 type nlmon
RTNETLINK answers: Operation not supported on transport endpoint

I think I need to recompile the kernel with CONFIG_NLMON=y for this to work
# ip link add nlmon0 type nlmon
RTNETLINK answers: Operation not supported on transport endpoint

I did comment and recompiled hcxdumptool
root@localhost:~/hcxdumptool# ./hcxdumptool  -L

Requesting interface capabilities. This may take some time.
Please be patient...

available wlan devices:

phy idx hw-mac       virtual-mac  m ifname           driver (protocol)
---------------------------------------------------------------------------------------------
  0  28<PHONE_NUMBER>00 00037f12d7fb + wlan0            cnss_pci (NETLINK)

* active monitor mode available                                                                                + monitor mode available
- no monitor mode available

bye-bye
root@localhost:~/hcxdumptool# ./hcxdumptool  -i wlan0

Requesting interface capabilities. This may take some time.
Please be patient...

failed to arm interface

2 errors during runtime

bye-bye

And Tshark isn't working
root@localhost:~/hcxdumptool# tshark  -i wlan0
Running as user "root" and group "root". This could be dangerous.
Capturing on 'wlan0'
tshark: Child dumpcap process died: Segmentation violation
0 packets captured

I do have an external wifi adapter and it does work but I always prefer to use internal interface

I do have CONFIG_NL80211_TESTMODE=y in the kennel , not sure if it does anything

Thanks for the tests.
The driver reported that it does support NETLINK and it does have monitor mode.
Attached a special debug version. Please decompress and replace hcxdumptool.c by this version.
hcxdumptool.c.zip
Than recompile and run hcxdumptool.
Now every call inside the "arm" function got a debug printf. It will show which RTNETLINK or NL80211 command is not supported.
Please comment the output of the debug messages.

This
  0  28<PHONE_NUMBER>00 00037f12d7fb + wlan0            cnss_pci (NETLINK)
is definitely not good. It shows that at least the RTNETLINK command to retrieve the hardware MAC address failed.

There is no longer need to activate nlmon, because we now can do this by the debug printf's mentioned above.

root@localhost:~/hcxdumptool# make
cc -O3 -Wall -Wextra -Wpedantic -std=gnu99   -o hcxdumptool hcxdumptool.c -DVERSION_TAG=\"6.3.1-27-gd462972\" -DVERSION_YEAR=\"2023\" -DSTATUSOUT -DNMEAOUT
hcxdumptool.c:4671:45: error: use of undeclared identifier 'HCX_EXIT_ON_EAPOL'
        {"exitoneapol",                 required_argument,      NULL,   HCX_EXIT_ON_EAPOL},
                                                                        ^
hcxdumptool.c:4809:8: error: use of undeclared identifier 'HCX_EXIT_ON_EAPOL'
                case HCX_EXIT_ON_EAPOL:
                     ^
hcxdumptool.c:4811:41: error: use of undeclared identifier 'EXIT_ON_EAPOL_PMKID'
                exiteapolpmkidflag |= exiteapolflag & EXIT_ON_EAPOL_PMKID;
                                                      ^
hcxdumptool.c:4812:38: error: use of undeclared identifier 'EXIT_ON_EAPOL_M2'
                exiteapolm2flag |= exiteapolflag & EXIT_ON_EAPOL_M2;
                                                   ^
hcxdumptool.c:4813:38: error: use of undeclared identifier 'EXIT_ON_EAPOL_M3'
                exiteapolm3flag |= exiteapolflag & EXIT_ON_EAPOL_M3;
                                                   ^
hcxdumptool.c:5122:22: error: use of undeclared identifier 'EXIT_ON_EAPOL_PMKID'
        if((wanteventflag & EXIT_ON_EAPOL_PMKID) == EXIT_ON_EAPOL_PMKID) fprintf(stdout, "\nexit on PMKID\n");
                            ^
hcxdumptool.c:5122:46: error: use of undeclared identifier 'EXIT_ON_EAPOL_PMKID'
        if((wanteventflag & EXIT_ON_EAPOL_PMKID) == EXIT_ON_EAPOL_PMKID) fprintf(stdout, "\nexit on PMKID\n");
                                                    ^
hcxdumptool.c:5123:22: error: use of undeclared identifier 'EXIT_ON_EAPOL_M2'
        if((wanteventflag & EXIT_ON_EAPOL_M2) == EXIT_ON_EAPOL_M2) fprintf(stdout, "\nexit on EAPOL M1M2\n");
                            ^
hcxdumptool.c:5123:43: error: use of undeclared identifier 'EXIT_ON_EAPOL_M2'
        if((wanteventflag & EXIT_ON_EAPOL_M2) == EXIT_ON_EAPOL_M2) fprintf(stdout, "\nexit on EAPOL M1M2\n");
                                                 ^
hcxdumptool.c:5124:22: error: use of undeclared identifier 'EXIT_ON_EAPOL_M3'
        if((wanteventflag & EXIT_ON_EAPOL_M3) == EXIT_ON_EAPOL_M3) fprintf(stdout, "\nexit on EAPOL M1M2M3\n");
                            ^
hcxdumptool.c:5124:43: error: use of undeclared identifier 'EXIT_ON_EAPOL_M3'
        if((wanteventflag & EXIT_ON_EAPOL_M3) == EXIT_ON_EAPOL_M3) fprintf(stdout, "\nexit on EAPOL M1M2M3\n");
                                                 ^
11 errors generated.
make: *** [Makefile:66: hcxdumptool] Error 1
root@localhost:~/hcxdumptool#

You need to do a fresh git clone, before replacing hcxdumptool.c
$ ./hcxdumptool -v
hcxdumptool 6.3.1-30-g1a97430 (C) 2023 ZeroBeat

because there are a lot of changes:
24.07.2023
==========
hcxdumptool: added new option to EXIT on EAPOL
--exitoneapol=<type>           : exit on first EAPOL occurrence:
                                  bitmask:
                                   1 = PMKID
                                   2 = EAPOL M2
                                   4 = EAPOL M3
                                  target BPF filter is recommended
get more information here:
https://github.com/ZerBea/hcxdumptool/issues/333#issuecomment-1647684235

and hcxdumptool.c need the new includes.

BTW: airodump-ng.strace.txt is very interesting, too
It looks like airodump-ng is running some deprecated WIRELESS EXTENSIONS (WEXT) tools in background (e.g. iwpriv):
15885 execve("/bin/sh", ["sh", "-c", "iwpriv wlan0 2>/dev/null | grep "...], 0xffffec88d2b0 /* 10 vars */ <unfinished ...>
WEXT is deprecated and has been replaced by ip and iw.
New development should be focused on cfg80211 and nl80211.
https://wireless.wiki.kernel.org/en/developers/Documentation/Wireless-Extensions
As a result, several WEXT calls failed:
15886 ioctl(3, SIOCGIWPRIV, 0xffffe67b0a08) = -1 E2BIG (Argument list too long)
15875 ioctl(6, SIOCGIWMODE, 0xffffec888818) = -1 EOPNOTSUPP (Operation not supported)

root@localhost:~/hcxdumptool# ./hcxdumptool -L

Requesting physical interface capabilities. This may take some time.
Please be patient...

available wlan devices:

phy idx hw-mac       virtual-mac  m ifname           driver (protocol)
---------------------------------------------------------------------------------------------
  0  42<PHONE_NUMBER>00 00037f12d7fb + wlan0            cnss_pci (NETLINK)

* active monitor mode available
+ monitor mode available
- no monitor mode available

bye-bye
root@localhost:~/hcxdumptool# ./hcxdumptool -i wlan0

Requesting physical interface capabilities. This may take some time.
Please be patient...

rtnetlink failed to set interface mac
failed to arm interface

2 errors during runtime

bye-bye

Iw dev doesn't show the channel
root@localhost:~/hcxdumptool# iw dev wlan0  set channel 11
root@localhost:~/hcxdumptool# iw dev
phy#0
        Interface wlan0
                ifindex 42
                wdev 0x10
                addr 00:03:7f:12:d7:fb
                type monitor
                txpower 0.00 dBm
root@localhost:~/hcxdumptool#

I have fixed this aircrack-ng/aircrack-ng#2555 by reflashing the stock rom and back to custom rom, I think the issue is tied to an old firmware labeled F.04 I had to flash before flashing the custom rom, when I flashed the stock rom it contained a newer firmware C.06 , and now airodump-ng works fine in the custom rom

But I noticed the switching between managed and monitor mode
echo 4 > /sys/module/wlan/parameters/con_mode
echo 0 > /sys/module/wlan/parameters/con_mode

in stock kernel happens instantly in the stock rom as compared to custom rom it takes a minute or so which Is annoying I think it's because of the custom kernel might be missing some  configs or misconfigured qcacld profile

Ok, thanks for the information.
I see 2 problems
If we compare my iw output with your it looks like the driver does not allow to set/get frequency channel information:
We can't set a MAC, because the driver doe not allow this.
Attached another try that fixed:
rtnetlink failed to set interface mac
We do not need to set a virtual MAC because the driver does not support active monitor mode.
hcxdumptool.c.zip
Same procedure. Decompress, replace hcxdumptool.c by this version, compile and run it.
Let's see what happens.

Thanks.
On the bright side we fixed one problem.
But unfortunately we run into another one:
Driver reported that it support NL80211, but it doesn't respond to a standard NL80211 request to get device information:
Added some more debug messages to the NL80211 standard request here: static bool nl_get_interfacestatus
hcxdumptool.c.zip
Same procedure as mentioned above. Let's see what happens.

root@localhost:~/hcxdumptool# make
make: Warning: File 'hcxdumptool.c' has modification time 6906 s in the future
cc -O3 -Wall -Wextra -Wpedantic -std=gnu99   -o hcxdumptool hcxdumptool.c -DVERSION_TAG=\"6.3.1-30-g1a97430\" -DVERSION_YEAR=\"2023\" -DSTATUSOUT -DNMEAOUT
make: warning:  Clock skew detected.  Your build may be incomplete.
root@localhost:~/hcxdumptool# ./hcxdumptool  -i wlan0

Requesting physical interface capabilities. This may take some time.
Please be patient...

interface information:

phy idx hw-mac       virtual-mac  m ifname           driver (protocol)
---------------------------------------------------------------------------------------------
  0  74<PHONE_NUMBER>00 00037f12d7fb + wlan0            cnss_pci (NETLINK)

available frequencies: frequency [channel] tx-power of Regulatory Domain: 00

  2412 [  1] 19.0 dBm     2417 [  2] 19.0 dBm     2422 [  3] 19.0 dBm     2427 [  4] 19.0 dBm
  2432 [  5] 19.0 dBm     2437 [  6] 19.0 dBm     2442 [  7] 19.0 dBm     2447 [  8] 19.0 dBm
  2452 [  9] 19.0 dBm     2457 [ 10] 19.0 dBm     2462 [ 11] 19.0 dBm     2467 [ 12] 19.0 dBm
  2472 [ 13] 19.0 dBm     2484 [ 14] disabled     5180 [ 36] 19.0 dBm     5200 [ 40] 19.0 dBm
  5220 [ 44] 19.0 dBm     5240 [ 48] 19.0 dBm     5260 [ 52] 19.0 dBm     5280 [ 56] 19.0 dBm
  5300 [ 60] 19.0 dBm     5320 [ 64] 19.0 dBm     5500 [100] 19.0 dBm     5520 [104] 19.0 dBm
  5540 [108] 19.0 dBm     5560 [112] 19.0 dBm     5580 [116] 19.0 dBm     5600 [120] 19.0 dBm
  5620 [124] 19.0 dBm     5640 [128] 19.0 dBm     5660 [132] 19.0 dBm     5680 [136] 19.0 dBm
  5700 [140] 19.0 dBm     5720 [144] disabled     5745 [149] disabled     5765 [153] disabled
  5785 [157] disabled     5805 [161] disabled     5825 [165] disabled     5845 [169] disabled
  5865 [173] disabled

scan frequencies: frequency [channel] of Regulatory Domain: 00

  2412 [  1]      2437 [  6]      2462 [ 11]
failed to open raw packet socket

1 errors during runtime

bye-bye
root@localhost:~/hcxdumptool#

Ok, thanks again for your patience.
According to this:
https://thomasw.dev/post/packet_ignore_outgoing/
PACKET_IGNORE_OUTGOING shopuld be available since Linux kernel 4.20
We check this here:
#if(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0))
if(setsockopt(fd_socket_rx, SOL_PACKET, PACKET_IGNORE_OUTGOING, &enable, sizeof(int)) < 0)
	{
	perror("add set PACKET_IGNORE_OUTGOING failed");
	return false;
	}
#endif

and compile it only if the Linux kernel is >= 4.20.
What is your kernel version?
Removed PACKET_IGNORE_OUTGOING in this version. Please try.
hcxdumptool.c.zip

My kernel is msm4.19

Output before scan begins

Ok, thanks.
Unfortunately this problem "NL80211 failed to set frequency" is expected and confirmed by iw here:
https://github.com/ZerBea/hcxdumptool/issues/332#issuecomment-1649721463
The driver does not allow to set the frequency.
Automatic channel management via NL80211 is an integral part of hcxdumptool.
I can't disable, change or remove this without a huge impact on stock Linux kernel drivers which are working perfect.
Also R 1 3 P are empty which means that frame injection is not working as expected.

I can execute iw to set the channel but I can't run it twice on the same channel
.../files/home # iw dev wlan0  set channel 11
command failed: Device or resource busy (-16)
.../files/home # ifconfig  wlan0 up
.../files/home # iw dev wlan0  set channel 11
.../files/home # iw dev wlan0  set channel 12
.../files/home # iw dev wlan0  set channel 6
.../files/home # iw dev wlan0  set channel 6
command failed: Connection timed out (-110)
.../files/home # time iw dev wlan0  set channel 6
command failed: Connection timed out (-110)

real    0m12.092s
user    0m0.008s
sys     0m0.008s
.../files/home # time iw dev wlan0  set channel 5

real    0m0.035s
user    0m0.007s
sys     0m0.007s
.../files/home # time iw dev wlan0  set channel 3

real    0m0.062s
user    0m0.007s
sys     0m0.007s
.../files/home # time iw dev wlan0  set channel 3
command failed: Connection timed out (-110)

real    0m12.155s
user    0m0.007s
sys     0m0.009s
.../files/home #

and airodump-ng can go through all the channels and I can run it more than once

You can't compare the behavior of airodump-ng (pasive) and hcxdumptool (interacttive).
I pushed all changes to latest git head. Please do a fresh git clone, compile and run:
./hcxdumptool  -i wlan0 --rcascan=active
If everything is working as expected you should see
timestamps on BEACON and  RESPONSE (frame injection is working)
on different channels CHA and  FREQ.
If not, the driver can't handle hcxdumptool's messages.

Thanks for the screenshot.
Packet injection is not working (RESPONSE timestamp does not increase)
Channel management is working (we can see different channels).
If you stop hcxdumptool and restart it, the driver is blocked. It can not handle hcxdumptool's requests any longer.
There is nothing more I can do to let hcxdumptool work on this driver.
BTW:
Is packet injection is working if you run airodump-ng and aireplay-ng -9 in parallel?

No. Injection is not working:
21:28:50  Trying broadcast probe requests...
21:28:52  No Answer...

and
21:28:19  Sending 64 directed DeAuth (code 7). STMAC: [C8:C2:FA:C6:4F:78] [ 5| 0 ACKs]
0 ACKs = no packet received by the target.

Why can he #251 retrieve his mac address and I don't even though hw-mac , virtual-mac are the same

Old hcxdumptool v 6.2.6 got this information via ethtool API:
epmaddr = (struct ethtool_perm_addr*)calloc(1, sizeof(struct ethtool_perm_addr) +6);
if(!epmaddr)
	{
	perror("failed to malloc memory for permanent hardware address");
	return false;
	}
memset(&ifr, 0, sizeof(ifr));
memcpy(&ifr.ifr_name, interfacename, IFNAMSIZ);
epmaddr->cmd = ETHTOOL_GPERMADDR;
epmaddr->size = 6;
ifr.ifr_data = (char*)epmaddr;
if(ioctl(fd_socket, SIOCETHTOOL, &ifr) < 0)
	{
	perror("failed to get permanent hardware address, ioctl(SIOCETHTOOL) not supported by driver");
	return false;
	}
if(epmaddr->size != 6)
	{
	fprintf(stderr, "failed to get permanent hardware address length\n");
	return false;
	}
memcpy(&mac_orig, epmaddr->data, 6);
free(epmaddr);

Since v6.3.0 this has been removed in favor of RTNETLINK:
			#if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
			if(rta->rta_type == IFLA_PERM_ADDRESS)
				{
				if(rta->rta_len == 10) memcpy(hwmac, rta_data(rta), ETH_ALEN);
				}
			#else
			if(rta->rta_type == IFLA_ADDRESS)
				{
				if(rta->rta_len == 10) memcpy(hwmac, rta_data(rta), ETH_ALEN);
				}
			#endif

More information  is here:
https://kernel.org/doc/html/next/userspace-api/netlink/intro.html
e.g.:
Introduction to Netlink
Netlink is often described as an ioctl() replacement. It aims to replace fixed-format C structures as supplied to ioctl() with a format which allows an easy way to add or extended the arguments.

or here:
https://www.kernel.org/doc/html/latest/driver-api/ioctl.html
e.g.:
Alternatives to ioctl
There are many cases in which ioctl is not the best solution for a problem. Alternatives include:
...
netlink is the preferred way of configuring any network related objects through sockets.

By this commit:
https://github.com/ZerBea/hcxdumptool/commit/1bc1768a6dbbe38917f0d41550ee275db32ccc39
I improved hcxdumptool -v to get some information about the environment at compile time.
On my system, output looks like this:
$ hcxdumptool -v
hcxdumptool 6.3.1-36-g1bc1768 (C) 2023 ZeroBeat
compiled by gcc 13.1.1
Linux API headers 6.3.0

It is not mandatory that the Linux API header match the actual kernel, e.g. on my system:
$ uname -r
6.4.4-arch1-1

But all values should not be below the requirements.
Can you please run latest git head and comment the output of hcxdumptool -v, because I still wonder why some defines are not working as expected on Android.

root@localhost:~/hcxdumptool# ./hcxdumptool -v
hcxdumptool 6.3.1-40-gd399f14 (C) 2023 ZeroBeat
compiled by gcc 4.2.1
compiled with Linux API headers 5.15.99
root@localhost:~/hcxdumptool#

Thanks.
It looks like we are running into a really ugly problem.
I can't fix that, because it is related to your environment / configuration and not to hcxdumptool.
hcxdumptool is compiled  using API headers 5.15.99 but your Android Kernel is 4.19
https://github.com/ZerBea/hcxdumptool/issues/332#issuecomment-1650195397
gcc compile functions and values of Linux API 5.15 to hcxdumptool which are not present in the active kernel 4.19.
I think you can imagine what happens if you execute hcxdumptool on kernel 4.19 and  it reach such a function...

A real life example:
Here we check the Linux API header:
https://github.com/ZerBea/hcxdumptool/blob/master/hcxdumptool.c
			#if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
			if(rta->rta_type == IFLA_PERM_ADDRESS)
				{
				if(rta->rta_len == 10) memcpy(hwmac, rta_data(rta), ETH_ALEN);
				}
			#else
			if(rta->rta_type == IFLA_ADDRESS)
				{
				if(rta->rta_len == 10) memcpy(hwmac, rta_data(rta), ETH_ALEN);
				}
			#endif

If the API version is > 5.10.0 we use IFLA_PERM_ADDRESS to get the permanent hardware MAC.
If it is not present, we use IFLA_ADDRESS to get the MAC
According to your API (5.15.99) IFLA_PERM_ADDRESS should be present and this code is compiled.
But your kernel is 4.19 and IFLA_PERM_ADDRESS is not available there. From now on, the results are unexpected.

I'm not sure where to find the API headers but I found this https://docs.kernel.org/kbuild/headers_install.html
So I went to my kernel make install the headers pack it up and unpack it to /usr in chroot environment then I compiled hcxdumptool and it said this
root@localhost:~/hcxdumptool# ./hcxdumptool  -v
hcxdumptool 6.3.1-40-gd399f14 (C) 2023 ZeroBeat
compiled by gcc 4.2.1
Linux API headers (LINUX_VERSION_MAJOR) is not defined

I looked it up and found this patchwork<EMAIL_ADDRESS>I applied it did the same thing again and when compile I get this
root@localhost:~/hcxdumptool# make
cc -O3 -Wall -Wextra -Wpedantic -std=gnu99   -o hcxdumptool hcxdumptool.c -DVERSION_TAG=\"6.3.1-40-gd399f14\" -DVERSION_YEAR=\"2023\" -DSTATUSOUT -DNMEAOUT
hcxdumptool.c:659:28: error: function-like macro 'KERNEL_VERSION' is not defined
        #if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
                                  ^
hcxdumptool.c:3583:30: error: function-like macro 'KERNEL_VERSION' is not defined
                        #if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
                                                  ^
hcxdumptool.c:3777:30: error: function-like macro 'KERNEL_VERSION' is not defined
                        #if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
                                                  ^
hcxdumptool.c:3873:27: error: function-like macro 'KERNEL_VERSION' is not defined
#if(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0))
                          ^
hcxdumptool.c:3898:27: error: function-like macro 'KERNEL_VERSION' is not defined
#if(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0))
                          ^
hcxdumptool.c:4454:28: error: function-like macro 'KERNEL_VERSION' is not defined
        #if(LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
                                  ^
6 errors generated.
make: *** [Makefile:66: hcxdumptool] Error 1

Looks like this patch destroyed the macros.
Usually this macros are located here:
$ locate linux/version.h
/usr/include/linux/version.h

and the compiler (gcc) knows where to find them.
The header file "version.h" contain the version numbers and the macro (KERNEL_VERSION) to convert them:
$ cat /usr/include/linux/version.h
#define LINUX_VERSION_CODE 393984
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
#define LINUX_VERSION_MAJOR 6
#define LINUX_VERSION_PATCHLEVEL 3
#define LINUX_VERSION_SUBLEVEL 0

Please notice that there are 2 different headers, e.g. on my system:
linux-api-headers 6.3-1
linux-headers 6.4.6.arch1-1

The difference is explained e.g. here:
https://bbs.archlinux.org/viewtopic.php?id=258173
It is imperative that they fit together:
linux-api-headers <= linux-headers
I don't know how other distributions handle this, but it might be similar to Arch Linux (we are all on Linux).
If you cross compile, the target tool chain should use the matching header files, too.
Please notice:
Even if you install the correct headers, hcxdumptool will not work as expected, because the driver doesn't support packet injection.
But it is always good to fix your environment/configuration if you would like to compile other tools than supplied by the package management system of your distribution.

By latest commit I added an information about glibc (at compile time):
$ hcxdumptool -v
hcxdumptool 6.3.1-42-g3c00305 (C) 2023 ZeroBeat
compiled by gcc 13.1.1
compiled with Linux API headers 6.3.0
compiled with glibc 2.37

The version of glibc running on the target system should be greater or equal to this version, but never less:
$ ldd --version
ldd (GNU libc) 2.37


docs(comp:select): update option.value

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our guidelines
[ ] Tests for the changes have been added/updated or not needed
[ ] Docs and demo have been added/updated or not needed

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Component style update
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

What is the new behavior?
Other information

还需要修改一下 types.ts 里的类型定义。

还需要修改一下 types.ts 里的类型定义。

还需要修改一下 types.ts 里的类型定义。


Can't execute python tests directly without using runtests.py

When I try invoking the test files directly like
python numba/tests/test_refop_pruning.py
python numba/tests/test_debuginfo.py

some of the tests fail with below error:
(llvmlite-3.10) yashwants@dev ~/work/numba (main) $ python numba/tests/test_debuginfo.py
.....FF.........
======================================================================
FAIL: test_DILocation_decref (__main__.TestDebugInfoEmission)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/yashwants/venv/llvmlite-3.10/lib/python3.10/site-packages/numba-0.61.0.dev0+137.gfca98287a-py3.10-linux-aarch64.egg/numba/tests/support.py", line 643, in inner
    self.subprocess_test_runner(
  File "/home/yashwants/venv/llvmlite-3.10/lib/python3.10/site-packages/numba-0.61.0.dev0+137.gfca98287a-py3.10-linux-aarch64.egg/numba/tests/support.py", line 624, in subprocess_test_runner
    self.assertEqual(status.returncode, 0, streams)
AssertionError: 1 != 0 :
captured stdout:
captured stderr: E
======================================================================
ERROR: TestDebugInfoEmission (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'TestDebugInfoEmission'

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

======================================================================
FAIL: test_DILocation_entry_blk (__main__.TestDebugInfoEmission)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/yashwants/venv/llvmlite-3.10/lib/python3.10/site-packages/numba-0.61.0.dev0+137.gfca98287a-py3.10-linux-aarch64.egg/numba/tests/support.py", line 643, in inner
    self.subprocess_test_runner(
  File "/home/yashwants/venv/llvmlite-3.10/lib/python3.10/site-packages/numba-0.61.0.dev0+137.gfca98287a-py3.10-linux-aarch64.egg/numba/tests/support.py", line 624, in subprocess_test_runner
    self.assertEqual(status.returncode, 0, streams)
AssertionError: 1 != 0 :
captured stdout:
captured stderr: E
======================================================================
ERROR: TestDebugInfoEmission (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'TestDebugInfoEmission'

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

----------------------------------------------------------------------
Ran 16 tests in 3.446s

FAILED (failures=2)

Please note they work as expected if I make use of runtests.py for instance
python runtests.py numba/tests/test_debuginfo.py

python runtests.py numba.tests.test_debuginfo

work as expected.

Thanks for reporting the issue @yashssh. It seems like the issue here is TestCase.run_test_in_subprocess protocol used in those specific tests isn't designed for running the files directly with the module being __main__. The subprocesses seem to be simply being invoked using the wrong module.

I am trying to fix the run_test_in_subprocess problem as part of #9460 in https://github.com/numba/numba/commit/c94cca32df90f796aca96c79309587113dbc03c6. By defining TestCase.run, I am able to make it work without the runtests script.
For now, there are other reason to use the runtests script or python -m numba.runtests, esp in multiprocessing mode. When running the full testsuite, a single process test run will use up too much memory and every will slow down. The multiprocessing mode workaround it by using fresh processes.


Improve the gizmo for Plane3d, reusing grid

Objective
With the current implementation of Plane3d gizmos, it's really hard to get a good feeling for big planes. Usually I tend to add more axes as a user but that doesn't scale well and is pretty wasteful. It's hard to recognize the plane in the distance here. Especially if there would've been other rendered objects in the scene

Solution

Since we got grid gizmos in the mean time, I went ahead and just reused them here.

Testing
I added an instance of the new Plane3D to the 3d_gizmos.rs example. If you want to look at it you need to look around a bit. I didn't position it in the center since that was too crowded already.

Showcase

Migration Guide
The optional builder methods on

gizmos.primitive_3d(&Plane3d { }, ...);

changed from

segment_length
segment_count
axis_count

to

cell_count
spacing

The CI failure is kind of weird. build-wasm-atomics fails with
error: "/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/Cargo.lock" does not exist, unable to build with the standard library, try:
        rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu

Looks kind of unrelated to the changes.

Actually with a non-90-degrees rotation, this PR is affected by the issue #14655

This is rebased after the grid fix now and ready for review again. The rendering in the gizmo example is not at the origin. You have to look around a bit to find it.


wlr-data-device

In this PR, I'm going to make the clipboard actually work.
I'm going to go a different way with this interface to make drag and drop a bit easier to do later.
TODO:

[x] basic clipboard
[x] drag and drop
[x] drag and drop icons
[x] handle multiple data devices bound to a seat
[ ] xwayland clipboard sync (needs another pr)
[ ] cleanup (refactor seat functions into seat?) (needs another pr)
[x] seat selection signal

Basic clipboard is pretty much done and ready to be tested but this probably needs some cleanup.

Tested it and it seems to work.

Basic drag and drop is ready to be tested. You can use the gtk test program testdnd2 to test it.

Ok I believe this is ready to go.
The clipboard sync (and related refactoring) is kind of a lot of work, so I'll leave it to another PR. I want to make it easy for compositors (as well as xwayland) to get/set selection contents so those goals will share a lot of code.
Test with weston-dnd. The gtk test is buggy and I don't think they are my bugs.
I am aware that the icon is not shown in the intended place, but that is an unrelated issue.

I tried this with weston-dnd and it did not work.

testdnd2 crashes as well

Oops, 09f16058 broke it. That commit disables client cursors which I accidently committed earlier because client cursors screw everything up for me.

Ok it works again. Ready to go.

Maybe I'm missing something. I ran weston-dnd and tried to drag things around. Then I ran nautilus and tried to drag things around.

Neither worked.

testdnd2 (gtk+) didn't work either.

Tested weston-dnd  and gnome-calculator (dragging text between two windows) with Wayland backend, works.

Okay, tested this again.
DRM backend:

weston-dnd - does not work, hangs weston-dnd
testdnd2 - does not work, hangs testdnd2
nautilus - does not work, but does not hang

Wayland backend: All three work correctly

I can reproduce this segfault on my laptop that uses the nouveau driver, so it is probably related to the video card driver. Confirmed working for amd and intel drivers.

Segfault?

Oh nevermind I was on the wrong branch. It works perfectly on my laptop with nouveau so that's not the issue.

I don't know what to do about this. I can't reproduce the issue. Can you find out where it hangs for you in weston-dnd? Sometimes it hangs when it is expecting a frame callback.

I will investigate this some more myself today. Right now I'm working on putting a bow on #264

Can you figure out the conflicts on this? I'm just going to merge it and sort out my problems separately, since no one can reproduce them.

It should be good to go.


[ethers-v5] Fix polymorphism

Closes DET-36
Closes https://github.com/dethcrypto/TypeChain/issues/601
Continuation of: https://github.com/dethcrypto/TypeChain/pull/603
In this PR:

tests for typings polymorhisms
introduces a new argument discriminateTypes
earljs upgrade

@hasparus can you help me to fix CI on windows?


Allow for overriding data variables and lookups at runtime

This feature was originally filed together with adding support for overriding constant variables (see #470) but I now think it would be easier to manage as a separate issue, so I'm filing this as a standalone feature.
To enable rapid prototyping and calibration of our models, we would like to have a way to override data or lookup variables at runtime.
I prototyped this in my work-in-progress "generate JS" branch because I needed it for a small model we were working on. I believe that @ToddFincannonEI already has a related branch, so we should put our heads together on this.

TL;DR: This includes the following changes:

Updated code gen in the compile package so that it includes a setLookup function in generated C and JS models.
Updated the runtime packages to allow for supplying lookup overrides via a new options parameter for ModelRunner.runModel.

More details on all the changes are listed below.  Most of the changes are in the form of new functionality, and none of these should cause incompatibilities for existing projects.
Changes in cli and compile packages

Updated C and JS code gen to generate a setLookup function that allows for setting a new lookup instance for any variable of type data or lookup.  This uses the same approach as what I did long ago for storeOutput, where there's a big switch statement that has a case for the varIndex associated with each variable.

Updated C code gen to have more consistent whitespace, like what I did earlier for the JS code gen.

Added a more complete test of generated C code, similar to the test I added for JS code gen, so that we now verify the content and formatting of the generated C code.

Updated the __lookup and __get_data_between_times functions to return _NA_ in the case where the lookup is NULL or empty.  (This was already true for __lookup in the case of a NULL lookup, but I made the two functions consistent in the handling of NULL / empty, just like what was done in the JsModelFunctions implementation of these functions.)

Fixed the Model.jsonList function so that it no longer omits variables of type data or lookup.  These are now included in the list, and the code gen looks at the type when deciding which variables to include in the switch statement for setLookup or storeOutput.

Fixed the Model.jsonList function to include levelVars at the end.  (Previously I had used initVars but this was incorrect and could lead to duplicates in the list.)

Added a test for Model.jsonList since we didn't have one previously.

Changes in the runtime and runtime-async packages

Added a new options argument to ModelRunner.runModel (see RunModelOptions type, which currently only includes one optional property, lookups).

Added LookupDef type and createLookupDef function, which are used to pass lookup data to the new lookups array in the runModel options (or setLookup function in the generated C or JS code).

Updated the RunModelParams implementations and the GeneratedModel implementations (including mocks) to handle the new lookups option that is included in ModelRunner.runModel, and added extensive tests.

Added a new override-lookups integration test that verifies the new behavior for the 4 cases: JS/synchronous, JS/asynchronous, Wasm/synchronous, Wasm/asynchronous.

Changes in the plugin-wasm package

Updated the docs to say that _setLookup is now one of the functions that must be included in the EXPORTED_FUNCTIONS list passed to Emscripten.

Other changes

Updated the top-level README in a few places to make it clear that SDEverywhere can generate JavaScript code in addition to C/WebAssembly.

Updated the top-level README to include a row for the parse package in the table of packages (forgot to do that when I added the parse package a while back).


Cannot format datetime column with microseconds or milliseconds.

Bug report
I could not display my table's created_at column like "26 July 2018 18:37:58.123456" with format "j F Y H:i:s.u". Backpack displays the result as "26 July 2018 18:37:58.000000" despite my table in the database already storing my timestamps stored with microseconds following the workaround here:
https://github.com/laravel/framework/issues/3506#issuecomment-383877242.
What I did:
Added my created_at column in addColumns():
[
'name' => "created_at",
'label' => "Date & Time",
'type' => "datetime",
'format' => 'j F Y H:i:s.u',
],

What I expected to happen:
Backpack should display created_at column as "26 July 2018 18:37:58.123456"
What happened:
Backpack displays created_at column as "26 July 2018 18:37:58.000000"
What I've already tried to fix it:
Followed this:
https://github.com/laravel/framework/issues/3506#issuecomment-383877242
Played with php artisan tinker and run $user = \App\User::first()->created_at->format('u') displays the microseconds like 123456.
Backpack, Laravel, PHP, DB version:

Backpack CRUD: 3.4
Laravel: 5.6
PHP: 7.2.2
DB (mysql): 5.7.21

Hi @doncadavona ,
We use jenssegers/date to show the date in a readable translatable format everywhere. It's an extension of Carbon, so everything in Carbon should work with it, but this might be the problem. Could you please try creating a different column type for this purpose that uses Carbon:: instead of Date:: - if that fixes it, it means it's because of this package.
Hope it helps. Cheers!

Thank you for responding @tabacitu , I tried created a view column type and used Carbon::parse('created_at)->format('u') but it still returns 000000 and $entry->created_at->format('u') instead of of 123456 as stored in the Database. I've found out thou, that my current jessengers/date uses nesbot/carbon version 1.0. But the later Carbon 1.12.0 states in the docs
https://carbon.nesbot.com/docs/:

As of 1.12.0 Carbon now supports microseconds during instantiation or copy operations as well as by default with the format() method.

My current Laravel version requires nesbot\carbon 1.25.*. But when I dd(\App\User::first()->created_at->format('u')) inside my UserCrudController's setup(), it does return 123456.
So I'm guessing Backpack could be overriding the dates inside the views.

Just found out it's caused by Eloquent's select('*') statement, which is used in Backpack's Backpack\CRUD\CrudPanel's setModel().
Played with php artisan tinker:
\App\User::select('*')->get()->first()->created_at->format('u') returns 000000
\App\User::all()->first()->created_at->format('u') returns 123456
\App\User::first()->created_at->format('u') returns 123456

So this is what I did to fix this:
Created a custom view column in $this->crud->addColumn():
[
'name' => "created_at",
'label' => "Date & Time",
'type' => "view",
'view' => 'users.columns.created_at',
'format' => 'j F Y H:i:s.u',
],

resources\users\columns\created_at.blade.php
<span data-order="{{ $entry->{$column['name']} }}">
    @if (!empty($entry->{$column['name']}))
	{{ \App\User::find($entry->id)->created_at->format(($column['format'] ?? config('backpack.base.default_datetime_format'))) }}
    @endif
</span>

It's potentially slow on large data sets thou.

Wow. Thank you so much for keeping us in the loop with this @doncadavona . Yes, the solution isn’t very sexy, I agree… so we can’t implement it in Backpack by default. But since very very few people need the miliseconds, I think it’s going to be fine - we’ll just direct people here if they do.
Also, it looks like PHP 7.3 will solve this - that’s good news :-)


Added function first for arrays and collections. Refactoring and bugf…

…ixes

Codecov Report
Attention: 62 lines in your changes are missing coverage. Please review.

Comparison is base (caed0a1) 55.46% compared to head (c04b92a) 55.41%.

Files
Patch %
Lines

...rocessor/http/model/factory/HttpTestStepFactory.kt
0.00%
9 Missing :warning:

...cessor/db/model/factory/DatabaseTestStepFactory.kt
0.00%
8 Missing :warning:

...cessor/rmq/model/factory/BaseRmqTestStepFactory.kt
0.00%
6 Missing :warning:

...value/function/collection/FirstFunctionExecutor.kt
25.00%
6 Missing :warning:

...rmance/model/factory/PerformanceTestStepFactory.kt
0.00%
5 Missing :warning:

...cessor/tcp/model/factory/BaseTcpTestStepFactory.kt
0.00%
5 Missing :warning:

...or/ibmmq/model/factory/BaseIbmMqTestStepFactory.kt
0.00%
4 Missing :warning:

...cessor/ibmmq/model/factory/IbmMqTestStepFactory.kt
0.00%
4 Missing :warning:

.../processor/rmq/model/factory/RmqTestStepFactory.kt
0.00%
4 Missing :warning:

.../processor/tcp/model/factory/TcpTestStepFactory.kt
0.00%
3 Missing :warning:

... and 5 more

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master      #53      +/-   ##
============================================
- Coverage     55.46%   55.41%   -0.05%
- Complexity     1288     1290       +2
============================================
  Files           247      248       +1
  Lines          7066     7079      +13
  Branches        923      927       +4
============================================
+ Hits           3919     3923       +4
- Misses         2751     2760       +9
  Partials        396      396

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


header-only package with components

Description: Is there any example of header-only package with components? I tried to compose it myself but it did not work. Tested it with test_package. This is head of the lib which only contains other lib parts so it has not any code insertion.
Example i use

...
class Lib(ConanFile):
    name = "some_lib"
    version = "0.0.1"

    settings = "os", "arch", "compiler", "build_type"
    generators = "CMakeToolchain", "CMakeDeps"

    no_copy_source = True

    def requirements(self):
        for mdp_lib_name in self.mdp_components:
            self.requires("spdlog/1.14.1") # some dependency
        pass

    def export_sources(self):
        copy(self, "CMakeLists.txt", self.recipe_folder, self.export_sources_folder, keep_path = True)
        pass

    def package_info(self):
        self.cpp_info.components["some_part_of_lib1"].libs = ["some_part_of_lib1"]
        self.cpp_info.components["some_part_of_lib1"].set_property("cmake_target_name",  "some_part_of_lib1")
        . . .
        pass

    def package_id(self):
        self.info.clear()
        pass

Hi @memsharded
Thanks for your question.
Header-only  packages do not have compiled libraries so something like .libs = ["some_part_of_lib1"] is incorrect and shouldn't be done.
The thing is that components main benefit is avoid overlinking, and header-only do not suffer that, so there is very little benefit specifying components for header-only libraries. I wouldn't recommend it for most cases, and keep it simple.
If you still want to do it, the fields that need to be defined will be self.cpp_info.components["some_part_of_lib1"].includedirs = ["part1_include_dir"] and probably setting libdirs = [] and bindirs = [] for every component (for being complete and clean)

Thank you so much for help!

That clarifies the issue? Maybe we can close the ticket? You can always open a new one for further questions (you can also use the main Conan client repo in https://github.com/conan-io/conan for general Conan client questions)

Yes, closing


bower.json main css and js paths

Hi,
Not 100% sure but shouldn't the paths in bower.json "main" section be without the subfolders?
https://github.com/lumapps/lumX/blob/master/bower.json#L16-L17

It appears they moved the CSS and JS files in one of the latest commits. Please update, as tasks such as "grunt-wiredep" now fails due to invalid bower configuration.

Made a pull request https://github.com/lumapps/lumX/pull/150

Hi! Sorry totally forgot to change those. I made the change in b09e04fe8424957cdf2dfdb6bcbac32a88e0e953 exactly like in you PR but with the right message to appear in the changelog. Thank for the help!


docs(Views): add  tags to docs

Fixes #2230.
Lack of tags prevents responsive examples from being responsive. See #2230 for more details.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4f29636). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2231   +/-   ##
=========================================
  Coverage          ?   99.73%
=========================================
  Files             ?      151
  Lines             ?     2624
  Branches          ?        0
=========================================
  Hits              ?     2617
  Misses            ?        7
  Partials          ?        0

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 4f29636...3a8457b. Read the comment docs.

Released in<EMAIL_ADDRESS>

This doesn't really fix the docs on mobile. The black sidebar takes up 66% of the width view and cannot be collapsed / hidden.

Our docs aren't mobile friendly and this PR should not solve this. Contributions are welcome.


How to inject BootstrapLabel inside TextView?

Is this possible at all?
Use case:
I need next content to be inserted as text content of text view:
[#hashtag] blah blah blah....
second line, blah blah... <-- second line is inside the same textView (text view is multilined)

I'm looking on https://github.com/binaryfork/Spanny at the moment.
But that would be great to have spannable elements inside this Bootstrap project.

Is it possible to just use the newline character? BootstrapLabel ultimately extends from TextView, and TextView definitely supports this

I forgot to add clarification:
[#hashtag] -  it's BootstrapLabel.
So whole text
[#hashtag] blah blah blah....\nsecond line, blah blah...
is content of some TextView.
But I cannot insert BootstrapLabel as content of TextView, because BootstrapLabel is not Spannable.

In Spanny (https://github.com/binaryfork/Spanny) take a look on CustomBackgroundSpan.
That's what I need, but with bootstrap background colors.

I ended up with my own impl Span (like CustomBackgroundSpan) which ises BootstrapBrand styling.
I'll post here my solution later.

FYI BootstrapText extends SpannableString, so that might help achieve the same effect?
https://github.com/Bearded-Hen/Android-Bootstrap/blob/master/AndroidBootstrap/src/main/java/com/beardedhen/androidbootstrap/BootstrapText.java

That's what I need:

I found two solutions:
Solution I:
public class BootstrapSpan
        extends CharacterStyle
        implements LineBackgroundSpan, UpdateAppearance {
    private DefaultBootstrapSize bootstrapSize;
    private final BootstrapBrand bootstrapBrand;
    private final Context context;

    private final float baselineCornerRadius;

    private boolean rounded;

    public BootstrapSpan(@NotNull final Context context,
                         @NotNull final BootstrapBrand bootstrapBrand,
                         @NotNull final DefaultBootstrapSize bootstrapSize) {
        super();
        this.context = context;
        this.bootstrapBrand = bootstrapBrand;
        this.bootstrapSize = bootstrapSize;

        baselineCornerRadius = DimenUtils.pixelsFromDpResource(context, com.beardedhen.androidbootstrap.R.dimen.bootstrap_button_default_corner_radius);

        setRounded(false);
    }

    public BootstrapSpan(@NotNull final Context context,
                         @NotNull final BootstrapBrand bootstrapBrand,
                         @NotNull final DefaultBootstrapSize bootstrapSize,
                         final boolean rounded) {
        this(context, bootstrapBrand, bootstrapSize);
        setRounded(rounded);
    }

    public void setRounded(boolean rounded) {
        this.rounded = rounded;
    }

    @Override
    public void drawBackground(Canvas canvas, Paint paint, int left, int right, int top,
                               int baseline, int bottom, CharSequence text, int start, int end, int lnum) {
        float width = paint.measureText(text, start, end) * bootstrapSize.scaleFactor();
        float height = (bottom - top) * bootstrapSize.scaleFactor();
        final int cornerRadius = rounded ? (int) (baselineCornerRadius * bootstrapSize.scaleFactor()) : 0;
        //final RectF rect = new RectF(left, top, left + width, top + height);
        final RectF rect = new RectF(left, bottom - height, left + width, bottom);
        paint.setColor(bootstrapBrand.defaultFill(context));
        canvas.drawRoundRect(rect, cornerRadius, cornerRadius, paint);
    }

    @Override
    public void updateDrawState(final TextPaint paint) {
        paint.setTextSize(paint.getTextSize() * bootstrapSize.scaleFactor());
        paint.setColor(bootstrapBrand.defaultTextColor(context));
    }
}

Solution II
public class BootstrapSpan extends ReplacementSpan {
    private DefaultBootstrapSize bootstrapSize;
    private final BootstrapBrand bootstrapBrand;
    private final Context context;

    private final float baselineCornerRadius;

    private boolean rounded;

    public BootstrapSpan(@NotNull final Context context,
                         @NotNull final BootstrapBrand bootstrapBrand,
                         @NotNull final DefaultBootstrapSize bootstrapSize) {
        super();
        this.context = context;
        this.bootstrapBrand = bootstrapBrand;
        this.bootstrapSize = bootstrapSize;

        baselineCornerRadius = DimenUtils.pixelsFromDpResource(context, com.beardedhen.androidbootstrap.R.dimen.bootstrap_button_default_corner_radius);

        setRounded(false);
    }

    public BootstrapSpan(@NotNull final Context context,
                         @NotNull final BootstrapBrand bootstrapBrand,
                         @NotNull final DefaultBootstrapSize bootstrapSize,
                         final boolean rounded) {
        this(context, bootstrapBrand, bootstrapSize);
        setRounded(rounded);
    }

    @Override
    public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
        paint.setTextSize(paint.getTextSize() * bootstrapSize.scaleFactor());

        paint.setColor(bootstrapBrand.defaultFill(context));
        float width = paint.measureText(text, start, end) * bootstrapSize.scaleFactor();
        float height = (bottom - top) * bootstrapSize.scaleFactor();
        Log.i("DEBUG_TAG", "Height=" + height);
        int cornerRadius = rounded ? (int) (baselineCornerRadius * bootstrapSize.scaleFactor()) : 0;

        RectF rect = new RectF(x, top, x + width + cornerRadius, top + height);
        canvas.drawRoundRect(rect, cornerRadius, cornerRadius, paint);
        paint.setColor(bootstrapBrand.defaultTextColor(context));
        canvas.drawText(text, start, end, x + cornerRadius/2, y * bootstrapSize.scaleFactor(), paint);
    }

    public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
        paint.setTextSize(paint.getTextSize() * bootstrapSize.scaleFactor());

        float width = paint.measureText(text, start, end) * bootstrapSize.scaleFactor();
        int cornerRadius = rounded ? (int) (baselineCornerRadius * bootstrapSize.scaleFactor()) : 0;
        return Math.round(width + cornerRadius);
    }

    public void setRounded(boolean rounded) {
        this.rounded = rounded;
    }
}

Solution 1 is based on ReplacementSpac. It's good in all cases becuase provides full controll over drawing and measing the size of span. But I faced later with strange bug:
If TextView contains two lines of text, and if second line is tagged only by BootstrapSpan, then spannable string (which was tagged by this BootstrapSpan) becomes invisible. Acts like visibility is set to GONE (completely gone, without allocated space)
But if span tag includes only part of string - no bug.
If spanned string is prepeded (or appended to) by anythin else - no bug.
bug happens only if this tag includes whole string in the line.
I believe it's related somehow to ReplacementSpan internal impl.
Solution 1 is based on LineBackgroundSpan which created to write background.
The only one difference is - in order to write text over the background without introducing another tag I modify text color of TextPaint and it writes the text automatically. It is not very good, because this solution doesn't provide manual control of text rendering. Everything you can do here - modify TextPaint's text color and textSize. But you cannot modify text's measured width.
So you cannot include additional space before and after string (like additional paddingStart/End) - LineBackgroundSpan doesn't provide way to override text measurement.
I choose solution 1 temporarily, because I dont like solutions, where I cannot explain something, even if there is a workaround.


snap run wekan fails with "MongoError: failed to connect to server"

~> sudo snap install wekan

~> snap run wekan

using default value: MONGODB_BIND_UNIX_SOCKET='/var/snap/wekan/76/share'
using default value: MONGODB_BIND_IP=''
using default value: MONGODB_PORT='27019'
using default value: MAIL_URL='smtp://user:pass@mailserver.examples.com:25/'
using default value<EMAIL_ADDRESS>using default value: ROOT_URL='http://<IP_ADDRESS>'
using default value: PORT='8080'
using default value: DISABLE_MONGODB='false'
MONGO_URL=mongodb:///var/snap/wekan/76/share/mongodb-27019.sock/wekan

/snap/wekan/76/programs/server/node_modules/fibers/future.js:313
						throw(ex);
						^
MongoError: failed to connect to server [/var/snap/wekan/76/share/mongodb-27019.sock:27017] on first connect
    at Object.Future.wait (/snap/wekan/76/programs/server/node_modules/fibers/future.js:449:15)
    at new MongoConnection (packages/mongo/mongo_driver.js:211:27)
    at new MongoInternals.RemoteCollectionDriver (packages/mongo/remote_collection_driver.js:4:16)
    at Object.<anonymous> (packages/mongo/remote_collection_driver.js:38:10)
    at Object.defaultRemoteCollectionDriver (packages/underscore.js:784:19)
    at new Mongo.Collection (packages/mongo/collection.js:99:40)
    at packages/idmontie_migrations.js:38:15
    at packages/idmontie_migrations.js:255:4
    at packages/idmontie_migrations.js:267:3
    at /snap/wekan/76/programs/server/boot.js:303:34
    - - - - -
    at [object Object].<anonymous> (/snap/wekan/76/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/topologies/server.js:326:35)
    at emitOne (events.js:77:13)
    at [object Object].emit (events.js:169:7)
    at [object Object].<anonymous> (/snap/wekan/76/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:270:12)
    at [object Object].g (events.js:260:16)
    at emitTwo (events.js:87:13)
    at [object Object].emit (events.js:172:7)
    at Socket.<anonymous> (/snap/wekan/76/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:175:49)
    at Socket.g (events.js:260:16)
    at emitOne (events.js:77:13)

Are there any other details I can provide?

Ah, it's already installed as services and running:
sudo systemctl status snap.wekan.mongodb
sudo systemctl status snap.wekan.wekan

...and accessible at http://<IP_ADDRESS>:8080


cli: Add new state wipe-ostree subcommand

Solves #776
Right now the integration tests have some hacky code to clear out ostree stateroots  (see reset_root function), it would be better if they could rely on a bootc command to take care of that for them instead
This commit adds a new state wipe-ostree subcommand to the CLI that removes all ostree deployments from the system using native ostree bindings. This makes it easier to later rm -rf the stateroots and have a clean slate for the next test.

Tests failing because we need to check that /ostree even exists

Is it normal for the tests to fail in this manner?

TASK [check secure boot status] ************************************************
fatal: [guest]: FAILED! => changed=true
cmd:

mokutil
--sb-state
delta: '0:00:00.003638'
end: '2024-09-06 08:17:47.889643'
msg: non-zero return code
rc: 255
start: '2024-09-06 08:17:47.886005'
stderr: This system doesn't support Secure Boot
stderr_lines:
stdout: ''
stdout_lines:

@cgwalters WDYT?

The c10s tests are busted due to https://issues.redhat.com/browse/RHEL-56025 which should hopefully get sorted out soon

stderr: This system doesn't support Secure Boot

Not sure on this one, @henrywang  ?

stderr: This system doesn't support Secure Boot

Not sure on this one, @henrywang ?

Hi @cgwalters , could you please link me this log? Thanks.

I can't find it but @vrothberg where did you see that?

OH! I know this secure boot checking case. It's from https://github.com/containers/bootc/blob/1ba8d1e1b8863990b428fae6eb45ab754feb0e51/tests/e2e/playbooks/check-system.yaml#L23
Secure boot is one of system checkings, such as bios/uefi, tpm device, partition size, and partition table.


fix(URLPattern): Handle search parameters correctly in URLPattern with base

…parameters when a base URL is provided. This fixes the discrepancy where URLPattern in Deno was returning null for URLs with search parameters, unlike the behavior observed in Chrome.
Adjusted URLPattern parsing to include search parameters when matching against base URLs. Fixes #https://github.com/denoland/deno/issues/24266

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@crowlKats
Hello,
As I previously mentioned, I found that when the "URLPattern" is constructed in Deno, it attempts to establish the pattern; however, if no pattern is specified, the default pattern for the "search field" is set to None("")
so in 'p.exec'  , it attempts to extract patterns and compares them with those generated by the constructor.
so if there is no match, it will return NULL
check out this example, which attempts to match ?id=2 with ?id=3 ,the result no match, null was returned.

and check out this example, it tries to match ?id=3 with ?id=3  ,the result matched, The object was returned

So, if no pattern was specified, the search pattern will be set to NONE, meaning there would be no match and no result.

So I wrote change to set the search pattern default value to .
'' indicates that it will fit any pattern.

I have an additional fix. I like it better; it's more like Chrome behavior, but I'll have to rewrite every test in the "url-pattern" from start if you want this change. It will take me a few days to complete the rewrites.

so if we apply this change, we can remove our construct code of UrlPattern Init ,this is simpler and has fewer difficult code snippets.
but as it changes the default value of pattern for every field, its need to  rewrite  tests from  scratch.

@crowlKats
Please see the lint.  It failed in line I didn't write it.

@yazan-abdalrahman the tests come from WPT, which are not to be changed since they match the standard specification.
I'll tkae a deeper look at this PR later today or tomorrow.

@crowlKats
Hello ,it would be better to reimplement the "URL Pattern" constructor to be depends on the URL. With regard to the update test in "wtp," I don't think its tandard specification. i think it should be changed because the result depends on the generated pattern when creating the "URL Pattern," so changing the default pattern will need to change the test.
https://github.com/denoland/rust-urlpattern/pull/50
However, this is a workaround for the issue and no tests changed.


Confusion regarding the standalone model and average accuracy

Hi,
I am trying to reproduce table 1 and 2 of the paper.  However, I have two questions -

Can you explain how to find the standalone model accuracy to measure fairness? According to the paper, "Standalone performance is the test accuracy of a model trained only on the participant's local data". As this model is not affected by federated training, the model is fixed. Again, each participant's local data is also fixed. So, shouldn't this model accuracy be the same in each round?

How did you find the average test accuracy in table 1? Is it the average of N participants or the average of all rounds?

Thanks.

Thanks for the questions. See beloe

Can you explain how to find the standalone model accuracy to measure fairness? According to the paper, "Standalone performance is the test accuracy of a model trained only on the participant's local data". As this model is not affected by federated training, the model is fixed. Again, each participant's local data is also fixed. So, shouldn't this model accuracy be the same in each round?

You are correct that each standalone model is not affected by federated training. However, each standalone model undergoes an iterative training by each participant. The round in FL corresponds to the iteration in local standalone model training. In other words, during the local training (e.g., 100 iterations) the model performance changes while after the training is complete, the model performance of these participants are different.

How did you find the average test accuracy in table 1? Is it the average of N participants or the average of all rounds?

It is the average test accuracy after the entire training (standalone or FL) is complete over all the participants. Put differently, after training, the test accuracy of each model evaluated and an average is taken over them.

Thanks for your response.


Bug Report: Robot reported as offline but is OK in official app

Describe The Bug:
Plug-in says in the log that iRobot went offline again and again but if I look in the official app it is ok and I can start the cleaning process
To Reproduce:
Connect iRobot account with iRobot 976 on it. Then wait a couple of hours/days. Sometimes it works ok, sometimes it does not.
Expected behavior:
iRobot should be always available in HomeBridge if it is ok in official app.
Logs:
Attempting To Reconnect To Roomba
[03/02/2023, 06:32:38] *
Roomba went offline, disconnecting...
[03/02/2023, 06:32:38] *
 Roomba  connection closed, reconnecting in 5 seconds
[03/02/2023, 06:32:43] *
Attempting To Reconnect To Roomba

Config:
{
            "name": "*",
            "email": "*",
            "password": "*",
            "roombas": [
                {
                    "autoConfig": true,
                    "info": {
                        "ver": 2
                    }
                }
            ],
            "manualDiscovery": false,
            "lowBattery": 10,
            "offAction": "stop:dock",
            "status": "phase:run",
            "eveStatus": "inverted:phase:run",
            "bin": "filter:motion",
            "ignoreMultiRoomBin": false,
            "hideStuckSensor": false,
            "disableMultiRoom": true,
            "platform": "iRobotPlatform"

Node Version:
16.4.0
NPM Version:
8.5.1
Homebridge Version:
1.6.0
Plugin Version:
Latest
Operating System:
Raspberian

Same problem here too. Plugin works on a raspi but not on my Ubuntu VM for some reason…


Use files in package.json

Reduces the number of files consumer gets when npm installing.
Before: http://hastebin.com/qajajirure.sh
After: http://hastebin.com/vazatiwito.sh

Duplicate of gh-477

@jugglinmike Oh, hahaha. OI'm getting senile it seems


kubectl-gadget: Add check to ensure correct failure message is displayed

Add check to ensure correct failure message is displayed
In a multi-node cluster, if a trace succeeds on at least one node and the rest of the nodes (more than 1) report the same error message, the function printTraceFeedback() will wrongly print "Failed to run the gadget on all nodes" because all the messages it receives are the same.
The problem is that the function printTraceFeedback() does not know the total number of nodes. With that information, it will be able to conclude whether effectively all the nodes failed or not.
This commit also adds a unit test to cover this situation.
How to use
In a multi-node cluster (3 or more nodes), execute a gadget that will succeed only on one node and the rest will give you an error.
Testing done
I reproduced it by testing the seccomp-advisor CLI in a multi-node cluster with 3 nodes (master, worker1 and worker2). The pod hello-python is running in worker2.
Before this PR
$ traceid=$(./kubectl-gadget seccomp-advisor start -p hello-python -n seccomp-demo); sleep 5; ./kubectl-gadget seccomp-advisor stop $traceid
Failed to run the gadget on all nodes: Pod seccomp-demo/hello-python not found on this node
{
  "defaultAction": "SCMP_ACT_ERRNO",
  "architectures": [
    "SCMP_ARCH_X86_64",
    "SCMP_ARCH_X86",
    "SCMP_ARCH_X32"
  ],
  "syscalls": [
  ...
}

After this PR
$ traceid=$(./kubectl-gadget seccomp-advisor start -p hello-python -n seccomp-demo); sleep 5; ./kubectl-gadget seccomp-advisor stop $traceid
Failed to run the gadget on node "worker1": Pod seccomp-demo/hello-python not found on this node
Failed to run the gadget on node "master": Pod seccomp-demo/hello-python not found on this node
{
  "defaultAction": "SCMP_ACT_ERRNO",
  "architectures": [
    "SCMP_ARCH_X86_64",
    "SCMP_ARCH_X86",
    "SCMP_ARCH_X32"
  ],
  "syscalls": [
  ...
}

Another solution is to simply change the log message from Failed to run the gadget on all nodes to Failed to run the gadget on multiple nodes.

I just realized seccomp is setting the "not found" message to an error instead of a warning:
https://github.com/kinvolk/inspektor-gadget/blob/6bf8648d6aea4b2991f558a3afbee22cb59c1faf/pkg/gadgets/seccomp/gadget.go#L318
vs
https://github.com/kinvolk/inspektor-gadget/blob/6bf8648d6aea4b2991f558a3afbee22cb59c1faf/pkg/gadgets/process-collector/gadget.go#L68
If we change it to OperationWarning would this issue be fixed?

If we change it to OperationWarning would this issue be fixed?

Mmm not really, it would just hide the issue. This situation will happen any time one trace succeeds and the same OperationError is reported by more than one of the remaining traces.
On the other hand, I agree that seccomp should use OperationWarning, see here. Francis is already doing it on the PR #380.

Right, but at least it won't print the following messages.
Failed to run the gadget on node "worker1": Pod seccomp-demo/hello-python not found on this node
Failed to run the gadget on node "master": Pod seccomp-demo/hello-python not found on this node

PR rebased

PR rebased again to ensure it is passing the CI after merging the fix for the BTFHub.


Update getLastMessageString to pull from registered factories

Any chance we can get an update on this?
Specifically: Util.java
Looking to release an application into production soon, and hate having to display [xxx-byte mime/type] to my users in the message preview.
If not, any insight into a quick fix, I don't mind working on this and fixing it, but would appreciate some help as to where to grab the registered factories.

Hello @cpiggott
Thanks for reaching out, I believe this has been fixed https://github.com/layerhq/Atlas-Android/pull/124/files#diff-155b18efd60244c07dfb375d90c6d5ffR121
Thanks


Adapters do not work with custom context.

The fetch adapter supports an option called context, which allows you to configure where the adapter will look for a fetch object to replace. However, this doesn't work: updating the context object doesn't do anything, because the object is a clone.
As a workaround, I'm currently using:
const polly = new Polly(recordingName, {
  // ...
  adapterOptions: {
    fetch: {
      context: fetchContext,
    }
  }
});
fetchContext.fetch = polly.config.adapterOptions.fetch.context.fetch;

@CGamesPlay thanks for reporting this! I was able to recreate this on my end as well. I'll work on getting this resolved 😄

@CGamesPlay what is the use-case for fetchContext as a plain object?

I wouldn't bemoan if the library were hard-coded to use the global context. I did end up needing to patch some bugs in node-fetch for use in my test environment, so I overrode the global Response and Headers classes, but I could just as easily do that if they were on the global object.

The reason I ask is because I believe the cloning strategy we implemented against will only clone an object if it's a pojo.  In normal circumstances, it's not and so we haven't run into this.
We will land a patch soon to resolve this.

Thanks for the quick turnaround, everyone!


Code style with autopep8 and initial steps for python 3 support

Look like code have many different code styles at once. I use auto tools as autopep8 and manual checking for update code. Also it contain steps move to python 3 support.
Patches take care at most about code style and python 3 compatibility and didn't:

line length, but now it can be too long
double and single quotes for strings (for code used more single for docstring double)

I would be very interested in having a python 3 compatible OWSlib.
How is it going with this?
Is there anything I can help with?

There has been some smaller PRs in the past months.  I suggest following this path.

Ah, yes I see. The merged PRs are #225 and #226

@jorisvandenbossche to add, see related thread on owslib-devel: http://lists.osgeo.org/pipermail/owslib-devel/2015-April/000272.html


environment.yml ResolvePackageNotFound

Windows 10 64bit
Using Anaconda API: https://api.anaconda.org
Fetching package metadata .................

ResolvePackageNotFound:
  - freetype 2.5.5 2

The whole concept of using yml files is to simplify environment installation on other computers. Why does the conda env export command generate a file that only works on the originating host?

Ubuntu
Using Anaconda API: https://api.anaconda.org
Solving environment: failed
ResolvePackageNotFound:

opencv3==3.0.0=py35_0
tbb==4.3_20141023=0

Though I've placed these two requirements under pip section in .yml  file im getting the same error. Can you help me out?

It seems that menpo tbb is for osx-64 only, and jlaura::opencv3=3.0.0 is not available for some reason. By slightly omitting the detail in environment.yml:

tbb==4.3_20141023=0 to tbb
jlaura::opencv3==3.0.0=py35_0 to opencv3

The initial error was resolved, but I faced another error like this:

UnsatisfiableError: The following specifications were found to be in conflict:

libtiff==4.0.6=3 -> jpeg=9
qt==5.6.2=2 -> jpeg=8

There will be more elaborate ways to handle this error, but I took a simple detour like this:

 libtiff==4.0.6=3 to libtiff
qt==5.6.2=2 to qt

@Aki1987 that worked!! thank you.

ResolvePackageNotFound describe all packages not installed yet. That you need to move ResolvePackageNotFound to below pip: sentence looks like:

Best, Thu

I had the same problem. It is frustrating, because precisely the point of anaconda is to manage this automatically.
I didn't have any pip packages in my environment.yml, all were packages installed by conda. How come conda cannot reproduce and environment I created with conda?
The solution I found was to remove all the packages that were installed as dependencies and just leave the packages I myself had installed with conda install packagename. Still, basemap was failing. I removed basemap and it worked.
Then I installed basemap with conda install basemap.
Finally, I did a _conda env export, which again was full of dependencies (not only the primary I want). I copied the line corresponding to basemap and I manually edited my environment.yml adding this line there. So, now in environment.yml I only have tha packages I would have installed with conda install when I first created the environment.
This way, except basemap, the package I import in my python scripts will have the same version they had in the environment. Then, the dependencies are those that conda choses.

Later I had the same problem importing another environment from an environment.yml.
I follow a better procedure than in my previous comment.

I removed from environment.yml the 4 packages that were failing (could not be installed by conda).
I installed the environment. Now it worked.
From those 4 packages that failed, only one was "primary" (I package I import on my scripts), so I installed it manually with conda install. This installed this package and the other 3 that were failing, but with new versions.
I exported the new environment to environment.yml.

Now the environment is almost identical, except for 4 packages whose version changed.

Just here to commiserate - environment.yml from an Ubuntu project wouldn't install on on OS X.

Try to make the import of the .yml file directly in the Anaconda Navigator, within the Environments section. It worked for me.
I used Anaconda3 version 4.7.12.

A solution is to create  your env without the yml file. Then update it through
conda env update --file environment.yml
It worked for me

@DavidJulienMillet but how do you create an env without a yml file.  I tried 'conda env create' but it just looks for an environment.yml file in the current directory that doesnt exist.

@DavidJulienMillet but how do you create an env without a yml file? I tried 'conda env create' but it just looks for an environment.yml file in the current directory that doesnt exist.

You can use conda create -n test_env python=3.6.3 anaconda.
Though the env update solution didn't work out for me. It is giving the same ResolvePackageNotFound

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

It works lke a charm!
Can you give some explanation for this solution.

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

Beautiful
How does it works though?

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

works for me thanks

Worked but how?

I tried to create the environment using .yml file but this is the error I got. How to download these specific packages?
ResolvePackageNotFound:

libcxx=4.0.1
libedit=3.1
glib=2.53.6
libffi=3.2.1
gettext=<IP_ADDRESS>
libcxxabi=4.0.1
ptyprocess=0.5.2
readline=7.0
terminado=0.6
libgfortran=3.0.1
ncurses=6.0
appnope=0.1.0
dbus=1.10.22

I had the same problem. It is frustrating, because precisely the point of anaconda is to manage this automatically.
I didn't have any pip packages in my environment.yml, all were packages installed by conda. How come conda cannot reproduce and environment I created with conda?
The solution I found was to remove all the packages that were installed as dependencies and just leave the packages I myself had installed with conda install packagename. Still, basemap was failing. I removed basemap and it worked.
Then I installed basemap with conda install basemap.
Finally, I did a _conda env export, which again was full of dependencies (not only the primary I want). I copied the line corresponding to basemap and I manually edited my environment.yml adding this line there. So, now in environment.yml I only have tha packages I would have installed with conda install when I first created the environment.
This way, except basemap, the package I import in my python scripts will have the same version they had in the environment. Then, the dependencies are those that conda choses.

worked for me... many thanks!

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

It works lke a charm!
Can you give some explanation for this solution.

I recently a problem with ResolvePackageNotFound and   conda config --set restore_free_channel true fixed it for me as well. It seems that Anaconda removed the free channel due to 1) peformance reasons and 2) Issues with old packages that can result in strange and hard-to-debug errors.
sources:
https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/free-channel.html
https://www.anaconda.com/blog/why-we-removed-the-free-channel-in-conda-4-7

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

this didnt work for me. am working on macOS
does this have sth to do with operating system?

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

this didnt work for me. am working on macOS
does this have sth to do with operating system?

This is a longshot but try brew install miniconda2 .  FWIW on my mac with miniconda2 these commands work fine:
conda env export > environment.yml
### (edit environment.yml and change name of env in first line)
conda env create -f environment.yml

But I copy environment.yml to a 64-bint linux mint box, that also has miniconda2, and it always fails:
conda config --set restore_free_channel true
conda env create -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound:
  - tk==8.6.8=ha441bb4_0
  - freetype==2.9.1=hb4e5f40_0
... (every single package in the env)

Wonder why it fails spectacularly on linux? Perhaps since I'm having to create a py2 env with some really old obsolete pkgs? (But why does it work fine on macos?) I'll update this post if I figure it out.

I had similar issues when trying to reproduce an environment created on MacOS on an Ubuntu EC2 instance.  Using the anaconda guidance for creating cross-platform .yml files that exclude platform specific dependencies solved the issue for me: conda env export --from-history. After creating my environment.yml file in this manner, I was able to successfully recreate the environment where before I ran into numerous ResolvePackageNotFound errors.

Adding channels to my environment.yml file fixed things for me.
I noticed the environment described by conda env export; lists "channels" at the top. Adding some of those allowed things like pytorch and langdetect to be resolved properly.
# environment.yml
name: hello
channels:
  - pytorch
  - conda-forge
  - default
dependencies:
  - python>=3.8
  - pytorch>=1.71
  - langdetect
  - pandas=1.0.1
  - numpy=1.18.1

I just added the "channels" portion.

Adding channels to my environment.yml file fixed things for me.
I noticed the environment described by conda env export; lists "channels" at the top. Adding some of those allowed things like pytorch and langdetect to be resolved properly.
# environment.yml
name: hello
channels:
  - pytorch
  - conda-forge
  - default
dependencies:
  - python>=3.8
  - pytorch>=1.71
  - langdetect
  - pandas=1.0.1
  - numpy=1.18.1

I just added the "channels" portion.

I turns out that the yaml file was generated in Mac OS, and it is not directly usable in Linux.

I turns out that the yaml file was generated in Mac OS, and it is not directly usable in Linux.

Ubuntu
Using Anaconda API: https://api.anaconda.org
Solving environment: failed
ResolvePackageNotFound:

opencv3==3.0.0=py35_0
tbb==4.3_20141023=0

Though I've placed these two requirements under pip section in .yml file im getting the same error. Can you help me out?

Placing the requirements in the pip also did not work for me. I deleted the packages reported by  ResolvePackageNotFound in the .yml file, and then Conda is able to install other packages and create the environment.
My error is:
` ResolvePackageNotFound:

binutils_impl_linux-64==2.34=h53a641e_0
ld_impl_linux-64==2.34=h53a641e_0 `

Ubuntu
Using Anaconda API: https://api.anaconda.org
Solving environment: failed
ResolvePackageNotFound:

opencv3==3.0.0=py35_0
tbb==4.3_20141023=0

Though I've placed these two requirements under pip section in .yml file im getting the same error. Can you help me out?

Placing the requirements in the pip also did not work for me. I deleted the packages reported by  ResolvePackageNotFound in the .yml file, and then Conda is able to install other packages and create the environment.
My error is:
` ResolvePackageNotFound:

binutils_impl_linux-64==2.34=h53a641e_0
ld_impl_linux-64==2.34=h53a641e_0 `

Just to update, my issue was with Ta-lib which requires the conda-forge channel, but the export does not include this info so the yaml file is unusable.

name: mql5
channels:

defaults
dependencies:
pip
ta-lib
python=3
graphviz
pywin32
prefix: C:\Users\worth\anaconda3\envs\mql5

Just my 2 cents, my issue was with ta-lib which requires the conda-forge channel, but the export does not include this info so the yaml file is unusable.
name: mql5
channels:
  - defaults
dependencies:
  - pip
  - ta-lib
  - python=3
  - graphviz
  - pywin32
prefix: C:\Users\worth\anaconda3\envs\mql5

Did you happen to find a solution for this or have a workaround?

I am facing this issue currently. The thing is I tried importing the environment on multiple computers to see if it was an issue with my system. The environment imports perfectly on macOS but for windows, it just doesn't work at all. Does anyone know anything about this?

didn't work for me.sad

Adding channels to my environment.yml file fixed things for me.
I noticed the environment described by conda env export; lists "channels" at the top. Adding some of those allowed things like pytorch and langdetect to be resolved properly.
# environment.yml
name: hello
channels:
  - pytorch
  - conda-forge
  - default
dependencies:
  - python>=3.8
  - pytorch>=1.71
  - langdetect
  - pandas=1.0.1
  - numpy=1.18.1

I just added the "channels" portion.

This fixed the pytorch dependency for me.

running this first conda config --set restore_free_channel true and then conda env create -f etc solved it for me

This didn't work for me
Experiencing ResolvePackageNotFound:

libgfortran=5.0.0 error.


Allow List with NOASSERTION/ NONE for PackageLicenseInfoFromFiles, LicenseInfoInSnippet and LicenseInfoInFile

The fields PackageLicenseInfoFromFiles in Package, LicenseInfoInSnippet in Snippet and LicenseInfoInFile in File can be populated with values like [MIT, NOASSERTION]. See this issue  in the spec repo. The current refactored version of the tools doesn't allow this which is a bug.

fixed by #505


fixes cupertino page transition leak

Part of #141198
Fixes CupertinoPageTransition widget leaks
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] I followed the breaking change policy and added Data Driven Fixes where supported.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

cc: @polina-c
These changes directly reduces route_test.dart leaks from 1540 to 660 and also reduces leaks on other testcases which indirectly using CupertinoPageTransition  there are some other transition that has same problem as this, Using curve animation class directly in stateless widgets that does not get disposed
i want know if this is good approach (converting it into stateful widgets and using initState, didUpdateWidget dispose) to fix this issue before i pick other transition widgets so i kind of don't repeat issue on other PRs while i am at it 😅.
Also while looking into curve animation leaks i've noticed few things that might help-out:-

Most of curve animation leak seems to be connected routing related functionality like PopupRoute, Transition widgets and dialog functions like showDateRangePicker  which internally using some kinds of route related classes fixing this will indirectly fix most of leaks

cc: @polina-c
These changes directly reduces route_test.dart leaks from 1540 to 660 and also reduces leaks on other testcases which indirectly using CupertinoPageTransition  there are some other transition that has same problem as this, Using curve animation class directly in stateless widgets that does not get disposed
i want know if this is good approach (converting it into stateful widgets and using initState, didUpdateWidget dispose) to fix this issue before i pick other transition widgets so i kind of don't repeat issue on other PRs while i am at it 😅.
Also while looking into curve animation leaks i've noticed few things that might help-out:-

Most of curve animation leak seems to be connected routing related functionality like PopupRoute, Transition widgets and dialog functions like showDateRangePicker  which internally using some kinds of route related classes fixing this will indirectly fix most of leaks

Thanks. Yes, in general approach looks correct. This does not mean it will be applicable everywhere though :)

1540 to 660 sounds impressive. Thank you!

Hii @polina-c Updated PR as per suggestion thanks for the review :)

Sorry, I did not catch duplicate.
@ValentinVignal , thanks for good catches.
@Dimilkalathiya , yes, please, follow up with improvements.

@Dimilkalathiya, @polina-c I'll continue with my PR (https://github.com/flutter/flutter/pull/146999) so I guess we are good for CupertinoPageTransition.
You can try to fix the same issues you have in your other PR for CupertinoFullscreenDialogTransition https://github.com/flutter/flutter/pull/147168