CLOUDSTACK-8940: Wrong value is inserted into nics table netmask fiel…

…d when creating a VM - Fixed
Problem: When creating a VM in shared network with no service, the value of netmask is added in the table in the CIDR format unlike other cases where it is added as normal string in the format xxx.xxx.xxx.xxx. The netmask column in the nics table has a length of 15 chars which gets violated if the CIDR exceeds it(Max CIDR length can be 18).
Fix: Before storing the netmask convert from CIDR to native format.

So several questions:

What versions of ACS does this affect?
What tests were failing (if any)?
What tests need to be added so we don't have a regression?

@kansal LGTM.
Looking at the JIRA issue, this looks like should apply to 4.6/master but can you update the ticket with the version details, more details on the bug and also note if this also needs to be backported to 4.5/4.4 or older branches. Thanks.

@bhaisaab Sure will check about the back-porting of the issue. Apart from that, the previous values stored incorrectly need to be corrected in the database. I think a simple bash script will do. Your views and will it be part of this PR only?

Use db migration from either past 4.5.x to 4.6.0 version, or this PR gets merged post 4.6.0; add the data migration code in 4.6.0 to 4.6.1

Hi @kansal Can you please rebase this with current master? I tried running some tests but face old problems. Also, what about the db migration script to fix old problems? Thanks for the update!

LGTM, based on a set of tests that I run on this branch (which I rebased myself first):
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=true \
component/test_vpc_redundant.py \
component/test_routers_iptables_default_policy.py \
component/test_routers_network_ops.py \
component/test_vpc_router_nics.py \
smoke/test_loadbalance.py \
smoke/test_internal_lb.py \
smoke/test_ssvm.py \
smoke/test_network.py

Result:
Create a redundant VPC with two networks with two VMs in each network ... === TestName: test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : EXCEPTION ===
ERROR
Create a redundant VPC with two networks with two VMs in each network and check default routes ... === TestName: test_02_redundant_VPC_default_routes | Status : SUCCESS ===
ok
Test iptables default INPUT/FORWARD policy on RouterVM ... === TestName: test_02_routervm_iptables_policies | Status : SUCCESS ===
ok
Test iptables default INPUT/FORWARD policies on VPC router ... === TestName: test_01_single_VPC_iptables_policies | Status : SUCCESS ===
ok
Stop existing router, add a PF rule and check we can access the VM ... === TestName: test_isolate_network_FW_PF_default_routes | Status : SUCCESS ===
ok
Test redundant router internals ... === TestName: test_RVR_Network_FW_PF_SSH_default_routes | Status : SUCCESS ===
ok
Create a VPC with two networks with one VM in each network and test nics after destroy ... === TestName: test_01_VPC_nics_after_destroy | Status : SUCCESS ===
ok
Create a VPC with two networks with one VM in each network and test default routes ... === TestName: test_02_VPC_default_routes | Status : SUCCESS ===
ok
Test to create Load balancing rule with source NAT ... === TestName: test_01_create_lb_rule_src_nat | Status : SUCCESS ===
ok
Test to create Load balancing rule with non source NAT ... === TestName: test_02_create_lb_rule_non_nat | Status : SUCCESS ===
ok
Test for assign & removing load balancing rule ... === TestName: test_assign_and_removal_lb | Status : SUCCESS ===
ok
Test to verify access to loadbalancer haproxy admin stats page ... === TestName: test02_internallb_haproxy_stats_on_all_interfaces | Status : SUCCESS ===
ok
Test create, assign, remove of an Internal LB with roundrobin http traffic to 3 vm's ... === TestName: test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Status : SUCCESS ===
ok
Test SSVM Internals ... === TestName: test_03_ssvm_internals | Status : SUCCESS ===
ok
Test CPVM Internals ... === TestName: test_04_cpvm_internals | Status : SUCCESS ===
ok
Test stop SSVM ... === TestName: test_05_stop_ssvm | Status : SUCCESS ===
ok
Test stop CPVM ... === TestName: test_06_stop_cpvm | Status : SUCCESS ===
ok
Test reboot SSVM ... === TestName: test_07_reboot_ssvm | Status : SUCCESS ===
ok
Test reboot CPVM ... === TestName: test_08_reboot_cpvm | Status : SUCCESS ===
ok
Test destroy SSVM ... === TestName: test_09_destroy_ssvm | Status : SUCCESS ===
ok
Test destroy CPVM ... === TestName: test_10_destroy_cpvm | Status : SUCCESS ===
ok
Test for port forwarding on source NAT ... === TestName: test_01_port_fwd_on_src_nat | Status : SUCCESS ===
ok
Test for port forwarding on non source NAT ... === TestName: test_02_port_fwd_on_non_src_nat | Status : SUCCESS ===
ok
Test for reboot router ... === TestName: test_reboot_router | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_1_static_nat_rule | Status : FAILED ===
FAIL
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_2_nat_rule | Status : FAILED ===
FAIL
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Status : FAILED ===
FAIL

FAILED (errors=1, failures=3)

The 3 errors at the bottom are due to CLOUDSTACK-8991 and unrelated to this PR. Please try running test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL.
Trying again the other failed test:
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=true component/test_vpc_redundant.py

Result:
[root@cs1 integration]# less /tmp//MarvinLogs/test_vpc_redundant_PQ3LS4/results.txt
Create a redundant VPC with two networks with two VMs in each network ... === TestName: test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : SUCCESS ===
ok
Create a redundant VPC with two networks with two VMs in each network and check default routes ... === TestName: test_02_redundant_VPC_default_routes | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 2 tests in 3244.515s

OK

So, must have been a local issue.
Next test run:
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=false \
smoke/test_routers.py \
smoke/test_network_acl.py \
smoke/test_privategw_acl.py \
smoke/test_reset_vm_on_reboot.py \
smoke/test_vm_life_cycle.py \
smoke/test_vpc_vpn.py \
smoke/test_service_offerings.py \
component/test_vpc_offerings.py \
component/test_vpc_routers.py

Result:
Test router internal advanced zone ... === TestName: test_02_router_internal_adv | Status : SUCCESS ===
ok
Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS ===
ok
Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS ===
ok
Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS ===
ok
Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS ===
ok
Test start router ... === TestName: test_08_start_router | Status : SUCCESS ===
ok
Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS ===
ok
test_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ... === TestName: test_privategw_acl | Status : SUCCESS ===
ok
Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS ===
ok
Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS ===
ok
Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS ===
ok
Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS ===
ok
Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS ===
ok
Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS ===
ok
Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS ===
ok
Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS ===
ok
Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS ===
ok
Test migrate VM ... === TestName: test_08_migrate_vm | Status : SUCCESS ===
ok
Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS ===
ok
Test Remote Access VPN in VPC ... === TestName: test_vpc_remote_access_vpn | Status : SUCCESS ===
ok
Test VPN in VPC ... === TestName: test_vpc_site2site_vpn | Status : SUCCESS ===
ok
Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS ===
ok
Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS ===
ok
Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS ===
ok
Test for delete account ... === TestName: test_delete_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for admin account ... === TestName: test_public_ip_admin_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for user account ... === TestName: test_public_ip_user_account | Status : SUCCESS ===
ok
Test for release public IP address ... === TestName: test_releaseIP | Status : SUCCESS ===
ok
Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS ===
ok
Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS ===
ok
Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS ===
ok
Test for delete account ... === TestName: test_delete_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for admin account ... === TestName: test_public_ip_admin_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for user account ... === TestName: test_public_ip_user_account | Status : SUCCESS ===
ok
Test for release public IP address ... === TestName: test_releaseIP | Status : SUCCESS ===
ok
Test create VPC offering ... === TestName: test_01_create_vpc_offering | Status : SUCCESS ===
ok
Test VPC offering without load balancing service ... === TestName: test_03_vpc_off_without_lb | Status : SUCCESS ===
ok
Test VPC offering without static NAT service ... === TestName: test_04_vpc_off_without_static_nat | Status : SUCCESS ===
ok
Test VPC offering without port forwarding service ... === TestName: test_05_vpc_off_without_pf | Status : SUCCESS ===
ok
Test VPC offering with invalid services ... === TestName: test_06_vpc_off_invalid_services | Status : SUCCESS ===
ok
Test update VPC offering ... === TestName: test_07_update_vpc_off | Status : SUCCESS ===
ok
Test list VPC offering ... === TestName: test_08_list_vpc_off | Status : SUCCESS ===
ok
test_09_create_redundant_vpc_offering (integration.component.test_vpc_offerings.TestVPCOffering) ... === TestName: test_09_create_redundant_vpc_offering | Status : SUCCESS ===
ok
Test start/stop of router after addition of one guest network ... === TestName: test_01_start_stop_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test reboot of router after addition of one guest network ... === TestName: test_02_reboot_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to change service offering of router after addition of one guest network ... === TestName: test_04_chg_srv_off_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test destroy of router after addition of one guest network ... === TestName: test_05_destroy_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to stop and start router after creation of VPC ... === TestName: test_01_stop_start_router_after_creating_vpc | Status : SUCCESS ===
ok
Test to reboot the router after creating a VPC ... === TestName: test_02_reboot_router_after_creating_vpc | Status : SUCCESS ===
ok
Tests to change service offering of the Router after ... === TestName: test_04_change_service_offerring_vpc | Status : SUCCESS ===
ok
Test to destroy the router after creating a VPC ... === TestName: test_05_destroy_router_after_creating_vpc | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 44 tests in 8585.327s

OK

Before we consider merging, please respond to the comment about the upgrade script. Thanks!

@ remibergsma  Thank you very much. I was busy somewhere. Will update this PR with "update script" and rebase it. Sorry for the delayed response.

@remibergsma @bhaisaab The above changes were made as the part of DHCP/DNS offload feature. The related ticket is https://issues.apache.org/jira/browse/CLOUDSTACK-8324
As we can see that the fix version is 4.6.0, so I guess no update script is needed. Am I correct?

Hi @kansal
Should I deploy a basic zone with shared network in order to see if that fix is fine?
I will also run the other set of tests, same as @remibergsma did.
Cheers,
Wilder

code lgtm @remibergsma can you retest? A newer commit is in since your lgtm

Hi @wilderrodrigues, To check the bug is solved, try deploying the VM in shared network with no service.

As you can see, this function is called only when is isSharedNetworkWithoutService() is true.

Ping @remibergsma @karuturi @kansal
I will run the hardware required tests as well and try to deployed a VM with a shared network.
Partial test results:

Hardware required: false
Management Server + MySQL on CentOS 7.1
One KVM host on CentOS 7.1
ACS Agent + Common RPMs built from source

Test start/stop of router after addition of one guest network ... === TestName: test_01_start_stop_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test reboot of router after addition of one guest network ... === TestName: test_02_reboot_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to change service offering of router after addition of one guest network ... === TestName: test_04_chg_srv_off_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test destroy of router after addition of one guest network ... === TestName: test_05_destroy_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to stop and start router after creation of VPC ... === TestName: test_01_stop_start_router_after_creating_vpc | Status : SUCCESS ===
ok
Test to reboot the router after creating a VPC ... === TestName: test_02_reboot_router_after_creating_vpc | Status : SUCCESS ===
ok
Tests to change service offering of the Router after ... === TestName: test_04_change_service_offerring_vpc | Status : SUCCESS ===
ok
Test to destroy the router after creating a VPC ... === TestName: test_05_destroy_router_after_creating_vpc | Status : SUCCESS ===
ok
Test router internal advanced zone ... === TestName: test_02_router_internal_adv | Status : SUCCESS ===
ok
Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS ===
ok
Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS ===
ok
Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS ===
ok
Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS ===
ok
Test start router ... === TestName: test_08_start_router | Status : SUCCESS ===
ok
Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS ===
ok
test_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ... === TestName: test_privategw_acl | Status : SUCCESS ===
ok
Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS ===
ok
Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS ===
ok
Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS ===
ok
Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS ===
ok
Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS ===
ok
Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS ===
ok
Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS ===
ok
Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS ===
ok
Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS ===
ok
Test migrate VM ... SKIP: At least two hosts should be present in the zone for migration
Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS ===
ok
Test Remote Access VPN in VPC ... === TestName: test_vpc_remote_access_vpn | Status : SUCCESS ===
ok
Test VPN in VPC ... === TestName: test_vpc_site2site_vpn | Status : SUCCESS ===
ok
Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS ===
ok
Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS ===
ok
Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS ===
ok
Test create VPC offering ... === TestName: test_01_create_vpc_offering | Status : SUCCESS ===
ok
Test VPC offering without load balancing service ... === TestName: test_03_vpc_off_without_lb | Status : SUCCESS ===
ok
Test VPC offering without static NAT service ... === TestName: test_04_vpc_off_without_static_nat | Status : SUCCESS ===
ok
Test VPC offering without port forwarding service ... === TestName: test_05_vpc_off_without_pf | Status : SUCCESS ===
ok
Test VPC offering with invalid services ... === TestName: test_06_vpc_off_invalid_services | Status : SUCCESS ===
ok
Test update VPC offering ... === TestName: test_07_update_vpc_off | Status : SUCCESS ===
ok
Test list VPC offering ... === TestName: test_08_list_vpc_off | Status : SUCCESS ===
ok
test_09_create_redundant_vpc_offering (integration.component.test_vpc_offerings.TestVPCOffering) ... === TestName: test_09_create_redundant_vpc_offering | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 40 tests in 8133.459s

OK (SKIP=1)
(END)

Cheers,
Wilder

LGTM, based on a set of tests that I run on this branch (which I rebased myself first):
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=true \
component/test_vpc_redundant.py \
component/test_routers_iptables_default_policy.py \
component/test_routers_network_ops.py \
component/test_vpc_router_nics.py \
smoke/test_loadbalance.py \
smoke/test_internal_lb.py \
smoke/test_ssvm.py \
smoke/test_network.py

Result:
Create a redundant VPC with two networks with two VMs in each network ... === TestName: test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : SUCCESS ===
ok
Create a redundant VPC with two networks with two VMs in each network and check default routes ... === TestName: test_02_redundant_VPC_default_routes | Status : SUCCESS ===
ok
Test iptables default INPUT/FORWARD policy on RouterVM ... === TestName: test_02_routervm_iptables_policies | Status : SUCCESS ===
ok
Test iptables default INPUT/FORWARD policies on VPC router ... === TestName: test_01_single_VPC_iptables_policies | Status : SUCCESS ===
ok
Stop existing router, add a PF rule and check we can access the VM ... === TestName: test_isolate_network_FW_PF_default_routes | Status : SUCCESS ===
ok
Test redundant router internals ... === TestName: test_RVR_Network_FW_PF_SSH_default_routes | Status : SUCCESS ===
ok
Create a VPC with two networks with one VM in each network and test nics after destroy ... === TestName: test_01_VPC_nics_after_destroy | Status : SUCCESS ===
ok
Create a VPC with two networks with one VM in each network and test default routes ... === TestName: test_02_VPC_default_routes | Status : SUCCESS ===
ok
Test to create Load balancing rule with source NAT ... === TestName: test_01_create_lb_rule_src_nat | Status : SUCCESS ===
ok
Test to create Load balancing rule with non source NAT ... === TestName: test_02_create_lb_rule_non_nat | Status : SUCCESS ===
ok
Test for assign & removing load balancing rule ... === TestName: test_assign_and_removal_lb | Status : SUCCESS ===
ok
Test to verify access to loadbalancer haproxy admin stats page ... === TestName: test02_internallb_haproxy_stats_on_all_interfaces | Status : SUCCESS ===
ok
Test create, assign, remove of an Internal LB with roundrobin http traffic to 3 vm's ... === TestName: test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Status : SUCCESS ===
ok
Test SSVM Internals ... === TestName: test_03_ssvm_internals | Status : SUCCESS ===
ok
Test CPVM Internals ... === TestName: test_04_cpvm_internals | Status : SUCCESS ===
ok
Test stop SSVM ... === TestName: test_05_stop_ssvm | Status : SUCCESS ===
ok
Test stop CPVM ... === TestName: test_06_stop_cpvm | Status : SUCCESS ===
ok
Test reboot SSVM ... === TestName: test_07_reboot_ssvm | Status : SUCCESS ===
ok
Test reboot CPVM ... === TestName: test_08_reboot_cpvm | Status : SUCCESS ===
ok
Test destroy SSVM ... === TestName: test_09_destroy_ssvm | Status : SUCCESS ===
ok
Test destroy CPVM ... === TestName: test_10_destroy_cpvm | Status : SUCCESS ===
ok
Test for port forwarding on source NAT ... === TestName: test_01_port_fwd_on_src_nat | Status : SUCCESS ===
ok
Test for port forwarding on non source NAT ... === TestName: test_02_port_fwd_on_non_src_nat | Status : SUCCESS ===
ok
Test for reboot router ... === TestName: test_reboot_router | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_1_static_nat_rule | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_2_nat_rule | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 27 tests in 11938.702s

OK

And:
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=false \
smoke/test_routers.py \
smoke/test_network_acl.py \
smoke/test_privategw_acl.py \
smoke/test_reset_vm_on_reboot.py \
smoke/test_vm_life_cycle.py \
smoke/test_vpc_vpn.py \
smoke/test_service_offerings.py \
component/test_vpc_offerings.py \
component/test_vpc_routers.py

Result:
Test router internal advanced zone ... === TestName: test_02_router_internal_adv | Status : SUCCESS ===
ok
Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS ===
ok
Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS ===
ok
Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS ===
ok
Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS ===
ok
Test start router ... === TestName: test_08_start_router | Status : SUCCESS ===
ok
Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS ===
ok
test_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ... === TestName: test_privategw_acl | Status : SUCCESS ===
ok
Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS ===
ok
Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS ===
ok
Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS ===
ok
Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS ===
ok
Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS ===
ok
Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS ===
ok
Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS ===
ok
Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS ===
ok
Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS ===
ok
Test migrate VM ... === TestName: test_08_migrate_vm | Status : SUCCESS ===
ok
Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS ===
ok
Test Remote Access VPN in VPC ... === TestName: test_vpc_remote_access_vpn | Status : SUCCESS ===
ok
Test VPN in VPC ... === TestName: test_vpc_site2site_vpn | Status : SUCCESS ===
ok
Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS ===
ok
Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS ===
ok
Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS ===
ok
Test for delete account ... === TestName: test_delete_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for admin account ... === TestName: test_public_ip_admin_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for user account ... === TestName: test_public_ip_user_account | Status : SUCCESS ===
ok
Test for release public IP address ... === TestName: test_releaseIP | Status : SUCCESS ===
ok
Test create VPC offering ... === TestName: test_01_create_vpc_offering | Status : SUCCESS ===
ok
Test VPC offering without load balancing service ... === TestName: test_03_vpc_off_without_lb | Status : SUCCESS ===
ok
Test VPC offering without static NAT service ... === TestName: test_04_vpc_off_without_static_nat | Status : SUCCESS ===
ok
Test VPC offering without port forwarding service ... === TestName: test_05_vpc_off_without_pf | Status : SUCCESS ===
ok
Test VPC offering with invalid services ... === TestName: test_06_vpc_off_invalid_services | Status : SUCCESS ===
ok
Test update VPC offering ... === TestName: test_07_update_vpc_off | Status : SUCCESS ===
ok
Test list VPC offering ... === TestName: test_08_list_vpc_off | Status : SUCCESS ===
ok
test_09_create_redundant_vpc_offering (integration.component.test_vpc_offerings.TestVPCOffering) ... === TestName: test_09_create_redundant_vpc_offering | Status : SUCCESS ===
ok
Test start/stop of router after addition of one guest network ... === TestName: test_01_start_stop_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test reboot of router after addition of one guest network ... === TestName: test_02_reboot_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to change service offering of router after addition of one guest network ... === TestName: test_04_chg_srv_off_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test destroy of router after addition of one guest network ... === TestName: test_05_destroy_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to stop and start router after creation of VPC ... === TestName: test_01_stop_start_router_after_creating_vpc | Status : SUCCESS ===
ok
Test to reboot the router after creating a VPC ... === TestName: test_02_reboot_router_after_creating_vpc | Status : SUCCESS ===
ok
Tests to change service offering of the Router after ... === TestName: test_04_change_service_offerring_vpc | Status : SUCCESS ===
ok
Test to destroy the router after creating a VPC ... === TestName: test_05_destroy_router_after_creating_vpc | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 44 tests in 8955.472s

OK

These test do not cover your change, all they do is show you didn't break them. Someone else needs to review the code.

@wilderrodrigues any update on your review?

LGTM :+1:
Please proceed with merge.


What happened to Date.floor?

Is there a way to get the reset, midnight date from 9.3.1?

I changed the floor name a while back to match closer with moment.
Should do what you want.
http://package.elm-lang.org/packages/rluiten/elm-date-extra/9.3.1/Date-Extra-TimeUnit#startOfTime
http://package.elm-lang.org/packages/rluiten/elm-date-extra/9.3.1/Date-Extra-TimeUnit#endOfTime


Issue 925: Error running integration tests - after migration to JUnit 5

Fixes #925.
Added <useSystemClassLoader>false</useSystemClassLoader> in both maven-surefire-plugin and `maven-failsafe-plugin .
Surefire provides a mechanism for using multiple strategies. The main parameter that determines this is called useSystemClassLoader. If useSystemClassLoader is true, then we use a manifest-only JAR; otherwise, we use an isolated class loader.
It’s in the official page.

Thanks for the fix! :)


Status pending not working as expected

Alarmo Version
v1.9.14
HA Version
2024.2.2
Bug description
Alarm away activated - Opening the door and the status should be pending for 60secs. This should trigger the below script which would play a sound (like a warining or reminder before firing the alarm). However the sound will not be played.
After entering the correct pin code, then the sound will be played on the fire tab.
Steps to reproduce
alias: 0_Alarm_pending
description: ""
trigger:
  - platform: state
    entity_id:
      - alarm_control_panel.alarmo
    from: armed_away
    to: pending
condition: []
action:
  - service: media_player.volume_set
    metadata: {}
    data:
      volume_level: 0.2
    target:
      entity_id: media_player.fire_tablet
  - repeat:
      sequence:
        - service: media_player.play_media
          target:
            entity_id: media_player.fire_tablet
          data:
            media_content_id: media-source://media_source/local/bedside-clock-alarm-95792.mp3
            media_content_type: audio/mpeg
          metadata:
            title: bedside-clock-alarm-95792.mp3
            thumbnail: null
            media_class: music
            children_media_class: null
            navigateIds:
              - {}
              - media_content_type: app
                media_content_id: media-source://media_source
      while:
        - condition: state
          entity_id: alarm_control_panel.alarmo
          state: pending
mode: single

Relevant log output
No response

I cannot help you with your automation, this is not part of alarmo.
You can use traces in HA to see which step fails, I would expect the triggering works OK.


James issues changes

Fix #39 and #48

The bookmarks did not seem to be working when I ran your branch on my machine. Not sure what went wrong.


Python 3.12.0 raises incorrect E231 in fstring

I have made a 3.11.6 & 3.12.0 venv's and installed flake8 on both with pip install --upgrade flake8. I then added a fstring with : in a script, VSCode incorrectly reports E231 (missing whitespace after ':') in the 3.12.0 environment, while no such error is reported on 3.11.6.

This is a vscode-flake8 and not a flake8 issue as there is no E231 reported by flake8 command.

@eXhumer Can you share the version of flake8 you have in each of the environments? Also, can you share the logs from Output > flake8.
In the logs it should show which version of flake8 is loaded and is being used. The extension itself does not generate any error codes. The only issue that I think here is that the extension is using the bundled version of flake8.
Please be careful when using pip command directly, it may not install it where you expect it to: https://snarky.ca/why-you-should-use-python-m-pip/?web=1

I have 6.1.0 installed in both environments.
Output Log for Flake8 from 3.12.0 environment: https://gist.github.com/eXhumer/b7d711d3b3cdd8ba2e3c42fc6dc06f77
Output Log for Flake8 from 3.11.6 environment: https://gist.github.com/eXhumer/5f98f90bef132371997cb77ed8090eff

@eXhumer From the logs it is picking up flake8==5.0.4. Set flake8.importStrategy to fromEnvironment to use flake8 from your environment.

That has fixed the issue for me, thanks. I hunted down the specific bug and this appears to be the problem. A permanent fix seems to be to upgrade flake8 to 6.1.0 where pycodestyle gets updated to 2.11.0, which includes the above mentioned PR.
Should I close this issue or keep it open till the bundled flake8 is updated?

Close it. For your needs you should have it set to fromEnvironment. We will be makeing a release soon-ish with 3.12 package updates.


fix domain func and top_level_domain func

fix domain func and top_level_domain func crash at none

should update the cargo version so that we can build a new release


Implement Eq for Map, Number and Value.

These types already have PartialEq implementations which define equivalence relations, so we can implement Eq as well. Fixes #638.

I failed to test locally with the preserve_order feature enabled. Fixed now.


automatically plotting surface plots from python script

Hi
I would like to automatically plot surface and contour plots of a specified section centred at predefined coordinates from a python script.
Reasoning: I would like to monitor in real time a stellar image from a live CCD feed (multi-exposure) as the fits files are displayed in ds9. I use xmccd lib to interface with Apogee CCD. It utilises ds9 to display the image data and saves the image to fits. A background script monitors the folder and as a new fits image is created runs a python script with imexam commands on the current image. I am able to scale and manage color and etc of the current image, but am unable to generate a surface plot and contour plot (as 2 separate windows) of the selected coordinates from the script.
Imaxime also has some issues using interactive commands during live image feed.
Please assist.
Regards
Pat van Heerden

Hi Megan
The additional errors are sorted. My xauth/xhost permissions for DISPLAY was not set.
This also sorted the manual interactive plotting commands during live feed.
Thus: Back to the scripts:
The script that monitors "feed" from camera is just a .sh script:
#/code start
DIR=./
inotifywait -m -r -e create "$DIR" | while read f
do
python colimage.py
done
#/code end
it runs colimage.py python script for each new image generated from the camera
colimage.py looks as follows:
#code start
import imexam
import os
import sys
import matplotlib
viewer=imexam.connect('ds9')         #connect to current active ds9
viewer.zoom('to fit')                            #reset zoom to fit view
viewer.scale('zscale')                            #scale image
viewer.scale('sqrt')                                #add scale image
viewer.cmap(color='heat')                #set cmap
viewer.panto_image(150,950)        #pan to section where ROI is
viewer.zoom(3)                                    #zoom in on ROI
#Additional code for plotting goes here
exit()
#code end
What I require is the following command sequence:
#code
#close active imexam() plot windows if any open
viewer.imexam()    #generate new instance
keystroke(e)     #contour plot of region at (150,950)
keystroke(2)    #pass next plot to new window
keystroke(w)    #surface plot of region at (150,950)
#end code
These events need to happen as "live" as possible. We need to collimate our 60inch telescope's primary mirror, and for that we need to actively monitor the out of focus stellar image shape (doughnut) for asymmetry while adjusting the mirror cell.
Your guidance is much appreciated
Thank you
Regards
Pat
[UFS Logo]
Dr. Hendrik Van Heerden
Sr Officer:ProfessionalServices*: Physics
Sr Bmpte:Vakk Dienste*: Fisika
Faculty / Fakulteit: Natural and Agricultural Sciences / Natuur- en Landbouwetenskappe
PO Box / Posbus 339, Bloemfontein 9300, Republic of South Africa / Republiek van Suid-Afrika
[http://apps.ufs.ac.za/emailsignature/siteimages/icon_tel.jpg] +27 (0)51 401 3509
[http://apps.ufs.ac.za/emailsignature/siteimages/icon_cel.jpg] +27 (0)72 996 3118
[http://apps.ufs.ac.za/emailsignature/siteimages/icon_fax.jpg] +27 (0)51 401 3507
[http://apps.ufs.ac.za/emailsignature/siteimages/icon_mail.jpg]<EMAIL_ADDRESS>[http://apps.ufs.ac.za/emailsignature/siteimages/icon_facebook.png]http://www.facebook.com/home.php#!/pages/University-of-the-Free-State/175257709184139 [http://apps.ufs.ac.za/emailsignature/siteimages/icon_twitter.png] http://twitter.com/#!/UFSweb  [http://apps.ufs.ac.za/emailsignature/siteimages/icon_youtube.png] http://www.youtube.com/UFSWeb
[http://apps.ufs.ac.za/emailsignature/siteimages/inspire.jpg]   [http://apps.ufs.ac.za/emailsignature/siteimages/inspireer.jpg]

From: Megan Sosey<EMAIL_ADDRESS>Sent: 16 July 2018 11:26 PM
To: spacetelescope/imexam
Cc: Hendrik Van Heerden; Author
Subject: Re: [spacetelescope/imexam] automatically plotting surface plots from python script (#143)
Hi Pat!
It would be great if you could paste here, or in another issue, the additional errors you get during interactive commands of the live image so we can investigate those issues.
For the surface and contour plots...are you generating the plots behind the scenes, ie: reading in the fits data and saving the plot, which you then view, or are you using imexam to get the data from the currently displayed ds9 image and show two plotting windows that contain the surface and contour plots for a specified location? This will help me figure out where the issue is originating.
cheers,
megan

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/spacetelescope/imexam/issues/143#issuecomment-405387211, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AnZOkm9fn9280FAmrRMkOyMq7pU0B-z0ks5uHQT2gaJpZM4VR0Hv.

University of the Free State: This message and its contents are subject to a disclaimer.
Please refer to  http://www.ufs.ac.za/disclaimer for full details.
Universiteit van die Vrystaat:
Hierdie boodskap en sy inhoud is aan 'n vrywaringsklousule onderhewig.
Volledige besonderhede is by http://www.ufs.ac.za/vrywaring  beskikbaar.

Hi Pat,
Glad the display is working now.
For the plotting, I think the easiest way to go is to open a separate plotting instance. You can do this regardless of the imexam() object that you already have interacting with ds9. You can either retrieve the data into an array from the viewer object and then use it, or you can read it in from file.
An example would be, starting with what you already have:
import imexam
import os
import sys
import matplotlib

viewer=imexam.connect('ds9')         #connect to current active ds9

If you wanted to load it withimexam, the command would be viewer.load_fits(filename). Continuing on with your example:
viewer.zoom('to fit')                     #reset zoom to fit view
viewer.scale('zscale')                  #scale image
viewer.scale('sqrt')                      #add scale image
viewer.cmap(color='heat')          #set cmap
viewer.panto_image(150,950)    #pan to section where ROI is
viewer.zoom(3)                           #zoom in on ROI

If you want to grab the image data that is already displayed in the viewer:
data = viewer.get_data()  # get the currently displayed frame data

If you want to load the data from a file on disk instead of directly from ds9:
from astropy.io import fits
data = fits.getdata(filename)

Now, you can make a separate plotting instance for displaying additional plots without destroying the ds9 instance that you're also using:
from imexam.imexamine import Imexamine
plotter = Imexamine()  # this object doesn't use a viewer, i.e. ds9

Now, you can either set the data that is always used for plotting:
plotter.set_data(data)
plotter.surface(150, 950)

Or, you can always pass the data array that you want plotted:
plotter.surface(150, 950, data)

To focus a new window call new_plot_window. The specification of numbers to this method is a side effect of the api right now, the numbers don't matter here
plotter.new_plot_window(0,0)

Now you can make the next plot:
plotter.contour(150, 950)  # if you used set_data
plotter.contour(150, 950, data) # if you didn't

you can close the plotting windows using
plotter.close()

.... and continue on . If this makes sense for what you want, and it works let me know!  Otherwise we can try a different method. I can think a little harder about the fastest way to do the plot+update if this method proves slow for you as well.
cheers
meg

ah yes, if you're just calling the script from the shell, as soon as the script terminates the windows will close.  The script didn't make it through, if you'd like you can send it directly to me at  sosey at stsci dot edu and I'll take a look.
The save works as you surmised, that command, plotter.save("filename") will save the current plot window to file, and it will be of the type specified in the extension of the filename, e.g.: plot.jpg  will be jpg, plot.pdf will be pdf...
Glad things are up and running! Feel free to open more issues if you have suggestions for improvements as well.


Collapsible documentation error

The documentation (website) for the "collapsible" component says that the active class should be added to the .collapsible-header but actually it should be added to the li that is the parent of said .collapsible-header.
https://github.com/Dogfalo/materialize/blob/c9363571a1fe60168d3833bf2b139b52723b5b04/jade/page-contents/collapsible_content.html#L83
Steps to Reproduce (for bugs)

Do what the documentation says (though not what it actually does)

Example here: https://codepen.io/jacobq_/pen/bJqmZo
Context
This type of subtle mistake often confuses me and leads to incorrect code.
Your Environment

Version used: 1.0.0

Fixed in 36ef3493


Update Visual Studio Gallery Description

As mentioned in the Visual Studio Gallery 'Q & A' section, the description as stated in the gallery is out of date, especially in the area regarding DLL test execution. The description should ideally be updated to reflect the current feature set of the project.

@netspiri could you make a proposal please. Will update the Visual Studio Gallery then.

Boost Test Adapter is available as an extension for Microsoft Visual Studio. It makes use of the Unit Test Explorer (UTE) provided by Microsoft to visualize and run unit test cases that are written using open source Boost Test Library.
Refer to http://www.boost.org/doc/libs/release/libs/test for detailed information on the Boost Test Library.
Pre-Requisites

Microsoft Visual Studio 2015
Boost Libraries v1.60 or greater

Supported Functionality

List all test cases
Execute all or select test cases
Convenient display of test output and details
Easy location of test cases and errors within code base
Search for test cases by specific criteria
Group tests by test suite, status and labels
Execute DLL test modules by making use of external test runners
And more as listed in https://github.com/etas/vs-boost-unit-test-adapter/wiki

Version History

https://github.com/etas/vs-boost-unit-test-adapter/releases

The Boost Test Adapter is an open source project. We are grateful for any contributions and support. https://github.com/etas/vs-boost-unit-test-adapter

It's replaced with text above. For 1.0.7 pre-requisites are different.


fix(tooltip): ensure tooltip stays within viewport

Adds a fallback position to ensure that tooltips can't go outside the viewport.
Refactors the transform-origin logic to depend on the overlay position, instead of the tooltip position.

Fixes #5428.

Addressed the feedback.

please rebase

sorry, needs rebase again


Update codecov-from-main.yml

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.51%. Comparing base (bd99837) to head (552bac4).

Additional details and impacted files
@@             Coverage Diff             @@
##              main      #26      +/-   ##
===========================================
- Coverage   100.00%   99.51%   -0.49%
===========================================
  Files            9        9
  Lines          889     1443     +554
===========================================
+ Hits           889     1436     +547
- Misses           0        7       +7

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


Calling static method in select and applying ToList produces wrong results.

Inconsistent behavior when calling extension method for projection (f.e. for mapping to DTO) with and without ToList. Looks like closure behavior. If call ToList on Select with static extension method call it produces duplicate values.
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;

namespace TestEF
{
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            => optionsBuilder.UseInMemoryDatabase();

        //=> optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=WonkyVB;Trusted_Connection=True;");
    }

    public class Blog
    {
        public int Id { get; set; }
        public string Title { get; set; }

        public ICollection<Post> Posts { get; set; }
    }

    public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }

        public int? BlogId { get; set; }
        public Blog Blog { get; set; }
    }

    public class PostDTO
    {
        public string Title { get; set; }
    }

    public static class Mappings
    {
        public static PostDTO From(this PostDTO dto, Post post)
        {
            dto.Title = post.Title;
            return dto;
        }
    }

    public class Program
    {
        public static void Main()
        {
            using (var context = new BloggingContext())
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                context.Add(new Blog
                {
                    Posts = new List<Post> { new Post { Title = "First" }, new Post { Title = "Second" }, new Post { Title = "Third" } }
                });
                context.SaveChanges();
            }

            using (var context = new BloggingContext())
            {
                var list = context.Posts.Select(p => new PostDTO().From(p)).ToList(); // Produces: Third Third Third
                //var list = context.Posts.Select(p => new PostDTO().From(p)); // Produces: First Second Third
                foreach (var item in list) Console.WriteLine(item.Title);
            }
        }
    }
}

Further technical details
EF Core version: 1.1.1
Database Provider: (Microsoft.EntityFrameworkCore.InMemory, Microsoft.EntityFrameworkCore.SqlServer)
Operating system: Windows 10
IDE: (e.g. Visual Studio 2017)

I investigated into this and this is bug in ReLinq's QueryParser.
When we get the expression tree (after ParameterExtraction) the LambdaExpression in Select has NewExpression for PostDTO which converts to ConstantExpression of PostDTO in QueryModel.SelectClause after ReLinq parses the query.
Generated QueryModel.ToString
{from Post p in value(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.QueryBugsTest+Post]) select value(Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.QueryBugsTest+PostDTO).From([p])}

@MichaelKetting

@dmitryshunkov - As a workaround you can move defining new PostDTO from select clause. Effectively write query like this
var list = db.Posts.Select(p => From(p)).ToList();

public static PostDTO From(Post post)
{
    var dto = new PostDTO { Title = post.Title };
    return dto;
}

@smitpatel to file a relinq bug on this

@smitpatel Yes, an issue would be much approciated for bookkeeping.
PS: Sorry, I thought that I already responded here but looks like it got lost in the inbox queue. I try to do a repro for this in the re-linq tests over the weekend but the next couple of weeks will be crazy for me so I can't make promises and I'll apologize in advance for any delays :)

Filed issue on Re-Linq https://www.re-motion.org/jira/browse/RMLNQ-112

@smitpatel Just for bookkeeping: Thanks for the repro, it was a great tool for reminding me this can (and is meant to) be solved in EntityFramework using exisitng re-linq parsing infrastructure (IEvaluatableExpressionFilter). Please check the RMLNQ-112 issue for details.

Closing this for now since the pattern is not super common and there is no easy solution that would not negatively impact other scenarios. We would consider re-opening this based on feedback from others hitting it.

Re-opening this. Since we are getting rid of ReLinq, we should look into supporting this kind of scenario. While this particular pattern may not be common, it is just a small subset of large scenario, in which user can call new class() which does not depend on range variable.

@smitpatel to provide workaround.


python311Packages.azure-mgmt-cosmosdb: 9.4.0 -> 9.5.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.azure-mgmt-cosmosdb is: Module to work with the Microsoft Azure Cosmos DB Management
meta.homepage for python311Packages.azure-mgmt-cosmosdb is: https://github.com/Azure/azure-sdk-for-python
meta.changelog for python311Packages.azure-mgmt-cosmosdb is: https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-cosmosdb_9.5.0/sdk/cosmos/azure-mgmt-cosmosdb/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 9.5.0 with grep in /nix/store/rj91si53y9dz0rpfafih0snk3d77544f-python3.11-azure-mgmt-cosmosdb-9.5.0
found 9.5.0 in filename of file in /nix/store/rj91si53y9dz0rpfafih0snk3d77544f-python3.11-azure-mgmt-cosmosdb-9.5.0

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

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

azure-cli
prowler
python311Packages.azure-mgmt-cosmosdb
python312Packages.azure-mgmt-cosmosdb

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rj91si53y9dz0rpfafih0snk3d77544f-python3.11-azure-mgmt-cosmosdb-9.5.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/5f80ec023697cdf8c9b9239dc14c76e7cce39870#python311Packages.azure-mgmt-cosmosdb

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rj91si53y9dz0rpfafih0snk3d77544f-python3.11-azure-mgmt-cosmosdb-9.5.0
ls -la /nix/store/rj91si53y9dz0rpfafih0snk3d77544f-python3.11-azure-mgmt-cosmosdb-9.5.0/bin

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

2 packages failed to build:

prowler
prowler.dist

6 packages built:

azure-cli
azure-cli.dist
python311Packages.azure-mgmt-cosmosdb
python311Packages.azure-mgmt-cosmosdb.dist
python312Packages.azure-mgmt-cosmosdb
python312Packages.azure-mgmt-cosmosdb.dist

Maintainer pings
cc @mwilsoncoding for testing.

Done in https://github.com/NixOS/nixpkgs/commit/ddeff5d193f2013c0b31a3e20e22c30bc35a2c95...


feat: add scroll for merchant, org, and profile dropdowns

Type of Change

[x] Bugfix
[ ] New feature
[x] Enhancement
[ ] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description
This PR fixes an issue where the merchant, org, and profile dropdowns were missing scroll functionality. The scroll has been added to improve usability when the dropdown content exceeds the visible area.
Changes

Added scroll functionality to the merchant, org, and profile dropdowns.
Ensured that overflow is handled correctly .
Added borders to avoid merging of profile dropdown with the background.

Before

After

Motivation and Context
To improve the user experience when interacting with the dropdown menus
How did you test it?
Working as described in description by adding multiple profiles and merchants.
Where to test it?

[x] INTEG
[x] SANDBOX
[ ] PROD

Checklist

[x] I ran npm run re:build
[x] I reviewed submitted code
[ ] I added unit tests for my changes where possible

Can you increase the width of the profile dropdown as in figma
Please verify that other dropdown components are not affected due to this as you have changed in SelectBox component


Return the value returned by the middlewareHandler

When using async disptachXXXAction, undefined was always return instead of a Promise. It was only caused by the middleware that doesn't returns the next action value.
With this fix when a disptachXXAction trigger a fetch request, you can chain the result.
Before:
const p = dispatchXXAction();
// p was always undefined so the next chaining failed
p.then(()=>{
 //  do something with the result of the promise
})

With this PR:
const p = dispatchXXAction();
// p is a promise so the next chaining works
p.then(()=>{
 //  do something with the result of the promise
})

@maxmantz


Link in the GitHub description gives a 404

We removed the documentation, so the link is dead :)

fixed (i.e. removed), thanks


Document API

Have some markdown documentation in the docs directory, and Doxygen comments for the source code.


Wraps .jsbeautifyrc file read into a try/catch since it could be no l…

…onger available.

Published to v0.28.23


THRIFT-3211: add php client compact protocol to make cross test

Note compact passes but json fails; tracking that failure in a related defect in Jira.

Looks like go server, php client cannot talk TCompactProtocol however php was able to talk to all other servers.

Maybe you want to run
test/test.py --update-expected-failures=merge

to add them to known failures as documented here.

I removed all PHP make cross exclusions except for "go-php" because they all fail.  "go" in general seems to have some fundamental issues playing nice with the other implementations.  There are a total of 156 test exclusions involving "go".

Given the rather large set of known failing tests, we should have Jira items tracking each language to language test failure.  I'm concerned these are somewhat accepted as normal rather than issues to resolve.

The "make cross" travis job is passing now, however another job failed for reasons I cannot tell, so I merged with master to see if this was something that someone else fixed.


folder page with a README: default to a hidden table

The hide option now renders as a table rather than a list.

Will merge this now so it is easy to see in the next deployment. Not a big deal if we don't like it, we can change it.


How to hide textbox

Hi,
I would like to use this color picker and I dont want to show the textbox along with the swatch. How is it possible to show only swatch.?
Could you please help me on this

@rajeeshivam The option is swatchOnly


Define a github action to check for typos.

Source code spell checker
https://github.com/crate-ci/typos
This is nice, my quick run returned 49 typos in our code.
We should add it to CI,

merged in https://github.com/build-trust/ockam/pull/5291


Preserve given status when response body is null/undefined

Koa should preserve status to a greater extent, as it's replacing what the user added if certain situations happens (null/undefined body)
Suppose a basic app with no middlewares
app.use((ctx, next) => {
  ctx.status = 404;
});

This sets the body to the plain text "Not Found", however there's no need to place any redundancy, as 404 already implies that, and when there's no useful info to return it's better to omit the body completely. However if you explicitly set the body to null, koa changes the status to 204 automatically
app.use((ctx, next) => {
  ctx.status = 404;
  ctx.body  = null; // same case when setting ctx.body = undefined
});

Of course 204 is no expected response for a "not found" response, so the only way to proceed is sending a redundant body. I'm aware of #1421 but this is not the same case, I don't want to return null or 'null', there shouldn't be any body at all (like 204 does).

Problem lies on:
https://github.com/koajs/koa/blob/8ddab48cbdbca1e6d1cc8c3ddae45491db524d51/lib/application.js#L240-L251
Maybe adding another block to call res.send() without anything else?
if (null == body) {
   // proposed solution means using ONLY ONE of those
   if (null === body || undefined === body || configVariable === true) {
     return res.end();
   }
   if (ctx.req.httpVersionMajor >= 2) {
     body = String(code);
   } else {
     body = ctx.message || String(code);
   }
   if (!res.headersSent) {
     ctx.type = 'text';
     ctx.length = Buffer.byteLength(body);
   }
   return res.end(body);
 }


404 page links.

On page https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist#teams-app-validation-tool
These links lead to 404 error pages:

Teams Visual Studio Code toolkit
App Studio

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

ID: 3df9a819-4eb0-e650-ef6b-5eeaa265c317
Version Independent ID: ed71ed64-970d-7820-4229-c1e6896a8896
Content: Submission checklist - Teams
Content Source: msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
Product: msteams
GitHub Login: @laujan
Microsoft Alias: lajanuar

@DomWill: Thanks for reporting this. We are working on correcting this.

@DomWill - Looks like contents are already updated.
We are closing this issue for now, Please feel free to reopen it, if required.


Support delay option

The goal is to be able to delay the request. Sometimes requests take long time and it would be great to set the same latency in the mock to see how the application handles this latency.

And some doc in the README too 🎁

Sure, I'll try take time to complete the README and the tests this week-end 👍

This is amazing! I didn't notice your pull request and made almost the same thing.
[Add support for asynchronously delaying mocked responses #52]
I see you missed adding unit tests for the code.
Also I checked if context.delay is a number to even allow 0 as a timeout.
Maybe you could go over my code and see what you can add from it, and I will cancel my PR.
Great minds think alike 😄

Maybe we could use your PR instead of mine since they are almost the same but you've already written some tests and docs 👍
Should I close this PR then and make comments on your PR?

Sure, make your comments on mine


Add ability to have "Choice" items left justified

Currently each item in a "Choice" is always centered.  I'd like the option to left justify the items. Sometimes left justification makes the syntax easier to understand.
Below is an example. The first image is generated by "railroad-diagrams" (with some additional coloring). The second is a photoshopped example of the same SVG with the "Choice" items left justified.
Image 1

Image 2

Is this something you want for an individual Choice, or for all the items in the diagram? Because the latter is already supported - one of the global options lets you toggle between justifying center/left/right whenever there's free space.

I thought the fact that it is centered might mean there already was a way to easily control justification, it's just that I don't know how, and opening an issue was the only way to ask. Hope you don't mind.
Given it's possible could you tell me how.  Thanks

All the global options are documented in the README; for Python they're module-level globals, for JS they're in the Options export

Mmmm.  I'm just a user of the dingus. Not of your code.  I write the statements on the dingus page, get my diagram drawn for me, and then cut and paste the screen image.  Thanks anyway.

Oh, I see! Hm, I don't have the ability to control what comes out of the dingus yet. I can add that, def.

All right, as soon as gh-pages decides to update, the dingus will have all the relevant global options available for you to tweak! I don't yet track those in the URL, tho; I probably should.


Testing Flutter on am62xx meta-ti kirkstone latest

Hi
meta-ti recently add a lot of patches to enable the graphics on kirkstone. I tested weston-simple-egl today and works well so I decided to test Flutter.
First build complained about Vulkun libs, So I decided to remove Vulkan from the build config:
Before add DISTRO_FEATURES:remove = "vulkan "
root@am62xx-evm:/var/rootdirs/home/fio# flutter-auto --b=/usr/share/flutter/gallery/3.7.7/release/
[INFO:main.cc(85)] agl @ 4dbc64f
[INFO:configuration.cc(284)] **********
[INFO:configuration.cc(285)] * Global *
[INFO:configuration.cc(286)] **********
[INFO:configuration.cc(287)] Application Id: .......... flutter-auto
[INFO:configuration.cc(291)] Cursor Theme: ............
[INFO:configuration.cc(292)] Disable Cursor: .......... false
[INFO:configuration.cc(294)] Debug Backend: ........... false
[INFO:configuration.cc(296)] ********
[INFO:configuration.cc(297)] * View *
[INFO:configuration.cc(298)] ********
[INFO:configuration.cc(305)] Bundle Path: .............. /usr/share/flutter/gallery/3.7.7/release/
[INFO:configuration.cc(306)] Window Type: .............. NORMAL
[INFO:configuration.cc(307)] Output Index: ............. 0
[INFO:configuration.cc(309)] Size: ..................... 1920 x 720
[INFO:configuration.cc(314)] Fullscreen: ............... false
[INFO:configuration.cc(316)] Accessibility Features: ... 0
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/third_party/filament/libs/bluevk/src/BlueVKLinuxAndroid.cpp(54)] Unable to load Vulkan from libvulkan.so.1
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/wayland_vulkan.cc(38)] BlueVK is unable to load entry points.

After add DISTRO_FEATURES:remove = "vulkan " I got this error:
root@am62xx-evm:/var/rootdirs/home/fio# flutter-auto --b=/usr/share/flutter/gallery/3.7.7/release/
[INFO:main.cc(85)] agl @ 4dbc64f
[INFO:configuration.cc(284)] **********
[INFO:configuration.cc(285)] * Global *
[INFO:configuration.cc(286)] **********
[INFO:configuration.cc(287)] Application Id: .......... flutter-auto
[INFO:configuration.cc(291)] Cursor Theme: ............
[INFO:configuration.cc(292)] Disable Cursor: .......... false
[INFO:configuration.cc(294)] Debug Backend: ........... false
[INFO:configuration.cc(296)] ********
[INFO:configuration.cc(297)] * View *
[INFO:configuration.cc(298)] ********
[INFO:configuration.cc(305)] Bundle Path: .............. /usr/share/flutter/gallery/3.7.7/release/
[INFO:configuration.cc(306)] Window Type: .............. NORMAL
[INFO:configuration.cc(307)] Output Index: ............. 0
[INFO:configuration.cc(309)] Size: ..................... 1920 x 720
[INFO:configuration.cc(314)] Fullscreen: ............... false
[INFO:configuration.cc(316)] Accessibility Features: ... 0
[INFO:engine.cc(577)] (0) Loading AOT: /usr/share/flutter/gallery/3.7.7/release//lib/libapp.so
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(552)] **** EGL Error
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(553)] 	error: 12291
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(554)] 	command: eglMakeCurrent
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(560)] 	error: EGL_BAD_ALLOC
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(596)] 	messageType: 13241
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(597)] 	threadLabel: (nil)
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(598)] 	objectLabel: (nil)
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(599)] 	message: failed to allocate color buffer
libEGL warning: DRI2: failed to rebind the previous context
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(552)] **** EGL Error
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(553)] 	error: 12297
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(554)] 	command: eglMakeCurrent
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(578)] 	error: EGL_BAD_MATCH
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(596)] 	messageType: 13242
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(597)] 	threadLabel: (nil)
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(598)] 	objectLabel: (nil)
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(599)] 	message: eglMakeCurrent
[ERROR:/usr/src/debug/flutter-auto/git-r0/git/shell/backend/egl.cc(98)] Make current failed: 12297
[FATAL:flutter/shell/gpu/gpu_surface_gl_delegate.cc(57)] Check failed: gl_version_string. The GL proc resolver's glGetString(GL_VERSION) failed
Aborted

So any suggestion on what could be happening?

Hi @jwinarske I made some progress on the am62xx.
I add some patches that are still on the list and did some adjusts to have all libs in place.
Now I'm getting a different error. I do have vulkan enalbed!
flutter-auto --b=/usr/share/flutter/gallery/3.7.7/release/ --w=800 --h=600
[INFO:main.cc(85)] agl @ 4dbc64f
[INFO:configuration.cc(284)] **********
[INFO:configuration.cc(285)] * Global *
[INFO:configuration.cc(286)] **********
[INFO:configuration.cc(287)] Application Id: .......... flutter-auto
[INFO:configuration.cc(291)] Cursor Theme: ............
[INFO:configuration.cc(292)] Disable Cursor: .......... false
[INFO:configuration.cc(294)] Debug Backend: ........... false
[INFO:configuration.cc(296)] ********
[INFO:configuration.cc(297)] * View *
[INFO:configuration.cc(298)] ********
[INFO:configuration.cc(305)] Bundle Path: .............. /usr/share/flutter/gallery/3.7.7/release/
[INFO:configuration.cc(306)] Window Type: .............. NORMAL
[INFO:configuration.cc(307)] Output Index: ............. 0
[INFO:configuration.cc(309)] Size: ..................... 800 x 600
[INFO:configuration.cc(314)] Fullscreen: ............... false
[INFO:configuration.cc(316)] Accessibility Features: ... 0
[INFO:wayland_vulkan.cc(135)] Enabling 2 instance extensions:
[INFO:wayland_vulkan.cc(138)]   - VK_KHR_surface
[INFO:wayland_vulkan.cc(138)]   - VK_KHR_wayland_surface
[INFO:wayland_vulkan.cc(384)] vendor 1010, device 33011003, driver 61b995, api 1.3
[INFO:engine.cc(577)] (0) Loading AOT: /usr/share/flutter/gallery/3.7.7/release//lib/libapp.so
[ERROR:flutter/shell/common/platform_view.cc(74)] Failed to create platform view rendering surface

On the strace, the error seems to be on memory allocation:
munmap(0x7fbc7a9000, 608)               = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\26\0\0\0\0\0\10\0\24\0\0\0\3\0\20\0\27\0\0\0\v\0\0\0\1\0\0\0\0\0\f\0"..., iov_len=36}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 36
ppoll([{fd=3, events=POLLIN}], 1, NULL, NULL, 0) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\26\0\0\0\27\0\0\0\1\0\f\0`\2\0\0\27\0\0\0\2\0\24\0"..., iov_len=2956}, {iov_base="", iov_len=1140}], msg_iovlen=2, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[15]}], msg_controllen=24, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 204
mmap(NULL, 608, PROT_READ, MAP_PRIVATE, 15, 0) = 0x7fbc7a9000
close(15)                               = 0
openat(AT_FDCWD, "powervr.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/powervr.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
ioctl(5, DRM_IOCTL_AMDGPU_GEM_CREATE or DRM_IOCTL_VIA_ALLOCMEM, 0x7fef587198) = 0
ioctl(17, DRM_IOCTL_VERSION, 0x558f62af50) = 0
ioctl(17, DRM_IOCTL_VERSION, 0x558f62af50) = 0
ioctl(17, DRM_IOCTL_MODE_CREATE_DUMB, 0x7fef587438) = -1 ENOMEM (Cannot allocate memory)
ioctl(5, DRM_IOCTL_AMDGPU_GEM_CREATE or DRM_IOCTL_VIA_ALLOCMEM, 0x7fef587278) = 0
write(2, "[ERROR:/usr/src/debug/flutter-au"..., 115) = 115
write(2, "[ERROR:/usr/src/debug/flutter-au"..., 112) = 112
exit_group(1)                           = ?
+++ exited with 1 +++

ioctl(17, DRM_IOCTL_MODE_CREATE_DUMB, 0x7fef587438) = -1 ENOMEM (Cannot allocate memory)
Any suggestions?

Could be a missing dt entry.  Does egl behave the same way?  vulkaninfo returns without error?  It could also be a Compositor path issue.  I would start with Vulkaninfo, then when stack is properly loading try other Vulkan apps, small then bigger.  I merged some updates from a TI dev into meta-vulkan.  He was adding x11 support...  It might be they only have x11 flushed out.
https://github.com/jwinarske/meta-vulkan

@StaticRocket
Tested targets images for meta-vulkan prior to your recent changes were Wayland (no X11) for:

Raspberry Pi 4
Qualcomm SA8155

@munoz0raul Heads up.  I'm back on AGL work as we locked for production cycle.  I just verified ivi-homescreen running GLES2/EGL backend on the SK-TDA4VM (PowerVR GE???).  Same SoC as on the BeagleBone AI64.  This is with X11 removed from the image.  For Vulkan there is a hard dependency on X11; which needs to be addressed.  I did just order a SK-AM69.  Automotive Grade Linux (AGL) is planning to pick up support for the BeagleBone AI64.  I may be demoing future tech at CES with the SK-AM69.  X11 is out of the question across the board.
@StaticRocket why are the X11 deps required, and what is a timeline to factor out the dependencies?

@jwinarske WSI extensions. IMG has their own implementations instead of relying on the dynamic window system extensions provided by mesa. This introduces a hard runtime dep. We were experimenting with Zink on beagle so we've been enabling the X extensions but after some debate this may not be reasonable moving forward. I'll drop them at some point. Right now I'm still reanimating the corpse of SGX for legacy devices.

@StaticRocket ah bummer.  I see a CPU load decrease of ~48% with ivi-homescreen running the Vulkan backend vs GLES2/EGL.  I am raising the question on their forum to see what I get.  Thanks.
@munoz0raul  SK-TDA4VM
Apr 28 10:42:34 tda4vm-sk weston[551]: [10:42:34.985] GL version: OpenGL ES 3.2 build 23.1@6404501
Apr 28 10:42:34 tda4vm-sk weston[551]: [10:42:34.986] GLSL version: OpenGL ES GLSL ES 3.20 build 23.1@6404501
Apr 28 10:42:34 tda4vm-sk weston[551]: [10:42:34.986] GL vendor: Imagination Technologies
Apr 28 10:42:34 tda4vm-sk weston[551]: [10:42:34.986] GL renderer: PowerVR Rogue GE8430

@StaticRocket I think the solution to remove link time dependencies is extremely easy.  Function pointers.  Dlopen, check the version, assign the function pointers.  Is that something imagination would need to provide?

As it stands currently, yes. Though I would much rather they just use the mesa standard WSI extensions at that point... We'll bring it up with them. Bigger fish to fry at the moment though.

@StaticRocket response from Imagination support:
After checking with our DDK linux team on this, I was told that “For Vulkan, the various supported window systems are specified when the DDK is built, using the SUPPORT_VK_PLATFORMS environment variable” which is set according to the platforms supported in Yocto e.g. which may not be the case with TI. They think the problem here could be that the IMG DDK Vulkan library is closed source, and so TI build it with all window systems enabled, to cover all potential use cases, and distribute it in binary form to customers" To confirm which we would need to discuss with TI if that is the case here.

It's clearly an implementation issue on their end.


torch verision conflict with the arch with A100/3090?

Hi, thanks for your impressive work.
I just got some issue when I attemped to deploy this repo on my cluster (with 8 A100 GPU)
First I request more than 100Gb memory but still got the segmentation fault error, it is about the memory leaking, does it mean there is any memory sensitive operation in the code?
Also, when I check the package verision, I found the torch is set as 1.9, but my torch is 1.13 with CUDA 11.6.
Does this code only work with the torch 1.9, becasue the current arch GPU, such as A100/A6000/3090 only support torch>1.11?
Looking forward to your resposne!
Best Regards

Hi @cheliu-computation,
Can you provide more details on what CMD you are running now?
BTW. Now our Python scripts are for single-gpu running, and no DDP has been added yet.


fixes #270 : persistent queue auto cleanup handling in compliance to the recent ve…

Thanks for your pull request.  Please review the following guidelines.

[X] Title includes issue id.
[X] Description of the change added.
[X] Commits are squashed.
[x] Tests added/updated.
[X] Documentation added/updated.
[X] Also please review CONTRIBUTING.md.

Description:
Implements a standard resources cleanup function which clean queue files when all outputPorts (subscribers) acknowledge onReleased callback.

@SarathChandran I think the main thing is to change the commit message and the PR title as @anilgursel suggested. The other parts are minor to me. But please do take care of those. Thanks very much @anilgursel for the other pair of eyes.

@SarathChandran I might have missed it, is there any test case for testing the auto delete?  We should have on for PersistentBuffer and one for BroadcastBuffer, I mean, making sure that we actually delete the files.  There seems to be a TEST_SECONDLY option, which might help on this https://github.com/OpenHFT/Chronicle-Queue/blob/master/src/main/java/net/openhft/chronicle/queue/RollCycles.java#L21.

@SarathChandran Let's tackle the if (minCycle() >= cycle) issue in the PR and work on the optimization with another PR afterwards.  Let's get this merged.


issues with typings of svg elements

Amazing work! I've been trying to roll my own createElement/JSX suite, but this will save me weeks!
Only two minor issues that is a bit of a pain right now.
The property class?: ClassNames is missing on interface interface SVGAttributes<T> in index.d.ts
It would also be great if interface SVGProps<T> could be exported so that i can declare typed vars to keep refs to svg elements.
Thanks for a great lib!

This will be done by next release soon.


survey forms for event + eventGroup

@steve-crouch has put together a great set of survey questions based on those used at the southampton pilots. It would be good to incorporate them as feedback froms into gutenberg. Perhaps:

Pre-event questionair: This might be event specific so would be difficult to implement as I'm not sure how you could automatically generate a form from a supplied desciptor. You sorta can do it using json-schemas, but its fiddly
Post-event questionair: Again very event specific so not sure how to implement this. Could just link to a google/microsoft form? Put the link into the event content markdown
feedback for eventGroup. This I can see being easier to implement as the questions are very generic, so could put together a standard form. Then each eventGroup has a link to the feedback from for that eventGroup, and stored in the dbase linked to that particular eventGroup

You can find the survey questions here for each of these in a GoogleDoc here.
So yes, the lowest-hanging fruit is likely survey 3 above (the daily feedback), which can be found on page 3.


add: Uniasselvi domain

Adding Uniasselvi (Centro Universitário Leonardo da Vinci) domain.
Official website: https://portal.uniasselvi.com.br/
Graduation with 2.5 years duration: https://portal.uniasselvi.com.br/graduacao/tecnologo/analise-e-desenvolvimento-de-sistemas/ead
Email example<EMAIL_ADDRESS>Proof that the university recognizes the email as an institutional email: https://portal.uniasselvi.com.br/cursotecnico-institucional/duvidas/quais-informacoes-devo-saber-para-o-primeiro-acesso-ao-ambiente-virtual-de-aprendizagem-ava

@douglasbello I am sorry, the domain aluno.uniasselvi.com.br is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Add a spec for interrupt trapping in Runner

The Runner.trap_interrupt method was missing a spec. My goal is to extend interrupt handling per tenderlove's feature request https://github.com/rspec/rspec-core/issues/2055, but I wanted to make sure there was a spec in place first.

It looks like this failed some Ruby versions in the Travis CI build, namely all JRuby and 1.9.2 MRI. I'm going to investigate to see if I can determine the issue.

The 1.9.2 build is possibly just a flake, and it's entirely possible that JRuby doesn't support signal handling

JRuby claims to, though I wouldn't be surprised if there were differences. I'm currently working to diagnose the JRuby issue.
If it turns out that this is non suppported, what's your recommendation? Is the spec not viable, or is it possible to limit this to MRI? What about 1.9.2? I'm having trouble getting the script to even run in that version though it's obviously setup on my end causing the issue.

I can confirm that I'm able to trap SIGINT in a basic Ruby script with jruby 1.7.19 (1.9.3p551), and changing the trap syntax to pass in a proc object doesn't seem to help at all. Unfortunately I'm probably beyond my capacity on this one, but will continue poking.

I have this gist which runs successfully. Per Charles Nutter I'm filing this as a JRuby bug, but don't seem to be able to reproduce in just JRuby.

@myrridin is this still something you'd like to continue with? Would love to see this merged

I can definitely take a fresh look. I've got an issue open on the jruby repo, but this doesn't appear to be an actual jruby bug. I'll do what I can to get this across the finish line. Thanks for checking in :-)

@myrridin cool, thanks. Are you likely to be able to push more code in the next week?

If I'm going to get it, it will be in the next week. If my second attempt doesn't work out I'll have to pass along as beyond my capabilities (or temporal capacity) :-) I'll do my best to update here regardles of the outcome.

I changed up my approach here. This is borrowed directly from Rubocop: https://github.com/bbatsov/rubocop/blob/33aa8bcc3f50e545f97043b7eb7fd7228c4476da/spec/rubocop/cli_spec.rb#L2176
The idea is that instead of sending a SIGINT directly to the process as it runs, you capture the interrupt handlers that were created and manually call them.
The other solution was to add a sleep into the previous test, which felt wrong to do. The problem with signal handling is that there's no way I could figure out to block until the signal was processed. If I artificially delayed before the end of the spec I had full green every time, but the whole approach seemed to be going about it in the wrong way.
A friend of mine pointed me to this file and it seemed like a much better way to go about it.

That passes jruby but fails MRI now :-(
Please hold. I will definitely complete this. On a mission now.

I went back to the basic version and tried to rebase it, along with a merge from master. I'm not used to working on larger repos like this, so let me know if I did something I shouldn't have. Expect these to pass this time, though I'll keep an eye on them.

Ok I remade this PR to clean up the git issues I introduced: https://github.com/rspec/rspec-core/pull/2132

Thanks :)


How to publish a pilet built by webpack

When publishing, pilet publish internally calls the parcel build command, so how to publish the pilet built using webpack?

You can just build it, pack it and publish it.
Only publish with --fresh calls the standard build command. Without --fresh it just uses *.tgz or the tgz that you specified.
One example is:
pilet build-wp && pilet pack && pilet publish --url ... -api-key ... && rm *.tgz

Got it, thanks!

One more remark @carvinlo:
With 0.11.5 of the Piral CLI we will also introduce the pluggable build system. Then the webpack integration will change such that piral build or pilet build will resolve to webpack (if this plugin is installed).
As a result pilet publish with --fresh will use webpack in this case!
I'll let you know when we are there.

One more remark @carvinlo:
With 0.11.5 of the Piral CLI we will also introduce the pluggable build system. Then the webpack integration will change such that piral build or pilet build will resolve to webpack (if this plugin is installed).
As a result pilet publish with --fresh will use webpack in this case!
I'll let you know when we are there.

Waiting for good news !


Change allocated cpu units to floats in the json object

/cc @tpetr

could you use double to match the original protobuf? https://github.com/apache/mesos/blob/0.23.0/include/mesos/mesos.proto#L555-L650

Can do

@kwm4385 after looking closer, those two fields are supposed to be long, not double, so I dont think they're causing the resources UI bug. made appropriate changes in commit above.

Does this solve the original issue?


[Feature Request]: Adding missing solutions for Leetcode problems 314 and 315.

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
I propose adding documented solutions for the following LeetCode problems to the project repository:
Problem 314: Binary Tree Vertical Order Traversal
Problem 315: Count of Smaller Numbers After Self
This involves providing clear, commented code solutions along with explanations of the approaches used for each problem.
Use Case
Use Case for Problem 314 (Binary Tree Vertical Order Traversal):
Traversing a binary tree and retrieving nodes in vertical order, which is useful for visualizing tree structures from different perspectives.
Implementing algorithms for hierarchical data representation and vertical level traversal, applicable in scenarios like graphical data presentation and tree-based layouts.
Use Case for Problem 315 (Count of Smaller Numbers After Self):
Counting the number of smaller elements that appear after each element in an array, which is useful for solving problems related to ranking and sorting.
Applying algorithms to analyze and rank data efficiently, valuable in applications like real-time analytics and data sorting.
Benefits
Practical Solutions: Provides practical implementations for vertical order traversal of binary trees and efficient counting of smaller numbers in arrays.
Educational Resource: Enhances project documentation with detailed examples of tree traversal techniques and data ranking algorithms.
Community Engagement: Encourages collaborative learning and contributions, fostering a stronger developer community around algorithmic problem-solving and data analysis.
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

@Ajay-Dhangar Sir kindly assign me this under gssoc 2024


.GetParam used in Disqus internal template

Hi.
After upgrading to v0.55.0 I am getting this warning…
Building sites … WARN 2019/04/09 11:07:46 Page's .GetParam is deprecated and will be removed in a future release. Use .Param or .Params.myParam.

I realised that I don't use .GetParam on my project. Turns out the warning is coming from Disqus internal template. Would be cool to update them.
Thanks for building amazing project!

Good catch, sorry about that.

No worries. At leat it should be easy to fix :)


⚠ Avatar API Endpoint has degraded performance

In c63b84d, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 4158 ms

Resolved: Avatar API Endpoint performance has improved in ff55efb after 8 minutes.


Change rarity percentages

We'd like to change the rarity percentages to increase the variety of items we see in the app.  Rare colours should be less rare.

@alse Decision to change rarity percentages to:

Blue: 40%
Green: 30%
Purple: 20%
Gold: 10%

Closing since issue has been resolved


Email mask doesn't validate if field type is email

Describe the bug
When email mask applied to the input field, the mask works if the field type is text, and it doesn't if field type is email.
Expected behavior
It should show the placeholder<EMAIL_ADDRESS>on hover over. It should work as an input mask where, when typed it, it shows the remainder of the mask to fill in.
Live example
https://jsfiddle.net/1qe2rbtb/

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser: Chrome
Version: 72.0.3626.119

@trodicaro ,
See https://github.com/RobinHerbots/Inputmask/issues/828#issuecomment-76715820


Reset player after dynamic update of config

I'm trying to have a video play in background mode (looping, muted, no controls) until it is clicked, then to restart as per usual with the full player. Updating the Vimeo player's config prop dynamically doesn't seem to work. It would be great to either fix that or to have an instance method to re-initialise the player.
Current Behavior
Changing config dynamically does not update the player
Expected Behavior
Changing config dynamically should update the player, or the player should provide a reset method on the instance
Steps to Reproduce

Set background: true on Vimeo player
Programatically set background: false on playing Vimeo player
Watch as nothing changes

Environment

Browser: Chrome
Operating system: macOS

Could you provide a code example? I can try to take a look

i have the same issue how to update config dynamically so that its reflect on the player


Release Google.Cloud.Talent.V4 version 2.0.0

Changes in this release:
This is the first version of this package to depend on GAX v4.
There are some breaking changes, both in GAX v4 and in the generated code. The changes that aren't specific to any given API are described in the Google Cloud documentation. We don't anticipate any changes to most customer code, but please file a GitHub issue if you run into problems.
The most important change in this release is the use of the Grpc.Net.Client package for gRPC communication, instead of Grpc.Core. When using .NET Core 3.1 or .NET 5.0+ this should lead to a smaller installation footprint and greater compatibility (e.g. with Apple M1 chips). Any significant change in a core component comes with the risk of incompatibility, however - so again, please let us know if you encounter any issues.
New features

Add a new operator on companyDisplayNames filter to further support fuzzy match by treating input value as a multi word token (commit 1de79aa)
Add a new option TELECOMMUTE_JOBS_EXCLUDED under enum TelecommutePreference to completely filter out the telecommute jobs in response (commit 1de79aa)

Deprecations

Deprecate option TELECOMMUTE_EXCLUDED under enum TelecommutePreference (commit 1de79aa)

Created release for Google.Cloud.Talent.V4-2.0.0


Make EventLoopFuture.hopTo(eventLoop:) public again.

This was accidentally made internal with https://github.com/apple/swift-nio/pull/947.
Maybe there should be a separate test case file (with a non-@testable import) that verifies that all public interfaces are still present?

@swift-nio-bot test this please

Verify API / ABI breakage would be good for sure... I wonder if there is anything similar to what we have in java to verify this sort of stuff in netty:
https://siom79.github.io/japicmp/MavenPlugin.html
Basically it always confirms the current "branch" to the last stable release and fails the build if there is an API / ABI issue.

Verifying ABI breakage is not relevant due to the lack of stable ABI on Linux, so we don't need to worry about that.
Verifying API breakage in Swift is an unsolved problem. We'd have to invest time in writing tooling that presumably uses SwiftSyntax or something similar to generate an idea of what the public interface to SwiftNIO even is, and then to write diffing tools that understand the semantic nature of the changes. This is a hard problem.
Writing tests that don't use @testable imports is always better: we should consider whether we can split these future tests up to avoid doing so.

Verifying API breakage in Swift is an unsolved problem. We'd have to invest time in writing tooling that presumably uses SwiftSyntax or something similar to generate an idea of what the public interface to SwiftNIO even is, and then to write diffing tools that understand the semantic nature of the changes. This is a hard problem.

I think Xcode sometimes gets confused when Cmd-clicking a library symbol and only shows that library's exports, rather than the implementation source file. Maybe that could be a place to start. I could imagine that it would be easier to simply wait until that tooling has improved though, rather than invest unreasonable amounts of time now.

Ouch! I think the Swift team somewhere have a public API diffing tool. We need that kind of thing.


build(ci): Use Python 3.8 on CI

Done to ensure compatibility with somewhat older Python versions.

That should prevent future issues. @ahirner


Displaying skills in descending average ratings order

Fixes #337
Changes: Skills are displayed in descending order of average ratings
Screenshots for the change:

@chashmeetsingh 4 and 3 are total ratings. We are ordering here in descending order of average ratings. (Displayed as filled yellow stars)

Oh ok.


Allow infra files location override

Right now we default to infra files being located in the /infra folder.  Let's allow developers to override that location.
Potential places to allow override.

In azure.yaml
In root .env
In env .env

@jongio @ellismg
Is this a must-fix for the upcoming milestone (Release 0.2 - Sep 7)?

If yes, please add it to Aug iteration.
If not, please move it to On Deck (has to be addressed post Release 0.2) or Backlog.

This was completed during the provider implementation #227


Place function error

Describe the bug
I have a problem. When i load an image with read function (ImageManager::read(), and i create a text image like this https://prnt.sc/t3CLPvMMPnmm, it creates it with good background and good text color and font and(all other attributes). But when i try to add new text image to my 'MAIN' image it colors go nuts: https://prnt.sc/7utg9svba4V-
EDIT: When I add element with text to empty image (filled with white background with fill()
example:
$image = $manager->create($this->width, $this->height)->fill('#fff');
$image->place($textImage, 'top-left', $textElement['x'], $textElement['y']);
) this error occurrs.
Code Example
            $textImage = $manager->create($textElement['width'], $textElement['height']);
            $backgroundColor = $textElement['textStyle']['background-color'] ?: null;

            if ($backgroundColor)
            {
                $textImage->fill($backgroundColor);
            }

            $textImage->text($textElement['textStyle']['text'], $textElement['width'] / 2, $textElement['height'] / 2, function (FontFactory $font) use ($textElement) {
                $font->filename(public_path('fonts/' . $textElement['textStyle']['font-family'] . '.ttf'));
                $font->size((int)$textElement['textStyle']['font-size']);
                $font->color($textElement['textStyle']['color']);
                $font->align('center');
                $font->valign('middle');
            });

            $textImage->save($elementPath);

            $clone->place($textImage, 'top-left', $textElement['x'], $textElement['y']);
            $clone->save($clonePath);

Expected behavior
I want to just place the image to another image as it is, i don't understand why place is changing the colors of the image that is placed to main image..
Environment (please complete the following information):

PHP Version: 8.1
OS: Windows 10
Intervention Image Version: v3
GD or Imagick: Imagick driver

The problem is that Imagick automatically chooses the output format for PNG depending on the color scheme of the image. If the image has only one color (white), as in this example, it is automatically saved in grayscale PNG format. Of course, this has the disadvantage that the colored image added later loses its colors when it becomes part of the parent image through place().
This is a tricky issue related to the different PNG formats, for which there is currently no real control in this library. I will look into it.

This should now work with version 3.8.0.


CSRF vulnerability

A Cross-Site Request Forgery (CSRF) vulnerability permits attackers to take advantage of a legitimate user’s session to perform unauthorized actions on behalf of that user. Effectively, anything the given user has permissions to do,can be done without their knowledge by the attacker. These attacks can be very difficult to trace, as the activity appears to come from the authorized user.
This vulnerability is usually exploited with a specially crafted link that the user is asked to visit but, in conjunction with a persistent XSS vulnerability, it is possible to eliminate the need for a user to take any action.This attack is made possible because MySQL Simple Admin does not verify the origin and authenticity of requests before processing them. All pages that process requests that update data are vulnerable.
MySQL Simple Admin currently ignores REDCap's CSRF protection token, redcap_csrf_token.
Submitting a POST to /ExternalModules/?prefix=mysql_simple_admin&page=index with the following values results in a response showing the contents of the auth table:
Upgrade-Insecure-Requests: 1

-----------------------------37166120963254603381588180274
Content-Disposition: form-data; name="query"

select * from redcap_auth
-----------------------------37166120963254603381588180274
Content-Disposition: form-data; name="redcap_csrf_token"

ignored
-----------------------------37166120963254603381588180274--

If combined with a Cross-Site Scripting vulnerability, data extraction from this module would be extremely simple.

@utiso Just an FYI, all REDCap external modules lack CSRF protection. It is not a built-in thing, plus i'm not aware of other module creators building their own module-level CSRF protection. So this is not surprising at all; it is a known thing. However, our team has begun prioritizing adding CSRF protection natively to the REDCap External Module Framework so that all modules can utilize it in the near future. So for this module, we'll wait until that feature has been added to the framework and add CSRF protection for it then. Thanks!


Add and remove some unit tests in gcm module

Add tests for arrow strength estimation in a setting there graph and models are misspecified
Add tests for checking linear relationships
Add tests to verify that default (auto) fitted models are accurate enough to capture the data statistics
Add tests for mechanism change test
Add tests for the _noise module, such as reconstructing the noise or estimating data based on given noise
Add tests for some general utility functions such as shaping a numpy array into 2d
Remove test for feature relevance with confidence intervals, since the confidence interval method and feature relevance method are tested separately

Can you add a brief description/overview of what kind of tests you're removing and what you're adding? So someone looking at this gets some context.

Can you add a brief description/overview of what kind of tests you're removing and what you're adding? So someone looking at this gets some context.

Added a description to the PR.


Form-style validation

It doesn't look like validating parameters that are passed like this is supported:
      parameters:
        - in: query
          name: filter
          required: true
          schema:
            type: object
            properties:
              petid:
                type: integer
                example: 12334
              petname:
                type: string
                example: cuty
              petowner:
                type: string
                example: John
            additionalProperties: false
            oneOf:
              - required: [petid]
              - required: [petname]
              - required: [petowner]
          style: form
          explode: true

Alternative syntax:
      parameters:
        - in: query
          name: filter
          required: true
          style: form
          explode: true
          schema:
            type: object
            oneOf:
              - properties:
                  username:
                    type: string
                required: [username]
                additionalProperties: false
              - properties:
                  site:
                    type: string
                required: [site]
                additionalProperties: false
              - properties:
                  survey:
                    type: string
                required: [survey]
                additionalProperties: false

Yeah using style is currently unsupported as mentioned in the readme. I do want to support this feature at some point but don't have time to do it right now myself. I would be up to reviewing a PR implementing this feature.

Hi @Hilzu !
Can you share the plan regarding this issue?
Thanks 🙏


[#102] YAML Memory Leak

You need to rebase this...

Please, explain the shared memory setup

Please, explain the shared memory setup

So, the root of the respective AVL trees are at config->prometheus[idx].root.
The AVL trees are populated right at the start of the program, during YAML parsing, and remain in the memory till the very end, when they are cleared.
Due to the presence of child processes, these AVL trees will cause memory profilers to label them as memory leaks. Since the nodes need to be in shared memory to be used without giving indirectly reachable memory leak reports, each node has it's own memory allocated as a shared memory instead of malloc.
When it's time to "free" the memory of a node, the node has it's own allocated shared memory destroyed.

Merged.
Thanks for your contribution !

Thank you for the review!