add deterministic flag + functionality

Follow up on discussion https://github.com/rwightman/pytorch-image-models/discussions/845#discussion-3555497

@alexander-soare that still won't be deterministic no? torch.use_deterministic_algorithms(True) needs to be set as it has broader scope than cudnn flag. Also not sure if the benchmark mode needs to be disabled as well of uf use_deterministic_algorithms overrides that too...

@rwightman hmm yeah I must admit I'm not totally sure about this one. Empirically, it does what it's supposed to do. And using torch.use_deterministic_algorithms(True) raises issues with some algorithms not having determinism implemented. I haven't dug too deeply into the docs to try to understand exactly what's going on.
Happy to park this one until/if I get around to fully understanding what's going on.

@alexander-soare deterministic is always such a bother :) so in your trials just the cudnn flag seemed to result in reproducible runs where as without it was different? It's definitely not a straightforward yay/nay... and yeah, the full flag it can break some models since not all ops have deterministic impl. I'll think about it, maybe make the deterministic setting a string/enum so one can do --deterministic cudnn, --deterministic full, etc
.. adding the flag and then not actually having it fully deterministic seems misleading, hah

@rwightman

so in your trials just the cudnn flag seemed to result in reproducible runs where as without it was different?

Correct.
And yeah makes sense to drop this for now. Besides, it's easy enough to diy for whoever wants it.


[Feature request] "Delete when notification is dismissed" option

To go hand in hand with #27, I'd like to be able to clear my clipboard from the notification window by swiping the notification away. (If I have multiple clips stacked, this would bring up the new clip's notification, and so on and so forth until the stack is cleared.)

I think this is overloading the meaning of "dismiss" - you don't want "dismiss all notifications" to clear your clipboard. This would do better as a quick action on the notification, next to "Add" (the way that notifications like alarms have an option to silence the alarm).
As @heruoxin said when I accidentally described this issue on #27:

I see... It's impossible to swipe only a part of notification on phone, but on wear it's possible. I'll try to add that on wear.

So, not "swiping" part of a notification, but "pressing" a (different) part of it (after swiping it down to expand).

Never mind - https://github.com/heruoxin/Clip-Stack/issues/29#issuecomment-97509644 explained what "Swiping part of a notification" means. I'm talking about something different.


HacktoberFest_2020_PR

change the subject of the PR which describes your PR

@all-contributors please add @Innovator07 for code

@all-contributors please add @Innovator07 for code

@all-contributors please add @Innovator07 for code


Length of input field shortened?

Originally reported on Google Code with ID 112
What steps will reproduce the problem?
1.Enter a URL
2.Select POST
3.Click FORM tab, add a key/value with an extremely long value (xml).
4.The entry field cuts off the text of my input.  If I enter the text in RAW, it all
appears there, but when I send it, it's only sending the first part of it, and not
the complete text.  I have to send large xml strings to some of my web services as
the request, and it used to accept anything I put in there, now it is cutting the value
off.

On what operating system? Windows 7

Reported by dcmarquardt on 2012-11-09 20:16:09

Probably your string get truncated because you have sent data that should be encoded before sending it. Use provided functions in form editor to encode payload.


Remove UKCP Bugsnag Reporting

:tada: This PR is included in version 5.4.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Adds IsNonblock SetNonblock PollRead to platform.File

This adds IsNonblock, SetNonblock and PollRead to platform.File
allowing us to implement stdio files with the platform.File type
instead of alternate implementations.

TestShorthash hangs locally not sure why

looks like I need to return fake stat for stdio, even when a real file, to pass this test https://github.com/WebAssembly/wasi-testsuite/blob/main/tests/rust/src/bin/fd_filestat_get.rs#L1-L19

looks like stdout is causing the hang on TestShortHash (trial-error commenting things out and running with cmd/wazero)

TODO: scaffold tests for the new functions in platform/file_test.go as they are currently tested really later (wasi)

Does it break if stdin/stdout/stderr are closed and the file descriptor resused?

I'll switch to make the stdio files explicitly pre-opens (they are, just not in a way we can check).

cool. This should unblock some of the the other polling work 🥁


Fixes ReadAsync() behavior to register Cancellation token action before streaming results

Fixes #1065 with test case added from comment.
cc @jnm2 @roji would appreciate some extra validations!

/azurepipilines run

@cheenamalhotra Please backport this to the 5.0.1 as well. Thanks!


Configurable interpolation types

Fixes https://github.com/Deltares/Ribasim/issues/1919.
Inspired by ongoing discussions with @Huite and @visr on smoothness (see also https://github.com/Deltares/Ribasim/issues/1918, https://github.com/Deltares/Ribasim/issues/1920) I started looking into making the type of interpolation configurable in the several places in the core where interpolation is used. For this PR I am focussing on $Q(h)$ relationships.
We require of the $Q(h)$ interpolation that the flow is $0$ below and at the lowest supplied level. That's trivial to achieve for linear interpolation, but not for non-linear (generally piecewise polynomial of degree >1) interpolation types. This requires a special approach for each method.
The question is which methods to support (and even whether this should be configurable for $Q(h)$ relationships at all). I now experiment with PCHIP Interpolation because of its smoothness and non-overshooting properties.
Another point of attention is extrapolation. For linear interpolation extrapolation makes sense, but for higher order interpolation methods extrapolation gets out of hand quick. We could make our own wrapper of interpolation types from DataInterpolation, but I also made an issue there to pick it up internally:
https://github.com/SciML/DataInterpolations.jl/issues/355

Should the constructors keep the extrapolate keyword or can it be replaced by extrapolation_type::Symbol which has one of the above supported types (preferably also split in upper_extrapolation_type and lower_extrapolation_type)?


Great work! Any plan to release the model and inference code?

We are working on that. Please be patient!


bluetooth : Mesh: adv thread can be replace by other methods.

@jhedberg As we all know, creating a thread requires a separate stack space. I can see that the function of the adv thread can be replaced by the k_delay_work API, and it is not necessary to occupy 768 bytes of RAM.
I wrote some pseudo code to verify my thoughts, I hope you can give valuable advice.

typedef enum sys_states
{
	K_SYS_INIT,
#ifdef PROXY
	K_QUEUE_WAIT_PROXY,
#else
	K_QUEUE_WAIT_ADV,
#endif
	K_SLEEP_ADV,
};

static sys_states states = K_SYS_INIT;

/*unused*/
enum sys_events{
#ifdef PROXY
	K_QUEUE_TIMEOUT_PROXY,
#endif
	K_SLEEP_TIMEOUT_ADV,
}

static void k_queue_timeout_proxy_handler()
{
	if(states != K_QUEUE_WAIT_PROXY)
		__ASSERT("ERROR");

	proxy_stop();
	sys_start();
}

static void k_sleep_timeout_adv_handler()
{
	if(states != K_SLEEP_ADV)
		__ASSERT("ERROR");

	adv_stop();
	sys_start();
}

static void proxy_start()
{
	int timeout = proxy_send();
	states = K_QUEUE_WAIT_PROXY;

	k_delay_work_submit(proxy_handler, timeout);
}

static void adv_send()
{
	adv_start();
	states = K_SLEEP_ADV;

	k_delay_work_submit(adv_handler, duration);
}

/*adv thread*/
static void sys_start()
{
	/*global variable*/

        /*should use single list replace, just as sys_list_t.*/
	buf = k_queue_get();
#ifndef PROXY
	if(!buf)
	{
		states = K_QUEUE_WAIT_ADV;
		return;
	}
#endif

	if(buf)
	{
		adv_send();
		return;
	}

#ifdef PROXY
	proxy_start();
#endif
}

static void proxy_stop()
{
	k_delay_work_cancel(proxy_handler);
	proxy_adv_stop();
}

void bt_mesh_adv_update()
{
	k_work_submit(adv_update);
}

static void sys_k_queue_update_handler()
{
	switch (states)
	{
	case K_SYS_INIT:
		break;
#ifdef PROXY
	case K_QUEUE_WAIT_PROXY:
		proxy_stop();
		break;
#else
	case K_QUEUE_WAIT_ADV:
		break;
#endif
	case K_SLEEP_ADV:
		/*ignore update event when adv sleep.*/
		return;
	default:
		__ASSERT("ERROR");
	}

	sys_start();
}

void bt_mesh_adv_init()
{
	k_work_init(adv_queue, sys_k_queue_update_handler);
	k_delay_work_init(proxy_handler, k_queue_timeout_proxy_handler);
	k_delay_work_init(adv_handler, k_sleep_timeout_adv_handler);
        /*just demo, other ignore*/
}

ooh, no need maintain much more k_delayed_work instance, just only one k_delay_work instance.

typedef enum sys_states
{
	K_SYS_INIT,
#ifdef PROXY
	K_QUEUE_WAIT_PROXY,
#else
	K_QUEUE_WAIT_ADV,
#endif
	K_SLEEP_ADV,
};

static sys_states states = K_SYS_INIT;

static void k_adv_handler()
{
	switch (states)
	{
	case K_SYS_INIT:
		break;
#ifdef PROXY
	case K_QUEUE_WAIT_PROXY:
		proxy_stop();
		break;
#else
	case K_QUEUE_WAIT_ADV:
		break;
#endif
	case K_SLEEP_ADV:
		adv_stop();
	default:
		__ASSERT("ERROR");
	}

	sys_start();
}

static void proxy_start()
{
	int timeout = proxy_send();
	states = K_QUEUE_WAIT_PROXY;

	k_delay_work_submit(proxy_handler, timeout);
}

static void adv_send()
{
	adv_start();
	states = K_SLEEP_ADV;

	k_delay_work_submit(adv_handler, duration);
}

static void k_adv_thread()
{
	/*global variable*/
	buf = sys_slist_get(adv_queue);
#ifndef PROXY
	if(!buf)
	{
		states = K_QUEUE_WAIT_ADV;
		return;
	}
#endif

	if(buf)
	{
		adv_send();
		return;
	}

#ifdef PROXY
	proxy_start();
#endif
}

static void proxy_stop()
{
	k_delay_work_cancel(proxy_handler);
	proxy_adv_stop();
}

void bt_mesh_adv_update()
{
	/*only flush queue when state not in adv sleep mode.*/
	if(states != K_SLEEP_ADV){

		/*we shuld cancel the delay work.*/
		k_delay_work_cancel(adv_update);
		k_work_submit(adv_update.work);
	}
}

void bt_mesh_adv_send(struct net_buf *buf, const struct bt_mesh_send_cb *cb,
		      void *cb_data)
{
	sys_slist_put(adv_queue, net_buf_ref(buf));
	bt_mesh_adv_update();
}

void bt_mesh_adv_init()
{
	sys_slist_init(adv_queue);
	k_delay_work_init(adv_handler, k_adv_handler);
}

@menglingao1997 I'd need to think about this a bit. To be honest, the adv thread is the last one I'd have started looking for optimisations from, since the logic of handling both proxy and network advertising can be fairly nicely implemented with a dedicated thread.
It might make sense to wait until we have the Mesh HCI vendor extensions in place to see how the code will look then, since the logic in adv.c should get simplified considerably, and this in itself might already remove the need for a dedicated thread.

I just successfully ported my idea to nimble just because linux_blemesh example can be more easily debugged on my Linux system. The purpose of my doing this is to minimize the RAM usage. At the same time, we look forward to your better solution.

@jhedberg
Please throw some light on "Mesh vendor HCI extensions".
How it is different from current implementation ?
Pros & cons over current implementations.
Thank you !!

Since @trond-snekvik solves this problem better in PR(#30005), this issure should be closed.


WIP: add ability to change selected PostgresqL parameters in the Values fo…

…r the Helm file.
This merge is a prerequisite for having the new Postgres image that incorporates the ability to change settings, as well as reducing the number of layers in the image.
Doing a WIP PR because I'm on an airplane and can't run tests right now.  Final PR will probably have one more commit.

/lgtm for me but not merging as requested.


GAX iter.next() pattern seems to be breaking down

For example, sometimes the iterable isn't an iterable
Traceback (most recent call last):
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/system_tests/logging_.py", line 215, in test_update_metric
    after_metrics, _ = Config.CLIENT.list_metrics()
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests3/lib/python3.4/site-packages/gcloud/logging/client.py", line 298, in list_metrics
    self.project, page_size, page_token)
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests3/lib/python3.4/site-packages/gcloud/logging/_gax.py", line 306, in list_metrics
    for log_metric_pb in page_iter.next()]
TypeError: 'LogMetric' object is not iterable

or
Traceback (most recent call last):
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/system_tests/pubsub.py", line 273, in test_fetch_delete_subscription_w_deleted_topic
    all_subs = retry_until_found_orphan(_fetch)()
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/system_tests/retry.py", line 126, in wrapped_function
    result = to_wrap(*args, **kwargs)
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/system_tests/pubsub.py", line 266, in _fetch
    return list(MethodIterator(Config.CLIENT.list_subscriptions))
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/gcloud/iterator.py", line 178, in __iter__
    page_token=self._token, page_size=self._page_size, **self._kw)
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/gcloud/pubsub/client.py", line 164, in list_subscriptions
    self.project, page_size, page_token)
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/gcloud/pubsub/_gax.py", line 242, in list_subscriptions
    for sub_pb in page_iter.next()]
TypeError: 'Subscription' object is not iterable

and sometimes it just gives a StopIteration when a new page is expected
Traceback (most recent call last):
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/system_tests/pubsub.py", line 130, in test_list_subscriptions
    empty, _ = topic.list_subscriptions()
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/gcloud/pubsub/topic.py", line 314, in list_subscriptions
    self.full_name, page_size, page_token)
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/gcloud/pubsub/_gax.py", line 198, in topic_list_subscriptions
    subs = page_iter.next()
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/google/gax/__init__.py", line 472, in next
    return self.__next__()
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/google/gax/__init__.py", line 478, in __next__
    self._current = next(self._page_iterator)
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/google/gax/__init__.py", line 435, in next
    return self.__next__()
  File "/home/travis/build/GoogleCloudPlatform/gcloud-python/.tox/system-tests/lib/python2.7/site-packages/google/gax/__init__.py", line 440, in __next__
    raise StopIteration
StopIteration

I withhold the flaky label because the same 10 test cases fail every time and in both Python 2 and 3:

test_fetch_delete_subscription_w_deleted_topic (pubsub.TestPubsub)
test_list_subscriptions (pubsub.TestPubsub)
test_list_topics (pubsub.TestPubsub)
test_list_metrics (logging_.TestLogging)
test_list_sinks (logging_.TestLogging)
test_log_struct (logging_.TestLogging)
test_log_struct_w_metadata (logging_.TestLogging)
test_log_text (logging_.TestLogging)
test_log_text_w_metadata (logging_.TestLogging)
test_update_metric (logging_.TestLogging)

@tseaver ISTM that lines like
        token = page_iter.page_token or None
        return sinks, token

end up making page_token=None override the default value of page_token=INITIAL_PAGE in lots of these methods.

I'm gonna send a PR

@tseaver Update on this. I modified this to raise during the system tests for explicit None and actually update the GAX dependencies in my local install.
Running them
$ nosetests system_tests/logging_.py
$ nosetests system_tests/pubsub.py

we find 13 test cases that end up with an explicit None.

FWIW I ran with dependencies:
$ pip freeze | grep '\(protobuf\|gax\|grpc\|httplib2\|googleapis\|oauth2\)'
gax-google-logging-v2==0.8.1
gax-google-pubsub-v1==0.8.1
google-gax==0.12.5
googleapis-common-protos==1.1.0
grpc-google-logging-v2==0.8.1
grpc-google-pubsub-v1==0.8.1
grpcio==1.0.0
httplib2==0.9.2
oauth2client==3.0.0
protobuf==3.0.0

@tseaver OK I went through and verified the code paths from the stack traces and annotated with some diffs. The following methods do pass an explicit None (they don't have a choice really)

pubsub.Client.list_topics()
pubsub.Client.list_subscriptions()
pubsub.Topic.list_subscriptions()
logging.Client.list_entries()
logging.Client.list_sinks()
logging.Client.list_metrics()
logging.Logger.list_entries()


Update calendar styles to match applied theme

Fix for
What's in this Pull Request?

Fix the issue with many vulnerabilities warnings. All critical vulnerabilities are gone.

Fix white text over white background bug, related issue #1004, changed code to match the current applied theme.

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

Thank you @derhallim for making an awesome sample even better!


[Royce] Update TestScript

Coverage remained the same at 82.759% when pulling 7bb7a6485337fd630c161a8b0e0d3e5c6b6b4abf on royceljh:testScriptFix into 2cc69cdd2586a190a0e5ac6865429ea691522f91 on CS2103AUG2017-T11-B1:master.


enable egressgateway in multicluster deployment.

The egress gateway is by default disabled since https://github.com/istio/istio/pull/12114
In multicluster deployment, egress gateway is necessary.

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

Needs approval from an approver in each of these files:

install/OWNERS [morvencao]

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

Have you tested it?

@morvencao: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
8a722e7cff0f557e7e662e643aef4307a143402e
link
/test istio-integ-k8s-tests

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

@morvencao: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
8a722e7cff0f557e7e662e643aef4307a143402e
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
8a722e7cff0f557e7e662e643aef4307a143402e
link
/test istio-pilot-multicluster-e2e

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

@ymesika Local tests show multicluster deployment still works, but the remote traffic is not captured by the egressgateway, I have add the endpoint of istio-egressgateway.istio-system.svc.cluster.local to my serviceentry configuration:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: httpbin-bar
spec:
  hosts:
  - httpbin.default.global
  location: MESH_INTERNAL
  ports:
  - name: http1
    number: 8000
    protocol: http
  resolution: DNS
  addresses:
  - <IP_ADDRESS>
  endpoints:
  - address: ${CLUSTER2_GW_ADDR}
    network: external
    ports:
      http1: 15443
  - address: istio-egressgateway.istio-system.svc.cluster.local
    ports:
      http1: 15443

Any thought?

@morvencao Not sure if it's related but don't we have outboundTrafficPolicy mode: ALLOW_ANY now?

@ymesika we should, by default but that should be traffic going out through egress gateway.

@ymesika Using the default value for outboundTrafficPolicy, that's ALLOW_ANY

/lgtm

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

Needs approval from an approver in each of these files:

install/OWNERS [morvencao,ymesika]

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


Cannot analyze through docker desktop

What happened:
I'm trying to analyze a multi-gigabyte local image, and it's just failing with "could not find image config"
🐚 dive myapp:latest
Image Source: docker://myapp:latest
Fetching image... (this can take a while for large images)
cannot fetch image
could not find image config

🐚 dive build .
Building image...
[REDACTED, but apparently successful]

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/9k057vmr8hx8ldwxbgravqng5
cannot build image
could not find image config

What you expected to happen:
Analysis
How to reproduce it (as minimally and precisely as possible):
Honestly, I'm not sure what's going on to begin narrowing it down. It's a 3+GB image and not published to a registry.
Anything else we need to know?:
Some kind of --verbose might make tracking this down easier.
Buildx is being used.
Environment:

OS version: Mac OSX 14.0
Docker version: Docker Desktop for Mac 4.26.1, Docker Engine 24.0.7

I think this might be a docker desktop thing?
dive python:3.11 doesn't work either.
Running through the container (instead of the brew version) has the same result in both cases.

Could you please try building dive from source? Specifically PR #490.

(Some build instructions would help a bunch.)
Does not seem to--built 326d463 and ~/src/dive/snapshot/dive_darwin_arm64/dive build . seems to be doing the same thing.

Download the fork, checkout the right branch from that fork and run go run main.go python:3.11 from the root of the clone.

jamie@Jamies-MacBook-Pro ~/src/dive 326d463 🐚 go run main.go python:3.11
Image Source: docker://python:3.11
Fetching image... (this can take a while for large images)
cannot fetch image
could not find image config
exit status 1

By "some build instructions would help", I mean "I spent ten minutes fumbling through the makefile and eventually figured it out, which is not a great experience."

Ah, sorry, thought it was aimed at me. I do agree with the sentiment, though.
If you're up for diving deeper into the issue, I'd look at where is the socket for docker-desktop located, try running docker context ls, and pointing the variable in docker_host_unix.go to that.
If not, please let me know, will see what I can do.

🐚 docker context list
NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT                                     KUBERNETES ENDPOINT   ORCHESTRATOR
default             moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
desktop-linux *     moby                Docker Desktop                            unix:///Users/jamie/.docker/run/docker.sock

Would you kindly try replacing that line indocker_host_unix.go with unix:///Users/jamie/.docker/run/docker.sock and try it with some image again?

jamie@Jamies-MacBook-Pro ~/src/dive 326d463 🐚 git diff
diff --git a/dive/image/docker/docker_host_unix.go b/dive/image/docker/docker_host_unix.go
index 52dae70..c93781d 100644
--- a/dive/image/docker/docker_host_unix.go
+++ b/dive/image/docker/docker_host_unix.go
@@ -3,5 +3,5 @@
 package docker

 const (
-       defaultDockerHost = "unix:///var/run/docker.sock"
+       defaultDockerHost = "unix:///Users/jamie/.docker/run/docker.sock"
 )
jamie@Jamies-MacBook-Pro ~/src/dive 326d463 🐚 go run main.go python:3.11
Image Source: docker://python:3.11
Fetching image... (this can take a while for large images)
cannot fetch image
could not find image config
exit status 1

Alright, thanks!
Until that's fixed I'd recommend saving the image to a file and then passing the archive to dive, should be an example under --help.

FYI, you don't have to change the defaultDockerHost. You can just export DOCKER_HOST with the desired value. For example, export DOCKER_HOST=unix:///Users/jamie/.docker/run/docker.sock as a workaround until #490 is merged.

@rajiv-k but if I'm reading it right, it's not working even after changing the host socket.

@mark2185 try like this :D
sudo ln -s /Users/yunsang/.docker/run/docker.sock /var/run/docker.sock

I have the same problem and sudo ln -s <MY_SOCK_PATH> /var/run/docker.sock results in ln: /var/run/docker.sock: File exists.

FWIW with Docker Desktop on Mac it's a symlink in /var/run
lrwxr-xr-x  1 root  daemon  42 Feb 19 10:12 /var/run/docker.sock -> /Users/test/.docker/run/docker.sock
srwxr-xr-x  1 test  staff    0 Feb 20 20:44 /Users/test/.docker/run/docker.sock

overriding DOCKER_HOST doesn't seem to make any difference for me.

Fixed it by enabling this option in Docker Desktop (MacOS) in the "Advanced" tab:
Allow the default Docker socket to be used (requires password)

Still happen
dive 032c52613401
Image Source: docker://032c52613401
Fetching image... (this can take a while for large images)
cannot fetch image
could not find 'blobs/sha256/0dd753b657c966f26a5151f899593efa1f2874d71fabcedff646ede0cb0d2c67' in parsed layers

@xxnuo have you tested it with #490 or #511 merged in?

@xxnuo I had similar problems in the past after docker-desktop was upgraded.
Suddenly some applications/terminal-tools where unable to use docker (again).
I solved it be re-applying this setting (see above) by "uncheck -> apply -> check -> apply" these options in docker-desktop-setup dialog.
Afterwards the failing tools were able to use docker socket again.

@xxnuo have you tested it with #490 or #511 merged in?

Not yet, I will try it, thank you

@xxnuo I had similar problems in the past after docker-desktop was upgraded. Suddenly some applications/terminal-tools where unable to use docker (again). I solved it be re-applying this setting (see above) by "uncheck -> apply -> check -> apply" these options in docker-desktop-setup dialog. Afterwards the failing tools were able to use docker socket again.

Unfortunately this method doesn't work, it's very puzzling that there are indeed other software that don't work properly Docker Desktop

I had a very similar error, however, I'm using "colima" instead of docker-desktop.
When I adjust DOCKER_HOST to the colima path, then it starts to work.


Publish code coverage

Publish code coverage results to Code Climate

We are currently moving staging to master, which should post the code coverage results.  Will update after deployments are done.

@berniedurfee We have fixed coverage and it is now reporting to Code Climate.


Remove RPC

This is branched off of and waiting on https://github.com/Autodesk/nbmolviz2d/pull/5.
Removes all RPC hooks in the project from MDT.  For issue https://github.com/Autodesk/nbmolviz2d/issues/4.

cool


Nothing shows up in Explorer

Windows 10
VS Code 1.45.1
I installed the extension to try out adding a tour and don't see anything in explorer or any clear way in the UI of adding a tour. Any suggestions? I have already turned it off and back on. ;)

Previously, the CodeTour tree would only show up if the opened workspace actually had any tours in it. So you'd have to use the CodeTour: Record Tour or CodeTour: Open Tour commands to create/view tours. That said, I just pushed an update that will always show the CodeTour tree on the Explorer tab, to make the experience more discoverable. Let me know if that seems to work well for you and/or if you have any other feedback. Thanks!

Nice and super fast response. :)


Add GCP copyright check

The .licenserc.json and license check just look for OpenTelemetry copyright. We're currently adding GCP files to the ignore section of licenserc and manually checking for copyright notices during review. We should update the CI check to tell it which files should have GCP copyright, which ones should have otel copyright, and possibly some that have both

Discussed in triage, one other option is to move over the GCP license checker bot https://github.com/googleapis/repo-automation-bots/tree/main/packages/header-checker-lint which we use in our other repos.


I wanted to change the font size, Is there is anyway i can do that, using this library ?

Duplicate of #154


Notebook to generate metrics from ngrams

Input: ngrams, scenarios
Output: metrics

Will need to confirm with @percyliang ; right now just wanted to have something to compute metrics. Either can leave as jupyter notebook or convert to script once we're aligned

Closing stale PR. Not deleting the branch, in case it is still being used.


Revise definition 'adhesion of symbiont to host'

This is currently a subclass of 'symbiotic process' and is defined as:

The attachment of a symbiont to its host via adhesion molecules, general stickiness etc., either directly or indirectly. The host is defined as the larger of the organisms involved in a symbiotic interaction.

First, I think the proper parent class for this is either going to be 'movement in host environment' or 'interaction with host'. Whatever the decision is for where to move it, I think the definition needs to be edited to reflect what the parent class is. My recommendation is:

An X in which a symbiont attaches to its host via adhesion molecules, general stickiness etc., either directly or indirectly. The host is defined as the larger of the organisms involved in a symbiotic interaction.

Here, 'X' represents the label for the parent class.

Need to move 'adhesion of symbiont to host' under 'biological process involved in interaction with host'


Add an option to invert direction of weapon select scroll

Self explanatory.
Adds a new convar nut_wepselect_invert which controls the direction of the weapon select scroll, also adds that to quick settings options with an English Locale only by default.

I wasn't sure if there was a different way to add a language entry or not, I didn't see one, so I just directly modified nut.lang.stored["english"]

Sorry for taking so long to review. Since this is an internal NS plugin, you can move the localized (english) text into the respective localization file in nutscript/gamemode/languages.
That way the localizations are located in one consistent place. Otherwise looks good

Moved language entry in c8aff8e


Use output to save client cert file locally

Use output to save client cert file locally
This PR is based on top of #78

should be good now @cpanato / @bobcallaway , DCO failure is from accepting bobs commits in the gui.


Last item in profiler is hidden behind scrollbar

Issue Report Checklist

[ ] Searched the issues page for similar reports
[ ] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[ ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[ ] Tried basic troubleshooting (if a bug/error)

[ ] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[ ] Tried the other applicable steps from the Troubleshooting Guide

[ ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
It seems like the scrollbar is covering the last item of the profiler. I think it is a MacOS related issue; I had @CAM-Gerlach test it in Windows and it looks fine.

What steps reproduce the problem?

What is the expected output? What do you see instead?
Paste Traceback/Error Below (if applicable)

PASTE TRACEBACK HERE

Versions

Spyder version: 4.2.0 dev0
Python version: 3.7.7
Qt version: 5.9.6
PyQt version: 5.9.2
Operating System name/version: MacOS Catalina

Dependencies

PASTE DEPENDENCIES HERE

@juanis2112, I've noticed this issue with vertical scrollbars as well and in all Spyder panes with scrollbars (IPython console, editor, etc.). I'm not sure how PyQt handles scrollbars, but it seems to me that they are painted over the main panel instead of to the side of it.
A related issue may be the Editor scrollflag accommodation for macOS at plugins/editor/panels/scrollflag.py:33. I've noticed that the scrollflag is painted behind the standard scrollbar, but made wider to be visible; however, on retina displays the scrollflag is painted next to the scrollbar instead of behind it.
I suspect that there may be some PyQt issue for macOS that is causing both of these issues.


Faction and Type icons reload on every deck change

For some reason, every time I add or remove a card from a deck, the icons are reloaded.
Due to the icons not have a defined size without the icons being loaded, this causes a page reflow, which is very distracting.
Ideally the icons should not be reloaded this frequently, but if they have to be, they should have a defined size to stop such a reflow.
I've attached this gif below, which shows the effect:

Here's the frame that shows when everything is reflowed.

thanks.  I have a fix submitted for the refresh part, but this could still
do with defined sizes, which i can get to separately.  I expect to push
this live in the next few days.
-jason
On Wed, Aug 12, 2020 at 5:11 AM Ben Williams<EMAIL_ADDRESS>wrote:

For some reason, every time I add or remove a card from a deck, the icons
are reloaded.
Due to the icons not have a defined size without the icons being loaded,
this causes a page reflow, which is very distracting.
Ideally the icons should not be reloaded this frequently, but if they have
to be, they should have a defined size to stop such a reflow.
I've attached this gif below, which shows the effect:
[image: Screen Recording 2020-08-12 at 10 55 16]
https://user-images.githubusercontent.com/2972388/90002534-aa5c6180-dc8a-11ea-92b7-b70338bc3074.gif
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Alsciende/netrunnerdb/issues/443, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADA2EWQOVABUECJKOHVATLSAJTEDANCNFSM4P4OI4KA
.


fix(lint): Update rule names for codelyzer 0.0.19

Updated rules based on changes: https://github.com/mgechev/codelyzer/commit/6f985f9e84865e383d7d88ef54f1d96dc929c9c2
and https://github.com/mgechev/codelyzer/commit/ceaefa6b7c0d488e2f621343875e692770a57664
Currently running ng lint gives the message:
> tslint "src/**/*.ts"

Lint errors found in the listed files.

This fixes the errors because lint rules were not found because of name changes.

LGTM


Add dbt-clickhouse to dbt docs site's Available Adapters page

The Available Adapters page is one of the dbt community's most-visited docs pages. It would be of great benefit for first-time visitors to the dbt docs to see:

that this adapter is a possible option for using dbt-core, and
how many large the dbt ecosystem of support databases is.

https://github.com/dbt-labs/docs.getdbt.com/issues/1489 exists to address this with all as-of-yet undocumented adapters.
We just released Documenting a new adapter, a new guide on how to add an adapter to the Available Adapters page. I'd love to see this adapter on that page, so feel free to reach out with any questions/blockers by either replying to this issue, or posting in the #adapter-ecosystem channel of the dbt Community Slack.
Looking forward to the contribution!

Hi Andres, thanks for the helpful links and instructions.
Following your recommendation, I created a pr providing config and profile docs for ClickHouse in the Available Adapters page.
I also moved ClickHouse from community supported to Vendor supported as discussed.
I will look for comments there.


[BUG] No support for python >= 3.9

In Python >= 3.9,  import safe results in
ImportError: cannot import name 'gcd' from 'fractions'
I believe it is related to the math package
https://stackoverflow.com/questions/66174862/import-error-cant-import-name-gcd-from-fractions

Can you provide a bit more information on how you installed safe ?

hi! thanks for the quick reply
I installed it with python -m pip install safe-mol
I am using  Python 3.9.16

Do you have a full trace ?  Knowing where the exception happens could help. As this is likely from some downstream dependencies.
It's very likely that you could also have a corrupted env. Can you try on a fresh conda env with python 3.9.16 to see ?


Correctly handle orientation change

Fixes #1. Suggestion: maybe consider using Auto Layout.
Also updated README with DemoApp directory name instead of Example.

yup, that looks good for now, thanks


Update index.md - fixed typos

Fixed a few typos - cheers!

Codecov Report

Merging #10 into master will increase coverage by 0.55%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #10      +/-   ##
==========================================
+ Coverage   62.23%   62.79%   +0.55%
==========================================
  Files         124      124
  Lines        4409     4370      -39
  Branches       85       83       -2
==========================================
  Hits         2744     2744
+ Misses       1665     1626      -39

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 cee0aa0...740e962. Read the comment docs.

Thanks for this!


🐛 Fixed test email permissions for non-owner roles

closes https://github.com/TryGhost/Ghost/issues/11841

Adds migration mapping permissions and roles for email_preview sendTestMail
Only owner previously had correct permission to send test emails
Fixture existed to allow Admin/Editor/Integrations to send test mails but had missing migration
Adds tests to check different roles for sending test emails

but this seems to output a warning given any error?

@allouis Yeah had looked odd to me as well initially, had followed the pattern for permissions/roles from here and here.
Have updated now with a better pattern for up migration with the expected result check and add warnings/errors in right place. For the down migration have changed warn to error now as there is no setup for the warn check atm.

I've tested this from 3.0.0 and from 3.17.2 and both worked as expected!
One more thing though - I thought that all migrations were now not supposed to use the model layer?

I thought that all migrations were now not supposed to use the model layer?

@allouis Hm yeah didn't realize the common utils are using the model layer for permissions stuff, definitely not ideal. Think thats something to be fixed separately though and not in this PR right ?

I'm not gonna block the PR, but this code is brand new - so it might be better to do it like that now?

@allouis I think its probably better to pick it up separately as migrations cleanup task and do a bit of testing with those changes than push it with this migration which ideally gets merged tonight/tomorrow :)

@allouis @daniellockyer Lmk if 👍 for the merge :)

Thanks everyone, gonna 🚢 it 🎉


HelpSystem should consume markdown natively

HelpSystem currently relies on MAML based help.  We have platyPS which converts markdown to MAML.  The HelpSystem should understand markdown natively removing the conversion step.

If we'll directly read and parse Markdown files we have to rewrite all help subsystem which currently full based on xml/maml. If we'll rewrite the help sybsystem maybe use a lightweight DB engine like MongoDB? In the case we'll parse once with Update-Help and then import help info in a DB.

@iSazonov using a local noSQL DB like MongoDB may make sense.  First step is to separate out the HelpSystem.
Once we can consume markdown natively, we can do some interesting stuff with rendering any markdown (not just Help) on the console

So do we need to implement a parser and a console renderer?

Would be best if we can use some existing OSS implementation

I see many parser implementations (PlatyPS?) but can not find console renderer.

Reusing PlatyPS.  We will probably have to write a console renderer.

Interesting JavaScript implementation https://github.com/linuxenko/lessmd

One thought about smoothing the transition: when we will have HelpSystem in a separate module, we can add part of platyPS there, that can convert platyPS markdown to the tradition help objects on the fly. That way, users can stop shipping maml xmls earlier and package consumers can still get it in the traditional form.

In short from discussion with @vors

In any case we need ported console markdown renderer.
Perhaps we could support pluggable markdown renderer modules (ex. show HTML) (maybe as part of a host implementation)

In any case we should parse mardown help files in order to provide the ability to search and filter.
It does not require use platyPS.
Preffered way is direct using markdig (BSD-like license) which is fast and extensible.

The parsing  in turn implies the existence of a scheme.
PlatyPS uses a complex scheme. Really we should simplify it because we don't need MAML anymore.
Actually we have enough the markdown scheme which has Section.
In other words we can realize to start something like
Get-MarkdownHelp -Name CmdletName -Section Description

To ensure backward compatibility we need to add an option to convert existing Help (xml) files to the markdown on the fly.
To do this, we will need integrate platyPS package (yet it doesn't exist).

To avoid repeated markdown parsing and maml/xml-markdown conversions, we could use a cache based on noSQL (mongoDB?).
Update-MarkdownHelp cmdlet could update not only the source files but also the cache.

Given that this cache will contain a list of cmdlets by modules,
this cache could be used to speed up the search for cmdlets for module autoloading.

This is all very similar to the roadmap for creating a new MarkdownHelpSystem that is independent of the current HelpSystem but backward compatible.

Perhaps we can not waste time and not separate the current system into a separate module.
We can work on the new system right now. The main difficulty is the lack of ported console markdown renderer.

Great discussion!
cc @daxian-dbw @adityapatwardhan who has been looking into this

Add about using winpty.

Since it is assigned to 6.3 I share follow.
First, we need decouple HelpSystem to separate dll/module.
This opens the way to the development of alternative HelpSystems.
Current HelpSystem is fully integrated into Engine.
We need design new public API for pluggable HelpSystems. Although at start we could do the separation using internal api and internal visibility.
Some internal api from the engine are also used there and it is not clear what to do with it.
Most likely we will have to convert Help function to binary cndlet.
Also there can be some (1-2) breaking changes.
I could push WIP PR but only if MSFT team is ready to lead the work.

@iSazonov I think @adityapatwardhan already has code changes for a prototype that separates HelpSystem from the engine.

Yes, I do have one. It does not compile completely yet though.

I tried to do it three times and understand what the problems are :-)

Can you (MSFT team) share current status?
7.0 milestone is best time to decouple the help subsystem and make it pluggable and extendable.
I suggest the plan (see my comment above):

Move Help Sybsystem to separate dll. It requires changing internal API in engine.
Make it pluggable. It is breaking change and it requires new public API. It is very simple API.
Implement new Help module with Markdown support.

@stevel-msft mentioned on Twitter that this was something he would like to look at doing for v7.
Not sure what the necessary work volume is for this, though. :)

Points 1 and 2 from list above is low volume, point 3 is high volume but can be implemented step by step without removing current Help system..

I think we should separate moving the HelpSystem out of SMA.dll as independent of this enhancement.    That would be nice to have, but not critical for PS7.  We should definitely have this in PS7 so we don't need MAML.  However, we also need to change how we publish updateable help so that we have zips with just markdown, but need to keep MAML publishing for downlevel PS.

@SteveL-MSFT Do you mean that you have plans to integrate Markdown to current HelpSystem? I'm afraid it will complicate the module significantly, make it much more difficult to move the module out SMA and further full decouple. I'd prefer that we implement new module with Markdown support. Before it becomes stable, users could continue to use the old module.

@iSazonov preference would be to separate out HelpSystem as separate module, if you have a work-in-progress prototype, perhaps you can submit a draft PR and @adityapatwardhan can just work off your branch (or maybe create a new branch in this repo like we did for .NET Core 3.0 port work).

@SteveL-MSFT The PR #9841 is created.

@iSazonov Cleanup req here ?

@kvprasoon I don't understand your question. Please reword.

I meant, PR created and linked are closed and the issue is still open.

:-) Ah. The PR was closed but not merged. MSFT team team did not want to continue this work.

ohh. ok

This should include allowing for markdown in comment based help

Based open recent work in PlatyPS, it is possible to build an object from the markdown.  We plan to add markdown support in Help System V2.


Setup https access for S3 libs storage

Need to get a certificate somewhere, e.g. from lets encrypt.

Doesn't worth it. The current access to files is already using https. We could create a dedicated certificate, but it requires custom domain name which is not needed really.


10.12 compatability

AppleHDA.kext.zip
Here ya go work your magic for 10.12

Yawn, proper hackintoshers do sleep in this hour) Why do yout think AppleALC should stop working in 10.12?  Give me the DEBUG boot log with -alcdbg in boot-args.

AppleALC works just fine in /S/L/E in 10.12 according to the tests.
https://applelife.ru/threads/applealc-dinamicheskij-patching-applehda.1171672/page-157#post-596015
Since kext injection is half broken in Clover at the moment I may imagine issues when loading from EFI partition but even that is unlikely. Any further report without providing debug logs will be ignored.

Bad dev is bad


SuperTest is not compatible with Node v18.19.0 Error: ECONNREFUSED: Connection Refused

Describe the bug
Node.js version: v18.19.0
OS version: Ventura 13.6.1
Description: SuperTest is not compatible with Node v18.19.0 Error: ECONNREFUSED: Connection Refused
Actual behavior
If I run supertest with<EMAIL_ADDRESS>all my test pass. If I run it with<EMAIL_ADDRESS>none of my tests run and I can an error
Expected behavior
Tests to run like using<EMAIL_ADDRESS>Code to reproduce
at Test.assert (/Users/brian.pilati/code/greenseed/prism/subscription/prism-subscription-api/node_modules/supertest/lib/test.js:156:20)
at localAssert (/Users/brian.pilati/code/greenseed/prism/subscription/prism-subscription-api/node_modules/supertest/lib/test.js:120:14)
at /Users/brian.pilati/code/greenseed/prism/subscription/prism-subscription-api/node_modules/supertest/lib/test.js:125:7
at Request.callback (/Users/brian.pilati/code/greenseed/prism/subscription/prism-subscription-api/node_modules/superagent/lib/node/index.js:867:3)
at ClientRequest. (/Users/brian.pilati/code/greenseed/prism/subscription/prism-subscription-api/node_modules/superagent/lib/node/index.js:789:10)
at ClientRequest.emit (node:events:517:28)
at Socket.socketErrorListener (node:_http_client:501:9)
at Socket.emit (node:events:517:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
console log from line 156
Error: connect ECONNREFUSED <IP_ADDRESS>:3999
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) {
  errno: -61,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 3999,
  response: undefined
}

I did remove all my node_modules and reinstall using node@18 and there was no change.
Checklist

[ ] I have searched through GitHub issues for similar issues.
[ ] I have completely read through the README and documentation.
[ ] I have tested my code with the latest version of Node.js and this package and confirmed it is still not working.

I have same problem on node 20.10

I am also seeing the issue with node 20.10.0

We have been seeing this on randomly during our testing. We are on 18.16.0.


Addon not using navmesh by default?

I've went through the code and I can't seem to find any reference to the navmesh library, except to check if its loaded, instead of forcing the players to create their own nodes etc, why not just create a base one based on the navmesh automatically ?
Also the update prompts are super annoying, please do something about that.

I am thinking about the possibility of creating points in other ways, but this process cannot be done completely automatically.  Main points still have to be set manually.
What prompts are we talking about?  Those that are displayed for the administration?

And yes, if a navigation mesh is available, you can increase the distance between points in the instrument, but movement can become more chaotic.

I don't see the problem with creating base preset for a map automatically based on the navmesh, in fact I have done that with another NPC system and it works just fine, it's a shame it cannot be implemented in this addon.
The prompts I'm talking about are the update prompts with the changelogs etc...

Added - generation using "navmesh"
Added - automatic generation on any map in real time

I don't see the problem with creating a base preset for a map automatically based on the navmesh, in fact I have done that with another NPC system and it works just fine, it's a shame it cannot be implemented in this addon.
The prompts I'm talking about are the update prompts with the changelogs etc...

Added - generation using "navmesh"
Added - automatic generation on any map in real time


virt-handler: simplify post migration proxy cleanup

What this PR does / why we need it:
The handlePostMigrationProxyCleanup function returns an error, but there's nothing in its implementation that might fail. Thus, it's perfectly fine to simplify its signature.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/sig code-quality
/cc @xpivarc
/cc @dankenigsberg

/lgtm


Docs/upgrade dataprovider

@tusmester ok, I know I'm not on the list of the reviewers, but you've mentioned that it will be a blog post, not a simple doc. After I read it more or less, I think we should publish that as a blog post. What do you think? 🙄


add zsh prefix support

add zsh support，
mark file as shell file when first line is
#!/bin/zsh or #!... zsh

@tianhao Thanks! That's the first PR ever :)
I think that we should go for full support of zsh and other dialects. That means to extend the parser to support parsing of dialects. This is rather big change, though. I'll try to fix this for the next major version.

@jansorg Ok, wait for your update.


Chat Refactor [DRAFT]

About the PR

This is a refactor of the chat system! It is heavily in development and is not merge-ready; this PR is currently acting as a way for contributors and maintainers to preview the new system and provide feedback in areas where work has been done.
The goal of the chat refactor has been to achieve three things:

Modularity. It should be easy to add new behaviors to chat messages, whether that be modifying text or evaluating conditions.
Linearity: While chatcode may still be complex, it should be easy to follow it from start to finish, without any offshoots.
Condensed: Chatcode shouldn't have copy/pasted behavior spread out over multiple systems. Instead it should be concentrated into a single pipeline, and content should be reused where possible.

Due to the sheer scope of this PR and the many files changed just for the code to compile, below I will highlight the files and functions which are of importance in the refactor.
If you want to dive into the code and find the most important changes, I recommend:ChatManager.cs (server and client) CommunicationChannelPrototype.csSessionChatCondition.csEntityChatCondition.csChatModifier.csIContentMarkupTag.csChatUIController.csISharedContentMarkupManager.cs
Note that I have built a lot of the code parallel to current chatcode, which means there remains a lot of unused old functions in the classes that will eventually be removed.
So where do we start? What's the core of this refactor?
CommunicationChannelPrototype
While the idea of having distinct channels (local speech, radio, OOC, adminchat) is nothing new in the codebase, previously their behaviors were largely spread out over multiple functions and classes that modified how they behaved. The new prototype CommunicationChannelPrototype aims to solve this.
A CommunicationChannel contains all information relevant for how a message in a channel should be treated; it contains checks for who may send and receive the message, how the message should be modified and if the message should be passed on to any other channels. This is all defined via .yaml, making it very easy to add to and modify the behaviors of the channels, as well as include inheritance for similar channels (i.e. radios).
The CommunicationChannel prototype contains the following:

PublishSessionChatConditions
This is a list of conditions that a player session must meet to be able to send a message over this channel. These conditions are defined via the new class SessionChatCondition.cs, and can be things like "Is this an admin?", "Is the OOC CCvar enabled?" or "Is the session a ghost?". SessionChatConditions can have other conditions as subconditions, creating an AND/OR tree that filters out any session that shouldn't be able to send to the channel.
Additionally, SessionChatConditions can have EntityChatConditions as subconditions, which check the player entity as well (e.g. "Is the player entity alive?").
Note: Any message sent by the server skips evaluating these conditions, as it is assumed the server is always allowed to publish to a channel.

ConsumeCollections
A ConsumeCollection is a collection of conditions that defines a group of sessions and entities that may receive messages on the channel, and how that message should be modified for them. It does this via three lists:

ConsumeSessionChatConditions
Acts very similarly to PublishSessionChatConditions, in that you have a list of conditions that are evaluated against.
ConsumeEntityChatConditions
This list contains purely EntityChatConditions. While the ConsumeSessionChatConditions list may optionally evaluate player entities against these, the primary use of this list is to determine what non-player entities may react to messages on the channel. This could be defining a range for speech, or requiring a radio receiver on the entity.
CollectionChatModifiers
The final list contains ChatModifiers, which take a message as an input and outputs a modified version of that message. This could be anything from accents to coloring texts. The reason why these are defined in the ConsumeCollection is because you might want different modifications based on different consumers, e.g. whispering should only have the text obfuscated for consumers at a certain range from the speaker (Hello World vs. Hel~~ Wo~ld).

ClientChatModifiers
This list contains ChatModifiers that are applied clientside. Previously nearly all message modifications were being on the server, which limited the ability to provide options where necessary. Having modifiers apply on the client opens up the possibility to give custom chat colors, accent accessibility options and other stuff like that.

AlwaysChildCommunicationChannels & BackupChildCommunicationChannels
These are lists of channels that will also receive the message and attempt to use it. This could be in the case of Deadchat, where attempting to speak in local chat always fails and instead gets redirected to deadchat instead. Another usecase would be radio usage, where you both speak in the radio channel and whisper channel at the same time.

That's most of the things in CommunicationChannelPrototype; if you want to see all properties, check out its class file. So how is this used? Well...
SendChannelMessage
If you want to send a message, either as part of a game system or as a session, you will now be using SendChannelMessage. This acts as a single pipeline for all messages being sent out to the player clients, as well as any message server systems should listen and react to. The basic use of SendChannelMessage is very simple.  SendChannelMessage linearly goes through the prototype's conditions to see if you may send the message, gets a list of consumers, modifies the message and sends it out, all as defined in the chosen CommunicationChannelPrototype.
Some ChatConditions and ChatModifiers take in data from the optional Dictionary<enum, object>? channelParameters, which can be useful if you need granularity in the message you're sending, e.g. custom coloring of an announcement message. You can also supply a limited selection of sessions via HashSet<ICommonSession>? targetSessions, if you need granularity for who should receive the message (useful for admin messages that should only go out to a certain subset of admins). ChatFormattedMessageToHashset is used as the output function and interfaces with the net manager.
All old say, dsay, me, ooc commands and similar have been converted to use SendChannelMessage, targetting the relevant channel.
ContentMarkupTags
As part of the refactor, messages are now being sent over the network as FormattedMessages instead of plain strings. This makes it easier to distinguish between what's written text and what's markup. FormattedMessages contain a collection of MarkupNodes, which are either text nodes or markup nodes, with optional parameters. They're written out as [ExampleNode].
Previously these nodes were only used for actual markup formatting, such as the [bold] or [color="red"] tags, but they are now being leveraged in the form of ContentMarkupTags. These tags are set via ChatModifiers and resolved on the client, and can be used to give more control over how a message is formatted. An example of this is the [EntityNameHeader="Urist McHands"] tag, which is set on the server (allowing things like voicemasks to secretly modify the name) and then turned into plaintext Urist McHands on the client.
Other ChatModifiers may use this tag to provide finer formatting. BoldTagChatModifier is a clientsided chat modifier which looks for the EntityNameHeader tag and wraps it in a [bold] tag, which is suitable for bolding names in the chatbox.
Below is a commented example of the ICSpeech channel showing how the ChatModifiers apply the ContentMarkupTags, and how the conditions are evaluated.
- type: communicationChannel
  id: ICSpeech
  publishSessionChatConditions: //These are the conditions that must be fulfilled to use IC speech:
  - !type:AllSessionChatCondition //All sessions are checked
    subconditions:
    - !type:IsGhostSessionChatCondition //AND you can't speak if you're a ghost! That's why the condition is inverted on the next line!
      inverted: true
      entityChatConditions:
      - !type:IsAboveCritEntityChatCondition //AND you have to be above crit to speak.
        subconditions:
        - !type:HasComponentEntityChatCondition //AND you can't be asleep either.
          component: Sleeping
          inverted: true
  consumeCollections: #These are the conditions that must be fulfilled to hear IC speech
  - consumeSessionChatConditions:
    - !type:IsGhostSessionChatCondition //All ghosts may check local chat
    - !type:AllSessionChatCondition //OR we check all remaining sessions, this time using entity chat conditions.
      useEntityChatConditions: true //We want to use the same chat conditions as non-player consumers use, so we set this to true...
    entityChatConditions:
    - !type:RangeEntityChatCondition //...Which in this case is anything within 10 tiles range!
      maximumRange: 10
    collectionChatModifiers: //Time to modify the message!
    - !type:MainMessageChatModifier //This as a [MainMessage] tag wrapped, which helps with bubble speech later.
    - !type:EntityNameHeaderChatModifier //This adds the entity's name as an [EntityNameHeader="UristMcHands"] tag.
    - !type:SpeechVerbChatModifier //This adds a speech verb tag, e.g. [SpeechVerb="lizard"]
    - !type:ColorFulltextChatModifier //And this adds a color tag, [ColorValue="Speech"].
      colorKey: Speech
  clientChatModifiers: //These are chat modifiers used on the client.
  - !type:SpaceMainMessageChatModifier //This adds a space in front of the [MainMessage] tag.
  - !type:QuoteMainMessageChatModifier //And this adds quotation marks around the [MainMessage] tag.
  - !type:BubbleProviderChatModifier //This adds the [BubbleHeader] and [BubbleMessage] tags, which are used to create chat bubbles.
    speechType: Say
  - !type:BoldTagChatModifier //This bolds the [EntityNameHeader] tag.
    targetNode: EntityNameHeader
  - !type:ColorEntityNameHeaderChatModifier //And finally, this optionally colors the name, if that's in your client's settings.
  backupChildCommunicationChannels:
  - Dead //If the chat conditions failed, you're probably dead, so this should attempt the Dead channel
  chatChannels:
  - Local //You're speaking in the local space

ListenerEntitySystem & ListenerComponent
While player sessions are given messages via ChatFormattedMessageToHashset, entities (i.e. NPCs and items) are given the messages via events. To subscribe to these, any system aiming to utilize chat messages need to inherit ListenerEntitySystem, with the component inheriting ListenerComponent. This sets up the boilerplate to ensure you only get messages sent via the appropriate chat channel type (e.g. local, whispering, radio, all auditory channels and so on). Override OnListenerMessageReceived to use the message in whatever way you see fit!
That's a lot of words. Can I please have an image that explains the whole process better?
Yes, soon.
Areas of concern
Any big refactor is going to have some issues that will need to be resolved. In this case, I would ask reviewers to pay extra attention to the following areas, as they are places I am not very knowledgeable in:

IoC injection & simulation separation.
Due to ChatConditions/ChatModifiers not inheriting from any entity system, they are manually resolving system and manager dependencies. However, unlike a system, these classes are being instantiated seemingly every time a message is sent. I don't know how this would impact performance, but it seems like it should be better to somehow cache them? If so, how would one do that? I'm also concerned that this could trigger an entity check when outside the simulation and causing it to throw errors.

FormattedMessage over the network
SS14 is a very message-heavy game, and I am uncertain of the impact changing from sending just a simple string to sending a whole FormattedMessage has. If it ends up slowing down the game too much it might be worth considering going back to sending strings, and instead doing FormattedMessage parsing on the client instead.

Repeated iterations over FormattedMessage
Due to understandable protection limitations of FormattedMessage, a way to add new nodes and markup is to iterate over it and rebuild the FormattedMessage with the changes. This could possibly be unnecessary unoptimized work. Presumedly an engine change would allow smoother operations here, at the cost of safety cushions.

Prototype IDs and strings
I don't know if it's necessary to have a statically defined ProtoId variable in each system that intends to use SendChatMessage, or if it's fine to supply a normal string and let the ChatManager handle it. Let me know what the best practice is.

Missing features

[ ] Sanitizing the messages, making sure they use proper punctuation and capitalization where necessary, as well as emote handling.
[ ] Accents! Must be moved from Server to Shared, since we want them applied clientside (most of the time).
[ ] Handheld radios! Should use the listener system.
[ ] Intercoms! Should also use the listener system.
[ ] Announcements! Gotta make sure they're properly using custom colors.
[ ] Ensuring admin chat parity! I don't have much user experience of the admin side of SS14, so it's a bit hard to verify everything is working as intended.
[ ] Radio Jammer! Should be as easy as making a single ChatCondition.
[ ] Codeword highlighting! Should be as easy as making a single ChatModifier.
[ ] TVs! Basically same as the intercoms.
[ ] Cleaning up old chatcode, removing everything that is no longer utilized.
[ ] Cleaning up documentation, adding where it's missed.
[ ] Fixing inevitable bugs for things I've missed.

Media

Requirements

[x] I have read and am following the Pull Request and Changelog Guidelines.
[x] I have added media to this PR or it does not require an ingame showcase.

Breaking changes

So what does this chat refactor mean for me as a fork?
radio_channels.yml remains untouched, however if you have custom radio channels you will need to create a matching communication channel prototype. Ideally this would be resolved automatically, but the chat refactor must have some scope constraints. To do this, you can look at communication_channels.yml in the radio section and copy an existing radio channel; of importance is that the prototype has the id: Radio[YourRadioPrototypelIdHere] and the DefaultChannelParameters.RadioChannel value be the radio prototype ID.
You will also have to convert accents to Shared, but since I haven't done that part of the refactor yet, I can't explain how to do it. Note to self: remember to edit this part before merging, or it will be embarrassing.
Changelog

:cl:

tweak: There has been a major overhaul to how chat is handled in the game; please report any new chat bugs you may encounter.

I am here
it is time
to review

First things first here's a shorter writeup of Slam's PR summary for those with Subway Surfer brains:

Much like "newmed" let's call this something like newchat.

PR information:

1. This isn't done yet
2. This means reviewing for code quality is pointless
3. Slam has prioritized:
-> Modularity, by which he means he want it to be extensible.
-> Linearity, meaning it is generally a consistent point to point process, not a tree.
-> Condensed. No copypasta, one pipeline, KISS.

CommunicationsChannelPrototype
    -> PublishSessionChatConditions
        Lists conditions that a session must fulfil to send on this channel
    -> EntityChatConditions
        A subset of the above that covers entity conditions.

The server as auth does not need these auth checks.

ConsumeCollections
    -> A collection of conditions for receiving on a channel.
        -> Session conditions
        -> Entity conditions
        -> Condition modifiers (i.e. mutators)

ClientChatModifiers
    -> Client-side mods of chat, for accessibility etc.

AlwaysChildCommunicationChannels
BackupChildCommunicationChannels
    -> Subscribers to other channels. e.g. deadchat is a backup to local if you're dead.

SendChannelMessage
    This is the core event that encapsulates a message.
    Contains a message, the channel, and opts of the session and entity sending.
    Some chat conds and mods lean on a context object called ChannelParameters which is a dict of enum to obj.
    Messages can be given specific target sessions.

All console chat messages use newchat.

Messages are formatted messages when sent over the network. Formatted messages have a message and markup for that message. Markup uses square brackets - `[]` - for tags. Examples of use are color or entity name tags.

ListenerEntitySystem and ListenerComponent
    -> Non-players get messages via events. These are subbed to by extensions of ListenerComponent.

TODOs

-> IOC Injection, sim separation
    Some concerns about perf and redundant instantiation.
-> Concerns about weight of chat messages OTA
-> FormattedMessages haven't had a optimization pass
-> Debate over if it's better to have a ProtoID var for senders of SendChatMessage or if strings are ok?

-> Message sanitization
-> Accent handling
-> Handheld radios, intercoms and TVs
-> Announcements
-> Admin chat parity
-> Radio jamming
-> Codeword highlighting
-> Removing chatcode
-> Documentation
-> Bug sweep```

languages, coming to a station near you soon

Does this currently support a BeforeChatSendEvent or similar?

@Fildrance you are spamming this PR. Use GitHub's review feature properly.


"Wrong" type displayed in elm-repl

Here is a session with the repl
> (\x -> case x of { Just x -> x ; Nothing -> 0 })
<function> : Maybe.Maybe a -> a

It's a bit confusing because the number type variable is simply shown as a. It's clear that elm knows the type variable is not a general one because we get
> (\x -> case x of { Just x -> x ; Nothing -> 0 }) (Just "")
## ERRORS in repl-temp-000.elm #################################################

-- TYPE MISMATCH --------------------------------------------- repl-temp-000.elm

The 1st argument to this function has an unexpected type.

3|          case x of { Just x -> x ; Nothing -> 0 }) (Just "")
                                                       ^^^^^^^
As I infer the type of values flowing through your program, I see a conflict
between these two types:

    a

    String

The second example you show indeed suggests it is not just an elm-repl problem. It seems to be a type checker/inference problem of some kind. The error message should contrast number and String, not a and String.
@evancz, could this be a side effect of https://github.com/elm-lang/elm-compiler/commit/dae8e04abfa388b3b72e47a5cee0c6fc63a92806 or some such of the recent fixes concerning treatment of constrained type variables?

The second example you show indeed suggests it is not just an elm-repl problem. It seems to be a type checker/inference problem of some kind.

Oh, I actually took the second example as evidence that the type was correct, but the printed representations of the type was wrong.

Indeed, also possible (if there is a difference between "type is correct" and "printed representation of type is correct" in the implementation, i.e., if something non-trivial happens during printing).

What version of Elm are you using?
Here's what I am seeing with 0.16.

Possible to close this?

Ah, actually the original problem as reported cannot have been with 0.16, because (\x -> case x of { Just x -> x ; Nothing -> 0 }) isn't even legal syntax in 0.16.

Yeah, that's what I was thinking, but I wanted to check to see if I was thinking straight. I guess I'll preemtively close then. Please reopen if something is off!


📚 [Documentation] - Adding CODE_OF_CONDUCT.md

Description ✍
This repo needs Code of Conduct which will give guidelines to the contributors .
Are you contributing for a program ?
GSSoC2023
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

Hi! we have https://github.com/amupedia2021/Project-Amupedia/blob/master/.github/CODE_OF_CONDUCT.md.


Goals not being selected as expected.

Hi,  I think this is a bug - but exploring whether this just is intended behaviour that I don't currently understand?
In the demo, I'm not seeing the agent attempt to use lower priority goals, if a higher priority goal is present - but cannot be completed.
To reproduce:

Fresh clone of Demo.
Select the "SimStyleTestScene"
Disable the entire "Interactables" gameobject in the hierarchy (i.e. the intent is to have zero smart objects in the world).
Observe agent standing still and not engaging the "wander" goal.

Another way to demonstrate this, is to have just one or two smart objects present, and note that the agent only ever engages with those goals ... agent doesn't seem to switch to wandering.
Loosely, I think this may be related to a type of "Goal.CanRun(...)" problem, but sorry - I can't be more constructively helpful until I get up to speed with this code! :-)

Cheers for reporting the issue. I had some bad logic in the GOAP Brain Wrapper where it wasn't checking it actually had valid interactables so always returned the default interaction desire letting the goal run. I've modified it to do a full check of there being currently usable ones present.


Change the background color of code element when used in a tip

When using a code in a tip, both background are of the same color, which leads to weird looking padding.
This fixes this by changing the code background color slightly.
Before :

After :

Looks good! Thanks for this.

Hehe, my bad, I know SCSS, not Stylus ;)


zlib build failure

Host Environment

OS: Windows
Compiler: revision

To Reproduce
Steps to reproduce the behavior:
./vcpkg install zlib
Error: Building package zlib:x86-windows failed with: BUILD_FAILED Please ensure you're using the latest portfiles with .\vcpkg update, then submit an issue at https://github.com/Microsoft/vcpkg/issues including:   Package: zlib:x86-windows   Vcpkg version: 2020.06.15-nohash
[1/2] cmd /c "cd .. && "C:/Program Files/CMake/bin/cmake.exe" "C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/buildtrees/zlib/src/1.2.11-63309e48e5.clean" "-DSKIP_INSTALL_FILES=ON" "-DSKIP_BUILD_EXAMPLES=ON" "-DCMAKE_MAKE_PROGRAM=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/downloads/tools/ninja/1.10.0-windows/ninja.exe" "-DBUILD_SHARED_LIBS=ON" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/scripts/toolchains/windows.cmake" "-DVCPKG_TARGET_TRIPLET=x86-windows" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=v142" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x86" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg" "-D_VCPKG_INSTALLED_DIR=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/packages/zlib_x86-windows""
-- The C compiler identification is MSVC 19.27.29111.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x86/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - failed
-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_LIBDIR

-- Build files have been written to: C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/buildtrees/zlib/x86-windows-rel
[2/2] cmd /c "cd ../../x86-windows-dbg && "C:/Program Files/CMake/bin/cmake.exe" "C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/buildtrees/zlib/src/1.2.11-63309e48e5.clean" "-DSKIP_INSTALL_FILES=ON" "-DSKIP_BUILD_EXAMPLES=ON" "-DCMAKE_MAKE_PROGRAM=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/downloads/tools/ninja/1.10.0-windows/ninja.exe" "-DBUILD_SHARED_LIBS=ON" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/scripts/toolchains/windows.cmake" "-DVCPKG_TARGET_TRIPLET=x86-windows" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=v142" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=x86" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg" "-D_VCPKG_INSTALLED_DIR=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DSKIP_INSTALL_HEADERS=ON" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/packages/zlib_x86-windows/debug""
-- The C compiler identification is MSVC 19.27.29111.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x86/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - failed
-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_LIBDIR

-- Build files have been written to: C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg/buildtrees/zlib/x86-windows-dbg

C:/Users/[REDACTED]/Desktop/Directories/IT-Stuff/prog-langs/cpp/projects/vcpkg
Does this path contain space?
Please make sure you cloned vcpkg in a non-space path.
Thanks.

Yes, it does contain space.


sap.ui.model.odata.v2 operationMode:client sort issue

OpenUI5 version: 1.38.4
Browser/version (+device/version): chrome
Any other tested browsers/devices(OK/FAIL): not tested
I am currently binding an odata v2 entityset to a sap.m.list.
<List id="lineItemsList"
    noDataText="{i18n>detailLineItemTableNoDataText}"
    busyIndicatorDelay="{detailView>/lineItemTableDelay}"
    updateFinished="onListUpdateFinished"
    items="{
        path: 'MeasurementDocuments',
        sorter: [
            {
                path: 'Pttxt',
                descending: false,
                group: true
            }, {
                path: 'Idate',
                descending: true
            }, {
                path: 'Itime',
                descending: true
            }
        ],
        groupHeaderFactory: '.getGroupHeader',
        parameters: {
            operationMode: 'Client'
        }
    }">

For performance reason i would like to use client side sorting/filtering.
Inside controller, i am calling the binding sort function this way
onSelectViewMode: function(oEvent) {
    var sKey = oEvent.getParameter("key"),
        oList = this.getView().byId("lineItemsList"),
        oListBinding = oList.getBinding("items");

    if (sKey === "DATE") {
        oListBinding.sort([
            {
                path: "Idate",
                descending: true,
                group: true
            }, {
                path: "Itime",
                descending: true
            }, {
                path: "Pttxt",
                descending: false
            }
        ]);
    } else if (sKey === "TYPE") {
        oListBinding.sort([
            {
                path: "Pttxt",
                descending: false
            }, {
                path: "Idate",
                descending: true
            }, {
                path: "Itime",
                descending: true
            }
        ]);
    }
}

I got the following error:
ODataMetadata.js:6 Uncaught TypeError: Cannot read property 'replace' of undefined
...
    /**
    *  extract the property metadata of a specified property of a entity type out of the metadata document
    */
    ODataMetadata.prototype._getPropertyMetadata = function(oEntityType, sProperty) {
        var oPropertyMetadata, that = this;

        if (!oEntityType) {
            return;
        }

        // remove starting/trailing /
        sProperty = sProperty.replace(/^\/|\/$/g, ""); // <-- error is here because property is empty
...

Inside debugger, sProperty is undefined!
Any ideas?
I think, client side sorting/filtering should be supported out-of-the-box,
or am i doing something wrong?
What is the expected result?
The client should sort the resultset clientside
What happens instead?
Thrown error
Maybe you got an idea what is causing the issue.
If not, please let me know and i have to create a working example with the issue inside.
Regards Holger

Hi,
thanks for the ticket!
reproduceable in this jsbin
tracked internally<PHONE_NUMBER>
best regards,
Tobias

Hi Tobias,
BTW: is it possible, that grouping is also buggy (even using without clientmode?).
We have implemented server side sorting for the upper szeanrio, but switching between the two sort szeanrios only initially shows the list grouping. All other switches only show plain list items?!?
I also tried setting whole setItemBinding() instead of binding.sort(), but same result.
Regards Holger

Hi Holger,
clientside:
Grouping is a special kind of sorting.
I would expect it to be broken in a similar way.
server side:
should work - in your example you modified to group to  xgroup: true is it such a small thing?
Best regards,
Tobias

Hi Tobias,
it still does not work even without the copy/paste type error ;-)
see
http://jsbin.com/vecasoj/edit?html,output
I think, the group doe not work if using binding (or am i doing something wrong?).
For me, it only works the first time with inline template inside xml view.
After changing sort order (or in this case using scripting, the group will not be used).
I will create a ticket to see, if this is buggy!
Regards Holger

Hi,
i am trying the same thing following directly instructions in the SAPui51 course. And i get exactly the same problem.
Has it been fixed? what version of libraries shall i use to get the fix?
thankxs and regards
Wolf

Hi Wolf,
Unfortunately our internal tracking incident<PHONE_NUMBER> mistakenly got closed as duplicate.
I created<PHONE_NUMBER> internally. The responsible colleagues will provide feedback on this issue soon.
Best regards,
Merlin

Hi Merlin,
looking at the code in this issue i actually have only a simple search field and a pretty trivial callback.
Might i help you in providing my coding? the app is very simple because it is just the excercises of the ui51 course .
just let me know in case i can attach it here.
Kind regards
wolf

Does your code create a binding with operationMode: 'Client' as well?
If yes, feel free to share your code as a jsbin or similar. If no, your issue might be unrelated to this one.

actually my binding is on an odata service i try to perform a search using search field and creating a filter object that is added to the binding.
The property i'm filtering for is not searchable on the odata model itself so it perform the "client mode" filtering internally.
kind regards

Hi Wolf,
I've found the following lines in the openui5 course:
openSAP_ui51_Week_3_Unit_2 page 9 (course exercise)
<Table id="table" width="auto" class="sapUiResponsiveMargin" items="{ path: '/ProductSet', sorter: { path: 'ProductID', descending: false }, parameters: { expand: 'ToSupplier' } }" noDataText="{worklistView>/tableNoDataText}" … >
This sorter is coming from the XML Template.
To manually create a sorter and pass it to the binding
@see https://blogs.sap.com/2013/11/29/custom-sorter-and-grouper/
@see https://sapui5.hana.ondemand.com/#/api/sap.ui.model.Sorter
@see https://sapui5.hana.ondemand.com/#/api/sap.ui.model.odata.v2.ODataListBinding
sorter: [new sap.ui.model.Sorter("CategoryName", false, true), new sap.ui.model.Sorter("ProductName", true)]
correct version
//note the grouping comparison needs to be implemented
Kind regards
Tobias

Hi Tobis,
thank you, you are so very kind.
Actually i am not using a sorter but a filter. SAPUI51 course  week 2 unit 4
       <List  			id="productsList"  			items="{/ProductSet}"> 			<headerToolbar> 				<Toolbar> 					<Title text="{i18n>productListTitle}"/> 					<ToolbarSpacer/> 					<SearchField width="50%" search="onFilterProducts"/> 				</Toolbar> 			</headerToolbar>
`onFilterProducts : function (oEvent) {
		// build filter array
		var aFilter = [], sQuery = oEvent.getParameter("query"),
			// retrieve list control
			oList = this.getView().byId("productsList"),
			// get binding for aggregation 'items'
			oBinding = oList.getBinding("items");

		if (sQuery) {
			aFilter.push(new Filter("ProductID", FilterOperator.Contains, sQuery));
		}
		// apply filter. an empty filter array simply removes the filter
		// which will make all entries visible again
		oBinding.filter(aFilter);
	}

`
In debug all variables are read and filled correctly, but
Whan i call the oBinging.Filter, i get this internal error:
Uncaught TypeError: Cannot read property 'replace' of undefined
at constructor.a._getPropertyMetadata (ODataMetadata-dbg.js:848)
at Function.c._createFilterSegment (ODataUtils-dbg.js:389)
at f. (ODataUtils-dbg.js:138)
at Function.each (jquery-dbg.js:365)
at Array.
Thanks and regards
wolf

Hi wolf,
can you check the value of aFilter[0].sPath right before calling oBinding.filter?
For me the filtering works. Maybe try to change "ProductID" to "ProductId".
Regards
Tobias

Hi Tobias,
you are right it is sPath empty. there was an attribute sName instead.
I got it working playing around with the order of filter and filterOperations in the sap.define...
but it makes no sense to me.
I'm quite puzzled, but i believe it belongs to my learning curve.
Thanks for your support
kind regards
wolf

Hi Wolf,
could you create a jsbin or paste your working code here, so that one can compare before and after and also have a solution?
Regards
Tobias

Since there is no response from the author for more than 4 weeks I'm closing the ticket.

Hi,
it's 4 years old :-D not 4 weeks
regards
Il giorno mer 4 mag 2022 alle ore 09:09 Florian Vogt <
@.***> ha scritto:

Since there is no response from the author for more than 4 weeks I'm
closing the ticket.
—
Reply to this email directly, view it on GitHub
https://github.com/SAP/openui5/issues/1094#issuecomment-1116993113, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AITVSZMHOM6VHSZXKPH56LLVIIPBFANCNFSM4CL3SBXQ
.
You are receiving this because you commented.Message ID:
@.***>


better path recognition when using hashes

This will get us past the initial problem of routing not working properly with hash parameters, but the location.query won't have the parameters. Should it?

Sauce is having troubles.  I'll try to rerun the job, but I'll still merge if sauce can't connect right.


Compile error for RealSense Sample\PointCloud

Hi,
I am trying to compile the Point Cloud in Visual Studio 2015, during the compilation received an error saying that "Cannot open include file: 'opencv2/viz.hpp': No such file or directory."
Do I need to install the VTK inorder for this to work ?
Advice needed, thank you.

It is require Viz module of OpenCV. You need to build and install OpenCV from source code yourself, because it is not contain in pre-built package that distributed by official page of OpenCV. (By the way, Viz module dependent on VTK. If you not install VTK, You need install VTK before build OpenCV.)
I can't give step-by-step detailed advice about it. If you want more information, Please search by google.


[BUG] - AAD Guest account with DeveloperTool=VisualStudio - Login failed for user '' (Microsoft.Azure.Services.AppAuthentication using AzureServiceTokenProvider )

Describe the bug
When using AAD Guest Account (home tenant different then azure subscription tenant) to authenticate to SQL Server using the default constructor AzureServiceTokenProvider() or  AzureServiceTokenProvider("RunAs=Developer; DeveloperTool=VisualStudio") getting error:
Login failed for user '<token-identified principal>'.
When overriding AzureServiceTokenProvider connection string to use RunAs=Developer; DeveloperTool=AzureCli - the issue is gone.  Assuming the default constructor is using RunAs=Developer; DeveloperTool=VisualStudio - as this gives same connection problems.
Looking at the access tokens generated for each mechanism, the working token has attributes

altsecid
email
home_oid
idp
rh

The non working token is missing all the above and has"uti".  Interesting also, each has different OIDs... the bad token OID doesnt even exist as user in the directory.  The good OID is the proper id for the guest user.
This same issue is not present when using same library to access Azure Keyvault... only reproducable for Azure SQL Server
Expected behavior
Authentication works for VisualStudio authentication same as CLI.  Confirmed good using SSMS (using Universal with MFA with same guest user).  NOTE: SSMS v.17 does not work with guest accounts only v18+
Actual behavior (include Exception or Stack Trace)
Login failed for user ''
To Reproduce
Steps to reproduce the behavior (include a code snippet, screenshot, or any additional information that might help us reproduce the issue)

Grant group based AAD access to an Azure SQL Server
Login to Visual Studio 2019 with Azure Service Authentication
Connect to SQL using Microsoft.Azure.Services.AppAuthentication to get Access Token

Environment:

Microsoft.Azure.Services.AppAuthentication 1.5.0
Windows 10.0.17763
.NET CORE <IP_ADDRESS>
Visual Studio 2019 16.6.2 (ASA Service Provider - 1.0)

@felickz Thank you for reporting. You are correct that by default Visual Studio authentication is attempted first, which explains why the default case is also failing.
So based off your information that Azure CLI tokens are working for you, this looks like a potential issue with the Visual Studio's token service. Let me follow up on this and I can update once I know more.

@felickz Could you try setting tenantId when requesting the access token? E.g:
azureServiceTokenProvider.GetAccessTokenAsync(<resourceId>, <tenantId>);
It seems like the guest account would be the cause of those missing claims since its home tenant is different from the tenant you are authenticating against. Explicitly setting the tenantId when using VS auth can resolve that. Please let me know!

@nonik0 our team has been affected by this as well. It does seem to be an issue with the VS token service. Would you be able to help route the ticket to the right place? Thanks!!

@ericsampson Does setting the tenantId as described above not work for your scenario, or could you elaborate on the specifics of what isn't working for you?

any update on this issue?  my company has several contracted developers that we have added to our directory as guest accounts and we've experienced this same issue.  we've worked around this by setting the environment variable AzureServicesAuthConnectionString to RunAs=Developer;DeveloperTool=AzureCli;

@engenb setting AzureServicesAuthConnectionString to RunAs=Developer;DeveloperTool=VisualStudio;TenantID=<my tenant id>; is not a considered setting. Settings are listed here and code here where decoding happens.
Can you try instead
AzureServiceTokenProvider("RunAs=Developer; DeveloperTool=VisualStudio").GetAccessTokenAsync(<resourceId>, <tenantId>); ?

@nonik0 I can try setting the tenant ID and see if that makes it work.
I just really want to avoid doing this, as there are hundreds of places across of our codebases that I would have to go make this fix.
It seems like a bug in the VS auth system, because it works fine when the Azure CLI handles the auth without me having to explicitly set a tenant. So that's why I'm trying to find out if I should file a bug with VS somehow, or here... Thanks!

Just to follow up, my team has worked around this by having contractor (guest user) developers set a windows environment variable AzureServicesAuthConnectionString: RunAs=Developer;DeveloperTool=AzureCli;.
After logging in with Azure CLI and selecting the correct subscription, everything works as expected.

@ericsampson @felickz have you resolved this?

@anaismiller the following workaround is not acceptable for us because it would mean we'd need to make this change in hundreds of repositories where we use AAD tokens:
AzureServiceTokenProvider("RunAs=Developer; DeveloperTool=VisualStudio").GetAccessTokenAsync(<resourceId>, <tenantId>);
We need a solution that works OOTB with Visual Studio.

@ericsampson , take a look at my previous comment.  You don't necessarily need to make changes in each project.  If you set an OS environment variable it will get picked up by the framework and take precedent over other configs.  We develop primarily on Windows so we were able to set the environment variable in Windows (not via VS launchSettings.json) and it worked great with no changes to projects needed.  I will admit there are details about your situation I'm likely not aware of, but maybe this will work for you as well.

@engenb sure I understand how that works, but trying to get every developer in our org to set that env var is a workaround, not a solution. It's a waste of our time for something that just needs to be fixed :)

The reason I say these things are a workaround is that this problem doesn't exist when using the Azure CLI token service. It's just the VS token service that has this issue.

@crmann1 for VS awareness

cc @anaismiller @crmann1 , bumping this so that the bot doesn't close it out. Any updates? Thanks

Hi @felickz. Thank you, for your interest in helping to improve the Azure SDK experience and for your contribution. We've noticed that there hasn't been recent engagement on this pull request. If this is still an active work stream, please let us know by pushing some changes or leaving a comment. Otherwise, we'll close this out in 7 days.

Unfortunately I have switched all my teams to use the AzureCli - having hundreds of developers not working was not an option for me :(

@ericsampson Do you also only have this issue when working with Azure SQL and not with Azure KeyVault?
One possible explanation is that with VS auth, if no tenantId is provided, then it uses the default tenant when requesting the token and in this case, it is not the one from the Azure subscription, but the one from the guest account. On the other hand, AzureCli authentication does not have this tenant parameter.
However, this does not explain why it works with KV and not SQL.

@anaismiller I believe we experience the same issue with both. I can verify and respond back.
But for sure, the Azure CLI token works flawlessly for us, and the VS (and VSCode) ones do not.
When using Azure Identity, we have to do this everywhere:
var azureCredential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
    ExcludeVisualStudioCredential = true,
    ExcludeVisualStudioCodeCredential = true
});

and the equivalent connection string for  AzureServiceTokenProvider
Thank you for continuing investigating!! The difference between the two that you noticed sounds promising.

For us, our default tenant is definitely not where our Azure SaaS resources live, so what VS does isn't going to work for us.

Yes, this is what I have seen as well.  Visual Studio is picking up the "default" tenant for guest accounts which is not our corporate directory.  I've worked around this with a little helper class
public static class TokenCredentialFactory
{
    public static TokenCredential Get(IHostEnvironment env, string tenantId) =>
        env.IsDevelopment()
            ? new DefaultAzureCredential(new DefaultAzureCredentialOptions
            {
                SharedTokenCacheTenantId = tenantId,
                VisualStudioTenantId = tenantId
            })
            : new DefaultAzureCredential();
}

For us, the challenge would be adding that kind of workaround to 50 repos (or pulling in a little nuget library to do it, same difference), or trying to get the env var to every dev's workstation.
So if the fix is as easy as changing a couple lines of code in VS and VSCode, that would be awesome.

yup.  I get it.  you could spend the time updating to use the workaround or you could spend the time waiting for microsoft to fix the issue.  I can bet you which would be faster ;)

Thanks @engenb for the suggestion! However, isn't that basically the same as calling AzureServiceTokenProvider("RunAs=Developer; DeveloperTool=VisualStudio").GetAccessTokenAsync(<resourceId>, <tenantId>);   as you still have to explicitly put in the tenantId when you request the token?

I just like to keep working towards every affected VS/CSCode user benefitting by not having to hit and workaround this :) But yeah

I have created a bug internally on VS to enable all tokens returned for all tenants when requesting a token to have a similar experience as AzureCli.

@anaismiller thank you very much, but VSCode is affected as well. Can we create a ticket for it too?