WaitForConversion fails with 127 if more than one sensor is on the bus

I have dallastemperature 3.8.0 on an ESP8266
Just like Paul's OneWire library, this library decodes correctly on DS18S20, but not DS18B20 (other bug https://github.com/PaulStoffregen/OneWire/issues/91 )
Using WaitForConversion, with a single DS18S20 sensor, I see:
Before blocking requestForConversion
After blocking requestForConversion
Time used: 752
Temperature: 19.44
Before NON-blocking/async requestForConversion
After NON-blocking/async requestForConversion
Time used: 2
Temperature: 19.50

This is the correct temperature for the room as measured by an DS18B20 plugged into my linux PC via a DS2490
However, if I plug a DS18B20, I get wrong temperatures:
Before blocking requestForConversion
After blocking requestForConversion
Time used: 752
Temperature: 27.69
Before NON-blocking/async requestForConversion
After NON-blocking/async requestForConversion
Time used: 2
Temperature: 27.69

Any ideas?
For good measure, I tried to change the resolution between 9 and 12 and it didn't help
  sensors.begin();
  sensors.setResolution(resolution);
  Serial.print("Resolution: ");
  Serial.println(sensors.getResolution());

According to the other bug, this seems to be ESP8266 specific. On ESP32, I'm getting correct enough data with the DS18B20 sensor.
Before blocking requestForConversion
After blocking requestForConversion
Time used: 752
Temperature: 21.87
Before NON-blocking/async requestForConversion
After NON-blocking/async requestForConversion
Time used: 2
Temperature: 21.87
I assume both libraries are probably using the same underlying code or algorithm to read the temp, and that code fails for unknown reasons on ESP8266, but only for DS18B20 ?

Last updates are in https://github.com/PaulStoffregen/OneWire/issues/91 given that it works with multiple sensors at the same time and handily logs the type, serial, and temp of each sensor.
If you read the updates, the problems seem worse on ESP8266 and with DS18B20.
If you are not able to reproduce, I won't get offended if you close this :)

@marcmerlin @PaulStoffregen
Dallas Temperature uses a onewire library to communicate to the sensors, see line 25 of DallasTemperature.h  So your conclusion could be right, however there are other possible explanations.

Do you have right pull up resistor?

Have you checked for counterfeit sensors? These are discussed here  - https://github.com/cpetrich/counterfeit_DS18B20/

The ESP8266 is a 3V3 device and the DS18B20 should be able to operate at 2V8. However I've heard of a voltage problem in the past, so if you try a voltage converter in between?

Please let us know

As I mentioned on https://github.com/PaulStoffregen/OneWire/issues/91, I want to see this reproducible on a non-ESP board.

@RobTillaart thanks for https://github.com/cpetrich/counterfeit_DS18B20/
I had a read, and given that my ROM numbers are
ROM = 28 D8 13 6 2 0 0 F
ROM = 28 25 F6 AF 2 0 0 5
ROM = 28 95 7 B0 2 0 0 CB
they do follow the '28-xx-xx-xx-xx-00-00-xx ' pattern, so they are hopefully not clones?

ROM numbers are easiest to clone I guess. Have you checked the timing of your sensors for 9..12 bit resolution? That is often far harder to clone correctly.

@RobTillaart
I forgot to add that I bought those 10 years ago (the dates on them at 2009 and 2010), so maybe they were fewer clones then. I did try setting resolution with your lib (see my original comment) and they returned the resolution number I wrote.

@RobTillaart about the voltage, I assume it would be a very bad idea to power the sensors on the 3rd pin (non parasitic) using 5V on a 3.3V chip, because it might return 5V level data back?
(ESP8266 can withstand that, but other chips could likely be damaged I assume)

That's why you should use a bidirectional level converter.

@RobTillaart  as you probably saw on Paul's bug, my reliability problems came from having he wrong resistor (needed 2.7K for 3.3V instead of 4.7k).
Those sensors are rated to work with 3V, so you don't need level converters.
I got your code working now, but please note:

there is no error checking if you put the wrong pin, you just get a bad value 127, with no clue that there is no sensor on that pin

it works with one sensor, but if you have more than one on the bus, it fails to return anything

Before blocking requestForConversion
After blocking requestForConversion
Time used: 752
Temperature: 21.56

Before NON-blocking/async requestForConversion
After NON-blocking/async requestForConversion
Time used: 2
Temperature: 21.56

add 2nd sensor
Before blocking requestForConversion
After blocking requestForConversion
Time used: 752
Temperature: 127.94

Before NON-blocking/async requestForConversion
After NON-blocking/async requestForConversion
Time used: 2
Temperature: 127.94

Feel free to close if it's working as intended though

@milesburton   Please close

@milesburton  please close this issue


[WatsonMessage] BuildStream IOexception, disconnect detected

I've several client connected to a server. Everything works fine except for one client.
This client once connected, get disconnected immediately. Then it tries to reconnect, connect succesfully again, and then get disconnected again. This continues for 20 minutes or so, then remain connected and quite stable.
Enabling all the logs on the client, I see:
...
[WatsonMessage] BuildFromStream header processing complete
[WatsonTcpClient] Authentication successful
[WatsonMessage] BuildStream IOexception, disconnect detected
[WatsonTcpClient] Message build failed due to disconnect
[WatsonTcpClient] Data receiver terminated
...
What it could be?

Hi @xenioo this is interesting.  Are all clients the same code or different?  If they are all the same code, then what I'd want to do is amend WatsonMessage to throw the IOException so we could see why it's happening.
Out of curiosity, on the server-side process, how is the thread count, CPU utilization, and memory utilization?  How does the CPU/memory utilization compare against your local system resources?
i.e. from Task Manager:

All clients use the same code.
On the server side, the server is a .net core running both http api and tcp server. The server process is occupying low resources, both in terms of memory and cpu, so don't think the issues is around here.
Let's me explain in detail what the client does.
The client start with:
`Task.Factory.StartNew(() =>
{
while (true)
{
if (_client == null || !_client.Connected)
{
if (!_connecting)
{
ConnectToServer();
}
}
                Thread.Sleep(5000);

                if (_token.IsCancellationRequested)
                    break;
            }
        },
        _token,
        TaskCreationOptions.None,
        TaskScheduler.Default);`

This is the ConnectToServer function:
`public static void ConnectToServer()
{
_connecting = true;
        Log.Information($"Connecting to ForexPos Console server at {AppConfig.ForexConsoleSocketAddress()}:{AppConfig.ForexConsoleSocketPort()}");

        try
        {
            if (_client != null)
                _client.Dispose();

            _client = new WatsonTcpClient(AppConfig.ServerIp(), AppConfig.ServerPort());

            _client.Events.AuthenticationSucceeded += AuthenticationSucceeded;
            _client.Events.AuthenticationFailure += AuthenticationFailure;
            _client.Events.ServerConnected += ServerConnected;
            _client.Events.ServerDisconnected += ServerDisconnected;
            _client.Events.MessageReceived += MessageReceived;

            _client.Callbacks.AuthenticationRequested = AuthenticationRequested;
            _client.Callbacks.SyncRequestReceived = SyncRequestReceived;

            _client.Settings.DebugMessages = true;
            _client.Settings.Logger = Logger;

            _client.Keepalive.EnableTcpKeepAlives = true;
            _client.Keepalive.TcpKeepAliveInterval = 1;
            _client.Keepalive.TcpKeepAliveTime = 1;
            _client.Keepalive.TcpKeepAliveRetryCount = 3;

            Task clientStart = _client.StartAsync();

            Log.Information($"Connection is on: {_client.Connected}");
        }
        catch (Exception ex)
        {
            Log.Warning($"Failed to connect to server: {ex.Message}");
        }
        finally
        {
            _connecting = false;
        }
    }`

If I remove the polling task from the client, client stay connected and disconnection does not happen.
Seems like that checking the client.Connected property is what causing the problem. Could it be?
Anyway,  in that case it happens that sometimes the client disconnect from the server but and I'm not be able to check it because the ServerDisconnected event is not fired.

Hi @xenioo I'd recommend putting the client.Connect() into a separate method, and have the client.Events.ServerDisconnected event call the method to reconnect, rather than watching client.Connected.  The problem with client.Connected is that it is not set to true until everything has been done post-TCP-setup.  i.e. starting background data receiver tasks, and so on.
If you choose to keep the polling loop using client.Connected, I'd suggest putting a Task.Delay(100).Wait() in there or something to give the client background tasks an opportunity to start (and thus allow them to set client.Connected = true.
Could you give that a try and see if it helps?
Cheers,
Joel

Hi @jchristn,
i'll give a try to what you're suggesting for the polling loop.
About client.Connect(), i've already put my reconnect method into the ServerDisconnected event call, but I've noticed that clients become unreachable by the server (I know just by forcing a sendandwait call) without firing ServerDisconnected event.
So this is a problem, because not firing that event does not call the reconnect and that client remain lost.
What do you think could happen?

Hi @xenioo to make sure I understand, the client thinks it is connected (the ServerDisconnected event doesn't fire) but the server can't reach it (because of failed/failing SendAndWait calls initiated by the server).  Is that correct?
Are all of the clients running on a single machine or multiple machines?  Is the server on a separate machine?  What I've often seen happen while testing is that the thread pool doesn't expand/contract to keep up with background task demands when everything is running on a single system.

@jchristn yes, correct.
Each client is running in a single machine. The server in a separate machine.

Got it.
Do you by chance have the source locally, or are you using the NuGet package?  If you have the source, we could remove 291...295 in WatsonMessage.cs to see the exception:

Alternatively I could add another property in both client and server that would force all exceptions to be logged.

I'm using nuget, but I could download the sources and make the changes.
In fact, IOException was the error that is detected when I run the polling loop and cause repetitive reconnections.

hi @jchristn, i've setup a test environment with the client running on my machine and connecting to the server running on a machine in the cloud.
I'm using the client version with the polling loop.
After 2 hours I've noticed that:

client connect to the server succesfully
immediate client disconnections does not happens and everything seems to work fine
I try to send message from server to client, and client respond succesfully
after something like 15/20 minutes, if I try to send a message to the client, the server does not receive any response because
the client is unreachable, probably disconnected.
If I look at the client log, there are no signs of Server Disconnect event logs. Why?
If I set a breakpoint into the client while is running, I see the client.Connected is always True. Why?

Any hint?

Hi @xenioo on the last one, i.e. a breakpoint, I would assume that would prevent the background tasks that monitor the connections from running while it's in the breakpoint.  That would explain the last issue.
Are you using TCP keepalives?  I let client and server run for hours and am still able to exchange messages after prolonged periods of inactivity.  There are a lot of factors to consider such as network changes (interface up/down, connectivity loss, etc).  In your case, does the client still appear in the clients list on the server?
Did you test with the removal of the caught IOException to see what the exception was?  I have a feeling that will lead us to the source of your issue.

hi @jchristn,
I did set up the breakpoint only after having seen that the server wasn't able to reach the client. Until then, the client was running without any stop or pause.
And setting up the breakpoint showed that the Connected property was set to True even if client unreachable.
Now I'm running a test session with keepalives configured on both client and server.
Next test will be removing IOException.
For my scenario it doesn't care if there are disconnections here and there. The important things is being able to intercept those disconnection so to be able to reconnect.

This is the error I get:
2020-09-24 11:12:28.671 +02:00 [DBG] [WatsonMessage] BuildStream exception:
{
"ClassName": "System.IO.IOException",
"Message": "Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.",
"Data": null,
"InnerException": {
"NativeErrorCode": 10060,
"ClassName": "System.Net.Sockets.SocketException",
"Message": "A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond",
"Data": null,
"InnerException": null,
"HelpURL": null,
"StackTraceString": "   at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)\r\n   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)",
"RemoteStackTraceString": null,
"RemoteStackIndex": 0,
"ExceptionMethod": "8\nEndReceive\nSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.Net.Sockets.Socket\nInt32 EndReceive(System.IAsyncResult)",
"HResult": -2147467259,
"Source": "System",
"WatsonBuckets": null
},
"HelpURL": null,
"StackTraceString": "   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)\r\n   at System.Threading.Tasks.TaskFactory1.FromAsyncTrimPromise1.Complete(TInstance thisRef, Func3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()\r\n   at WatsonTcp.WatsonCommon.d__3.MoveNext() in D:\WatsonTcp-master\WatsonTcp-master\WatsonTcp\WatsonCommon.cs:line 112\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n   at WatsonTcp.WatsonMessage.d__33.MoveNext() in D:\WatsonTcp-master\WatsonTcp-master\WatsonTcp\WatsonMessage.cs:line 255",
"RemoteStackTraceString": null,
"RemoteStackIndex": 0,
"ExceptionMethod": "8\nEndRead\nSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.Net.Sockets.NetworkStream\nInt32 EndRead(System.IAsyncResult)",
"HResult": -2146232800,
"Source": "System",
"WatsonBuckets": null
}
2020-09-24 11:12:28.708 +02:00 [DBG] [WatsonTcpClient] Message build failed due to disconnect
2020-09-24 11:12:28.710 +02:00 [DBG] [WatsonTcpClient] Data receiver terminated
2020-09-24 11:12:28.716 +02:00 [INF] Server disconnected

Thank you @xenioo - one of the unfortunate realities of building a messaging layer on top of an operating system's networking stack is that I'm stuck getting what they give me.  WatsonTcp uses the underlying OS TCP implementation and they tend to have weird behavior about when a connection is considered alive vs not and when it is torn down forcefully vs gracefully.  This seems to be a situation where the OS is reporting the socket alive to WatsonTcp for a period of time, even though the other side no longer considers it alive.  This is often due to some kind of network change in between client and server (but not always) and a FIN/RST packet is not received informing them to close gracefully or forcefully.

Ok understood. So what are you suggesting? Is there a fix or a workaround you can work out in order to mitigate that issue?

This is an issue that TCP keepalives is supposed to address, but doesn't do very reliably.  Another approach is to use application-layer heartbeats, where you maintain a timer/state of when the last heartbeat was sent and acknowledged.  It has its own problems though, for instance, it would be sharing the same connection as your actual application data, which could be problematic if you don't interleave messages or are sending large messages.  There are unfortunate corner cases in networking that can only be addressed by "waiting".  I'm open to any suggestions.

Should tcp keepalives also be configured on the client? At the moment I've enabled keepalives only in the server.

You can, in my testing I've only found it to work (somewhat) reliably server-side.  I haven't had any luck with clients actually using them.  I've tried with both Windows and Ubuntu - Windows with both .NET Framework 4.6.1 and .NET Core 3.1, and Ubuntu with .NET Core 3.1.  Really wish I could give you a better answer on this one.

Not sure 100%, but maybe found how to remove the repetitive disconnection happening on some clients.
I've put a delay after the client.Start() and this seems to have fixed that issue
Task clientStart =_client.StartAsync();
Task.Delay(1000).Wait();
Need to monitor next few hours...

Hi @xenioo are you still polling on client.Connected?  If so adding the delay is definitely a good idea, since the Connected property isn't set until after all of the background work (starting data receiver, etc) is started.  Cheers

@jchristn yes, i'm doing polling.
Task clientStart =_client.StartAsync();
Task.Delay(1000).Wait();
Log.Information($"Connection is on: {_client.Connected}");

Probably the issue, before inserting the Task.Delay, was the logging that was inspecting the _client.Connected property?

Exactly.  The Connected property is set after a handful of internal items which take time.

@jchristn don't want to annoy too much on that issues...but I've found another strange behaviour.
Clients are connected.
At some point, I see in the server log that 1 client disconnected. In this case, the polling loop in the client should trigger the reconnection of the client. Since the client didn't reconnect, I gave a look at the client log and found nothing: seems like that the client is considering still connected, that is client is having the Connected property still = true and no server disconnected event has been fired.

Hi @xenioo not an annoyance at all - are you using TCP keepalives?  If so it could be that the server keepalives failed.  For some reason keepalives only seem to be working server-side and not client-side.
It may be worthwhile to implement a heartbeat within your application, i.e. periodically sending a 'hello' and updating a timer within your app of when the last hello was received.
WatsonTcp really only accounts for process termination (graceful or not) and partially through keepalives.  Intermediary network hiccups that leave the underlying TCP implementation thinking it is still connected leave WatsonTcp thinking it is still connected.  My hands are pretty tied on that unless I write my own TCP/IP stack :)

@jchristn sending the hearbeat from the client, right?

I'd do it from both sides to be safe.
  If large, be aware that messages are sent in series, and a heartbeat could get stuck behind a larger message.

I'm sending small messages.
Anyway, I've implemented a second polling loop on the client that will send a hearbeat message every minute to the server.
Now, thanks to the yesterday's "task.delay" put just after being connected and thanks to the second polling loop, connections seems to be really stable and reliable.

Thanks @xenioo glad to know that the client-initiated heartbeat is helping.  Closing this out for now.


1.20.6 dosent work with this mod

when i install the mod on modrinth and launch the game, it always crashed idk why, is anyone having this issue?

Hello. Are you able to provide a log or crash report when the game crashes? You can either upload the file here, or copy and paste it on a site like mclo.gs. It will help a lot when trying to diagnose an issue.

sure, let me just install the mod again

https://mclo.gs/E1ASb1D

ive already asked the fabric discord server player help and someone told me to "uninstall it and report it to their github"

Thank you. Yeah that’s a good recommendation from the Fabric discord. I’ll try to have it fixed later today if I have time.

@DJGuu12 This version should fix that crash as well as adding full support for Omnihopper. Turns out Omnihopper removes all of Lithium's hopper optimizations, so that broke my code that depended on Lithium's.
https://modrinth.com/mod/hopperspeedsim/version/1.3.2

Ok, thanks!


Fine-tuned Model

Many issue when using cluster algorithm, such as  backgound same color with our labels , brightness difference of the same label, ...
I think we should use Contrastive to learn feature of total images. Then add classifiers and train with labeled dataset. Is any one do this and answer for me ?

@Holmes2002 im ot quite sure what you mean here. Is there something you think the cluster probe is not capturing in your data? Try varying the number of clusters to see if your dataset naturally has more or less. Also iyou could clarify your question that would be a big help!

I solved it. Tks for your cmt !


Feat: inbound message count metrics

Supersedes #1720 (same commits, just cherry-picked as the rebase was a little messy).

Rebased.


Fix trailing whitespace issue

I was able to reproduce the issue causing pytest to fail on GitHub. It's failing due to an update that was released for xmttodict (installing xmltodict 0.14.1 reproduces the error, while no errors are raised with 0.13.0), although that is not the reason for the errors. What changed with the update is that the values were not stripped anymore causing the assertion errors.
That leads to the question, why stripping was necessary in the first place. Turns out, they are introduced by including the tail of a node into string representation of the node. Since the tail only includes the content between the closing tag of that node and the starting tag of the next node, I think it can be safely removed.

@addie9800 Wow, thanks a lot! That's an awesome fix!


publish latest version to npm

Currently the latest version in nom repository is 0.9.5 and in github is 0.9.6
Could you please publish the latest version to npm?

This would be very helpful; current documentation points to field search but that functionality isn't implemented in 0.9.5.

For anyone who needs a quick copy/paste solution for their package.json in the meantime:
"dependencies": {
   "elasticlunr": "git://github.com/weixsong/elasticlunr.js.git#1995e0f73a395c620b2fb597f8ac3ec61b831ffa"
}

(replace hash with latest commit if necessary)

Yeah there's a breaking change there between the two! I just noticed that the npm version doesn't give you the appended doc property to the search results:
https://runkit.com/marksyzm/5ae20ccaac30a60013f42077


Implement method sort

Creates a new Sparray with the elements sorted. Optionally a comparison method can be provided.

done


fix: Ran go get -u ./...

What this PR does / why we need it

Notes for your reviewers

Seems to be missing go mod tidy


nix: Run sandbox tests

Run the sandbox tests for stable nix on linux too.
To find problems like this earlier: https://github.com/NixOS/nix/pull/4659
This problem was revealed in https://github.com/NixOS/nixpkgs/pull/118128#issuecomment-810893011
    common.sh: line 89: unshare: command not found

This PR does not fix that PR, but improves nix testing.

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 118298 run on x86_64-linux 1

1 package marked as broken and skipped:

nix-exec

2 packages blacklisted:

tests.nixos-functions.nixos-test
tests.nixos-functions.nixosTest-test

4 packages failed to build and already failed to build on hydra master:

dydisnix: log was empty
haskellPackages.update-nix-fetchgit: log was empty
libnixxml: log was empty
update-nix-fetchgit: log was empty

48 packages built:

bundix
cabal2nix
cachix
common-updater-scripts
crate2nix
crystal2nix
dep2nix
fusionInventory
go2nix
haskellPackages.cachix
haskellPackages.hercules-ci-agent
haskellPackages.hercules-ci-cnix-expr
haskellPackages.hercules-ci-cnix-store
haskellPackages.nix-paths
hercules-ci-agent
lispPackages.quicklisp-to-nix
lispPackages.quicklisp-to-nix-system-info
nix (nixStable)
nix-bundle
nix-doc
nix-du
nix-index
nix-pin
nix-plugins
nix-prefetch
nix-prefetch-bzr
nix-prefetch-cvs
nix-prefetch-docker
nix-prefetch-git
nix-prefetch-hg
nix-prefetch-scripts
nix-prefetch-svn
nix-serve
nix-update
nix-update-source
nixStatic
nixos-generators
nixos-rebuild
nixos-shell
nixui
python38Packages.nix-kernel
python38Packages.nixpkgs
python38Packages.pythonix
python39Packages.nix-kernel
python39Packages.nixpkgs
python39Packages.pythonix
vgo2nix
vulnix


poor performance when injecting a large diff

Committing a verbose commit (shows diff after scissors) can slow down an editor using tree-sitter-git-commit quite a bit if the diff is very large.
This is probably because:

this grammar has pretty small message nodes which become numerous on a big commit file
tree-sitter-git-diff is currently injected within those message nodes one-by-one

Even a 8000 line verbose commit message is very fast after d046669. I expect that the slow-down was that incremental updates to the injected layers became very expensive when there were thousands of injected git-diff lines.


Ocelot compares an array of string to a single claim value when using RouteClaimsRequirement

Actual Behavior / Motivation for New Feature
I wanted to check the user's role claim using RouteClaimsRequirement but Ocelot returns 403 for all requests.
    "RouteClaimsRequirement": {
      "Role": "roles.admin"
    }

It turns out that my user has multiple role claims and IdentityServer4 is saving them into the Role claim as a single array of strings. Ocelot tries to compare the array string to the authorization value as seen in the following logs:
warn: Ocelot.Responder.Middleware.ResponderMiddleware[0]
requestId: 0HLECCH4A1P6G:00000002, previousRequestId: no previous request id, message: Error Code: ClaimValueNotAuthorisedError Message: claim value: System.Collections.Generic.List`1[System.String] is not the same as required value: roles.admin for type: Role errors found in ResponderMiddleware. Setting error response for request path:/api/b, request method: GET
{
  "nbf":<PHONE_NUMBER>,
  "exp":<PHONE_NUMBER>,
  "iss": "identity.api",
  "aud": [
    "identity.api/resources",
    "XXXXX",
    "XXXXX"
  ],
  "client_id": "XXXXXX",
  "sub": "44282fc2-c493-426a-9d0c-dc3c0d0418ff",
  "auth_time":<PHONE_NUMBER>,
  "idp": "local",
  "role": [
    "roles.admin",
    "roles.staff"
  ],
  "name": "admin",
  "email": "XXXX",
  "scope": [
    "openid",
    "profile",
    "XXX.scopes.full_access",
    "XXX.scopes.full_access"
  ],
  "amr": [
    "pwd"
  ]
}

Expected Behavior / New Feature
RouteClaimsRequirement should be able to check if the value matches any of the role claims. Additionally, supplying an array for value should match every single one.
Steps to Reproduce the Problem

Using ASP.NET Identity and IdentityServer4, assign two or more roles to user.
Log in using that user account.
Check if Ocelot is able to route requests from web client.

The issue is somewhat similar to #240.
Specifications

Version: 7.0.4
Platform: ASP.NET Core 2.1, IdentityServer4 2.2.0

@ctee-cormant thanks for noticing this. Looks like a bug. I will look at it asap. If you want to have a go at fixing it yourself I would appreciate any help! 😄

@ctee-cormant which version of Ocelot are you using from NuGet?

Hi @TomPallister,
We're using 7.0.4 version of Ocelot.

@ctee-cormant I can't replicate this issue :( would you be able to paste your configuration json, startup.cs and program.cs. Also could you show me how the roles have been assigned to the user in IdentityServer?

@TomPallister I think it's important that the JWT token claim for role have an array value. I have a custom ProfileService that does the following:
    public class ProfileService : DefaultProfileService, IProfileService
    {
        UserManager<User> _userManager;

        public ProfileService(
            UserManager<User> userManager,
            ILogger<ProfileService> logger)
            : base(logger)
        {
            _userManager = userManager;
        }

        override async public Task GetProfileDataAsync(ProfileDataRequestContext context)
        {
            await base.GetProfileDataAsync(context);

            var user = _userManager.GetUserAsync(context.Subject).Result;

           context.IssuedClaims.Add(new Claim("role", "Administrator"));
           context.IssuedClaims.Add(new Claim("role", "Contributor"));
        }

        override async public Task IsActiveAsync(IsActiveContext context)
        {
            await base.IsActiveAsync(context);

            var user = _userManager.GetUserAsync(context.Subject).Result;

            context.IsActive = (user != null) && user.Enabled;
        }
    }

And here's is my Ocelot configuration:
{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/api/{everything}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "catalog.api",
          "Port": 80
        }
      ],
      "UpstreamPathTemplate": "/api/c/{everything}",
      "UpstreamHttpMethod": [],
      "RouteClaimsRequirement": {
        "Role": "Contributor"
      }
    },
    {
      "DownstreamPathTemplate": "/api/{everything}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "users.api",
          "Port": 80
        }
      ],
      "UpstreamPathTemplate": "/api/u/{everything}",
      "UpstreamHttpMethod": [],
      "RouteClaimsRequirement": {
        "Role": "Administrator"
      }
    }
  ],
    "GlobalConfiguration": {
      "RequestIdKey": "OcRequestId",
      "AdministrationPath": "/administration"
    }
  }

@ctee-cormant I cannot replicate this issue at all :( I've made a test that replicates the issue using the same code as your ProfileService.
Can you paste your projects csproj file? I'm interested to see the dependencies and version of .net you are using?

Thanks @TomPallister for helping me with this. Here's my csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <UserSecretsId>XXXX</UserSecretsId>
    <DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
    <RootNamespace>Identity.API</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="4.2.2" />
    <PackageReference Include="FluentValidation" Version="7.6.0" />
    <PackageReference Include="IdentityServer4" Version="2.2.0" />
    <PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.1.0" />
    <PackageReference Include="IdentityServer4.EntityFramework" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="2.1.0" />
    <PackageReference Include="WindowsAzure.Storage" Version="9.2.0" />
  </ItemGroup>

</Project>

Thanks for this @ctee-cormant it might be something to do with netcoreapp2.1..I am still using 2.0 or it could be the indentity server packages. I will investigate further.
Are you on Windows, Mac or Linux?

@TomPallister I'm using Windows for development but we'll be deploying this to a kubernetes cluster for production.

@ctee-cormant thanks! I haven't tested on Windows yet. I will try ASAP!

@ctee-cormant I'm sorry but I haven't been able to replicate this issue on windows using netcoreapp2.1.
I have a theory that when the claim is be stored something is calling ToString on a list and it is getting persisted like that in the token. I think this because Ocelot gets the claims like this
            values.AddRange(claims.Where(x => x.Type == claimType).Select(x => x.Value).ToList());

claims is of type System.Security.Claims.Claim and Value is of type string so I don't think it is possible that Ocelot is calling ToString() on a list. After the code above Ocelot doesn't do anything with the values property apart from a contains on it.
In short I don't think the problem is with Ocelot it is with whatever is putting the claims into the token.
I looked into this in more details and there are a few posts on similar topics around here, here and here.
I am going to close this issue for now as I cannot replicate it but if you are able to push the source code that has this issue somewhere I would be happy to take another look.

Hi @TomPallister! Sorry for not having replied sooner. I'll upload my code here on github when I get a chance. We're still early in development so multi role users have yet to come up again. Thanks again for taking the time to look into this and making our development easier with Ocelot! We really appreciate it.

@ctee-cormant ok cool! When you do push the code let me know! Good luck with everything!

I've had the same problem (Ocelot v7.0.6). I've managed to solve it by setting in ocelot config:
"RouteClaimsRequirement": {         "role": "superuser"       }
Name of claim should be LOWERCASE as in my JWT token. Now it works how it should :)

FWIW, I found that I was getting this error and thought that something was going wrong with my claims. However after implementing my own version of the ClaismAuthoriser so I could debug it - I found that the error message code was what was giving me that List.ToString() rubbish.
My error was that the list didn't contain my claim I was requiring, and not that the claims were in the wrong format.


I would like to know when the chan.sankakucomplex site will be supported

What steps will reproduce the problem?
trying to download anything on the site
What is the expected behavior? What do you get instead?
it is loading but not low
How often does this problem occur? On which sources?
sankaku complex
What version of the program are you using? On what operating system?
5.5.2
Please provide any additional information below
Sorry for my bad english

oh god... another one.
read this carefully - https://github.com/Bionus/imgbrd-grabber/issues/997
Sankaku devs doesn't want to Grabber support their site. And they contacted grabber dev to warn about continuins supporting sankaku.  I can understand them.
And they also changed their API to prevent that.
That's why it currently not supported in Grabber, and nobody knows will it be supported in the future.

ikr?
In addition to what MasterPetrik said, you can also check #1128 for possible workarounds.
I'll be closing the issue for duplication. 😃


Network Output

I'm trying to understand the output of the caffe network and where argmax prediction is coming from in the python interface: out = net.blobs['score'].data[0].argmax(axis=0)
The output: net.blobs['score'].data has 21 channels. What are the additional 20 channels and how do we know that if a face pixel is present, the maximum value will be in the second channel?
Thanks

Exactly, the maximum value will be in the second channel for face pixels.
The other 19 channels are not used and were removed in the new model for the 300X300 resolution.


In the tutorial, the text column shows doubled backslashes where only one should be.

The first paragraph of the tutorial explains how to input inline math.  The input window shows the correct code but in the "text" output, backslashes are doubled.  The problem persists throughout.
I've encountered this problem elsewhere, and it's lethal when trying to explain (La)TeX conventions.  Unfortunately, I have no idea how to fix the problem, but unless it is fixed, someone trying to learn from this is likely to become confused unnecessarily.

Resolved as part of #8. Please see https://mathb.in/1 for the updated tutorial which does not use double-blackslashes anymore. Please see #8 for resolution notes.


New chart type - LineXY & DateAxis

New chart type proposition - LineXY and also DateAxis.
Line XY
function LineXY(query, data, options, responsiveOptions, axisX, axisY, dataTransform)

Example to use logarithmic scale:
var logTransform = function(point)
{
	return {
		x: Math.log10(point.x),
		y: point.y
	}
};

var chartlog = new Chartist.LineXY('#chart', chartData, options, responsiveOptions, axisX, axisY, logTransform);

Date Axis
It allows to specify that on axis we have date values.
We should specify provider to generate ticks:

ResolutionBasedTicksProvider
YearTicksProvider
MonthTicksProvider
DayTicksProvider
HourTicksProvider
MinuteTicksProvider
SecondsTicksProvider
MillisecondsTicksProvider

example:
var dateAxis = new Chartist.DateAxis(Chartist.Axis.units.x,{ ticksProvider: new Chartist.ResolutionBasedTicksProvider() });
var chart = new Chartist.LineXY('#chart', chartData, options, undefined, dateAxis);

Examples
Simple LineXY
Logarithmic Scale
Resolution Based Ticks Provider
Year Ticks Provider
Month Ticks Provider
Day Ticks Provider
Hour Ticks Provider
Minute Ticks Provider
Seconds Ticks Provider
Milliseconds Ticks Provider

@baks thanks so much for your contribution! Ill need some time to review this but please staly tuned. One thing that scares me a bit is the big code redundancy of line and xy chart. Also I appreciate the clean separation of your tick providers but they go heavily against our performance budget :-( this whole PR adds an extra size of about 10kb if not more. That was the size of the whole library in version 0.
2! Let me take a closer look and review this in more detail. Thanks again for your great work!

@gionkunz I forgot that size matters :(
Tick providers could be easily joined to one small file, I started from one file (https://github.com/baks/chartist-js/blob/632f5873e9293d3a35f169c66ef012662ea177fc/src/scripts/ticks/date-ticks-provider.js)
Maybe there is a chance to create one generic line chart that also supports xy points?

I close this and try to refactor code to avoid redundancy in code.


LagBar not working on every spell + Lag Bar not properly updating.

I was messing around with it on my Warlock and I noticed that not every spell is working as expected. When I cast Incinerate, or Immolate, neither of the spells trigger the lag bar code.
To test this I modified the code in the PlayerCastLagBar function, and added a simple print("Hello") inside of the if playerSpell and VCBrPlayer["LagBar"] == "Show" then. And noticed that no debug message was printed on Incinerate or Immolate. However, casting any other spell would show the lag bar and the print.

Update: You'll want to change IsPlayerSpell to IsSpellKnownOrOverridesKnown the issue in my case is specifically due to the spell being overriden to the "Green Fire" Variant of a Warlock.

Additional bug as well: The lag bar value isn't updating properly. Specifically, if you cast one spell, and queue up a second spell (Or even just spam the spell cast button during the cast.) the bars latency will never change.
I'm unsure of the root cause of this currently. But its something that I've noticed.

The funny thing is if your print(lagTotal) you will see that the number is right, but the bar doesn't change!
And another funny think is if you run the /eventtrace in the game you will notice that it tracks your lag in some events like the event "UNIT_SPELLCAST_START" in milliseconds but the only way I could take the number is the way I use in the add on.


DBZ-5321 Use 2.1 images for building UI

Works fine on my new system, merging.

@ani-sha It looks like you missed some places. For example: https://github.com/ani-sha/debezium-ui/blob/upgrade-to-2.0/backend/src/test/java/io/debezium/configserver/util/Infrastructure.java#L44
Furthermore all docker-compose files should base on the quay.io registry imho.

Could you also please in the future post a link in the first comment / pr description so it is easier to discover the task in Jira?

And also the Jira DBZ-5321 is not about bumping Debezium dependency in the UI to 2.1 but instead about the metrics. Can you please file a separate task for such things in the future?

@rk3rn3r Sure, I will keep it mind. I have created a new Jira (DBZ-6173) for doing the rest changes. I will link this PR as well.


mechanism to pass variables to static export html

Thanks a lot for creating this wonderful project
Just wondering is there a way to provide variables or params to the app when using static export. I understand that we can using router to provide query object to the app, but this will result in generating one html for each query value.
But let's say we have a use case that for a web page, we display 10 records at the very beginning, and user can click load more to display another 10 records. After user's refreshing the web page, only 10 records will be displayed. This can be improved by providing a query param called counter=20 in the url. If we have 100 records in total, to achieve this, we can export 100 htmls with counter= 1 to 100 when exporting the static webiste. It looks to me not reasonable to create 100 same htmls, any suggestions on this?
Thanks a lot!

You can use getInitialProps


az webapp deploy fails with just "Bad Request" (using --src-url)

Describe the bug
When running the az webapp deploy command below, all I get is a "Bad Request" response. Pretty hard to debug that…
Related command
az webapp deploy --resource-group ACME-Dev-RG --name acmecom-dev --type zip --src-url 'https://acmecom.blob.core.windows.net/artifacts/release.zip?__SAS__'
(Tried with an explicit --async true as well, to avoid any side effects of https://github.com/Azure/azure-cli/issues/27506)
Errors
Initiating deployment
Deploying from URL: https://acmecom.blob.core.windows.net/artifacts/release.zip?__SAS__
Bad Request

Issue script & Debug output
This has been redacted and shortened a bit (removed the successful informaton retrieval about the webapp, for example).
I hope the relevant bits are all there.
cli.azure.cli.command_modules.appservice.custom: Initiating deployment
cli.azure.cli.command_modules.appservice.custom: Deploying from URL: https://acmecom.blob.core.windows.net/artifacts/release.zip?__SAS__
cli.azure.cli.core.util: Request URL: 'https://management.azure.com//subscriptions/__SUBSCRIPTION__/resourceGroups/ACME-Dev-RG/providers/Microsoft.Web/sites/acmecom?api-version=2023-12-01'
cli.azure.cli.core.util: Request method: 'GET'
cli.azure.cli.core.util: Request headers:
cli.azure.cli.core.util:     'User-Agent': 'python/3.11.9 (macOS-14.5-arm64-arm-64bit) AZURECLI/2.61.0 (HOMEBREW)'
cli.azure.cli.core.util:     'Accept-Encoding': 'gzip, deflate'
cli.azure.cli.core.util:     'Accept': '*/*'
cli.azure.cli.core.util:     'Connection': 'keep-alive'
cli.azure.cli.core.util:     'x-ms-client-request-id': 'e1e91944-6092-450a-b908-5a86e921d5c1'
cli.azure.cli.core.util:     'CommandName': 'webapp deploy'
cli.azure.cli.core.util:     'ParameterSetName': '--debug --resource-group --name --async --type --src-url'
cli.azure.cli.core.util:     'Authorization': 'Bearer eyJ0eXAiOiJKV...'
cli.azure.cli.core.util: Request body:
cli.azure.cli.core.util: None
cli.azure.cli.core.util: Response status: 200
cli.azure.cli.core.util: Response headers:
cli.azure.cli.core.util:     'Cache-Control': 'no-cache'
cli.azure.cli.core.util:     'Pragma': 'no-cache'
cli.azure.cli.core.util:     'Content-Length': '8309'
cli.azure.cli.core.util:     'Content-Type': 'application/json'
cli.azure.cli.core.util:     'Expires': '-1'
cli.azure.cli.core.util:     'ETag': '"1DAC8AFD47ACAA0"'
cli.azure.cli.core.util:     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.util:     'X-AspNet-Version': '4.0.30319'
cli.azure.cli.core.util:     'X-Powered-By': 'ASP.NET'
cli.azure.cli.core.util:     'x-ms-ratelimit-remaining-subscription-reads': '249'
cli.azure.cli.core.util:     'x-ms-ratelimit-remaining-subscription-global-reads': '3749'
cli.azure.cli.core.util:     'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.util:     'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.util:     'Date': 'Mon, 01 Jul 2024 18:40:15 GMT'
cli.azure.cli.core.util: Response content:
cli.azure.cli.core.util: {"id":"/subscriptions/__SUBSCRIPTION__/resourceGroups/ACME-Dev-RG/providers/Microsoft.Web/sites/acmecom","name":"acmecom","type":"Microsoft.Web/sites","kind":"app,linux","location":"East US","tags":{"Environment":"Development"},"properties":{"name":"acmecom","state":"Running","hostNames":["acmecom.azurewebsites.net"],"webSpace":"ACME-Dev-RG-EastUSwebspace-Linux","selfLink":"https://waws-prod-blu-495.api.azurewebsites.windows.net:454/subscriptions/__SUBSCRIPTION__/webspaces/ACME-Dev-RG-EastUSwebspace-Linux/sites/acmecom","repositorySiteName":"acmecom","owner":null,"usageState":"Normal","enabled":true, … ,"sshEnabled":null}}
cli.azure.cli.command_modules.appservice.custom: Deployment API: https://management.azure.com/subscriptions/__SUBSCRIPTION__/resourceGroups/ACME-Dev-RG/providers/Microsoft.Web/sites/acmecom/extensions/onedeploy?api-version=2023-01-01
cli.azure.cli.core.util: Request URL: 'https://management.azure.com/subscriptions/__SUBSCRIPTION__/resourceGroups/ACME-Dev-RG/providers/Microsoft.Web/sites/acmecom/extensions/onedeploy?api-version=2023-01-01'
cli.azure.cli.core.util: Request method: 'PUT'
cli.azure.cli.core.util: Request headers:
cli.azure.cli.core.util:     'User-Agent': 'python/3.11.9 (macOS-14.5-arm64-arm-64bit) AZURECLI/2.61.0 (HOMEBREW)'
cli.azure.cli.core.util:     'Accept-Encoding': 'gzip, deflate'
cli.azure.cli.core.util:     'Accept': '*/*'
cli.azure.cli.core.util:     'Connection': 'keep-alive'
cli.azure.cli.core.util:     'Content-Type': 'application/json'
cli.azure.cli.core.util:     'CommandName': 'webapp deploy'
cli.azure.cli.core.util:     'ParameterSetName': '--debug --resource-group --name --async --type --src-url'
cli.azure.cli.core.util:     'Authorization': 'Bearer eyJ0eXAiOiJKV...'
cli.azure.cli.core.util:     'Content-Length': '392'
cli.azure.cli.core.util: Request body:
cli.azure.cli.core.util: {"properties": {"packageUri": "https://acmecom.blob.core.windows.net/artifacts/release.zip?__SAS__", "type": "zip"}}
cli.azure.cli.core.util: Response status: 400
cli.azure.cli.core.util: Response headers:
cli.azure.cli.core.util:     'Cache-Control': 'no-store, no-cache'
cli.azure.cli.core.util:     'Pragma': 'no-cache'
cli.azure.cli.core.util:     'Expires': '-1'
cli.azure.cli.core.util:     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.util:     'X-AspNet-Version': '4.0.30319'
cli.azure.cli.core.util:     'X-Powered-By': 'ASP.NET'
cli.azure.cli.core.util:     'x-ms-ratelimit-remaining-subscription-writes': '199'
cli.azure.cli.core.util:     'x-ms-ratelimit-remaining-subscription-global-writes': '2999'
cli.azure.cli.core.util:     'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.util:     'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.util:     'Date': 'Mon, 01 Jul 2024 18:40:20 GMT'
cli.azure.cli.core.util:     'Content-Length': '0'
cli.azure.cli.core.util: Response content:
cli.azure.cli.core.util:

There seems to be no response body whatsoever, so all I have is 400 Bad request
Expected behavior
The deployment is triggered…
Environment Summary
azure-cli                         2.61.0
core                              2.61.0
telemetry                          1.1.0
Extensions:
webapp                             0.4.0
Dependencies:
msal                              1.28.0
azure-mgmt-resource               23.1.1
Python location '/opt/homebrew/Cellar/azure-cli/2.61.0/libexec/bin/python'
Extensions directory '/Users/karsten/.azure/cliextensions'
Python (Darwin) 3.11.9 (main, Apr  2 2024, 08:25:04) [Clang 15.0.0 (clang-15<IP_ADDRESS>)]
Legal docs and information: aka.ms/AzureCliLegal
Your CLI is up-to-date.
Additional context
The download URL given to the command is valid and works…

Thank you for opening this issue, we will look into it.

FYI: I also tried using az rest to call the deployment API endpoit directly, as suggested in https://azure.github.io/AppService/2021/03/01/deploying-to-network-secured-sites-2.html - even though it seemed far-fetched, given that article is from March 2021. As expected it didn't make a difference.

We did some further debugging… It fails with 400 Bad request for

a SAS URL created using az storage blob generate-sas --full-uri --permissions r --expiry '2024-07-03T09:09Z' --account-name acmecom -c artifacts -n release.zip --auth-mode login --as-user
an URL like https://www.acme.com/release.zip that points to a non-existing ZIP

When using a URL like https://www.acme.com/release.zip that points to an existing ZIP, it works – so it doesn't like the "fancy" SAS URL? For fun I passed a rawurlencoded URL of the SAS URL, and that failed with Invalid packageUrl in the JSON request.
So the SAS URL is the issue – either it is checked and access fails (even though I can use it just fine!) or some validation goes wrong!?

Could it be the network blocks access to the storage container from the deployment service? We have "Public network access: Enabled from selected virtual networks and IP addresses" configured.

Additionally enabling "Allow Azure services on the trusted services list to access this storage account." does not fix it…
Changing it to "Public network access: Enabled from all networks" does fix it.

I'll try adding a private endpoint and see where that leads me.

I'll try adding a private endpoint and see where that leads me.

The combination of a private endpoint and SAS URL does work fine, it was indeed the inaccessible ZIP that caused the 400 Bad request.
If there could be a better error message for such a case, that would have spared me some hours… 😬


Beautify the code

4 spaces
' instead of "
new line at end of file

I was a little busy with office work and did not get time to accept the pull request. Can you please send it again if possible


allow direct install

#106
@pauleveritt can you check if this works for you?

Yep, I put that branch reference in setup.py dependency_links and it worked. Thanks for the super-fast response.

No problem, you caught me at my desk. That fix is now released as v0.6.3.


Can't Create on Bot Framework Composer

Describe the bug
Command failed: dotnet build Empty.csproj Unhandled exception. System.ObjectDisposedException: Cannot write to a closed TextWriter. Object name: 'StreamWriter'. at System.IO.StreamWriter.g__ThrowObjectDisposedException|77_0() at System.IO.StreamWriter.WriteLine(String value) at Microsoft.DotNet.Installer.Windows.TimestampedFileLogger.Dispose(Boolean disposing) at Microsoft.DotNet.Workloads.Workload.Install.NetSdkMsiInstallerClient.OnProcessExit(Object sender, EventArgs e) at System.AppContext.OnProcessExit()
Version
v2.1.2
Browser

[ ] Chrome

OS

[ ] Windows

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior

Screenshots

Additional context

there's a problem also no reply from my chatbot  after running i don't know what to do may you help me versions 2.1.2 browser chrome os:windows

I used BotFramework-Composer-2.1.3-nightly.364675.1a93f21 and still experienced same thing.
$ node -v
v14.21.3

$ npm -v
8.5.4

$ dotnet --info
.NET SDK (reflecting any global.json):
 Version:   6.0.202
 Commit:    f8a55617d2

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.22631
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\6.0.202\

Host (useful for support):
  Version: 6.0.4
  Commit:  be98e88c76

.NET SDKs installed:
  3.1.416 [C:\Program Files\dotnet\sdk]
  3.1.426 [C:\Program Files\dotnet\sdk]
  6.0.202 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.19 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.6 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 6.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

@ilhamfadhil14
What happens if you try and build outside of Composer:
dotnet build <projectname>.csproj

I am also seeing this error trying to create a project using the Azure Function runtime, but an Azure Web App runtime creates.

@ilhamfadhil14
What happens if you try and build outside of Composer: dotnet build <projectname>.csproj

I cannot find where the files are created locally to directly build the project. There are no files created at the "Location" specified in the creation dialog.

@ilhamfadhil14
What happens if you try and build outside of Composer: dotnet build <projectname>.csproj

Hi @dmvtech ,
I tried but at that time still failed.
I have an update. I have successfully running bot composer, but i do not know why it resolved itself. I have tried bunch of uninstall, reinstall .NET, node. install visual studio and install .NET from there.

I am also seeing this error trying to create a project using the Azure Function runtime, but an Azure Web App runtime creates.

@ilhamfadhil14
What happens if you try and build outside of Composer: dotnet build <projectname>.csproj

I cannot find where the files are created locally to directly build the project. There are no files created at the "Location" specified in the creation dialog.

I'm not quite sure about that. If you cannot find the files at the location you are telling Composer to create them at, then something is severly broken. The bot folder is not there at all? Or only contains a few files?

I'm not quite sure about that. If you cannot find the files at the location you are telling Composer to create them at, then something is severly broken. The bot folder is not there at all? Or only contains a few files?

Nada, nothing, zilch, no folder, no files.

The bot does not successfully start.
Tried the root, saw the c:\composertest folder get created, saw a subfolder and a composertest.sln file created, watched Bot Framework composer try to compile, then fail as stated above, and now the files and folders don't exist on my hard drive, so it appears it all gets removed on failure.

@kratkaericd
Since your issue is related to Azure Functions, are you able to create an Azure function (not necessarily a bot) outside of Composer? For example; can you create a basic http function with Visual Studio Code? I'm wondering if maybe some prerequisite is missing for the Functions. Then, as you said, when it fails Composer just removes the folder.
You can also try getting additional logging during a reproduction of the failure.

Go to Composer's install location (mine is at C:\Users{username}\AppData\Local\Programs\Bot Framework Composer)
Open a terminal here
Run set DEBUG=composer*
Run the executable from the terminal Ex. "Bot Framework Composer.exe"
Reproduce issue and send output of the terminal

@dmvtech Thank you for your help with this. Yes, I create, author, and run Azure Functions locally nearly all day and every day. At this point we decided to move on to a different technology than Bot Framework, so thank you for trying to help, but we won't use this product anymore.


UGC-4319 React on wikipage.content event to reload thanks state

See https://fandom.atlassian.net/browse/UGC-4319

Recent Changes (and potentially other pages) can reload dynamically using JavaScript. Such a reload would cause the DOM to change and thus the previous JavaScript features to disappear. In our case, we would lose the dynamic "confirmable" feature of a thanks, and we would be redirected to a "thanks" confirm page instead.
Adding an observer for a wikipage.content event resolves the issue. After triggering the event, we would reattach actions to links, and we will reload thanked state.
This change has potential to break other pages, but from my observations they seem to work properly.

We can guard the registration with mw.config.get('wgCanonicalSpecialPageName') === 'Recentchanges' (same for Watchlist) or equivalent to be sure that there are no side effects elsewhere,.

Fixed it :) Thank you for the suggestion


Check didMount in setStatus to avoid calling setState after Formik unmounts

I'm currently using Formik in my project (loving it), but ran into an issue recently.
Problem
All of the onSubmit handlers in my app return a promise. I wrap each handler using a common HOF like so, to handle the submitting and status state in a consistent way when the promise resolves/rejects:
export const handleSubmit = (onSubmit) => (data, {
	setStatus,
	setSubmitting,
}) => {
	setStatus(null);
	return onSubmit(data)
		.then((result) => setStatus(result))
		.catch((error) => {
			const { message: id, values } = error;
			setStatus({ type: 'error', message: { id, values } });
		})
		.finally(() => setSubmitting(false));
};

Some of those onSubmit handlers result in a route change on success, which unmounts the Formik instance. I'm using the Next.js router to handle the route change, so in this case I return the promise returned by the router's push/replace methods. This is a lot of detail to say: The then, catch, and finally handlers above end up firing after the route change — that is, after the Formik instance has unmounted.
This is actually not a problem for the finally handler because setSubmitting (very smartly) guards against calling setState after the component has unmounted — but not so for setStatus 😞 (nor for any of the other setters available in the FormikBag).
Proposed Solution
setStatus = (status?: any) => {
    if (this.didMount) {
        this.setState({ status });
    }
};

I'm finding that setSubmitting does not check if the component is unmounted. isSubmitting appears to reset automatically, so I'm not sure that it's necessary.
Still, it would be really good to fix this warning across the board.

I just came across this issue after upgrading from 1.x to 2.0.3.  The strange thing is that apparently setSubmitting already has this didMount check in place, but setSubmitting is definitely causing the React state update warning for me as well.  I created a common form component that takes an onSubmit function, a schema, etc. and performs the logic that is common to all my forms such as showing an error message when the submit fails.  Example snippets from this common form component:
<Formik
  onSubmit={this.onSubmitWithErrorHandling}>
  initialValues={initialValues}
  validationSchema={validationSchema}>
  {this.renderForm}
</Formik>

private onSubmitWithErrorHandling(values: FormValues, formikHelpers: FormikHelpers<FormValues>) {
  const { onSubmit } = this.props;
  const { setSubmitting } = formikHelpers;
  onSubmit(values, formikHelpers)
    .then(() => setSubmitting(false))
    .catch(error => {
      this.setErrorMessage(error.message);
    });
}

One of my forms that uses this common form component triggers the React update-after-unmount warning as soon as it submits (although other forms that use this component do not trigger the warning for some reason), but if I remove .then(() => setSubmitting(false)), the warning disappears.  The docs say that we should call setSubmitting(false) when the submit completes, but I wonder if this is actually necessary.  It seems to work fine without it and does not trigger any React warnings.

@jbaldassari Thanks for your solution! I will try at home that as well. It is incredible there is a PR since May for solving this but it seems the author is not updating the code based on the review comments....

The docs say,
"IMPORTANT: If onSubmit is async, then Formik will automatically set isSubmitting to false on your behalf once it has resolved. This means you do NOT need to call formikBag.setSubmitting(false) manually. However, if your onSubmit function is synchronous, then you need to call setSubmitting(false) on your own."

@charleskoehl that would work if you are only interested in the submitting state, but if you want to change another state, then you can hit this problem as far as I remember.

@charleskoehl I had this problem with a login form. My login function is async, and if I did call login().then(() => actions.setSubmitting(false)), I get the warning on a successful login. If I don't call it, my form submit button is stuck as disabled on an unsuccessful login.
Simply making the onSubmit function async solved my problem. Thanks!
          onSubmit={async (values) => {
            login({ variables: values });
          }}

@t-lock not a pro but if you call async without await I would have thought it does not make any difference than removing the async and the Promise handler.
onSubmit={values => {
  login({ variables: values });
}}

@javierguzman just adding async makes the function return a promise, which means Formik will clear the isSubmitting state automatically when it resolves. Your code snippet above results in the first scenario I described, where isSubmitting is never cleared, so in my case, the submit button will be stuck in 'disabled' when invalid auth credentials are submitted.

True, forgot about that detail! thanks for the clarification @t-lock

@charleskoehl that would work if you are only interested in the submitting state, but if you want to change another state, then you can hit this problem as far as I remember.

What if we had onSubmitResolve and onSubmitReject to be able to perform setState and dispatch ? We could just call these functions only if the form is still mounted. It would be similar to https://docs.react-async.com/api/options

Thanks a lot to @t-lock for his answer... it worked for me.
Just for the record, combined with redux-thunk this is what I've done:
In the component which renders Formik
<Formik .... onSubmit={handleSubmit}>
where
const handleSubmit = async (values) => {
  await handleSubmit(values)
}

and the connected component, implements handleSubmit  this way
const handleSubmit = async(values) => await dispatch(saveData(values))
and the Thunk, should return a Promise, like this
export const saveData= data=> dispatch => new Promise(
  (resolve, reject) => {
    dispatch(doSetLoading(true));
    axios.post({
      url,
      payload: data,
    }).then( result => {
      resolve(); // this allows Formik to set Submitting state to false
      dispatch(doAddSuccessMessage(buildSuccessMessage(messages.dataUpdated,data)));
    }).catch (e => {
      handleError(dispatch, e); // set redux state according to the error
      reject(e); // tell Formik that the promise has been rejected
    })
  }
)

Hope it helps somebody!
Best

Recap: don't
onSubmit={(values, actions) => {
  login({ variables: values }).then(() =>
    actions.setSubmitting(false)
  );
}}

The only problem here @t-lock is that you're not returning the promise. If you don't return anything the function just returns undefined. That's why Formik can't know this is asynchronous code. There's no need for the async syntax in this specific case. Just:
onSubmit={(values, actions) => {
  return login({ variables: values }).then(() =>
    actions.setSubmitting(false)
  );
}}


Tag a 1.0.0 release

dep, the official experiment in Golang packaging, released it's first stable version last month. dep expects projects to have tagged releases on Github. Could you tag a 1.0.0 release for this repository? Thanks

Sure, I can do that.
I'd like to understand this better, can you tell me more about what are the ways your user experience with dep is worse when this package does not have any releases? How would it be improved once I add a v1.0.0 tag?

Sure, here's a concrete example. My Gopkg.lock file currently looks like this:
[[projects]]
  name = "github.com/russross/blackfriday"
  packages = ["."]
  revision = "cadec560ec52d93835bf2f15bd794700d3a2473b"
  version = "v2.0.0"

[[projects]]
  branch = "master"
  name = "github.com/shurcooL/sanitized_anchor_name"
  packages = ["."]
  revision = "541ff5ee47f1dddf6a5281af78307d921524bcb5"

For sanitized_anchor_name, it points to your master branch. In the future, if you ever decide to make a breaking change, updating my dependencies will also cause my code to break. If you instead tag a v1.0.0 tag, I can be sure that I won't accidentally take in new changes.

I've done so now.
https://github.com/shurcooL/sanitized_anchor_name/releases/tag/v1.0.0


[SYM-77] Add forage image

Ticket: SYM-77
Description:

Added forage brand image to components:

ForagePANTextField

ForagePINTextField

@tioliveira-symphony looking good! I have a couple questions...

Is the helper text within the field hard-coded?

If so, can we please change it to "EBT card number"? It's more recognizable by EBT cardholders.

@tioliveira-symphony looking good! I have a couple questions...

Is the helper text within the field hard-coded?
If so, can we please change it to "EBT card number"? It's more recognizable by EBT cardholders.

Hi @victorevector , no it is a property (placeholder) exposed to the client/dev to set wherever they want it. Default value is empty string ""


Overlays cause Z-Fighting on some designs.

On blocks like doors which have a glass portion, overlays cause visual Z-Fighting issues. This doesn't happen when the design used is completely opaque.

Yeah, I've already noticed that some time ago but I didn't have the courage to fix that then... Looks like I have to fix it now 😄
Regards, Manu

I know this issue is open for more that a year, but finally I had some time... It's getting better, at least for trapdoors
Regards, Manu

Adding my here, more visually noticeable:


fix: pin node in CI to version 16

Required by some dependencies. At some point we might want to bump
those, though.

@fiam We should evaluate after that what's blocking us not to support LTS.

@fiam We should evaluate what's blocking us not to support LTS.

I agree, but I didn't want to upgrade dependencies myself and risk breaking something else today. This is just an interim fix.
The dependency that fails seem to be @apollo/composition - Check this CI run for reference https://github.com/wundergraph/wundergraph/actions/runs/3329470141/jobs/5506725015

ok, let's merge it after CI is green.

@StarpTech We need to take care of the timeout in Engine CI first https://github.com/wundergraph/wundergraph/pull/286

@fiam please resolve merge conflicts, update branch, then we can merge I think


Investigate why InstanceCredentialProvider::cache is flagged as dead code

Describe the bug
In https://github.com/apache/arrow-rs/pull/5883 a new version of Clippy flagged  InstanceCredentialProvider::cache as not used
To get CI clean again I disabled the clippy lint, but @Xuanwo  rightly suggests we look into the root cause: https://github.com/apache/arrow-rs/pull/5883/files#r1638538556
To Reproduce

Expected behavior
TLDR we should figure out why this was flagged as not used, and either fix the underlying issue or decide that it is not a problem
Additional context

Let me do this.


fix: http3 support broken when advertisedPort set

What does this PR do?
when http3 enabled and http3.advertisedPort set, it would not actually set the argument to enable http3
Motivation
I broke it

temporary workaround:
  additionalArguments:
    - --entrypoints.websecure.http3

@davhdavh Would you please add a test ? So this won't break again ?


Broken allow-multiple in versions 1.8.2 and above

Hello! Today I updated filepond to version 1.8.3 and encountered a problem. Allow-multiple parametr does not work any more
I teseted all versions from 1.8.0 to 1.8.5 (newest at this time) and problem starts from 1.8.2
I also use vue-filepond 2.1.3, maybe problem is there...
But, also i have problem with css styles, the back of the plugin panel is very narrow and does not change at all when adding files

What was the previous version you were running?

I started using your plugin about a couple of days ago, so version was 1.8.0 or 1.8.1, don't remember
And multiple files was ok, but problem with styles was from the beginning

Might be a collision with other styles, do you have a public test case?
I'm looking into the other problem, it seems the changes to option inheritance in version 1.8.2 somehow impact the Vue adapter.

No, these is no collapse with other styles, looks like it cannot hook container with background, because there is no style="height: 81px" etc, like in demo
Probably

The allowMultiple problem is now fixed in version 1.8.5 of FilePond. I just published version 2.1.5 of the Vue adapter so installing that should resolve the problem.
Concerning the style issue. Do you experience the same problem in a clean HTML page without any other scripts or styles?

The only thing I can think of is that it overwrites a global variable or JavaScript feature that FilePond relies on. I can only test this if I can view the generated source, better yet, look at a public test case.

Will close the issue as the original problem has been resolved and we're now looking into interactions between Laracast and FilePond.


Public tty-share session is showing 404?

Hi,
I installed tty-share via Homebrew. Running tty-share --public shows a url:
$ tty-share --public
public session: https://on.tty-share.com/s/<...id...>/
local session: http://localhost:8000/s/local/
Press Enter to continue!

but then going to that URL shows a 404 page. Am I doing anything wrong? Thanks!
If it helps, pressing Enter shows this:
ERRO[0001] Server finished: listen tcp <IP_ADDRESS>:8000: bind: address already in use
tty-share finished

Hi @gregsadetsky !
It looks like the port 8000 is already used on your machine. tty-share needs that port for a local session, which is created all the time (also when using the --public flag). For now, there's no way to disable that, but you can choose a different port, if indeed you need the 8000 for something else. Have a look at --listen flag, which you can set to something else, like: --listen localhost:8001.
If the local session cannot be created, then the public one will not work either.

Thanks so much, I should have... read the actual error message haha. I thought that it was a problem with tty-share because the error message only appeared after I pressed Enter.
Maybe a suggestion would be to show the error message (i.e., the fact that the port 8000 is already used) right as tty-share is starting, and then exit immediately?
Thanks again! I just ran it and it works great.

You're right - that part should definitely be better, and if it can't bind, it should just immediately exit with a nice error message, not even contact the proxy server for a public URL. I'll look at it one day :)


Add new pug icon & rename pug.svg to pug-alt.svg

After #2

Thank you! =)

new Date()
< Sat Sep 17 2016 01:05:53 GMT+0800 (CST)

What time is it now, in your place?

In Australia?
Too. Damn. Late.
Or early, depending on how you look at it:

I regret absolutely nothing.

I'm in Beijing, China, two hours earlier than you.
I thought you were in the United States... 😂
Your github profile bio is very interesting.
It's time to go to sleep...Good night~

Hah, no. :-) I'm from Melbourne.
晚安！


refactor: do not use recursion but keep a stack

When using this library we consistently ran into stack overflow issues. We traced this back to this crate which uses recursion to be able to revert operations in case of an error. This is problematic when applying large patches because it will quickly overflow the stack.
This PR does two things:

Introduces a stack of undo operations which is constructed as the patches are applied. The stack contains the inverse operations of the patches. If an error occurs this stack is unwound to reconstruct the original document. This effectively removes recursion and stores the undo stack on the heap instead of on the stack.
Added (back) a patch_unsafe function which does not construct this undo stack and in turn leaves the document in an inconsistent state.

In our case, we are applying large patches and we don't care at all if the document is in an inconsistent state in case of an error. We throw it away anyway. With this PR this significantly reduces memory usage and increases the performance of applying the patches.

Thanks! I've applied your suggestion.
I'm not sure why the test was failing. The only change in the schema was that a description was added for PatchOperation which already existed in the code but was previously missing in the schema. I've updated the test reference to reflect this.

Now it seems like codecov is failing.. I think the github action needs to be updated perhaps?

Sorry about that. Yes, it turned out the test was broken on main and codecov configuration stopped working (it didn't have the credentials). I fixed both of these issues on main, so if you rebase, this PR should become green.


Add function to allow user to set json in more_data while logging

The MoreData member of BarkLog takes a json as value. We need to create a functionality to allow user to set this to any value of the user's choice. By default, this will be empty.
Something like:
more_data:
{
errorFileName: "",
errorFunctionName:"",
errorLine:
}
Or anything relevant to the user's code base this is just a random example.

This has been implemented in the client using the Config.Raw function.


ear

Not sure what this issue is about, please feel free to elaborate.

Sincerest of apologies. Fingers were flying all over the place while setting up your awesome tool. Had no idea I hit "enter" on this page. Please feel free to delete this thread if I can't do it before you.


Support for Mnemonic keys?

I was looking through but could not find so I might have missed it. But is there support for mnemonic keys like what is done in bitcore.io. You enter 12 words, hex generated and used for the seed? I know there is a seed option for the extKey. But is there built-in support for the mnemonic phrases?
Thanks

Mnemonic mnemo = new Mnemonic(Wordlist.English, WordCount.Twelve);
string str = mnemo.ToString();
ExtKey extKey = mnemo.DeriveExtKey("password");

Or

Mnemonic mnemo = new Mnemonic("words....", Wordlist.English);

Thanks. But is it possible to use a custom wordlist ?

yes, just new WordList(words)

How would this look like in an example? Something like this?
string[] tmpArr = Strings.Split("like just love know never want ....", " ");
Mnemonic mnemo = new Mnemonic(new WordList(tmpArr), WordCount.Twelve);
string str = mnemo.ToString();
the new Wordlist has 2 additional paramters "space" and "name". What do these represent?
thank you

The wordlist is the dictionary you are using (english,japanese, spanish chinese), if you want to make your own dictionary you need 2048 words. I don't think this is what you mean.
What you want is that.

Mnemonic mnemo = new Mnemonic("like just love know never wan", Wordlist.English);
var key = mnemo.DeriveExtKey("password")

actually yes, I would want to make my own dictionary? Is this possible from the library to provide a custom wordlist or does this have be compiled at source?

ah I see, yes it is possible, as I said just do :

new Wordlist(string[] dictionary);

Name is not really used so you don't care. And space, use ' '. In some language, space is a different character that ' '. For example, japanese use '　' and not ' ' ;)


Add deploy scripts for sending a message to wormhole

Description

Add Deploy scripts for deploying the L1 and L2 contracts
Add scripts to register the L1 contract on L2
Add script to mint tokens cross chain

Current dependencies on/for this PR:

main

PR #11

PR #15   👈

This comment was auto-generated by Graphite.


showRouteOverview doesn't work as expected on Android

Environment details

NavSDK Version: 0.3.2-beta
OS type and version: Android 13 API 33 and Android 14 API 34

Steps to reproduce

Please use below latlng's to setDestinations and then call showRouteOverview. Zoom level is not getting set correctly on android.

Code example
const routingOptions: RoutingOptions = {
  travelMode: TravelMode.DRIVING,
  avoidFerries: true,
  avoidTolls: false,
  alternateRoutesStrategy: 1,
};

navigationViewController?.setDestinations(
  [
    {
      "position": {
        "lat": 32.768062,
        "lng": -96.772291
      }
    },
    {
      "position": {
        "lat": 32.78889,
        "lng": -96.906553
      }
    },
    {
      "position": {
        "lat": 32.721521,
        "lng": -96.809458
      }
    },
    {
      "position": {
        "lat": 32.709446,
        "lng": -96.746567
      }
    },
    {
      "position": {
        "lat": 32.765366,
        "lng": -96.764223
      }
    },
    {
      "position": {
        "lat": 32.770895,
        "lng": -96.697785
      }
    },
    {
      "position": {
        "lat": 32.793867,
        "lng": -96.767341
      }
    },
    {
      "position": {
        "lat": 32.854362,
        "lng": -96.744946
      }
    },
    {
      "position": {
        "lat": 32.845018,
        "lng": -96.808388
      }
    },
    {
      "position": {
        "lat": 32.925,
        "lng": -96.846349
      }
    },
    {
      "position": {
        "lat": 32.901702,
        "lng": -96.982005
      }
    },
    {
      "position": {
        "lat": 32.778306,
        "lng": -96.697305
      }
    },
    {
      "position": {
        "lat": 32.701987,
        "lng": -96.757555
      }
    },
    {
      "position": {
        "lat": 32.716738,
        "lng": -96.902071
      }
    },
    {
      "position": {
        "lat": 32.768062,
        "lng": -96.772291
      }
    }
  ],
  routingOptions
);

const onRouteStatusOk = () => {
    try{
      navigationViewController?.setRecenterButtonEnabled(false);
      navigationViewController?.setAbnormalTerminatingReportingEnabled(true);
      navigationViewController?.showRouteOverview();
    }
    catch (e: any) {
      setError(e?.message);
    }
  };

Screenshots
Android and iOS:

Still experiencing this issue. Is there a workaround we can use while waiting for a fix?

The Navigation SDKs for Android and iOS handle showRouteOverview differently. On iOS, all routes are displayed, while on Android, only the active route to the first waypoint is shown. Currently, there is no workaround for this behavior.


Needed to fix vertical positioning of the icon in date picker without label

I'm using the react components (v6.1) and the minified CDN CSS of carbon components (https://unpkg.com/carbon-components/css/carbon-components.min.css).
My date picker doesn't have a label.
In my project, I had to fix the vertical positioning of the date picker icon by overwriting the class like this:
.some-parent .bx--date-picker__icon {
top: 50%;
transform: translateY(-50%);
}
Note: I don't use a label. If I use an label, then the positioning is wrong again ...
I didn't check, if it's an general issue, but at least you've got an hint.
https://github.com/carbon-design-system/carbon-components/blob/4d775ed2df630c1a85dcb786468df23162d27d5a/src/components/date-picker/_date-picker.scss#L110

@IOIO72 a fix has been merged in. you will need to add a class of .bx--date-picker--nolabel to the date picker.


As an admin, I want to remove a survey from a draft engagement

Admin adds a survey to engagement, can remove it by clicking the "remove" icon on the survey tile.
Modal pops up.
Content:
Header: Remove Survey
Content: You will be removing  from . This survey will not be deleted and will be available to add to an engagement, or directly from the Survey page. Do you want to remove this survey?
Buttons: "Cancel" & "Remove Survey"
https://xd.adobe.com/view/ae75b5d1-8424-4323-be5a-8bf2fe0112f3-fb26/screen/f2b3759e-bacb-41ae-ae84-e74c304877d8/

Hey team! Please add your planning poker estimate with ZenHub @saravanpa-aot @djnunez-aot @VineetBala-AOT

YOU COMPLETED THIS ONE? 😃
Carly Greene Hill (she/her)
Business Application Analyst
Environmental Assessment Office
Government of British Columbia
Mobile:<PHONE_NUMBER>
From: jadmsaadaot @.>
Sent: August 18, 2022 4:15 PM
To: bcgov/met-public @.>
Cc: Greene Hill, Carly EAO:EX @.>; Author @.>
Subject: Re: [bcgov/met-public] As an admin, I want to remove a survey from a draft engagement (Issue #358)
[EXTERNAL] This email came from an external source. Only open attachments or links that you are expecting from a known sender.
Closed #358https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbcgov%2Fmet-public%2Fissues%2F358&data=05|01|carly.greenehill%40gov.bc.ca|01ee2231ba584cf27a7a08da816f7706|6fdb52003d0d4a8ab036d3685e359adc|0|0|637964612979720199|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=sXDr%2FOn65e6vnze5vGkLOZQtMHKwAGvlSfbuo8SDiNs%3D&reserved=0 as completed via #456https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbcgov%2Fmet-public%2Fpull%2F456&data=05|01|carly.greenehill%40gov.bc.ca|01ee2231ba584cf27a7a08da816f7706|6fdb52003d0d4a8ab036d3685e359adc|0|0|637964612979720199|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=HRwyA0HcL3gbiX6tvveNI2ITrnWVROMZnyvhB5QTlqA%3D&reserved=0.
—
Reply to this email directly, view it on GitHubhttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbcgov%2Fmet-public%2Fissues%2F358%23event-7218222010&data=05|01|carly.greenehill%40gov.bc.ca|01ee2231ba584cf27a7a08da816f7706|6fdb52003d0d4a8ab036d3685e359adc|0|0|637964612979720199|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=hNLnwbmX3Omzy5gnzZXRwDNfJedoQUNZmaLBlYie05c%3D&reserved=0, or unsubscribehttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAYHT5SEPPUHQALNHCMCDF2TVZ27XBANCNFSM54552IUA&data=05|01|carly.greenehill%40gov.bc.ca|01ee2231ba584cf27a7a08da816f7706|6fdb52003d0d4a8ab036d3685e359adc|0|0|637964612979720199|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=OFa9v7q6YzesJ50Ssqwp8QMjQAch72QBBYb7SQQnygw%3D&reserved=0.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>


[Test case] PR Only Suggestion

Docs Build status updates of commit 3d186e1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 6] Unchanged file with same log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/changed-log-file.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/no-content.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/includes/skip-level.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md

Line 15, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md

Line 14, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.

XfValidationTest/pr-only/[pr-only 6] Unchanged file with same log.md

Line 1, Column 1: [Suggestion-title-missing] Missing required attribute: 'title'.
Line 1, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 10, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.
Line 13, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/includes/changed-log-file.md

Line 11, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 25ef95e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/changed-log-file.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/no-content.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/includes/skip-level.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md

Line 15, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md

Line 14, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.

XfValidationTest/pr-only/includes/changed-log-file.md

Line 11, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 90bb269:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 5] Changed file with same log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/changed-log-file.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/no-content.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/includes/skip-level.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md

Line 15, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md

Line 14, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.

XfValidationTest/pr-only/[pr-only 5] Changed file with same log.md

Line 1, Column 1: [Suggestion-title-missing] Missing required attribute: 'title'.
Line 1, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 10, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.
Line 14, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/includes/changed-log-file.md

Line 11, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 90bb269:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 5] Changed file with same log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/changed-log-file.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/no-content.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/includes/skip-level.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md

Line 15, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md

Line 14, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.

XfValidationTest/pr-only/[pr-only 5] Changed file with same log.md

Line 1, Column 1: [Suggestion-title-missing] Missing required attribute: 'title'.
Line 1, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 10, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.
Line 14, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/includes/changed-log-file.md

Line 11, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 90bb269:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-RuningBuildFailed] Some unexpected errors happened when running build, please open a ticket in https://SiteHelp and include the error report for our team to troubleshoot

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 90bb269:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/[pr-only 5] Changed file with same log.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/changed-log-file.md
:bulb:Suggestion

Details

XfValidationTest/pr-only/includes/no-content.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/includes/skip-level.md
:white_check_mark:Succeeded

XfValidationTest/pr-only/[pr-only 3] Changed file with more pr-only log.md

Line 15, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/[pr-only 4] Changed file with more log.md

Line 14, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.

XfValidationTest/pr-only/[pr-only 5] Changed file with same log.md

Line 1, Column 1: [Suggestion-title-missing] Missing required attribute: 'title'.
Line 1, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 10, Column 0: [Suggestion-h1-empty] H1 is required. Add content to your top-level heading.
Line 14, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

XfValidationTest/pr-only/includes/changed-log-file.md

Line 11, Column 1: [Suggestion-heading-empty] Empty hH2. Headings must have content.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Segmentation fault

docker alpine rust
/app/diesel_demo # cargo -V
cargo 1.54.0 (5ae8d74b3 2021-06-22)
/app/diesel_demo # rustc -V
rustc 1.54.0 (a178d0322 2021-07-26)
/app/diesel_demo # diesel setup
Segmentation fault
/app/diesel_demo # diesel migration generate create_posts
Creating migrations/2021-08-07-020132_create_posts/up.sql
Creating migrations/2021-08-07-020132_create_posts/down.sql
/app/diesel_demo # diesel migration run
Segmentation fault
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff7dffe18 in std::sync::once::Once::call_once::$u7b$$u7b$closure$u7d$$u7d$::h7ef22fafc02ce748 ()
#2  0x00007ffff7ce57cc in std::sync::once::Once::call_inner () at library/std/src/sync/once.rs:418
#3  0x00007ffff7e01357 in diesel::mysql::connection::raw::RawConnection::new ()
#4  0x00007ffff7e0280c in <diesel::mysql::connection::MysqlConnection as diesel::connection::Connection>::establish ()
#5  0x00007ffff7d56ac2 in diesel::database::setup_database ()
#6  0x00007ffff7d032ea in diesel::main ()
#7  0x00007ffff7d1c6d3 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#8  0x00007ffff7d1c6e9 in std::rt::lang_start::$u7b$$u7b$closure$u7d$$u7d$::h6f4638e0e0b67534 ()
#9  0x00007ffff7e9a0f9 in core::ops::function::impls::{{impl}}::call_once<(),Fn<()>> ()
at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:259
#10 std::panicking::try::do_call<&Fn<()>,i32> () at library/std/src/panicking.rs:401
#11 std::panicking::try<i32,&Fn<()>> () at library/std/src/panicking.rs:365
#12 std::panic::catch_unwind<&Fn<()>,i32> () at library/std/src/panic.rs:434
#13 std::rt::lang_start_internal () at library/std/src/rt.rs:34
#14 0x00007ffff7d07a22 in main ()

@crackfan Thanks for filling this issue here. Filling out the issue template is required, otherwise we miss important information. Please add the the necessary information, otherwise this issue will likely be closed as cannot reproduce.

@crackfan I've another short look at this. It seems like this is triggered by this function, which only calls a libmysqlclient function internally. This indicates that the issue is likely not in diesel itself, but in your version of libmysqlient. Please provide further information which exact version of libmysqlclient you use, otherwise there is really not much left to do here. If that information is not added I will likely close this issue next week as cannot reproduce.


changed image limit from 400 to 1000

Hello @eschallock,Thank you for the PR! We will be reviewing this PR soon, in the mean                                              time, please be sure to                                                                                sign our CLA so that we can merge your changes. Thanks again!                                             Team DX


Past Estimates are a bit inconsistent.

Sometimes we have all users estimates showing in Past Estimates, sometimes just the current users. It's inconsistent.

Resolved with the recent bugfix where we fetch all past estimates when the room changes.


minor: Including 'in' as a valid operator

This is already addressed in #518, closing a duplicate.