Document explaining how to use SignalR with Xamarin Forms

I would like to suggest to add a document like this one but to provide steps and instructions explaining how to add and use SignalR with Xamarin.Forms

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

ID: edc76539-dcd8-8271-b876-f2b492af9b49
Version Independent ID: d0106767-c04e-39a8-fe1d-a40352552c62
Content: ASP.NET Core SignalR supported platforms
Content Source: aspnetcore/signalr/supported-platforms.md
Product: aspnet-core
Technology: aspnetcore-signalr
GitHub Login: @bradygaster
Microsoft Alias: bradyg

There is a great doc on using the Azure SignalR Service with Xamarin here. Also, @scottaddie is working on a new mobile section in the SignalR docs, which will land sometime very soon. It will have a link to the Xamarin article above, as well as one on the Java client for building native Android applications and a mobile overview doc of the things you need to be aware of when building real-time apps for mobile devices and scenarios.

@dinobu - if this is a good collection of mobile-related and Xamarin-related articles, please close this issue. If not, please let us know how the existing article is lacking so we can improve upon it.

@dinobu - if this is a good collection of mobile-related and Xamarin-related articles, please close this issue. If not, please let us know how the existing article is lacking so we can improve upon it.

Looks like this is supported only on VS2019?  I dont have problem with that just asking if that is true and recommended?  Thanks for quick reply

Hi @dinobu - I created the doc and sample that Brady linked above. We definitely recommend using Visual Studio 2019 since it's the latest version. I created and tested the sample using Visual Studio 2019.
That being said, I did run some quick tests and it looks like everything should work in Visual Studio 2017 too. I tested building the UWP project, running the chat server locally, and made sure the "deploy to Azure" dialog functioned the same. The screenshots may vary slightly but you should be able to test in VS2017.

Much appreciated @bradygaster @profexorgeek


CleverTap SDK - CTInboxController Crash

Hello,
Currently facing crashes for CTInboxController on production app.
Please find the crash log:
CleverTap-crash.txt

Hey @Hamna21
Are you able to reproduce this yourself, or are you only seeing it via user crash reports? If yes, could you provide us more information or steps to reproduce the same?

Closing due to inactivity, if you need further help you can also write to<EMAIL_ADDRESS>or you can post on https://community.clevertap.com/
Thanks!


CLOUDSTACK-8933 SSVm and CPVM do not survive a reboot from API

This closes PR #930 as well.
I Rebased @bvbharat's PR with latest Master and tested the SSVM/CPVM and the routers: rVPC; VPC; VR; and RVR.

Ping @karuturi @bvbharat @borisroman @wido @remibergsma @miguelaferreira @DaanHoogland
Test Environment:

Management Server + MySQL on CentOS 7.1
KVM host on CentOS 7.1
ACS Agent and Common built from source

Tests Results:
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

----------------------------------------------------------------------
Ran 8 tests in 2099.701s

OK
/tmp//MarvinLogs/test_ssvm_VGNRI1/results.txt (END)

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
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 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

----------------------------------------------------------------------
Ran 8 tests in 7418.431s

OK
/tmp//MarvinLogs/test_routers_network_ops_VMU09R/results.txt (END)

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

----------------------------------------------------------------------
Ran 3 tests in 871.657s

OK
/tmp//MarvinLogs/test_loadbalance_AHQVYG/results.txt (END)

Cheers,
Wilder

The code concerns(incase of stop-start on a slow network and the changes of outer while waiting infinitely) with it were not addressed.
I am ok with merging this and taking up those later. But, if they are simple, better to address them now.

Hi @karuturi ,
I did not change the code as I thought the work needed was more tests related. I had a better look at PR #930 and will address your concerns in the code.
Thanks for the hints. :)
Cheers,
Wilder

@karuturi @remibergsma
In the previous PR it was mentioned that looping 30 times would probably be enough to get the configuration done and also get rid of the infinite loop. I looked at the code and did not find any sleep or any sort of wait, so looping 30 times will go quite fast:
The block inside the for loop would be this one:
           while read line; do
             if [[ $line == cmdline:* ]]; then
               cmd=${line//cmdline:/}
               echo $cmd > /var/cache/cloud/cmdline
             elif [[ $line == pubkey:* ]]; then
               pubkey=${line//pubkey:/}
               echo $pubkey > /var/cache/cloud/authorized_keys
               echo $pubkey > /root/.ssh/authorized_keys
             fi
           done < /dev/vport0p1
           # In case of reboot we do not send the boot args again.
           # So, no need to wait for them, as the boot args are already set at startup
           if [ -s /var/cache/cloud/cmdline  ]
           then
               log_it "Found a non empty cmdline file. Will now exit the loop and proceed with configuration."
               break;
           fi

If my assumption is right, about the 30 times loop, I would suggest to do it in a different way. For example:
local factor=2
local progress=1
for i in {1..5}
do
    #block mentioned above
    sleep ${progress}
    progress=$[ progress * factor]
done

In a worst case scenario we would wait 16 seconds before then leave the for loop.
What do you think?
Cheers,
Wilder

@karuturi @remibergsma
I checked manually if the cached cmdline has the same link local IP as defined in the interface after stop/start/reboot a SSVM/CPVM router. And it does. So, that's fine.
But to make it better I will improve the current test_ssvm.py and add that check. It will make the PR wait a bit longer, but not more than a few hours.
Please, I'm also waiting on your comments concerning the solution proposed in my comment 2 hours ago. Thanks in advance.
Cheers,
Wilder

Agree.
-----Original Message-----
From: "Wilder Rodrigues"<EMAIL_ADDRESS>Sent: 21-10-15 13:22
To: "apache/cloudstack"<EMAIL_ADDRESS>Cc: "Rajani Karuturi"<EMAIL_ADDRESS>Subject: Re: [cloudstack] CLOUDSTACK-8933 SSVm and CPVM do not survive areboot from API (#959)
@karuturi @remibergsma
In the previous PR it was mentioned that looping 30 times would probably be enough to get the configuration done and also get rid of the infinite loop. I looked at the code and did not find any sleep or any sort of wait, so looping 30 times will go quite fast:
The block inside the for loop would be this one:
while read line; do
if [[ $line == cmdline:* ]]; then
cmd=${line//cmdline:/}
echo $cmd > /var/cache/cloud/cmdline
elif [[ $line == pubkey:* ]]; then
pubkey=${line//pubkey:/}
echo $pubkey > /var/cache/cloud/authorized_keys
echo $pubkey > /root/.ssh/authorized_keys
fi
done < /dev/vport0p1
# In case of reboot we do not send the boot args again.
# So, no need to wait for them, as the boot args are already set at startup
if [ -s /var/cache/cloud/cmdline  ]
then
log_it "Found a non empty cmdline file. Will now exit the loop and proceed with configuration."
break;
fi
If my assumption is right, about the 30 times loop, I would suggest to do it in a different way. For example:
local factor=2
local progress=1
for i in {1..5}
do
#block mentioned above
sleep ${progress}
progress=$[ progress * factor]
done
In a worst case scenario we would wait 16 seconds before then leave the for loop.
What do you think?
Cheers,
Wilder
—
Reply to this email directly or view it on GitHub.

@wilderrodrigues @remibergsma @karuturi I tested the PR AS-IS, without the changes proposed Wilder.
Test results:
=== TestName: test_03_ssvm_internals | Status : SUCCESS ===
ok
=== TestName: test_04_cpvm_internals | Status : SUCCESS ===
ok
=== TestName: test_05_stop_ssvm | Status : SUCCESS ===
ok
=== TestName: test_06_stop_cpvm | Status : SUCCESS ===
ok
=== TestName: test_07_reboot_ssvm | Status : SUCCESS ===
ok
=== TestName: test_08_reboot_cpvm | Status : SUCCESS ===
ok
=== TestName: test_09_destroy_ssvm | Status : SUCCESS ===
ok
=== TestName: test_10_destroy_cpvm | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 8 tests in 1805.321s

OK

=== TestName: test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : SUCCESS ===
ok
=== TestName: test_02_redundant_VPC_default_routes | Status : SUCCESS ===
ok
=== TestName: test_01_VPC_nics_after_destroy | Status : SUCCESS ===
ok
=== TestName: test_02_VPC_default_routes | Status : SUCCESS ===
ok
=== TestName: test_02_routervm_iptables_policies | Status : SUCCESS ===
ok
=== TestName: test_01_single_VPC_iptables_policies | Status : SUCCESS ===
ok
=== TestName: test_isolate_network_FW_PF_default_routes | Status : SUCCESS ===
ok
=== TestName: test_RVR_Network_FW_PF_SSH_default_routes | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 8 tests in 5981.632s

OK

=== TestName: test_01_create_lb_rule_src_nat | Status : SUCCESS ===
ok
=== TestName: test_02_create_lb_rule_non_nat | Status : SUCCESS ===
ok
=== TestName: test_assign_and_removal_lb | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 3 tests in 659.437s

OK

Based on the tests: LGTM :+1:

Thanks for the confirmation, @karuturi . Much appreciated! :)
Thanks for testing, @borisroman ! I will force push the new tests in about 30min. If you can test it again, that would be cool!
Cheers,
Wilder

@wilderrodrigues Pushing will be alright. No force needed ;)

Ping @borisroman @remibergsma @karuturi @miguelaferreira
New code available for review. Please let me know if that's fine.
Test Results:
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

----------------------------------------------------------------------
Ran 8 tests in 1589.042s

OK
/tmp//MarvinLogs/test_ssvm_NPMX05/results.txt (END)

I will also run some other tests, but you can start reviewing/testing as soon as you have time.
Cheers,
Wilder

@wilderrodrigues Done.
Test results:
=== TestName: test_03_ssvm_internals | Status : SUCCESS ===
ok
=== TestName: test_04_cpvm_internals | Status : SUCCESS ===
ok
=== TestName: test_05_stop_ssvm | Status : SUCCESS ===
ok
=== TestName: test_06_stop_cpvm | Status : SUCCESS ===
ok
=== TestName: test_07_reboot_ssvm | Status : SUCCESS ===
ok
=== TestName: test_08_reboot_cpvm | Status : SUCCESS ===
ok
=== TestName: test_09_destroy_ssvm | Status : SUCCESS ===
ok
=== TestName: test_10_destroy_cpvm | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 8 tests in 1320.153s

OK

Still LGTM :+1:

That was quick! Thanks, @borisroman ! :)
@karuturi @remibergsma 1 LGTM to go. :)
Cheers,
Wilder

Ping @remibergsma @karuturi @DaanHoogland @miguelaferreira @bhaisaab
I ran the router tests as well.
Test Environment:

Management Server + MySQL on CentOS 7.1
KVM host on CentOS 7.1
ACS Agent and Common built from source

Tests Results:
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
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
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

----------------------------------------------------------------------
Ran 11 tests in 7829.409s

OK
/tmp//MarvinLogs/test_routers_network_ops_6BZDHE/results.txt (END)

Looking forward a 2nd LGTM. :)
Cheers,
Wilder

@wilderrodrigues @borisroman My tests also succeeded:
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 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 : EXCEPTION ===
ERROR
Test VPC offering without static NAT service ... === TestName: test_04_vpc_off_without_static_nat | Status : EXCEPTION ===
ERROR
Test VPC offering without port forwarding service ... === TestName: test_05_vpc_off_without_pf | Status : EXCEPTION ===
ERROR
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 40 tests in 7371.091s

FAILED (errors=3)

The 3 errors are cleanup related. Baswed on above: LGTM.


Update client.py allowed methods

apparently allowed methods argument is causing issues with Streamlit. Let's resolve this one way or another?

fixes #109

Hi @elvinagam. Thanks for your PR. I just merged #147, which replaces requests (which uses urllib3) with httpx (which doesn't). As of the latest release, 0.14.0, this shouldn't be an issue.

awesome, @mattt. Thanks.


Stateful accordions should use event.preventDefault on item click

Note that this applies to the stateful accordion only. We want to leave the stateless behavior up to the developer. But for the stateful version, my browser window shouldn't jump to the top of the page when I click the link.

This appears to already be implemented. Clicking stateless accordions in the deployed docs ( https://possum.revelry.co/components/Accordion/# ) pops you to the top of the page, but clicking stateful accordions does not.
I think this might be the relevant code (namely, the newOnClick declaration) pertaining to this issue.

@RyanMillerMath Thanks for looking. I'll close this out.


Scenario autoprovisioning

Is your feature request related to a problem? Please describe.
Create a scenario on the fly when an item is pushed into a scenario that does not exist.

https://github.com/ludeknovy/jtl-reporter-be/pull/183


Add Amazon OSS Documentations

add amazon oss documentation that are active and not archived.

Should i take it up, it would take research, right?

Should i take it up, it would take research, right?

sure, definately, just search for Amazon OSS and then gather the documentation pages of those OSS project


async mutators

If createMutator passed the mutate() method instead of the draft it could better support async
const { createMutator } = createState({
  value: "",
  loading: false,
  error: null,
});

const updateValue = createMutator(async (mutate, value) => {
  mutate(draft => { draft.loading = true; });
  try {
    await fetch('/api/v1/value', { method: 'POST', ... });
    mutate(draft => { draft.value = value; });
  } catch (error) {
    mutate(draft => { draft.error = error; });
  } finally {
    mutate(draft => { draft.loading = false; });
  }
});

I was thinking that mutate could just be returned from createState as well. It's actually currently exported as update because I changed the name and forgot to remove it (😬). Do you think renaming it mutate and documenting it be sufficient?
I wrote createMutator because I liked the API of defining a mutator that has the draft automatically applied, but that's about the only reason. Exposing mutate directly should be safe.

I've been looking at ways to write states w/ their mutators in the same module, that might actually be the best way
states/counter.js
import createState from 'react-copy-write';

export type State = {
  count: number
};

export const initialState: State = {
  count: 0
};

// Export Provider, Consumer, wish it wasn't awkward to _not_ export `mutate` (update)
export const { Provider, Consumer, mutate } = createState(initialState);

// mutators:
export function increment() {
  mutate(draft => { draft.count + 1});
}

export function decrement() {
  mutate(draft => { draft.count - 1});
}

// selectors?
export function selectCount(state) {
  return state.count;
}

components/Counter.js
import { Consumer, increment, decrement, selectCount } from '../states/counter';

export default function Counter(props: {}) {
  return (
    <Consumer selector={selectCount}>
      {count => (
        <>
          <span>{count}</span>
          <button onClick={decrement}>-</button>
          <button onClick={increment}>+</button>
        </>
      )}
    </Consumer>
  );
}

Cool, I'll rename the update export and make a release when I'm back from vacation

mutate is returned from createState now

Do you want to document something like the above pattern/


feat: allow the worker and housekeeping to mount the media PVC readOnly

This PR lets you mount things readOnly on the worker and housekeeping so you don't need ReadWriteMany on the PVC to share it between the pods.

LGTM Is it made with #390 in mind?

It wasn't specifically, but it miiiight help with that? Since the worker's mounting that stuff read-only, it might let it pass without needing a RWX-capable volume.

Just thought about it: the schema should probably be updated as well.


fix(seed): Fixed check on U tag to Underline tests

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[ ] Addressed currently open issue (replace XXXXX with an issue no in next line)

Closes #16730
Description

Does a strict comparison of what's underlined to assert that only "P.h.D. students" is underlined. Tested successfully on local machine.

:sparkles: :sparkles: AWESOME! LGTM. :sparkles: :sparkles:
Thanks @Hzuni , for this pull request and contributing to the code-base for the first time.
We will be looking forward for more contributions in future.
Cheers and happy contributing!


Piwik 3

Hi, are you planning to make this plugin compatible with Piwik 3? I updated too soon :(
regards

@leandropc currently not planned. But i will get into when 1 or 2 bugfix releases are out.

+1
I also updated to 3.0.0 and saw that now I am missing this useful plugin

Have someone tried it out "by hand"?
I think this plugin won't need many changes (maybe even none)

@ThaDafinser how do I do that?

Do you mean maybe just playing with the required version number?
https://github.com/ThaDafinser/Piwik-IntranetGeoIP/blob/master/plugin.json#L13
Yes, we can probably do that and see if there are any errors.

I make the change in the plugin.json file and I still getting
    "piwik": ">=2.15.0,>3.0.0",
IntranetGeoIP requiere Piwik <3.0.0-b1.

Sadly, this is not so simple after all. I managed to change the version requirement and activate the plugin by this manual: http://developer.piwik.org/guides/migrate-piwik-2-to-3
But it doesn't display subnetwork information, because in changelog we can see that Tracker.newVisitorInformation is deprecated and now we should use dimensions to manage the visit data. And here is more about using dimensions: http://developer.piwik.org/guides/dimensions

+1
I updated to 3.0.0 too soon :(

Please try out https://github.com/ThaDafinser/Piwik-IntranetGeoIP/pull/29

#29 is not working for me. As I said previously, the Tracker.newVisitorInformation is now deprecated, I managed to get this working with Live.getAllVisitorDetails, but this only works for live tab and there must be extra handling for archive data. I guess the most similar plugin with the live and archive functionality might be:
https://github.com/piwik/piwik/tree/3.x-dev/plugins/Provider

My modifications in IntranetGeoIP.php are as follows (works only for Live data):
`
public function registerEvents(){
    return array('Live.getAllVisitorDetails' => 'extendVisitorDetails');
}

public function extendVisitorDetails(&$visitor, $details)
{
    if (! file_exists($this->getDataFilePath())) {
        Log::error('Plugin IntranetGeoIP does not work. File is missing: ' . $this->getDataFilePath());
        return;
    }

    $data = include $this->getDataFilePath();
    if ($data === false) {
        // no data file found
        // @todo ...inform the user/ log something
        Log::error('Plugin IntranetGeoIP does not work. File is missing: ' . $this->getDataFilePath());
        return;
    }
    if(!is_array($data)){
        Log::error('Your data file seems to be not valid. The content is: ' . print_r($data, true) . ', File used: ' . $this->getDataFilePath());
        return;
    }

    $ipBinary = $details['location_ip'];
    $ip = Network\IP::fromBinaryIP($ipBinary);

    foreach ($data as $value) {
        if (isset($value['networks']) && $ip->isInRanges($value['networks']) === true) {
            // values with the same key are not overwritten by right!
            // http://www.php.net/manual/en/language.operators.array.php
            if (isset($value['visitorInfo'])) {
                $visitor['providerName'] = $value['visitorInfo']['location_provider'];
                $visitor['countryCode'] = $value['visitorInfo']['location_country'];
                $visitor['regionCode'] = $value['visitorInfo']['location_region'];
                $visitor['city'] = $value['visitorInfo']['location_city'];
                $visitor['latitude'] = $value['visitorInfo']['location_latitude'];
                $visitor['longitude'] = $value['visitorInfo']['location_longitude'];
            }
            return;
        }
    }

    // if nothing was matched, you can define default values if you want to
    if (isset($data['noMatch']) && isset($data['noMatch']['visitorInfo'])) {
        $visitor['providerName'] = $data['noMatch']['visitorInfo']['location_provider'];
        return;
    }
}

}
`

@tehnotronic i've missread it sry.
Then it seems that we have a major problem here...because this plugin is using existing columns and i can't find an event in the list to hook in https://developer.piwik.org/api-reference/events
It could be solved with Dimensions but this adds new columns, so all the built in reports wont work anymore... https://developer.piwik.org/guides/dimensions
( like i did it here https://github.com/ThaDafinser/Piwik-Ip2Hostname )
Maybe @tsteur got an idea?

It should be possible to overwrite how built-in / existing columns work or what data they track. If you want to overwrite eg "log_visit. countryCode" you can create a visit dimension with the column name "countryCode".  There would be no column type defined as it should re-use an existing column from the DB.

Thanks a lot - i will give it a try :+1:

Any news on this?
I updated Piwik already without checking the issues here und your plugin is the major plugin to get the country of internal app users connected via VPN. :(

Need to update the PR today...have prepared it local

Please CAREFULLY try out https://github.com/ThaDafinser/Piwik-IntranetGeoIP/pull/29/files

Thanks!
I will try it tomorrow in our environment and give you feedback asap.

@ThaDafinser At which point are the new files under /Columns used?
They aren't referenced in any way in the IntranetGeoIP.php.
Do I have to place the folder Columns under the plugin directory /plugins/IntranetGeoIP/Columns?
I don't understand yet, how or when the new files are used.

@Fensterbank take this link https://github.com/ThaDafinser/Piwik-IntranetGeoIP/tree/feature/piwik3
And download the ZIP and install it to plugins/IntranetGeoIP

Yes, but my question is still there: The code of the Columns files is not used or referenced at any point in the plugin code.
How does piwik knows, that there is a folder Columns with additonal files?
Anyway, I installed your branch code in my installation but had no success.
Visits are tracked, but still no location information.

They are picked up by Piwik automatically. It's a convention in Piwik... and it will automatically pick up all columns placed within that folder when a plugin is enabled

Okay, thanks @tsteur for the response.
After three days in test it's confirmed the version in the current piwik 3 branch does not work.
Because of this and the broken user API of Piwik 3 we downgraded back to 2.17.1.
Thanks for trying to solve this so fast @ThaDafinser. I will watch it and hope for further updates. 👍

I'm waiting for https://github.com/piwik/piwik/issues/6324 to be resolved in piwik 3.0.1 or later for the next update, like mentioned here https://github.com/ThaDafinser/Piwik-LdapVisitorInfo/issues/8#issuecomment-271797606

After a while i could get back to this (sorry for the long delay).
I could get it working on a fresh installation, when i remove the column (delete the following file completely) and activate it after that https://github.com/ThaDafinser/Piwik-IntranetGeoIP/blob/feature/piwik3/Columns/OverwriteProvider.php
The problem is VisitDimension itself:
It does only create missing columns, if you copy the files to the plugin directory and activate it.
https://github.com/piwik/piwik/blob/master/core/Plugin/Dimension/VisitDimension.php#L56-L63
What i still don't understand is, that in the Provider plugin the install() method is triggered when activating (also there is a workaround for this specific column...seems to be a general problem?)
https://github.com/piwik/piwik/blob/3.x-dev/plugins/Provider/Provider.php#L33
@tsteur is there anything planned, to check if a column exists on activation?

Those 3 plugins should work now with all with piwik 3 :tada:
I tried them all local on a fresh installation successfull now, so please test them carefully and provide me some feedback!
Installation
Download the ZIP from GitHub and install it by hand, see https://piwik.org/faq/plugins/faq_21/
LdapVisitorInfo (requires both plugins)
https://github.com/ThaDafinser/Piwik-LdapVisitorInfo/tree/feature/piwik3
https://github.com/ThaDafinser/Piwik-LdapConnection/tree/feature/piwik3
Ip2Hostname
https://github.com/ThaDafinser/Piwik-Ip2Hostname/tree/feature/piwik3
IntranetGeoIp
https://github.com/ThaDafinser/Piwik-IntranetGeoIP/tree/feature/piwik3

I just tried IntranetGeoIp in our environment and can confirm the plugin works great again! 🥇
Thank you very much for your work!

Just released the package - should be soon available over the marketplace!

Works great! Thanks for making it work again with Piwik 3.


net: ipv6: Check the size of the ICMPv6 packet

The minimum size is 8 bytes, drop packet if shorter.
Fixes #10970
Signed-off-by: Jukka Rissanen<EMAIL_ADDRESS>

Codecov Report

Merging #11043 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master   #11043      +/-   ##
==========================================
- Coverage   53.25%   53.25%   -0.01%
==========================================
  Files         217      217
  Lines       26698    26700       +2
  Branches     5925     5926       +1
==========================================
  Hits        14219    14219
- Misses      10060    10061       +1
- Partials     2419     2420       +1

Impacted Files
Coverage Δ

subsys/net/ip/ipv6.c
58.22% <0%> (-0.5%)
:arrow_down:

Continue to review full report at Codecov.

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

Fixing the check, the proposed one was not doing things properly.

Fixed the payload_len check once more.


Use Retry Add Repo in CI

Sometimes the first Add Repo fails. Try using retry add repo (similar to Boost Multiprecision example) in this CI.

CI has been running smoothly for half a yetr. Cloning strongly reduced. Call this issue fixed and close it.


Implement patch window parsing logic in osconfig agent.

Mainly focus on the patch window logic
I also added the logic for parsing and acting on osconfig package data on Windows
Items to ignore:
cli_tools/osconfig_agent/internal/osconfig/v1alpha1/osconfig.go - auto built library for REST interface
main.go, osconfig.go - logic here is just for debug right now, still obviously needs lots of work

/retest


hotkeys: It's easy to accidentally compose a message to the first user

Reproducer:
Hit "q" to enter the users search, and then without typing anything, hit enter.  You'll start composing a message to the first user in the buddy list, which is almost certainly not what you intended.
This can be confusing it feels like this should be starting compose to reply to the latest message (since you may have just forgotten you had that focused).  I'm not sure if it should actually just handle enter normally (and reply to the selected message), or just do nothing, but I'm currently leaning towards the latter.

I think the one-line fix here is fine.  There's a special hack to let you filter and send, and it's not even that robust a hack.  If the filter search is empty, we should not auto-send.

Agreed.

Added a pull request fixing this issue https://github.com/zulip/zulip/pull/2655.
Cheers


ungoogled chromium won't work in flatpak (Debian)

Describe the bug
i cant start ungoogled-chromium on flatpak.
it shows error:
Your Flatpak version does not support the expose-pids flag,
which means that Chromium is unable to run. This generally
happens if your distro's bubblewrap installation is setuid
instead of using user namespaces.
To Reproduce
Steps to reproduce the behavior:

install ungoogled chromium from flatpak

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

OS/Platform and version: Debain testing/sid
ungoogled-chromium version: 87

Additional context
i have enabled user namespaces in the debian kernel but it still shows this error. (by sudo sysctl kernel.unprivileged_userns_clone=1 and then  sudo echo kernel.unprivileged_userns_clone = 1 | sudo tee /etc/sysctl.d/00-local-userns.conf
even with --no-sandbox it still shows the same error.
this issue happens with the normal chromium flatpak package too

I get this error as well.

Is this still an issue? If so, please file this issue with the Flatpak repo: flathub/com.github.Eloston.UngoogledChromium


Reliable check in search result

I have seen the following issue today with NB2301 0e9faa4 but also with older NBs:
Steps:

Search for caches e.g. by adress (Example: Gotenstraße Hamburg)
On the result list click the map-icon (upper right) to map the search-result

On the map all the caches are shown as unreliable although they are online requested in the search.
Only after opening the detail for a cache, returning to the search result and displaying the map again the specific cache is shown as reliable.
Is there no possibility to check the reliability in the search or is the check just missing ?

The reliability depends on the fact if you are a premium member or not: cgBase, line 731. If you are a premium member we can detect if you are logged in or not. If not -> not reliable.

I think it's better to mark coords as non-reliable to avoid problems. If you go to the details the coords become reliable and everything is fine...
So, it's not a bug - it's a feature.

I am logged in for sure, because c:geo is working precise all the time. But the case I mentioned is 100% reproducible for me. Try it out yourself. Basically for all search results which I show on map all caches are shown as unreliable.

You are right. The search result is marked as non-reliable, i can reproduce the problem.

The issue is that the coordinates are explicitly set as unreliable in the loc parser which is wrong IMHO. If I am not logged in I do not get the loc-file from gc.com, and if I am, I do get the correct coordinates there. But perhaps can @blafoo who introduced the concept or @Bananeweizen who added the incriminating line (LocParser.java,54) in his fix for issue #972 give a comment. If there is consensus regarding my assumption I'll issue a fix.

Aren't that two different issue ? For the LocParse we can set reliable to true.
Back to the search: new caches are marked as non-reliable per default. If we load the complete cache (e.g. for the cache details) the cache is marked as reliable. I have to take a look at the results of the search (nearest) if there are differences between logged in and not. If there are no differences then all caches returned can be marked as reliable, too.

A quick test showed no differences between the search results logged in and logged off. The coords are always reliable.

I added that line to the LocParser, but that was a change without any functionality (and intended as such). Because every cache gets its reliableLatLon member set to false in the constructor, all calls to setReliable(false) will not change anything for a cache object afterwards. In my fix the only real change was calling setReliable(true) in the GPX parser. But I added the remaining lines to have a known state of that member variable independent of the default in the constructor.
That's why I also would prefer re-adding the line in the LocParser with a "true" argument, instead of removing the line completely. If we know the LocParser creates reliable coordinates, then we should express that in the LocParser


Update live-stream.md

Typo - closing tag TelemetryProcessors was missing / in sample code

Learn Build status updates of commit a9ec199:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/azure-monitor/app/live-stream.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@AaronMaxwell

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#assign-reviewer: @v-jbasden

#sign-off

#assign: @v-jbasden

#sign-off

@v-jbasden
PRMerger will accept sign-off from the listed author only. However, if you are a Microsoft employee authorized to update this content, you can send a request to<EMAIL_ADDRESS>for this PR to be merged. Include your role and an explanation of why the PR should be merged without approval from the listed author.

#sign-off


json loads 'stdout' and 'stderr' in shell & ssh runners

Add a json_loads utility method in st2common/util/jsonify.py
Add test cases for utility method
FabricRunner and LocalShellRunner to use utility method to transform
stdout and stderr streams

Sample output
(virtualenv)~/stanley git:STORM-931/parse_json_in_results_shell_runners ❯❯❯ st2 run core.local shit                                                                                ✭ ✱ ◼
.
+-----------------+-----------------------------+
| Property        | Value                       |
+-----------------+-----------------------------+
| id              | 54aee0740640fd77c6c9f312    |
| context         | {                           |
|                 |     "user": "lakshmi"       |
|                 | }                           |
| parameters      | {                           |
|                 |     "cmd": "shit"           |
|                 | }                           |
| status          | succeeded                   |
| start_timestamp | 2015-01-08T19:54:28.122000Z |
| result          | {                           |
|                 |     "failed": false,        |
|                 |     "stderr": "",           |
|                 |     "return_code": 0,       |
|                 |     "succeeded": true,      |
|                 |     "stdout": {             |
|                 |         "foo": {            |
|                 |             "bar": "baz"    |
|                 |         }                   |
|                 |     }                       |
|                 | }                           |
| action          | core.local                  |
| callback        |                             |
| end_timestamp   | 2015-01-08T19:54:28.216000Z |
+-----------------+-----------------------------+
(virtualenv)~/stanley git:STORM-931/parse_json_in_results_shell_runners ❯❯❯

Is there any way that it could not be stdout if the parsing happens? result like the python runner?

Sorry, this might not be super clear... for the sake of discussion.
The ability to use dot notation from a JSON output is a goal, but equally there may be a scenario where I still need the raw JSON to pass to something else (say another webhook). Can I eat my :cake: and have it too?

jfryman: I think if shell actions actually output json string that means they want to push structured data to us and are taking the json.dumps route to send a string. So we converting them to json seems like a reasonable thing to do. Wdyt?

@lakshmi-kannan yeah, thinking about that... I can appreciate that logic... especially if we're calling JSON our common currency. I think this works. :+1:

An (unintended) consequence of that change is that now core.local cmd="echo 1" will return 1 as a number and not a string it's supposed to be.
A simple example of where it might lead us:
[
    {
        "action": "core.local",
        "callback": {},
        "context": {
            "user": "stanley"
        },
        "end_timestamp": "2015-01-26T05:19:50.575000Z",
        "id": "54c5ce760640fd6f3bbed1f9",
        "parameters": {
            "cmd": "echo 0.99999999999999999999999999"
        },
        "result": {
            "failed": false,
            "return_code": 0,
            "stderr": "",
            "stdout": 1.0,
            "succeeded": true
        },
        "start_timestamp": "2015-01-26T05:19:50.476000Z",
        "status": "succeeded"
    },
    {
        "action": "core.local",
        "callback": {},
        "context": {
            "user": "stanley"
        },
        "end_timestamp": "2015-01-26T05:19:37.552000Z",
        "id": "54c5ce690640fd6f3bbed1f8",
        "parameters": {
            "cmd": "echo 0.99999999999999"
        },
        "result": {
            "failed": false,
            "return_code": 0,
            "stderr": "",
            "stdout": 0.99999999999999,
            "succeeded": true
        },
        "start_timestamp": "2015-01-26T05:19:37.452000Z",
        "status": "succeeded"
    },
    ...
]

Remind me, what exactly was the reason for this change in the first place?

Yeah, good point.
I'm +1 for leaving stdout as it is and adding a result attribute (which could simply be parsed stdout). In fact, that's similar to what Python runner already does so it's good from the consistency perspective as well.

If we want to have a parsed version of the output, I suggest we introduce another field, "result" as James proposed, while keeping stdout a string (as it should be based on its name).

We already saved plenty of duplicated data not a big fan of adding a new property. If an action output structured data then that was the intent of the action and we should parse and preserve as structured data. This PR is basically in support of that view. Structured data is easy to work with in workflows etc. therefore we should always prefer structured data over plain old strings.
The fact that json.loads behavior as per the conversion table https://docs.python.org/2/library/json.html#json.JSONDecoder is an issue. There is some amount of surprise for the user in this behavior. We can limit conversions to objects and skip the other types by using a custom decoder. This can be an implementation compromise we could make.

@Kami (Regarding python runner).
I guess you are referring to https://github.com/StackStorm/st2/blob/master/st2actions/st2actions/runners/pythonrunner.py#L167.
This means in an execution the result itself has a result property? How do we use these thing in workflows and rules where we tie the actions together?

We already saved plenty of duplicated data not a big fan of adding a new property.

I don't actually care whether we are going to save it or recalculate it on each request.

If an action output structured data then that was the intent of the action and we should parse and preserve as structured data. This PR is basically in support of that view. Structured data is easy to work with in workflows etc. therefore we should always prefer structured data over plain old strings.

I don't see why you have decided that local runner would (and should) return structured output. The only thing we know with it for sure is that every call will result in a binary streams of stdout, stderr and a resulting return code. Trying to convert stdout automatically a) changes its semantical sense b) creates uncertainty of the structure (we don't know whether we are going to get a string, number or object and you have to check the type every time; you can't just str() in js) c) would require substantial effort to create custom decoder to avoid all the possible cases where it might do not what we are expecting it to do. But most importantly, we are getting string from the local runner and we are sending string to the user, why do we need all that chain of error-prone conversions in the process?
I see it is useful for workflow. I get it and I think it's good thing we don't have to parse json for every workflow task, but I also see the number of problems we would have to deal with preparing, formating and showing all kinds of results to the user.

The fact that json.loads behavior as per the conversion table https://docs.python.org/2/library/json.html#json.JSONDecoder is an issue. There is some amount of surprise for the user in this behavior.

I really don't see anything new here, this is how JSON decoder works in pretty much every language I have dealt with, 1, [] and null were always been a valid JSON.

recalculate it on each request
This will most likely end up getting expensive.

I don't see why you have decided that local runner would (and should) return structured output.

This makes it easy for the output of a shell action, that is spitting out structured data, to be consumed in workflows, rules etc. Keep it as a string of trying to do a json loads in the workflow engine or rules engine is of course inefficient.

but I also see the number of problems we would have to deal with preparing, formating and showing all kinds of results to the user.

I honestly believe we want to solve these problems. The more such features we take in the platform the better it is for the user.

I really don't see anything new here, this is how JSON decoder works in pretty much every language I have dealt with, 1, [] and null were always been a valid JSON.

Yeah but I thought you said that "1" or "0.99" should be left alone as strings.
I do understand you were making a point about semantics and you do have a solid irrefutable point that by performing a json.loads we affect semantics of the result. When weighed against the benefit of being useful in a workflow I guess the changed semantics are ok since we are preserving the same data.

@manasdk

@Kami (Regarding python runner).

I>  guess you are referring to https://github.com/StackStorm/st2/blob/master/st2actions/st2actions/runners/pythonrunner.py#L167.
Yes

This means in an execution the result itself has a result property? How do we use these thing in workflows and rules where we tie the actions together?

You should be able to access .result attribute.

We already saved plenty of duplicated data not a big fan of adding a new property.

I personally don't think duplicated data is that big of a deal. If this ever becomes a problem we could also trade of some CPU for compression of stdout and stderr fields.


Support clients and client encryption

have a look at http://www.pingx.net/freenode/mcpedevs/2015/7/22/2

needed to connect as a different identify than mine

https://github.com/PrismarineJS/node-minecraft-protocol/blob/master/src/createServer.js#L236

I guess the client id and device id need to be options in createClient

As of 0.15, this is no longer needed. We just need to generate a randomId and figure out how to obtain a XUID (Xbox Live user identification)

This is still kind of needed for multi-version (including 0.14) support ;)

Note the 'As of 0.15' :wink:, but yes, we still need to generate these ids for 0.14

Due to the nature of Minecraft: PE's update system it may seem that multi-version support really isn't going to be useful. I'm referring to the fact that when an update comes out, everyone automatically updates on the Google Play store or App Store making older versions very uncommon and not worth supporting

Oops, I didn't mean to close. This is going to be required for 0.15 onwards

I'm going to hijack this issue and change the topic to just client support in general

unvalid


Add bcp47 hints to the options

Some langcodes are macrolanguage or microlanguage and ure good or bad in certain use cases.
Lets add those hints.

See https://r12a.github.io/app-subtags/


[labs/ssr] module resolution doesn't support export maps

Which package(s) are affected?
Other/unknown (please mention in description)
Description
Currently trying to get #3266 to pass tests. it will fail at runtime because of this:

The requested module 'entities/lib/decode.js' does not provide an export named 'BinTrieFlags'

the parse5 tokenizer is what loads entities/lib/decode.js (from the entities npm package), here.
the entities package supports ESM but through an export map rather than a module field, here (for the file we want).
im guessing we get the error we get because the resolve module doesn't support export maps? if thats true, are we expected to implement it in the package JSON transform or over in resolve?
might be completely wrong too, its difficult to debug the module loading...
Reproduction
run the ssr unit tests in #3266
Workaround
N/A
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Browser/OS/Node environment
Node 17.x

This is definitely a problem with implementing loading and resolution ourselves. Do we know of any libraries that implement up-to-date resolution?
Otherwise this could be motivation to limit loading to global or a worker and remove the VM modules. I'd like to get some benchmark numbers before doing that though.

@justinfagnani seems like the maintainer of resolve intends on adding support but that was a year or so ago.
meanwhile it looks like most people have moved to this:
https://github.com/webpack/enhanced-resolve
maybe that one will work for us too?


Bug: On-Lookup of Table Fields not working in Web Client

Describe the bug
This issue is closely related to #4654.
Just any OnLookup-trigger of standard table-fields can't seem to be triggered from the web client.
To Reproduce
Open the Web Client and go to page "Customer Ledger Entries", try to click on field "Document No." nothing happens.
Expected behavior
As a reference, open the Windows client and try the same, this will open the page for the corresponding document.
I would expect the same to happen in the Web client, so that you can quickly navigate to related records.
Versions:

Business Central: W1 13.4 (28874) or Platform 14.0.29248.0 + Application 29346 (W1 14.0)

In addition, I would like to point out the main issues:

There are non-editable fields in standard BC with an OnLookup-trigger. These can never be triggered from the web client, so this code in standard BC is unreachable in the modern clients.
I received a reply on Yammer on the subject.The suggested work-around for our own fields is to add an OnDrillDown trigger on the page fields. This however requires that we add an OnDrillDown implementation to ALL pages where the field is used. Wouldn't it be better to have something like an OnDrillDown on table-level so that we only have to provide the implementation for the field once and not on every page?

Hi! Thank you for reporting this issue. This is a missing feature from the Web Client and the team owning that component has added it to the backlog. When this gets fixed, the workaround will not be needed.
For issues that are not related to the development experience, such as this one, we suggest that you open a support case or file a bug in Collaborate. This will ensure that the issue gets to the appropriate team faster and that it gets resolved or prioritized accordingly.


MOD: upgrade vulnerability dependency

What problem does this PR solve?
https://www.cvedetails.com/cve/CVE-2020-36189/
https://www.cvedetails.com/cve/CVE-2021-44228/
What is changed and how it works?
upgrade log4j version to 2.17.1
upgrade jackson-databind version to <IP_ADDRESS>
Check List
Tests

No code

/run-all-tests

@sunxiaoguang @birdstorm PTAL

@sunxiaoguang @birdstorm PTAL


Asset (xchtmlreport-2.1.0.zip) for release 2.1.0 is missing on releases page.

Bitrise has a step "Generate Xcode test HTML/JUnit report"  to generate HTML reports.
The script tries to download latest zip using path - https://github.com/TitouanVanBelle/XCTestHTMLReport/releases/download/2.1.0/xchtmlreport-2.1.0.zip
However, for version 2.1.0  this asset is missing in releases section. For other releases aka 2.0.0 and below this asset is present.
I could have used lower version, but Bitrise Step has no means of passing the version number, it always defaults to latest.

I tried to install it through bash and it got me the unzip error. I checked the archive and found that its empty.

I tried to install it through bash and it got me the unzip error. I checked the archive and found that its empty.

The bash install script also failed for me due to the unzip error

The only solution I found is to compile it from the sources, so we can generate version 2.1.0
If you can't, here you have it:
xchtmlreport.zip

Brew tap repository is new and now brew installation works without problems!. README has been updated to reflect the change. Also, if you use Mint it is even easier...

Mint
Mint is the easiest way...
Install latest stable version
mint install XCTestHTMLReport/XCTestHTMLReport

Install latest from develop branch
mint install XCTestHTMLReport/XCTestHTMLReport@develop

Homebrew
Install latest stable version
brew install XCTestHtmlReport/xchtmlreport/xchtmlreport

Install latest from develop branch
$ wget https://raw.githubusercontent.com/XCTestHTMLReport/XCTestHTMLReport/develop/xchtmlreport.rb
$ brew install --HEAD --build-from-source xchtmlreport.rb


chore: fix schema, content

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

Project coverage is 75.73%. Comparing base (32cf63a) to head (7cc782c).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #59   +/-   ##
=======================================
  Coverage   75.73%   75.73%
=======================================
  Files         100      100
  Lines        1459     1459
  Branches      232      232
=======================================
  Hits         1105     1105
  Misses        343      343
  Partials       11       11

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


Add flag to build static version of TVM runtime

Setting BUILD_STATIC_RUNTIME to ON (default: OFF) will cause a static libtvm_runtime.a to be built.
This library will then need to be linked into other projects with --whole-archive linker option, or otherwise the linker may remove functions that are not used at the time of linking. Since code using the runtime can be generated at runtime, function that appear to be unused at the link time may be used later at run time.

what do you think about generating a pkg-config file to explain about -Wl,--whole-archive?

what do you think about generating a pkg-config file to explain about -Wl,--whole-archive?

I think it would be useful, but I don't think that we have a pkg-config file already.  I would rather not add one in this PR because I have never created a pc file...

set(TVM_BUILD_TYPE "SHARED" CACHE STRING "Support: SHARED, STATIC, OBJECT")

I think this would imply that the main TVM library (libtvm) is also static.  Would it still be possible to use it from python?

One solution may be to link all the object files into a single relocatable object file.  This way the resulting object file could still be linked with other object files, but the linker could no longer remove parts of it.  I'll open another PR if I get that to work.


Terminal redraw OSC cursor color

Windows Terminal version
1.12.3472.0
Windows build number
10.0.22000.0
Other Software
PowerShell 7.1.2
Steps to reproduce

Change cursor color by osc sequence "`e]12;#ff0000`a"
Change keyboard layout Win+Space when window of terminal is active.

Expected Behavior
After pressing the keyboard shortcut, the cursor color will remain the same.
Actual Behavior
The cursor color changes to the one specified in the color scheme in settings.json

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #11522 for more discussion.
/dup #11522


Tag for latest changes

@jakeheis could we please get a tag on last commit? 2.0.1-beta1 or 2.0.1 or anything like this? SwiftPM is not able to pickup the changes until it's tagged. Thanks a lot.

Now at 2.0.1


Add options to refresh the credentials

wrote this as an alternative

so this works when tested with
const AWS = require('aws-sdk');
const { Client } = require('@opensearch-project/opensearch');
const { AwsSigv4Signer } = require('@opensearch-project/opensearch/aws');

async function getClient() {
  const connection = await AwsSigv4Signer({
    region: 'us-east-1',
    getCredentials: () =>
      new Promise((resolve, reject) => {
        AWS.config.getCredentials((err, credentials) => {
          if (err) {
            reject(err);
          }
          resolve(credentials);
        });
      }),
    refresh: true,
    refreshInterval: 1000 * 60 * 60 * 10,
  });
  config.client = new Client({
    ...connection,
    node: 'https://endpoint.host',
  });
}

but for some reasons typescript in vscode complains that connection.Connection is not compatible with the the type Connection..
Error:
Argument of type '{ node: any; Connection: Connection; buildSignedRequestObject(request: any): ClientRequestArgs; }' is not assignable to parameter of type 'ClientOptions'.
  Types of property 'Connection' are incompatible.
    Type 'Connection' is missing the following properties from type 'typeof Connection': prototype, statuses

Disregarding that it work as expected, I can connect and make request with the client.

@rawpixel-vincent Firstly, thanks for this! Really appreciate your effort into make this better. I haven't dived too deep into the implementation but looks like the Transport class is not being overridden anymore? This implementation only has the V2 sdk version? Is this meant to be an add on PR to #1? Can we just have both these changes in this PR? I really like this approach and think that checking for the refresh timeout is a better way than to call the getCredentials API un-necessarily. WDYT?
Also, apart from doing an end to end test, it would be great if we can write both a failing and a passing test that can simulate the refresh interval. Using setTimeout maybe?

I also prefer this approach, this is meant as an alternative from #1 which leave the decision to refresh or not the credentials and how to get the credentials to the implementation, so there is no difference between v2 and v3 anymore as the method to retrieve the credentials is passed as an option to AwsSigV4Signer.

Also, apart from doing an end to end test, it would be great if we can write both a failing and a passing test that can simulate the refresh interval. Using setTimeout maybe?
I'm not completely sure about what you mean to reproduce exactly.

We probably need more feedback from other people that needs this and are well aware of those issues.

fwiw, I'm gonna port this pr to an internal lib to test this implementation and see how it goes

I also prefer this approach, this is meant as an alternative from #1 which leave the decision to refresh or not the credentials and how to get the credentials to the implementation, so there is no difference between v2 and v3 anymore as the method to retrieve the credentials is passed as an option to AwsSigV4Signer.

Makes sense. I think this is fine. As long as the docs clearly show how to getCredentials, we would not be breaking any implementations.

Also, apart from doing an end to end test, it would be great if we can write both a failing and a passing test that can simulate the refresh interval. Using setTimeout maybe?
I'm not completely sure about what you mean to reproduce exactly.

We probably need more feedback from other people that needs this and are well aware of those issues.

I think this is key. This is where tests probably help us. I think if we have enough unit tests to cover the edge cases we would be confident to make a first release and then worry about feedback. This is something I've seen in the other clients as well.

Is this meant to be an add on PR to #1?

so to be clear, its based on your original PR - this goes without #1

the Transport class is not being overridden anymore?

This is not needed as this approach assume the implementation will know the lifetime of their session and set a refreshInterval below that, I've forced the minimum to 14 minutes as at first glance I think the minimum lifetime of a token is 15 minutes - not totally sure about this choice 🙃

I'm happy with not having overhead. Again, some tests here would be nice. Sorry if I'm just repeating myself here :)

I think this is key. This is where tests probably help us. I think if we have enough unit tests to cover the edge cases we would be confident to make a first release and then worry about feedback. This is something I've seen in the other clients as well.

updated the PR description, and closed #1
we need to figure what tests are needed to move this forward

I like this. I say we do this on top of https://github.com/opensearch-project/opensearch-js/pull/279 (and I'll merge that)?

@rawpixel-vincent I've been testing your changes. I have more concerns around closing the client. I see that the client connection remains open and is unresponsive even with client.close(). I've written failing test cases for this. Leaving more comments in your PR.

I've found a better way to handle this, without the interval to refresh, I'll update it this weekend

this is a sneak peek of what it'll look like @harshavamsi
const awsSigv4Signer = async (opts) => {
  const credentialsState = {
    credentials: null,
  };
  if (opts && (!opts.region || opts.region === null || opts.region === '')) {
    throw new Error('Region cannot be empty');
  }
  if (opts && typeof opts.getCredentials !== 'function') {
    throw new Error('getCredentials function is required');
  }

  try {
    const newCredentials = await opts.getCredentials();
    credentialsState.credentials = newCredentials;
  } catch (error) {
    console.log('Error fetching credentials', error);
    throw new Error(error);
  }

  function buildSignedRequestObject(request = {}) {
    request.service = 'es';
    request.region = opts.region;
    request.headers = request.headers || {};
    request.headers.host = request.hostname;
    return aws4.sign(request, credentialsState.credentials);
  }

  class AwsSigv4SignerConnection extends Connection {
    buildRequestObject(params) {
      const request = super.buildRequestObject(params);
      return buildSignedRequestObject(request);
    }
  }

  class AwsSigv4SignerTransport extends Transport {
    request(params, options = {}, callback = undefined) {
      // options is optional,
      // so if it is omitted, options will be the callback
      if (typeof options === 'function') {
        callback = options;
        options = {};
      }

      /** @type {import('aws-sdk').Credentials} */
      const currentCredentials = credentialsState.credentials;

      if (
        currentCredentials.expired ||
        currentCredentials.expired === undefined
      ) {
        console.log('Credentials are expired');
        console.log('Refreshing credentials');
        // Promise support
        if (typeof callback === 'undefined') {
          return opts.getCredentials().then((newCredentials) => {
            credentialsState.credentials = newCredentials;
            return super.request(params, options);
          });
        }

        // Callback support
        opts
          .getCredentials()
          .then((newCredentials) => {
            credentialsState.credentials = newCredentials;
            return super.request(params, options, callback);
          })
          .catch(callback);
      } else if (typeof callback === 'undefined') {
        return super.request(params, options);
      } else {
        super.request(params, options, callback);
      }
    }
  }

  return {
    Connection: AwsSigv4SignerConnection,
    Transport: AwsSigv4SignerTransport,
  };
};

updated the credentials refresh strategy + add new tests cases

@harshavamsi @dblock ready for review

@rawpixel-vincent I'm relatively new to the code base, but jumping through the stack trace for each transport request. I do see that the request method calls the connections meta request method. So the request is being built every time an API call is made.
I'm not saying that we should change this implementation, because it would be identical if we implemented this at the Connection layer or the Transport layer. But just leaving this here as something I learnt.


Update Grunt to v1.0

Grunt 1.0.0 was released.

[x] Check the compatibility of plugins, especially peerDependencies in package.json.
[x] Run local grunt using npm-scripts.
[x] Update Grunt to v1.0.

Done!


bibliography: links to articles

In #19 there was a discussion on how extensive the bibliography should be enriched with links.
Basically a DOI provides a link to the document in question (see https://www.doi.org/).
As it is convenient to provide an additional direct link to a pdf (where available), the question is, if this should be added even if the direct access is restricted in some form and on how to state this restriction appropriately within the bibliographic entry.

@musicEnfanthen is there a good way to provide the needed note to the pdf links?

As mentioned in #19 , one could add a note field to the bib file entry in question that says something like "PDF available online by subscription" (phrase borrowed from OUP as an example).
note = {PDF available online by subscription.}

If I'm not mistaken, this would say something about the document, but not about the link.

So what would you suggest?

Personally I'd prefer to just keep the DOIs in those cases and go without a specific PDF link.

So if I understand correctly, for any direct accessable item give the DOI and a direct link to the PDF or other format (if available), and for restricted items give just the DOI that links to a "landing page" which provides further infos. If there is no DOI, just give the direct link to the "landing page" of the document.
Everybody okay with that?

sounds good

Am 28.06.2018 um 10:49 schrieb Stefan Münnich<EMAIL_ADDRESS>So if I understand correctly, for any direct accessable item give the DOI and a direct link to the PDF or other format (if available), and for restricted items give just the DOI that links to a "landing page" which provides further infos. If there is no DOI, just give the direct link to the "landing page" of the document.
Everybody okay with that?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Closing it as there seems to be consens about the topic.


Push v1 changes to NPM

@elgerlambert
Per the discussion in #13, it would be really nice if you could push the changes to npm.
Currently, I have to patch my version with the code from the PR.

+1

+1

@hoodsy @MattiSG
Before it is merged into master, you can install v1 using package@version
npm install --save<EMAIL_ADDRESS>

Interestingly enough, I was having the same error from the PR with rc4.
Copying in the PR elevated this error.
On Tuesday, February 2, 2016, Jorge Antunes<EMAIL_ADDRESS>wrote:

@hoodsy https://github.com/hoodsy @MattiSG https://github.com/MattiSG
Before it is merged into master, you can install v1 using package@version
npm install --save<EMAIL_ADDRESS>—
Reply to this email directly or view it on GitHub
https://github.com/elgerlambert/redux-localstorage/issues/32#issuecomment-178514896
.

+1

+1

@elgerlambert Anything I can do to help get the v1 release out?

agreed, been patching ... anything i can do to help?

This issue has been around for months, so I just went ahead and published a fork for the express purpose of getting this fix in. Hopefully I can obsolete it soon.

Hi all,
A new version has finally been released, version 1.0.0-rc5 is now available on npm!
I'm really sorry I didn't do this sooner. For the past half year or so I wasn't working on any react/redux projects and became unsure about the direction 1.0 was heading. That's now changed and I've been using redux-localstorage in production for the past month, this has helped me feel the pain points and unblock myself.
Once again, my appologies. Thanks @seansfkelley for jumping in and publishing a fork! rc5 should resolve most of the issues and PR's that are open. Please try it out and let me know if you guys bump into any unresolved issues!

Thanks! I added a deprecation notice and a link here to my fork and pushed that to npm.

Thanks again @seansfkelley!


Patch 4.11 update

Hello, can you update to the last patch pls?
thanks

Will upload it later today.

Thanks for waiting. Please see new release here https://github.com/paulo-iona/lor-wallpaper-downloader/releases/tag/4.11.0


Grammatical error step 6

Found error in step 6.

OK, now we're are going to take a brief detour and demonstrate a gotcha...

Assuming it should either say "we are" or "we're".

Hi!
Thanks for the feedback. I've rewritten the codelab from scratch and believe I have fixed this issue. The code has been updated, and the new guide is now live.
If you find any issues with the new codelab, please let us know!
Thanks!


skip files even when file_contents is provided

git hooks provide both file_path and file_contents. Previously,
should_skip only checked if file_path was provided without
file_contents. This introduced a situation where the isort git hook
would fail on files that isort wouldn't touch.
Related PR: https://github.com/timothycrosley/isort/pull/218

Looks great! Thanks!


Writing Tests for a single Function causes Dilema of test failures

hey @kanzitelli  ! love this template! i am having couple of issues while testing ! i able to mock every other package i introduced in the template above your provided ones. but the react-native-ui-lib's usage in DesignSystem is not by passing the mocks at all
any solution on that or insight ! a  mock folder you wrote for the tests ?

@rizwanatta hey! thank you! I have not set up any tests for this template yet and been using mostly e2e tests. If there is any issues with RN UI Lib, try to reach them through opening issue or Discord channel.


Visualisation of timestamps

Timestamps are sent as indicated in FHIR guidance:
An instant in time in the format YYYY-MM-DDThh:mm:ss.sss+zz:zz (e.g. 2015-02-07T13:28:17.239+02:00 or 2017-01-01T00:00:00Z). The time SHALL specified at least to the second and SHALL include a time zone.
However, they are visualised differently from what is sent.
E.g.:

Visualiser:

Is there an error on the sending side? I checked in MIPS examples and the same happens there. Is it an issue on the visualiser side?

Issue for visualizer: https://be-ehealth-standards.atlassian.net/browse/ESI-10


[Question] How to set the font of a UIDropDownMenu?

I've tried adding a font block to the  drop_down_menu block in the theme.json but that didnt have any effect. Not sure how to increase the size without actually amending the dropdown via code.
I hope you dont mind me asking a question this way, I wasnt sure how best to put it to you.

Right now:
    "#drop_down_text_prototype":
    {
        "font":
        {
                "name": "montserrat",
                "size": "12",
                "bold": "0",
                "italic": "1",
                "regular_resource": { "package": "data.fonts", "resource": "Montserrat-Regular.ttf"},
                "bold_resource": { "package": "data.fonts", "resource": "Montserrat-Bold.ttf"},
                "italic_resource": { "package": "data.fonts", "resource": "Montserrat-Italic.ttf"},
                "bold_italic_resource": { "package": "data.fonts", "resource": "Montserrat-BoldItalic.ttf"}

        }
    },
    "drop_down_menu.button":
    {
        "prototype": "#drop_down_text_prototype"
    },
    "drop_down_menu.#drop_down_options_list.button":
    {
        "prototype": "#drop_down_text_prototype"
    }

Is the briefest way to change the font on all the drop down buttons, on all drop downs I believe. I think I'll probably add one of the new @class_id_name theming ID things at some point, like I have for the arrow buttons, to make it easier.

Thanks buddy!


cmd/go: Is GOPATH going to be deprecated?

Hello. I am going to create a new project but there are many ways to go about this. Is GOPATH really going to be deprecated in future versions of go? Because if so, I would not want to depend on it.
Thanks in advance!

Hi, there's an outline of the path forward in the Go Modules in 2019 blog post. Here's an outline with the information you're looking for:
Go 1.11 (August 2018):

Go 1.11, released in August 2018, introduced preliminary support for modules. For now, module support is maintained alongside the traditional GOPATH-based mechanisms.

Go 1.12 (February 2019):

Go 1.12, scheduled for February 2019, will refine module support but still leave it in auto mode by default.

Go 1.13 (August 2019):

Our aim is for Go 1.13, scheduled for August 2019, to enable module mode by default (that is, to change the default from auto to on) and deprecate GOPATH mode.

So yes: the current plan is to deprecate GOPATH in Go 1.13.
If you're starting a Go project now, my suggestion is to use 1.12 (not yet officially released, but it'll happen soon and we already have a release candidate you can use), and try to use the new MODULE system.

Is there going to be support for internal packages directly, without the replace "trick"?
For example:
require internal/foo v0.0.0
replace internal/foo => ./internal/foo

It could be written as:
require ./internal/foo v0.0.0

Sadly this does not work yet, but are there any plans to support it?

Hi @ALTree,
I have a related question. When the GOPATH is deprecated (starting with Go 1.13), what about the $GOPATH/bin directory? I mean, where will the executables installed by the go install be placed? Somewhere like the /usr/local/bin?

Hi @ALTree,
I have a related question. When the GOPATH is deprecated (starting with Go 1.13), what about the $GOPATH/bin directory? I mean, where will the executables installed by the go install be placed? Somewhere like the /usr/local/bin?

Hmm yeah, and what about old go projects and go get? Where will the binaries be placed? Are we going to be able to change the destination path?

Is there going to be support for internal packages directly, without the replace "trick"?

Internal packages are already fully supported, no replacements necessary. Visibility is based on the package import path, and the internal packages can be in the same module or a different one.
(I would suggest keeping everything in the same module to the extent possible.)

When the GOPATH is deprecated (starting with Go 1.13), what about the $GOPATH/bin directory?

GOBIN will continue to work, as it does today. The GOPATH environment variable will probably outlive GOPATH-mode builds, since it also currently identifies the location of the module cache.

Thanks, @bcmills. :-)

Is there going to be support for internal packages directly, without the replace "trick"?

Internal packages are already fully supported, no replacements necessary. Visibility is based on the package import path, and the internal packages can be in the same module or a different one.
(I would suggest keeping everything in the same module to the extent possible.)

Oh, where can I read about it it more? I am currently using replaces to make it work as intended, but could not find a way to make it work without that. :/

@bcmills

Is there going to be support for internal packages directly, without the replace "trick"?

Internal packages are already fully supported, no replacements necessary. Visibility is based on the package import path, and the internal packages can be in the same module or a different one.
(I would suggest keeping everything in the same module to the extent possible.)

Sorry about this question but could you clarify it? What do you mean with "I have to import internal packages by full import path" ?
I have a project like so:
Working directory: /home/me
-MyProject
 -MyLocalPackage
   local.go
 -AnotherLocalPackage
   anotherLocal.go
main.go

on go.mod I had to do:
require MyProject/MyLocalPackage
replace MyProject/MyLocalPackage => ./MyLocalPackage
and go claims:

go: parsing MyLocalPackage/go.mod: open /home/me/ MyProject/MyLocalPackage/go.mod: no such file or directory
go: error loading module requirements

So it was forcing me to create go.mod files for subpackages too.

How can I work with local subpackages without having to add replace in the main go.mod file and not being obligated to create a go mod file inside this subpackage?

Yeah, I have the same issue. I created go.mod, it works as intended, the module path specified in ./MyLocalPackage/go.mod doesn't seem to matter either. It can be omitted and so on.
Using replace is fine to me, but apparently there is a different way?

@RenathoAzevedo https://github.com/J7mbo/go-subdirectories-with-modules
This repository seems to help, I believe.

The original question has been answered, and I would like this thread not to turn into a big messy Q&A session about Go modules (we don't use this issue tracker for this kind of stuff anyway).
If anyone has any more questions, please see: https://github.com/golang/go/wiki/Questions. There are a few places that are better suited for them (like the golang-nuts mailing list, or the Go forum).
Closing here.


Training dummies!

basically, you can hit or shoot at these to increase your skills, maybe not as much as actual combat, but still nonetheless could be used to safely train.
Maybe put some variants too, like a classic target, straw dummy, wood dummy, and one of those martial arts training things

I second this suggestion - and would add to it with a different target to practice on for bows vs guns vs throwing knives.


Swift Question

I am converting my existing project to Swift and just came across a small hiccup
Previously, I assigned a tap block as such:
KVNProgressConfiguration *config = [Configuration errorProgressConfig];
config.tapBlock = ^(KVNProgress *progressView) {
KVNProgress.configuration.tapBlock = nil;
dispatch_async(dispatch_get_main_queue(), ^{
[KVNProgress dismiss];
});
[self goBack];
};
Everything else with KVNProgress has worked effortlessly with Swift, but how can I translate this to Swift and assign the tap block? Not quite sure how to use a Closure to do this.

?
config.tapBlock = {
progressView in
dispatch_async(dispatch_get_main_queue()) { [unowned self] in
KVNProgress.dismiss()
}
self.goBack()
}

Hello @JustinDMoore, this seems correct. The swift code is only missing your
KVNProgress.configuration.tapBlock = nil;

Which would simply be
KVNProgress.configuration.tapBlock = nil


Librarification

This is a very rough split of the CLI application into a library and application. It includes #8 because that was on my branch when I did this - we can figure out what to do with it when it's time.
The main differences are

conversion of printlns to logs
removal of prints
adding a callback function for arrival of new tokens

Turns out this is basically entirely sufficient for first-pass use as a library. Here's proof.

The llama-rs crate now has no logging of its own; all progress is reported through the callback. Pretty happy with how that turned out!
I've also switched over to thiserror. I've tried to remain consistent with the existing names, but I'd like to agree on #17 before we have any major users.

As an aside: should the CLI be llama-cli or llama-rs-cli

I was originally thinkinc llama-rs-cli. But after seeing the name, I really like llama-cli, especially if it ends up in someone's path via cargo install, it's easier to type. So if you prefer that one I'm on board as well!


Contact content updated

Contact content updated to manage expectations
Trello card
Context
Changes proposed in this pull request
Guidance to review
Contact details updated to make consistent with info on Train to teach page, and to reduce number of enquiries on things we can't help with.
thanks :)

Thanks for this, please deploy when you can @peteryates @gemmadallmandfe


WSL support for "local-network" scenario #775

Added /scripts/scenarios/local-network/infra.sh
Set node IP explicitly when WSL environment is detected
Replaces /scripts/scenarios/local-network/start_infra.sh, adding commands for stopping and purging local VON network infrastructure.

Looks good, successfully tested on Linux

Successfully tested on Windows


Integration Test - Release - 2022/01/04 03:09:38

Auto create for integration test. IssueCommandFlow

#pri1

Just type '#pri3'

#pri2

#pri3

#assign NonAllowedUser

#assign PRMergerTest1

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

#reassign PRMergerTest2

#reassign NonAllowedUser

#please-close

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

GitHub user PRMergerTest2 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#unassign PRMergerTest1

#unassign NonAllowedUser


Updated to HOT's new Tasking Manager repo

[x ] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md

I am:

[x ] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection
[ ] Unaffiliated with the project (not self-promoting as e.g. a maintainer, creator, contractor or employee)

EDITING AN EXISTING TOPIC OR COLLECTION
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[x ] Content (and my changes are in index.md)

Please explain why these changes are necessary:
Suggested a change to point to our current repo since the older one is no longer actively maintained.
CURATING A NEW TOPIC

[ ] I've formatted my changes as a new folder directory, named for the topic as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME])
[ ] My folder contains a *.png image (if applicable) and index.md
[ ] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Please explain why you think this topic should be curated:
CURATING A NEW COLLECTION

[ ] I've formatted my changes as a new folder directory, named for the collection as it appears in the URL on GitHub (e.g. https://github.com/collections/[NAME])
[ ] My folder contains a *.png image (if applicable) and index.md
[ ] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Please explain why you think this collection should be curated:
Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Thanks for the update @TylerRadford!


enable win builds of libpq

Win builds of postgres should be available as of https://github.com/conda-forge/postgresql-feedstock/pull/2
A side effect of this build is that Mac builds should also pick up ssl support from https://github.com/conda-forge/postgresql-feedstock/pull/3

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


koord-scheduler: add ReserveTransformer

Ⅰ. Describe what this PR does
Add ReserveTransformer  to supporting transforming the Pod.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/hold


KOGITO-5295: Removing Infinispan dependencies from SpringBoot IT caus…

…es errors in process-svg IT
Jira: https://issues.redhat.com/browse/KOGITO-5295

How to retest this PR or trigger a specific build:

Run all builds
Please add comment: Jenkins retest this

Run (or rerun) specific test(s)
Please add comment: Jenkins (re)run [runtimes|optaplanner|apps|examples] tests

Quarkus LTS checks
Please add comment: Jenkins run LTS

Run (or rerun) LTS specific test(s)
Please add comment: Jenkins (re)run [runtimes|optaplanner|apps|examples] LTS

Native checks
Please add comment: Jenkins run native

Run (or rerun) native specific test(s)
Please add comment: Jenkins (re)run [runtimes|optaplanner|apps|examples] native

Full Kogito testing (with cloud images and operator BDD testing)
Please add comment: Jenkins run BDD
This check should be used only if a big change is done as it takes time to run, need resources and one full BDD tests check can be done at a time ...

The (build) Runtimes check has failed. Please check the logs.

The (build) Apps check has failed. Please check the logs.

The (build) Examples check has failed. Please check the logs.

Jenkins rerun runtimes tests

Jenkins rerun apps tests

Jenkins rerun examples tests

The (build) Examples check has failed. Please check the logs.

Jenkins rerun examples tests

@nmirasch I think <container.image.infinispan> can also be removed

@nmirasch I think <container.image.infinispan> can also be removed

@cristianonicolai I thought this jira was a matter of checking the dependences that couldn't be removed because of the failing process-svg IT test. I see you have generated that removal in https://github.com/kiegroup/kogito-runtimes/pull/1444. Do you need I do anything there?


List references: removing items feels lagy and shows progress

List all references
Click on the x button in the viewlet
Notice that removing items is very laggy and it even shows a tiny bit of a progress bar

I guess this is because we are refreshing the whole tree.
Optimally we would be able to refresh just one item. Or we could control if we should show progress
The gif did not capture the progress bar but it is visible on my machine and looks like a screen glitch.

The tree implementation has changed since this issue was filed.


Failed to build module 'Fastboard' for importation due to the errors above; the textual interface may be broken by project issues or a compiler bug

using Fastboard framework inside my swift library packages I am facing this issue.
@vince-hz @0xvince01 can you help me on this?

Sure. You mean you are using Fastboard framework in your swift library packages.
This is a rare use, can you provide the sample project code please?
Also what version of the XCode are you using, that ,might help!
@manikandan-artium

@vince-hz I have pushed my sample project to this https://github.com/manikandan-artium/FastboardSample repo.

Thanks for the quick response. It will be beneficial if I get the solution very soon.

Hi, I had create a branch to adapt swift package manager already.
You can try this way to integerate Fastboard into your project now.
.package(url: "https://github.com/netless-io/fastboard-iOS", branch: "SPM")

Just leave your message here if you had any further questions.
@manikandan-artium

This approach had no release tag yet.
By the way, this version need XCode 15.0 and upper. Because there were some problem about mixing Objective-C and Swift when I use swift-tools-version lower than 5.9.

Thanks for the solution, Let me try and I will share the response soon

@vince-hz Thanks for solution now Fastboard working properly with our app.


[infra] Improvements

Support release as nuget via albacore
Move things to src/ for easier management
Introducing Paket
Removing native binaries
Add Z3 to vendor/ folder
Adding support for compiling z3
https://www.nuget.org/packages/fsz3

I'm quite curious: Which use cases do you use this project for :)?

Qvitoo.com for constraint solving and Boolean satisfiability. :)

Thanks. I'm happy to merge it as is.
Let me know if anything can be improved to make it easier for your usage.


Issues dealing with multiple ICDs

It seems like one big difference with MoltenVK vs. regular Vulkan usage on other platforms is that there should only be one ICD, the MoltenVK one. That is, we don't need a different one for different GPUs installed on the system.
In my case I've made a custom build of libMoltenVK.dylib that I want to be used for my application. I add it to my application bundle and and I have an ICD JSON in Resources/vulkan/icd.d that points to it. \
However, when I launch I get the warning:
Class MVKBlockObserver is implemented in both /Users/malcolm/Desktop/devtouch/dev_designer/tfs/lib/libMoltenVK.dylib (0x13727d7e0) and /usr/local/lib/libMoltenVK.dylib (0x138658ce0). One of the two will be used. Which one is undefined.
Of course I want the one shipped with application to be used. It's entirely possibly my end-users will have the Vulkan SDK installed, so now we have undefined behavior. I know I can use VK_ICD_FILENAMES to force this, however using an env variable to ensure functionality in a shipping product isn't really a clean way of working. Its also very error prone on multiple developer scenarios, forcing everyone to go through many steps to make their dev systems load properly. Is there another way to ensure only my ICD is used?
I understand I can link directly with libMoltenVK.dylib instead and avoid the loader, but that has it's own issues such as functions from VK_KHR_get_physical_device_properties2 not linking correctly.
What am I missing?

Ok thanks, I'll post over there.
For your question: The function pointers to that extension end up being nullptr when I link directly with MoltenVK. This is likely my own misunderstand on how function pointers are filled in though.


WFLY-5038 Update MutableDetector to include immutable classes from Java 8

Also detect @Immutable from JCIP, to be leveraged by modules external to WildFly.
https://issues.jboss.org/browse/WFLY-5038

Linux with security manager Build 2158 is now running using a merge of 7a08e2d88c0dee5a44c80bbaf8605737c3e6ad1b

Windows Build 2343 is now running using a merge of 7a08e2d88c0dee5a44c80bbaf8605737c3e6ad1b

Linux Build 7289 is now running using a merge of 7a08e2d88c0dee5a44c80bbaf8605737c3e6ad1b

Linux with security manager Build 2158 outcome was SUCCESS using a merge of 7a08e2d88c0dee5a44c80bbaf8605737c3e6ad1b
Summary: Tests passed: 900, ignored: 285 Build time: 0:06:47

Linux Build 7289 outcome was SUCCESS using a merge of 7a08e2d88c0dee5a44c80bbaf8605737c3e6ad1b
Summary: Tests passed: 3098, ignored: 365 Build time: 0:49:10

Windows Build 2343 outcome was SUCCESS using a merge of 7a08e2d88c0dee5a44c80bbaf8605737c3e6ad1b
Summary: Tests passed: 3096, ignored: 366, muted: 1 Build time: 0:52:12


bug report in Dotspatial.Tool.MergeGrids

in  the MergeGrids.cs  :
Line 102:    output = Raster.CreateRaster(output.Filename, string.Empty, noOfCol, noOfRow, 1, typeof(int), new[] { string.Empty });

the bug is "typeof(int)", this is unreasonable, the type should depend on the two input raster. If the type of input1 is float and the type of input 2 is int, then the type of the output should be float. Unless the type of two input are both int. Similarly, if the type of input1 is double and input2 is float then type of output should be double, and so on.
I found when I try to merge two raster in type of float, I will get an exception from “output.Value[i, j] = output.NoDataValue;”  so I trace that bug.

Please create a pull request with a fix

I can take a shot at it since I'm familiar with the PR process. Do you know if there are any existing routines that are similar? ie the output type depends on the input types.

@xujinghai can you post your code or snapshots of how you were merging the rasters.


Settings File not created when solution is exported

When you export a solution, need to check if there are environment variables defined, and if so, create the settings-file so you can modify environment specific parameters as you roll from one environment to another.
Import should not only support supplying a settings file, it should allow you to override environment variables inline, much like the Azure Resource Manager actions do.

There is pac solution create-settings which can be used after export.