Building grpc for csharp c# fails with "ResponseNotReady"

What version of gRPC and what language are you using?
1.11.0 c#
What operating system (Linux, Windows, …) and version?
Arch Linux
What runtime / compiler are you using (e.g. python version or version of gcc)
Python 2.7.14
What did you do?
I try to compile the c# nuget package as requested here: https://github.com/grpc/grpc/issues/8636#issuecomment-382278725 with this tutorial:
https://github.com/grpc/grpc/blob/master/src/csharp/README.md
I already fixed some of the compile errors, which I uploaded here as fix:
https://github.com/grpc/grpc/pull/15099
What did you expect to see?
The code compile.
What did you see instead?
[nico@archlinuxpc grpc]$ python2 tools/run_tests/run_tests.py -c dbg -l csharp --build_only
Unexpected error getting flaky tests: Traceback (most recent call last):
  File "tools/run_tests/run_tests.py", line 1434, in <module>
    for test in get_bqtest_data():
  File "tools/run_tests/run_tests.py", line 74, in get_bqtest_data
    bq = big_query_utils.create_big_query()
  File "/home/user/git/grpc/tools/gcp/utils/big_query_utils.py", line 33, in create_big_query
    creds = GoogleCredentials.get_application_default()
  File "/usr/lib/python2.7/site-packages/oauth2client/client.py", line 1271, in get_application_default
    return GoogleCredentials._get_implicit_credentials()
  File "/usr/lib/python2.7/site-packages/oauth2client/client.py", line 1256, in _get_implicit_credentials
    credentials = checker()
  File "/usr/lib/python2.7/site-packages/oauth2client/client.py", line 1187, in _implicit_credentials_from_gce
    if not _in_gce_environment():
  File "/usr/lib/python2.7/site-packages/oauth2client/client.py", line 1042, in _in_gce_environment
    if NO_GCE_CHECK != 'True' and _detect_gce_environment():
  File "/usr/lib/python2.7/site-packages/oauth2client/client.py", line 999, in _detect_gce_environment
    http, _GCE_METADATA_URI, headers=_GCE_HEADERS)
  File "/usr/lib/python2.7/site-packages/oauth2client/transport.py", line 282, in request
    connection_type=connection_type)
  File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1693, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1433, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/lib/python2.7/site-packages/httplib2/__init__.py", line 1389, in _conn_request
    response = conn.getresponse()
  File "/usr/lib/python2.7/httplib.py", line 1108, in getresponse
    raise ResponseNotReady()
ResponseNotReady

WAITING: 2 queued, 1 jobs running, 0 complete, 0 failed (load 1.00) next: make @
++ dirname tools/run_tests/helper_scripts/pre_build_csharp.sh
+ cd tools/run_tests/helper_scripts/../../../src/csharp
+ dotnet restore Grpc.sln
tools/run_tests/helper_scripts/pre_build_csharp.sh: line 21: dotnet: command not found
FLAKE: tools/run_tests/helper_scripts/pre_build_csharp.sh [ret=127, pid=1129]
WAITING: 2 queued, 1 jobs running, 0 complete, 0 failed (load 1.00) next: make @
++ dirname tools/run_tests/helper_scripts/pre_build_csharp.sh
+ cd tools/run_tests/helper_scripts/../../../src/csharp
+ dotnet restore Grpc.sln
tools/run_tests/helper_scripts/pre_build_csharp.sh: line 21: dotnet: command not found
FLAKE: tools/run_tests/helper_scripts/pre_build_csharp.sh [ret=127, pid=1132]
WAITING: 2 queued, 1 jobs running, 0 complete, 0 failed (load 1.00) next: make @
++ dirname tools/run_tests/helper_scripts/pre_build_csharp.sh
+ cd tools/run_tests/helper_scripts/../../../src/csharp
+ dotnet restore Grpc.sln
tools/run_tests/helper_scripts/pre_build_csharp.sh: line 21: dotnet: command not found
FAILED: tools/run_tests/helper_scripts/pre_build_csharp.sh [ret=127, pid=1135, time=0.0sec]
FAILED: Some tests failed

Anything else we should know about your project / environment?
Its a fresh install, dependencies might be missing. I could not find any list of dependencies, please give me suggestions on how to fix it.

Can you try running run_tests.py with an extra --disable_auto_set_flakes flag? According to the log, things are failing with Unexpected error getting flaky tests

This error is not gone. However I ran into several other issues. I also hat to install the dotnetsdk, initialize the submodules (otherwise I get a dependency cycle error for zlib) and disable the "First time experience", as my fallback nuget folder is write protected (in /opt).
I have updated my PR with the instructions so far, now I am stuck at the following error which I am unable to resolve:
[nico@archlinuxpc grpc]$ DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 python2 tools/run_tests/run_tests.py -c dbg -l csharp --build_only --disable_auto_set_flakes

++ dirname tools/run_tests/helper_scripts/build_csharp.sh
+ cd tools/run_tests/helper_scripts/../../../src/csharp
+ '[' dbg == gcov ']'
+ dotnet build --configuration Debug Grpc.sln
Microsoft (R) Build Engine version <IP_ADDRESS>579 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 34.43 ms for /home/user/git/grpc/src/csharp/Grpc.Auth/Grpc.Auth.csproj.
  Restore completed in 34.43 ms for /home/user/git/grpc/src/csharp/Grpc.Core.Testing/Grpc.Core.Testing.csproj.
  Restore completed in 1.31 ms for /home/user/git/grpc/src/csharp/Grpc.Examples.MathServer/Grpc.Examples.MathServer.csproj.
  Restore completed in 0.99 ms for /home/user/git/grpc/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj.
  Restore completed in 0.51 ms for /home/user/git/grpc/src/csharp/Grpc.Core/Grpc.Core.csproj.
  Restore completed in 0.69 ms for /home/user/git/grpc/src/csharp/Grpc.Examples/Grpc.Examples.csproj.
  Restore completed in 0.68 ms for /home/user/git/grpc/src/csharp/Grpc.HealthCheck/Grpc.HealthCheck.csproj.
  Restore completed in 0.83 ms for /home/user/git/grpc/src/csharp/Grpc.HealthCheck.Tests/Grpc.HealthCheck.Tests.csproj.
  Restore completed in 1.33 ms for /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj.
  Restore completed in 1.05 ms for /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.QpsWorker/Grpc.IntegrationTesting.QpsWorker.csproj.
  Restore completed in 1.04 ms for /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj.
  Restore completed in 1.18 ms for /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.StressClient/Grpc.IntegrationTesting.StressClient.csproj.
  Restore completed in 5.55 ms for /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj.
  Restore completed in 0.79 ms for /home/user/git/grpc/src/csharp/Grpc.Microbenchmarks/Grpc.Microbenchmarks.csproj.
  Restore completed in 0.68 ms for /home/user/git/grpc/src/csharp/Grpc.Reflection/Grpc.Reflection.csproj.
  Restore completed in 0.82 ms for /home/user/git/grpc/src/csharp/Grpc.Reflection.Tests/Grpc.Reflection.Tests.csproj.
  Restore completed in 0.94 ms for /home/user/git/grpc/src/csharp/Grpc.Examples.MathClient/Grpc.Examples.MathClient.csproj.
  Restore completed in 0.87 ms for /home/user/git/grpc/src/csharp/Grpc.Examples.Tests/Grpc.Examples.Tests.csproj.
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Auth/Grpc.Auth.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Core/Grpc.Core.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Core.Testing/Grpc.Core.Testing.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples/Grpc.Examples.csproj]
  Grpc.Core -> /home/user/git/grpc/src/csharp/Grpc.Core/bin/Debug/netstandard1.5/Grpc.Core.dll
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples.Tests/Grpc.Examples.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples.MathClient/Grpc.Examples.MathClient.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples.MathServer/Grpc.Examples.MathServer.csproj]
  Grpc.Examples -> /home/user/git/grpc/src/csharp/Grpc.Examples/bin/Debug/netcoreapp1.0/Grpc.Examples.dll
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.HealthCheck/Grpc.HealthCheck.csproj]
  Grpc.Core.Testing -> /home/user/git/grpc/src/csharp/Grpc.Core.Testing/bin/Debug/netstandard1.5/Grpc.Core.Testing.dll
  Grpc.HealthCheck -> /home/user/git/grpc/src/csharp/Grpc.HealthCheck/bin/Debug/netstandard1.5/Grpc.HealthCheck.dll
  Grpc.Auth -> /home/user/git/grpc/src/csharp/Grpc.Auth/bin/Debug/netstandard1.5/Grpc.Auth.dll
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.HealthCheck.Tests/Grpc.HealthCheck.Tests.csproj]
  Grpc.Core.Tests -> /home/user/git/grpc/src/csharp/Grpc.Core.Tests/bin/Debug/netcoreapp1.0/Grpc.Core.Tests.dll
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj]
  Grpc.Examples.MathServer -> /home/user/git/grpc/src/csharp/Grpc.Examples.MathServer/bin/Debug/netcoreapp1.0/Grpc.Examples.MathServer.dll
  Grpc.Examples.Tests -> /home/user/git/grpc/src/csharp/Grpc.Examples.Tests/bin/Debug/netcoreapp1.0/Grpc.Examples.Tests.dll
  Grpc.Examples.MathClient -> /home/user/git/grpc/src/csharp/Grpc.Examples.MathClient/bin/Debug/netcoreapp1.0/Grpc.Examples.MathClient.dll
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.QpsWorker/Grpc.IntegrationTesting.QpsWorker.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.StressClient/Grpc.IntegrationTesting.StressClient.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Reflection/Grpc.Reflection.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Reflection.Tests/Grpc.Reflection.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Microbenchmarks/Grpc.Microbenchmarks.csproj]
  Grpc.IntegrationTesting -> /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting/bin/Debug/netcoreapp1.0/Grpc.IntegrationTesting.dll
  Grpc.Reflection -> /home/user/git/grpc/src/csharp/Grpc.Reflection/bin/Debug/netstandard1.5/Grpc.Reflection.dll
  Grpc.IntegrationTesting.Client -> /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Client/bin/Debug/netcoreapp1.0/Grpc.IntegrationTesting.Client.dll
  Grpc.IntegrationTesting.StressClient -> /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.StressClient/bin/Debug/netcoreapp1.0/Grpc.IntegrationTesting.StressClient.dll
  Grpc.IntegrationTesting.QpsWorker -> /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.QpsWorker/bin/Debug/netcoreapp1.0/Grpc.IntegrationTesting.QpsWorker.dll
  Grpc.IntegrationTesting.Server -> /home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Server/bin/Debug/netcoreapp1.0/Grpc.IntegrationTesting.Server.dll
  Grpc.Microbenchmarks -> /home/user/git/grpc/src/csharp/Grpc.Microbenchmarks/bin/Debug/netcoreapp1.0/Grpc.Microbenchmarks.dll
  Grpc.HealthCheck.Tests -> /home/user/git/grpc/src/csharp/Grpc.HealthCheck.Tests/bin/Debug/netcoreapp1.0/Grpc.HealthCheck.Tests.dll
  Grpc.Reflection.Tests -> /home/user/git/grpc/src/csharp/Grpc.Reflection.Tests/bin/Debug/netcoreapp1.0/Grpc.Reflection.Tests.dll

Build FAILED.

/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Auth/Grpc.Auth.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Core/Grpc.Core.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Core.Testing/Grpc.Core.Testing.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples/Grpc.Examples.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples.Tests/Grpc.Examples.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples.MathClient/Grpc.Examples.MathClient.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Examples.MathServer/Grpc.Examples.MathServer.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.HealthCheck/Grpc.HealthCheck.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.HealthCheck.Tests/Grpc.HealthCheck.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.QpsWorker/Grpc.IntegrationTesting.QpsWorker.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.IntegrationTesting.StressClient/Grpc.IntegrationTesting.StressClient.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Reflection/Grpc.Reflection.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Reflection.Tests/Grpc.Reflection.Tests.csproj]
/opt/dotnet/sdk/2.1.103/Microsoft.Common.CurrentVersion.targets(1126,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/home/user/git/grpc/src/csharp/Grpc.Microbenchmarks/Grpc.Microbenchmarks.csproj]
    0 Warning(s)
    18 Error(s)

Time Elapsed 00:00:13.41
FAILED: tools/run_tests/helper_scripts/build_csharp.sh [ret=1, pid=14088, time=13.7sec]
FAILED: Some tests failed

I'm sorry you're having trouble with building. I'm updating the build instructions in https://github.com/grpc/grpc/pull/15178.
About the other failures

we should probably disable the auto_set_flakes  feature in run_tests.py by default.  I might do that in a separate PR.
the "Reference assemblies not found" problem is actually  https://github.com/dotnet/sdk/issues/335 and it's a problem with dotnet SDK itself, not really a gRPC specific issue. We did our best to work around the problem here https://github.com/grpc/grpc/blob/246071a4e22d3d2ea19dad8714b19ef2dae5464a/src/csharp/Grpc.Core/Common.csproj.include#L23, but that workaround might not work for Arch Linux (I suspect you can fix it by providing the right FrameworkPathOverride value for your system)
the problem with "First time experience" of dotnet SDK breaking your build seems to be a problem with dotnet SDK installation for Arch Linux being broken. I don't think it's reasonable to make our build instructions more convoluted to workaround a non-grpc specific problem on a single linux distribution.

I hope with modifying the workaround for https://github.com/dotnet/sdk/issues/335 you should be able to build successfully.

The problem was that I did not install mono. I am not sure why the .net framework/mono is required here, but now grpc builds. I expected it would just build with .net core.
Could you please give me a quick guidiance on how to use the final build in my (windows) c# solution for testing the uwp bug? Which files do I have to use?

@AtosNicoS  you basically need to take Grpc.Core.dll (the C# assembly)  you just built after changing the C# core as instructed in https://github.com/grpc/grpc/issues/8636#issuecomment-382278725 and replacing the Grpc.Core.dll in the .nupkg file (the nupkg file is just a zipfile, so this should be doable) and then use the nupkg file for testing.  There might be other ways but I'll leave that up to you.


⚠ SceneTime has degraded performance

In 90a896e, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 2773 ms

Resolved: SceneTime performance has improved in 95fcab3 after 9 minutes.


fix: datepicker, add scrollIntoViewIfMobile

References CAR-7055
Listings PR: https://github.com/carforyou/carforyou-listings-web/pull/3088
Context
As a user in my phone on carforyou.ch, when taping on 'select date' in the lead form for a test drive, I want to be able to see the date picker without my display keyboard blocking it, so that I can choose the date for my test drive.

nice solution! run it by QA?

Yes, here -> https://github.com/carforyou/carforyou-listings-web/pull/3088


BUG: Enemies automatically open fire on CamSpy and variants in Co-op

In Co-op mode, whenever I deploy a CamSpy, DrugSpy or BombSpy, rather than running towards it and looking at it for a few seconds, enemies will instantly open fire on it and destroy it. This glitch was present in the original N64 version and the XBLA remaster.

Was this  a glitch? I thought it was on purpose.

Was this a glitch? I thought it was on purpose.

Not like this. See, in single-player campaign, if you deploy the CamSpy - or any other Spy - for that matter, if enemies see it, they will run up to it and observe it curiously for a moment before deducing that it's a threat and shooting at it. The glitch is that in Co-op mode, if you deploy the CamSpy or whatever, if enemies see it, they will instantly shoot it on sight without asking questions.


Syncing reliability and expectations

Over at https://lab.etherion.app/experiment4 I've adapted your "many-chat-rooms" P2P chat app to my framework. Apart from changes to JSX sections and fixes to various TypeScript errors, the code is as close to the example as I could get.
All the files are located at https://github.com/Azaeres/etherion-lab/tree/main/src/components/scenes/Experiment4
After poking at it for some time, I noticed there are times where the database isn't consistent. For example, occasionally a room will be missing from the list. Messages are much more inconsistent; sometimes some will populate the room, many times none will.
I haven't really gotten a bead on what's causing the inconsistency, how to interpret what I'm seeing, or what kind of reliability to expect. How can we tell if these issues arise from poor network conditions as opposed to buggy code?
Also, is there some kind of persistence layer being used by default? Sometimes data will come through that I had figured shouldn't still be around.
As I'm trying to build a physics-based space shooter game using Peerbit to sync players together, there will be a need for fast, semi-reliable updates. How good is Peerbit at providing this under a range of conditions?
Basically, I've got some gaps in my understanding, and I'm not sure how to fill them, so I thought I'd ask for some help. Any advice?

Hey!
I am trying to see first if this issues are only in your repo only or are also present in the peerbit examples project. But starting from your repo. Here are two things I  did
I added replicas  { min: 0xffffffff } (or some large value) basically disabling sharding for both .open calls inside the open hooks. Currently min replicas is set to 2 by default this means if you close two tabs at once you will loose messages if you are unlucky.
When you are testing and is using a private window you should not open the stores are replicator, but as observer (this is not part of peerbit-examples yet) but it is not overly complicated to implement this rule. Private windows can not hold state effectively (which could be a reason why you get inconistent results)
import { field, variant } from '@dao-xyz/borsh'
import { Program } from '@peerbit/program'
import { Documents, PutOperation, DeleteOperation, Role } from '@peerbit/document'
import { v4 as uuid } from 'uuid'
import { PublicSignKey, sha256Sync } from '@peerbit/crypto'
import { randomBytes } from '@peerbit/crypto'
import { SyncFilter } from '@peerbit/shared-log'
import { concat } from 'uint8arrays'

@variant(0) // for versioning purposes, we can do @variant(1) when we create a new post type version
export class Post {
  @field({ type: 'string' })
  id: string

  @field({ type: PublicSignKey })
  from: PublicSignKey

  @field({ type: 'string' })
  message: string

  constructor(properties: { from: PublicSignKey; message: string }) {
    this.id = uuid()
    this.from = properties.from
    this.message = properties.message
  }
}
type Args = { role?: Role; sync?: SyncFilter }

@variant('room')
export class RoomDB extends Program<Args> {
  @field({ type: 'string' })
  name: string

  @field({ type: Documents })
  messages: Documents<Post>

  constructor(properties: { name: string; messages?: Documents<Post> }) {
    super()
    this.name = properties.name
    this.messages =
      properties.messages ||
      new Documents({
        id: sha256Sync(
          concat([new TextEncoder().encode('room'), new TextEncoder().encode(this.name)])
        ),
      })
  }

  get id() {
    return this.name
  }

  // Setup lifecycle, will be invoked on 'open'
  async open(args?: Args): Promise<void> {
    await this.messages.open({
      type: Post,
      canPerform: async (operation, context) => {
        if (operation instanceof PutOperation) {
          const post = operation.value
          if (!context.entry.signatures.find((x) => x.publicKey.equals(post!.from))) {
            return false
          }
          return true
        } else if (operation instanceof DeleteOperation) {
          const get = await this.messages.index.get(operation.key)
          if (!get || !context.entry.signatures.find((x) => x.publicKey.equals(get.from))) {
            return false
          }
          return true
        }
        return false
      },
      replicas: {
        min: 0xffffffff, // max u32 (make everyone a replicator, disable sharding)
      },
      index: {
        canRead: async () => {
          // identity) => {
          return true // Anyone can query
        },
      },
      role: args?.role,
      sync: args?.sync,
    })
  }
}

@variant('lobby')
export class LobbyDB extends Program<Args> {
  @field({ type: Uint8Array })
  id: Uint8Array

  @field({ type: Documents })
  rooms: Documents<RoomDB>

  constructor(properties: { id?: Uint8Array }) {
    super()
    this.id = properties.id || randomBytes(32)
    this.rooms = new Documents<RoomDB>({ id: this.id })
  }

  // Setup lifecycle, will be invoked on 'open'
  async open(args?: Args): Promise<void> {
    await this.rooms.open({
      type: RoomDB,

      canPerform: () => {
        //entry) => {
        return Promise.resolve(true) // Anyone can create rooms
      },

      replicas: {
        min: 0xffffffff, // max u32 (make everyone a replicator, disable sharding)
      },
      index: {
        key: 'name',

        canRead: () => {
          // post, publicKey) => {
          return Promise.resolve(true) // Anyone can search for rooms
        },
      },
      canOpen: () => {
        // program) => {
        // Control whether someone can create a "room", which itself is a program with replication
        // Even if anyone could do "rooms.put(new Room())", that new entry has to be analyzed. And if it turns out that new entry represents a program
        // this means it should be handled in a special way (replication etc). This extra functionality needs requires peers to consider this additional security
        // boundary
        return Promise.resolve(true)
      },
      role: args?.role,
      sync: args?.sync,
    })
  }
}

As I'm trying to build a physics-based space shooter game using Peerbit to sync players together, there will be a need for fast, semi-reliable updates. How good is Peerbit at providing this under a range of conditions?

This should just work setting { replicas : { min: 10000 }  } would make all changes, like movement of ships and actions to propagate to all peers. And then all peers should open the document store as a replicator and use the documents.events.addEventlistener('change', () => { to render changes })

you can put anti cheating inside canPerform hook 😆

Alright, using your recommendation of setting min replicas to a high value has gotten me to a point where I tend to get what I expect, I think. :+1:
Can you explain why the lobby seems to always have the complete set of rooms, and yet there are often no messages in a room when the user enters? They don't appear different at the level of the database classes. What am I missing? And at other times there are messages populating a room when the user enters. What explains this inconsistency?
Also, I was considering, as an exercise, to add a human-readable datetime-stamp to each message. I might need to add a field to the Post class, but syncing them across peers is not so trivial. A datetime on one device may be incorrect on another, for several reasons. What's the best way to think about this, and how might I go about displaying a timestamp on each message for each peer?

Can you explain why the lobby seems to always have the complete set of rooms, and yet there are often no messages in a room when the user enters? They don't appear different at the level of the database classes. What am I missing? And at other times there are messages populating a room when the user enters. What explains this inconsistency?

They are part of different databases and have different databases/programs. See the code I in my last message. We have
RoomDB extends Program
and
LobbyDB extends Program
though LobbyDB has this line
  @field({ type: Documents })  rooms: Documents<RoomDB>
this does not necessarely mean that if you have documents/subdatabases inside this store, you are actually opening and replicating them.
`
Everyone who joins the lobby will replicate all rooms. This does not necessarely mean everone will open every single room they see.
It is only when you go into a room you actually start to replicates messages you see there.
For example in the Room React component (which is only running when you are inside a room). It is only at this point you are actually opening the Room and start to replicate its messages
https://github.com/dao-xyz/peerbit-examples/blob/1256ffbc0d407e1a2904f3ddebc5078bbe580649/packages/many-chat-rooms/frontend/src/Room.tsx#L101

Though in the example above there is a line
 canOpen: () => {
        // program) => {
        // Control whether someone can create a "room", which itself is a program with replication
        // Even if anyone could do "rooms.put(new Room())", that new entry has to be analyzed. And if it turns out that new entry represents a program
        // this means it should be handled in a special way (replication etc). This extra functionality needs requires peers to consider this additional security
        // boundary
        return Promise.resolve(true)
      },

This line basically say, if I receive/sync/create a RoomDB in my Documents< RoomDB> db I will open it automatically if I am a replicator and replicate content inside there (recursive db replication).
My rough guess from this is that the rooms prior where created when min replicas was set to 2 instead of a large value, meaning data got lost. Or did you observe this unexpected behaviour after doing the updates for the min replicas settings for both LobbyDB and RoomDB?

Yeah, these rooms I've been testing in were created when min replicas was set to 2.

Also, I was considering, as an exercise, to add a human-readable datetime-stamp to each message. I might need to add a field to the Post class, but syncing them across peers is not so trivial. A datetime on one device may be incorrect on another, for several reasons. What's the best way to think about this, and how might I go about displaying a timestamp on each message for each peer?

You can actually just do a index "tranformation" that indexes documents with their timestamps so you can visualize them when you search for them with timestamps. Search for (ctrl + f) for timestamp inside https://peerbit.org/#/modules/program/document-store/
and you will get some examples how you can index timestamps based on the document commit timestamps, and then use them in various ways when you are aggregating documents.
if you want to resolve the timestamp for a particular document, you can figure out what the head commit is and use its timestamp
I see it is not documented now but you can use
const timestampOfPostX = (await posts.documents.index.getDetailed(The id of the document)).[0].results[0].context.modified

You can also make a specific field for a timestamp. But since the commits are already timestamped it is kind of nice to use them since you also get the "modified" timestamp that will bump on every change. Even though the API to retreive them could be simplified. I could add an alias functions in the future so you can do something like
const modifiedAt = await posts.documents.getLastModified(The id of the document)
const createdAt = await posts.documents.getCreated(The id of the document)

A datetime on one device may be incorrect on another, for several reasons

This is a hard problem. I did some exploration regarding a Network Time service that uses Peerbit RPC class to talk to a centralized service that signs documents if their timestamps are set correctly. You could in theory also have some kind of service where the posts to be put are sent away and timestamped and signed  by centralized  party
See https://github.com/dao-xyz/peerbit/tree/master/packages/programs/clock-service for more info.  But I would not focus on this issue too much at this moment because the rabbit hole is very deep here

The peer count in the many-chat-room example... Is that the number of peers that opened the top-level Lobby database, or something else?
Are we able to get a count of peers who opened a given RoomDB?

There is actually a Pee counter in the Room React component but it is not visualised yet (?).
Inside the Room React component you can see
https://github.com/dao-xyz/peerbit-examples/blob/1256ffbc0d407e1a2904f3ddebc5078bbe580649/packages/many-chat-rooms/frontend/src/Room.tsx#L101
open RoomDB (the actual room)
then later
  r.events.addEventListener("join", (e) => {
      r.getReady().then((set) => setPeerCounter(set.size + 1));
  });

  r.events.addEventListener("leave", (e) => {
      r.getReady().then((set) => setPeerCounter(set.size + 1));
  });

(where r is the open room)
These events will only trigger for this specific db.
For the lobby there is also the same kind of code to trigger redraws and update peer counters on changes. Basically tracks everyone who are in the lobby
https://github.com/dao-xyz/peerbit-examples/blob/1256ffbc0d407e1a2904f3ddebc5078bbe580649/packages/many-chat-rooms/frontend/src/Lobby.tsx#L77
If you dont want to work with with the events you can also resolve the current amount of subscribers/online peers for a specific db by calling
roomInstance.getReady()

though I would not recommend this approach since it will poll data. The event based approach will trigger at the immediate moment when you learn about new peers

Acutally the example code provided above is not that good. What you should be able to do is just

counter = 1 //  (me)

 r.events.addEventListener("join", (e) => {
     counter ++; // 1 peer joined
  });

  r.events.addEventListener("leave", (e) => {
     counter--; // 1 peer left
  });

I'm still having trouble getting the peer count to meet my expectations. For example, let's say I have 3 peers connected, and quite often it says "1", and sometimes it says "3".
To make it easier to reason about, I've isolated the peer count logic into a custom hook here: https://github.com/Azaeres/etherion-lab/blob/main/src/components/scenes/Experiment4/hooks/usePeerList.ts#L6
import { usePeer } from '@peerbit/react'
import { PublicSignKey } from '@peerbit/crypto'
import { useCallback, useEffect, useState } from 'react'
import { Program } from '@peerbit/program'

export default function usePeerList(database?: Program) {
  const { peer, loading: loadingPeer } = usePeer()
  const [peers, setPeers] = useState<Record<string, PublicSignKey>>({})

  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  const join = useCallback((event: any) => {
    const { detail } = event
    console.log('database rcvd join event  > event:', event)
    setPeers((oldValue) => {
      return {
        ...oldValue,
        [detail.hashcode()]: detail,
      }
    })
  }, [])

  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  const leave = useCallback((event: any) => {
    const { detail } = event
    console.log('database rcvd leave event  > event:', event)
    setPeers((oldValue) => {
      const copy = { ...oldValue }
      delete copy[detail.hashcode()]
      return copy
    })
  }, [])

  useEffect(() => {
    database?.events.addEventListener('join', join)
    database?.events.addEventListener('leave', leave)
    return () => {
      database?.events.removeEventListener('join', join)
      database?.events.removeEventListener('leave', leave)
    }
  }, [database?.events, join, leave])

  useEffect(() => {
    if (!loadingPeer) {
      const publicKey = peer?.identity.publicKey
      const defaultPeers = publicKey
        ? {
            [publicKey.hashcode()]: peer?.identity.publicKey,
          }
        : {}
      setPeers(defaultPeers)
    }
  }, [peer, loadingPeer])

  return {
    peerCount: getPeerCount(peers),
    peerList: peers,
  }
}

function getPeerCount(peers: Record<string, unknown>) {
  return Object.keys(peers).length
}

It looks like I'm just often not receiving "join" events. Why is that? What am I doing wrong?
To see a live demo of the problem, visit: https://lab.etherion.app/experiment4?c=2463303d-349f-4ae5-9791-615c95a4ed65
Peer counts should be the same across all peers connected to the room, but I'm seeing wildly different values.

Thinks for giving my something easy to work from. Will look into this tonight or tomorrow!

@Azaeres Hello! I am not beeing able to reproduce the issue you are having the demo works well for me.. Do you have a specific flow that with high probability yields wrong behaviour?
Related: I am currently also working on rebuilding the pubsub protocol and the "get online peers" might turn into a more "poll" based approach that will work better than the push approach that is currently in place. https://github.com/dao-xyz/peerbit/issues/212

Let's run through a step-by-step:

Visit https://lab.etherion.app/experiment4 in one tab.
Visit https://lab.etherion.app/experiment4 in another tab.

For me right now, I'm seeing this:

So far so good.

Continuing, let's click a room in one tab.

I'm not exactly sure what to expect here, but at first I had guessed the "peers in lobby" count in the right instance was going to drop by one. It didn't. Maybe the LobbyDB has to be explicitly closed when the view is unmounted in order to see it drop in this case? Anyway, I suppose that's not necessary.

Onwards! We'll click the same room in the other tab.

This is where I expect the "peers in room" count to be 2 for both instances. It's 1 for all.

Maybe they're not connected? Let's test that. I'll post a message with the left instance.

Well, no, they're definitely connected! Message successfully received by the right instance. (That's super cool, btw. Looking forward to stress testing it.)

Just to see what happens, I'll have the left instance navigate to the lobby (using the blue left arrow button), then re-enter the same room.

"Peers in room" is still 1 for both instances. But I had expected the "test message" to still load in the left instance. I figured it'd locally pull it out of cache (like the list of rooms in the lobby view), or at least replicate it from the right instance. Is this expectation incorrect?

Now let's hit the browser's refresh button on the left instance.

Interesting! The "peers in room" value is now the expected 2. But the right instance still shows the unexpected 1.

I'll have the left instance post another test message.

Another successfully sent message!

Let's try having the left instance leave and re-enter again (same as step 6 above).

Back to the unexpected 1 on both instances. And the messages were dropped again in the left instance.

Refresh again (same as step 7 above).

So when I refresh the page, I'm getting the required "join" event... but NOT when I navigate to the room. I'd expect to get exactly one "join" event for every peer except for self, whether I refresh the page or navigate to it.
At this point, I think either my expectations aren't correct, or my usePeerList() hook needs fixing.

I'm wondering if the "join" events are firing when I don't (yet) have an event listener attached. Is there at present a way to get (poll) the current count of peers? Then I could use that as the initial value, and the events that roll in from there will keep the value up-to-date.

I am answering this in parts:

I'm not exactly sure what to expect here, but at first I had guessed the "peers in lobby" count in the right instance was going to drop by one. It didn't. Maybe the LobbyDB has to be explicitly closed when the view is unmounted in order to see it drop in this case? Anyway, I suppose that's not necessary.

This is true. The DB is open by the peer client which is resolved from
const  { peer } = usePeer()

means that all dbs that are loaded will live through navigations. So now I guess there is a "bug" because if you go in an out of many rooms it will look like you are inside many rooms from the db perspective, but the view is only showing one.

"Peers in room" is still 1 for both instances. But I had expected the "test message" to still load in the left instance. I figured it'd locally pull it out of cache (like the list of rooms in the lobby view), or at least replicate it from the right instance. Is this expectation incorrect?

Yes this is funky behaviour. The messages should definitely load. What I realise now is that if I open the URL to a room in a completely fresh environment (like another browser) the messages loads. There could be some kind of bug going on that if you expect to have data locally it fails to resolve. But it is kind of wierd since there is a bunch of testing around this.

Doing something like this
  r.events.addEventListener("join", (e) => {
      r.getReady().then((set) => setPeerCounter(set.size + 1));
   });

r.events.addEventListener("leave", (e) => {
           r.getReady().then((set) => setPeerCounter(set.size + 1));
  });

r.getReady().then((set) => setPeerCounter(set.size + 1));          // this line

might fix the peer counter even if we missed events

This lines of code might fix that events where missed because the event listener was registered too late
room.current = r;
const sortPosts = async () => {
    let wallTimes = new Map<string, bigint>();
    await Promise.all(
        posts.current.map(async (x) => {
            return {
                post: x,
                entry: await room.current.messages.log.log.get(
                    room.current.messages.index.index.get(x.id)
                        .context.head
                ),
            };
        })
    ).then((entries) => {
        entries.forEach(({ post, entry }) => {
            wallTimes.set(
                post.id,
                entry.meta.clock.timestamp.wallTime
            );
        });
    });
    posts.current.sort((a, b) =>
        Number(wallTimes.get(a.id) - wallTimes.get(b.id))
    );

}

r.messages.events.addEventListener("change", async (e) => {
    e.detail.added?.forEach((p) => {
        const ix = posts.current.findIndex(
            (x) => x.id === p.id
        );
        if (ix === -1) {
            posts.current.push(p);
        } else {
            posts.current[ix] = p;
        }
    });
    e.detail.removed?.forEach((p) => {
        const ix = posts.current.findIndex(
            (x) => x.id === p.id
        );
        if (ix !== -1) {
            posts.current.splice(ix, 1);
        }
    });

    // Sort by time
    sortPosts()
    forceUpdate();
});

// Handle missed events by manually retrieving all posts and setting current posts to the ones we find
posts.current = await r.messages.index.search(new SearchRequest());
sortPosts()
forceUpdate()

(inside open)

I remember you saying that there's no peer.close(), but that the database stays open in the background? What's the recommended way to clean up, especially if the user enters many rooms over time?

Way #1 is how I imagined it. That'd be nice to have.
I found a DocumentStore put method, and a delete method. What's the recommended way to update an existing document?

Regarding updates to a DocumentStore, this looks relevant: https://peerbit.org/#/modules/program/document-store/?id=converting-existing-documents
Is deleting the old document and inserting a modified version of the old document the recommended way to make small changes to an existing document? Are individual documents immutable?
For the design I have in mind, I'll need to put document updates on a firehose blast, so it will greatly benefit from the most efficient approach.

The first way is how I imagined it. That'd be nice to have.
I found a DocumentStore put method, and a delete method. What's the recommended way to update an existing document?

I created this issue in the mean time to track this: https://github.com/dao-xyz/peerbit-examples/issues/8

Is deleting the old document and inserting a modified version of the old document the recommended way to make small changes to an existing document? Are individual documents immutable?

This section is mainly for migrating from one kind of schema to another (adding or removing fields). If you just want to update the value of an existing field, the way you can do it atm is through putting the same document with the same id if you want to track changes for a particular thing, like the movement of a spaceship. Or with unique ids for distinct things, like blasts etc.
In more detail:
For blasts you would insert a new document with a new id for every blast. And all players would subscribe to this db to see if any new blast has occured. This should just work (!)
If you are tracking the spaceship with a "location" document  { id: string,  x: number, y: number }. Then for every movement, there would be a new document inserted with the same id as the last location document for a particular ship, so that whenever you want to get the latest location you can just do "documents.index.get(id)" to fetch the latest one.
When you insert a document with the same id, the changes will be linked to each other (in a log). If you want to remove all history you can do the following
import { EntryType } from '@peerbit/log'
movement.put(newLocation ,{meta: {type: EntryType.CUT}});

this will basically cut the history log at this new insertion. And it would behave like a delete + put operation.

There is no way currently for doing partial updates on a document. But it will it is on the agenda to implement that. But I don't think you will benifit from that greatly, since the documents you will be putting should be very small in memory

The performance from using the document store will be good enough from a performance and latency perspective given that I have used the document store before for doing video streaming which is much more data intensive and requires many transactions to be broadcasted per second at a very low latency

Hello @Azaeres !
There has been a lot of work improving the Syncing and reliability of Peerbit.
The persistent solution is now using OPFS (when available) instead of IndexeDB which is much more reliable.
The networking has been improved with fault tolerance now, and more robust discovery and support for direct connections!
Also there is @peerbit/react hook now that allows you to open programs easily. See this chat example https://github.com/dao-xyz/peerbit-examples/blob/68a310998370d1b33b1cc045992d322eb65ab39f/packages/one-chat-room/frontend/src/Room.tsx#L77
I was thinking about the space shooter you were working on. (Your latest experiment https://github.com/Azaeres/etherion-lab/tree/main/src/components/scenes/Experiment5). It would be really cool to make it work out. I was thinking about a space shooter version of the "eat and get larger" type of games, where you shoot other spacecrafts, and by collecting their debris you eventually upgrade new weapon systems and get more poverful, but at a cost of you getting slower and less manoeuvrable. Together with this, adding audio/voice so you can get Star Trek like "hailing" features
I would gladly help you out with programming the networking stuff, and the actual game development if I can be of any help, so we can play against each other as soon as possible. I am also curious and want to see how many players this kind of system can have before one run into some limits.


[CT-1148] [Bug] Follow-up to metrics field renaming

Is this a new bug in dbt-core?

[X] I believe this is a new bug in dbt-core
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
The field renaming in https://github.com/dbt-labs/dbt-core/pull/5775 means that a user upgrading from v1.2 → v1.3 will see a parsing error immediately after upgrading, if they have metrics already defined in their project:
$ dbt parse
dbt.exceptions.ParsingException: Parsing Error
  Invalid metrics config given in FilePath(searched_path='models', relative_path='metric.yml', modification_time=1662969785.677178, project_root='/Users/jerco/dev/scratch/testy') @ metrics: {'name': 'new_customers', 'label': 'New Customers', 'model': "ref('dim_customers')", 'description': 'The number of paid customers using the product', 'type': 'count', 'sql': 'user_id', 'timestamp': 'signup_date', 'time_grains': ['day', 'week', 'month'], 'dimensions': ['plan', 'country'], 'filters': [{'field': 'is_paying', 'operator': 'is', 'value': 'true'}, {'field': 'lifetime_value', 'operator': '>=', 'value': '100'}, {'field': 'company_name', 'operator': '!=', 'value': "'Acme, Inc'"}, {'field': 'signup_date', 'operator': '>=', 'value': "'2020-01-01'"}], 'meta': {'team': 'Finance'}} - at path []: 'calculation_method' is a required property

This also breaks backwards compatibility for users of "Slim CI":
$ dbt ls -s state:modified --state state/
08:07:02  Encountered an error:
Field "metrics" of type Mapping[str, ParsedMetric] in WritableManifest has invalid value {'metric.my_project.new_customers': {'fqn': ['my_project', 'new_customers'], 'unique_id': 'metric.my_project.new_customers', 'package_name': 'my_project', 'root_path': '/Users/jerco/dev/scratch/testy', 'path': 'metric.yml', 'original_file_path': 'models/metric.yml', 'name': 'new_customers', 'description': 'The number of paid customers using the product', 'label': 'New Customers', 'type': 'count', 'sql': 'user_id', 'timestamp': 'signup_date', 'filters': [{'field': 'is_paying', 'operator': 'is', 'value': 'true'}, {'field': 'lifetime_value', 'operator': '>=', 'value': '100'}, {'field': 'company_name', 'operator': '!=', 'value': "'Acme, Inc'"}, {'field': 'signup_date', 'operator': '>=', 'value': "'2020-01-01'"}], 'time_grains': ['day', 'week', 'month'], 'dimensions': ['plan', 'country'], 'model': "ref('dim_customers')", 'model_unique_id': None, 'resource_type': 'metric', 'meta': {'team': 'Finance'}, 'tags': [], 'sources': [], 'depends_on': {'macros': [], 'nodes': ['model.my_project.dim_customers']}, 'refs': [['dim_customers']], 'metrics': [], 'created_at':<PHONE_NUMBER>.598332}}
08:07:02  Traceback (most recent call last):
  File "<string>", line 73, in from_dict
  File "<string>", line 73, in <dictcomp>
  File "<string>", line 76, in from_dict
mashumaro.exceptions.MissingField: Field "calculation_method" of type str is missing in ParsedMetric instance

Metrics are still an officially experimental feature, so we have reserved the right to do this — but we should aim for a smoother upgrade experience if possible.
Expected Behavior

Upgrading raises a deprecation warning, but does not immediately break. Specifically, if I have a metric definition containing attributes named sql and type, or type: expression, dbt should implicitly rename those and store those attributes with the new names/values instead.
Compatibility for --state comparison to older manifests, if possible. Could we extend the logic in upgrade_manifest_json to that effect? Otherwise, we should declare that v1.3 breaks forwards compatibility for manifests from v1.0-1.2.

Steps To Reproduce

Create a metric as documented
Using dbt-core==1.2, generate a manifest (e.g. via dbt ls), and save it somewhere locally (mv target/manifest.json state/)
Upgrade to dbt-core==1.3
Run dbt parse
Run dbt ls -s state:modified --state ... (where ... is relative path to the previous manifest)

Relevant log output
No response
Environment
- OS: macOS 12.4
- Python: 3.9.13
- dbt: 1.2 -> 1.3

Which database adapter are you using with dbt?
No response
Additional Context
No response

What this might want to look like (quick & naive version): https://github.com/dbt-labs/dbt-core/commit/af4d10a10c5a7caa5bf47eb60e8e40f432d82eb1


Issue: 61

Issue: 61
Short description of what this resolves:
ChangePassword View

Thank you for the contribution


POST subrequest body doesn't get passed to fastcgi

Hi,
Here is my config
location /hello {
default_type text/plain;
echo_subrequest POST '/test' -q 'foo=Foo&bar=baz' -b 'request_body=test&test=3';
}
location /test {
# default example works
#echo "querystring: $query_string";
#echo "method: $echo_request_method";
#echo "body: $echo_request_body";
#echo "content length: $http_content_length";
#echo '///';
fastcgi_pass   <IP_ADDRESS>:1234;
include        fastcgi_params;
fastcgi_param  SCRIPT_FILENAME  /root/test.php;

#deny all;

}
In test.php file I have this:
 On
echo $HTTP_RAW_POST_DATA;
?>
When I make a request with the default example I can see

curl 'http://localhost/hello'
querystring: foo=Foo&bar=baz
method: POST
body: request_body=test&test=3
content length: 24
///

When I make the same request with fastcgi I can see

curl 'http://localhost/hello'
Array
(
[foo] => Foo
[bar] => baz
)
Array
(
)

So, as you can see GET params are passed. No request_body or POST params though.
I expect it to output:
Array
(
[foo] => Foo
[bar] => baz
)
Array
(
[request_body] => test
[test] => 3
)
request_body=test&test=3
Is this a bug or it is by design?
I'm using v0.37 which comes with nginx 1.1.13.

There's no bug in ngx_echo nor ngx_fastcgi. Your config has two problems:
You should set the "Content-Type: application/x-www-form-urlencoded"
request header for your POST subrequest, or the PHP _POST table will
just ignore the request body altogether. So your /hello location
should be fixed as follows:
location /hello {
default_type text/plain;
    more_set_input_headers
            'Content-Type: application/x-www-form-urlencoded';

    echo_subrequest POST '/test' -q 'foo=Foo&bar=baz'
            -b 'request_body=test&test=3';
}

: Here we use the more_set_input_headers directive provided by the
ngx_headers_more module to set the request header. (see
http://wiki.nginx.org/HttpHeadersMoreModule)
There is a bug in the "fastcgi_params" config file shipped by the
standard Nginx distribution which always passes the ''main'' request's
request method (i.e., "GET" in your example) to the FastCGI backend
rather than the current (sub)request (i.e., "POST" in your sample).
The offensive line is
fastcgi_param  REQUEST_METHOD     $request_method;
: This line should be fixed as following
fastcgi_param  REQUEST_METHOD     $echo_request_method;
: That is, using the $echo_request_method variable provided by the
ngx_echo module (see
http://wiki.nginx.org/HttpEchoModule#.24echo_request_method )
After fixing the two issues discussed above, your example works as
expected on my side:
Array
(
[foo] => Foo
[bar] => baz
)
Array
(
[request_body] => test
[test] => 3
)
If you have any further questions, please let me know :)
Best regards,
-agentzh

OK, thanks, I've already got that and set fastcgi_param REQUEST_METHOD POST;
I was reading your echo module source code to understand how to make a post subrequest and didn't find the tail of how you pass the request body to the subrequest.
In my module's body filter I do this:
if(ngx_http_subrequest(r, &uri, &query_string, &sr, NULL, 0) != NGX_OK)
return NGX_ERROR;
// adjust subrequest
ngx_str_t method_name = ngx_string("POST");
sr->method = NGX_HTTP_POST;
sr->method_name = method_name;
Then I don't understand how should I pass the request body. I have tried populating sr->request_body->bufs with sample chain with dummy buffs, but it doesn't seem to get passed to the subrequest.
Am I right that if I populate sr->request_body->bufs they will be written to subrequest request body?
Thanks in advance.

On Mon, Feb 27, 2012 at 10:19 PM, edo888
<EMAIL_ADDRESS>wrote:

Then I don't understand how should I pass the request body. I have tried populating sr->request_body->bufs with sample chain with dummy buffs, but it doesn't seem to get passed to the subrequest.

I think you should also set the Content-Length request header
(including r->headers_in->content_length_n).
Regards,
-agentzh

WOW, super, thanks a lot!!! I was struggling about this a lot.


add XP param

XPのコインパラメータを追加しました。

I ｍerged but coin addition doesn't work due to new features.
This must have contained new fields.
I'll fix this problem after I get back to home.
So, I have a question for this.
Do XP Coin supports non-standard transaction, including OP_RETURN?

XP is a fork coin of bitcoin v0.6, probably not supporting non-standard transactions.
I will investigate in detail as I return home.
If you do not support it, do I need a coin based update?

What does it mean "coin based update" ?

sorry.It means update of XPCoin core.

Sorry for my late reply
I saw the source code of XPCoin core.
OP_RETURN seems to support as standard transaction.

How long is maximum message?

Ok. I will enable messaging up to 80 byte
On Thu, Apr 26, 2018 at 8:20 PM, ett126<EMAIL_ADDRESS>wrote:

Maximum 80 bytes.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/monya-wallet/monya/pull/26#issuecomment-384604345,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ae1nUAEBLAxhPmCcwvDNWJDJ32Rv-FJzks5tsa1_gaJpZM4Tell_
.

Thank you
If there is something please contact me.
also, provide XP for testing.

https://monya-wallet.github.io/addcoins/
Coin param is available here now.
On Thu, Apr 26, 2018 at 9:13 PM, ett126<EMAIL_ADDRESS>wrote:

Thank you
If there is something please contact me.
also, provide XP for testing.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/monya-wallet/monya/pull/26#issuecomment-384618911,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ae1nUIQ9Yp5XVv4kj-qf6PpY96Xdulmwks5tsbn8gaJpZM4Tell_
.

understood. I will start the test.

XPCoin Receive,Sign message,Verify signed message succeeded.
but,I fail with remittance.
It looks like it can not decode a signed transaction.
#decoderawtransaction<PHONE_NUMBER>90b927fae72ab0e92512df887dc0e829debc1b25f46af4c26f78a9da6941c842010000006a4730440220734aac32567ea3c8f2ee5d445ebaedd99d590f3f55681766be83faea79cca52202207d7117432960a5f4e9aa18c64aa4fffba3e9be0666e809112d43ce8ee5a549e80121034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0280f0fa02000000001976a914899402642ecc722bfb1818f72edae1f36d68aeaf88aca6c0fa02000000001976a91483747e645939d4d6d82c945776b484715640859f88ac00000000
error: {"code":-22,"message":"TX decode failed"}

#decodescript<PHONE_NUMBER>90b927fae72ab0e92512df887dc0e829debc1b25f46af4c26f78a9da6941c842010000006a4730440220734aac32567ea3c8f2ee5d445ebaedd99d590f3f55681766be83faea79cca52202207d7117432960a5f4e9aa18c64aa4fffba3e9be0666e809112d43ce8ee5a549e80121034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0280f0fa02000000001976a914899402642ecc722bfb1818f72edae1f36d68aeaf88aca6c0fa02000000001976a91483747e645939d4d6d82c945776b484715640859f88ac00000000
{
    "asm" : "0 0 0 -16 OP_NOP10 fae72ab0e92512df887dc0e829debc1b25f46af4c26f78a9da6941c842010000006a4730440220 OP_IFDUP ac32567ea3c8f2ee5d445ebaedd99d590f3f55681766be83faea79cca52202207d7117432960a5f4e9aa18c64aa4fffba3e9be0666e809112d43ce8ee5a549e80121034bc9e26e9c65da eb604f369946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0280f0fa02000000001976a914899402642ecc722bfb1818f72edae1f36d68aeaf88aca6c0fa02000000 0 76a91483747e645939d4d6d82c945776b484715640859f88ac 0 0 0 0",
    "type" : "nonstandard",
    "p2sh" : "9AvKro95yVvL6iuoMieX5oWDDBayKzpvMb"
}

After all, it seems that it can not support nonstandard transactions.

change library into blackcoinjs-lib
See NEET params.

Thank you very much. I changed the library.
It is now possible to decode, but it will be rejected as a lack of fee.
It seems that the remittance amount entered has changed.
I entered as follows
(Balance:99.99999XP)
Send:20XP
Fee:0.0001125XP
The output transactions are as follows
vout0:2000
vout1:7999.98775
I do not know why, but it will be 100x.
decoderawtransaction<PHONE_NUMBER>67e45a01ffd89f07154056a2da8473958f83c38fb5a825af05d56b61a1a28c08429b3612010000006a473044022034ab4284a84edcce16a4309c337c3f0370837aa5ea00594a77d60ccac5cc67e802206267590269a46e07897c760ae709c38fc86171f2985fdcf56f6be0f32bb44aa40121034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0200943577000000001976a914899402642ecc722bfb1818f72edae1f36d68aeaf88ac2620d6dc010000001976a91483747e645939d4d6d82c945776b484715640859f88ac00000000
{
    "txid" : "23be6c93519eded315d68667d295787161714aa176c882f7505a5217adecb7d7",
    "version" : 1,
    "time" :<PHONE_NUMBER>,
    "locktime" : 0,
    "vin" : [
        {
            "txid" : "12369b42088ca2a1616bd505af25a8b58fc3838f957384daa2564015079fd8ff",
            "vout" : 1,
            "scriptSig" : {
                "asm" : "3044022034ab4284a84edcce16a4309c337c3f0370837aa5ea00594a77d60ccac5cc67e802206267590269a46e07897c760ae709c38fc86171f2985fdcf56f6be0f32bb44aa401 034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60c",
                "hex" : "473044022034ab4284a84edcce16a4309c337c3f0370837aa5ea00594a77d60ccac5cc67e802206267590269a46e07897c760ae709c38fc86171f2985fdcf56f6be0f32bb44aa40121034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60c"
            },
            "sequence" :<PHONE_NUMBER>
        }
    ],
    "vout" : [
        {
            "value" : 2000.00000000,
            "n" : 0,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 899402642ecc722bfb1818f72edae1f36d68aeaf OP_EQUALVERIFY OP_CHECKSIG",
                "hex" : "76a914899402642ecc722bfb1818f72edae1f36d68aeaf88ac",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "XPtgjJ4UhZtoMFsKsJSEW7J775wePzRCxc"
                ]
            }
        },
        {
            "value" : 7999.98775000,
            "n" : 1,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 83747e645939d4d6d82c945776b484715640859f OP_EQUALVERIFY OP_CHECKSIG",
                "hex" : "76a91483747e645939d4d6d82c945776b484715640859f88ac",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "XPLJvQAJTpYp9YoWk9EwLLVcxpMX2Vg34U"
                ]
            }
        }
    ]
}

decodescript<PHONE_NUMBER>67e45a01ffd89f07154056a2da8473958f83c38fb5a825af05d56b61a1a28c08429b3612010000006a473044022034ab4284a84edcce16a4309c337c3f0370837aa5ea00594a77d60ccac5cc67e802206267590269a46e07897c760ae709c38fc86171f2985fdcf56f6be0f32bb44aa40121034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0200943577000000001976a914899402642ecc722bfb1818f72edae1f36d68aeaf88ac2620d6dc010000001976a91483747e645939d4d6d82c945776b484715640859f88ac00000000
{
    "asm" : "0 0 0 2 OP_ELSE OP_UNKNOWN 10 -127 OP_UNKNOWN OP_LESSTHAN 154056a2da8473 OP_MUL OP_NEGATE OP_INVERT OP_UNKNOWN OP_NEGATE OP_NOP6 OP_SHA256 af05d56b61a1a28c08429b3612010000006a473044022034ab4284a84edcce16a4309c337c 0370837aa5ea00594a77d60ccac5cc67e802206267590269a46e07897c760ae709c38fc86171f2985fdcf56f6be0f32bb44aa40121034bc9e26e9c65da46eb 16 -1 9946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0200943577000000001976a914899402642ecc722bfb1818f72edae1f36d OP_ENDIF OP_CHECKMULTISIG OP_CHECKMULTISIGVERIFY OP_EQUALVERIFY OP_CHECKSIG [error]",
    "type" : "nonstandard",
    "p2sh" : "9DkLLH1LMiRi2nZzB3C6dNJhVSA1eut3X9"
}

sendrawtransaction<PHONE_NUMBER>67e45a01ffd89f07154056a2da8473958f83c38fb5a825af05d56b61a1a28c08429b3612010000006a473044022034ab4284a84edcce16a4309c337c3f0370837aa5ea00594a77d60ccac5cc67e802206267590269a46e07897c760ae709c38fc86171f2985fdcf56f6be0f32bb44aa40121034bc9e26e9c65da46eb604f369946d8971743cfdaf27c60ccf6cb11450679d60cffffffff0200943577000000001976a914899402642ecc722bfb1818f72edae1f36d68aeaf88ac2620d6dc010000001976a91483747e645939d4d6d82c945776b484715640859f88ac00000000
error: {"code":-22,"message":"TX rejected"}

coin deamon error log:
ERROR: CTxMemPool::accept() : not enough fees 23be6c93519eded315d68667d295787161714aa176c882f7505a5217adecb7d7, -9899987760 < 0

Sorry to bother you again.
I will continue to investigate.

Somehow XP needs incredibly high fee.
CryptoBridge also needed 460 XP for fee.
I read source but I can't find the reason.

Certainly the CryptoBridge fee is high.
I do not know the cause yet.
Please let me stop the addition of XPcoins.


Replace usages of RAMDirectory

RAMDirectory is deprecated and it is recommended to use MMapDirectory
instead.

[x] User relevant changes are recorded in CHANGES.txt
[x] Touched code is covered by tests
[x] Documentation has been updated if necessary
[x] CLA is signed

retest this please


handle readahead 403 errors properly

please see https://github.com/kahing/goofys/pull/243

@kahing


Do not reuse by resetting the JavascriptStaticEnumerator in the ForInObjectEnumerator

Even if the type match, the object may have change to have array index, producing wrong result.
Since we now have an instance of the DynamicObjectPropertyEnumerator in the JavascriptStaticEnumerator already, reset doesn't really gain us much.  So just remove it.

@rajatd  please review.

:shipit:


Fix empty meta.filter bug which results in empty page list

For an empty meta.filter, private static function parseTags($tags) returns: array(1) { [0]=> string(0) "" }
This result is passed into empty() inside public function onPagesLoaded(&$pages, &$currentPage, &$previousPage, &$nextPage) which returns false of, course.
I added an additional check to parseTags($tags).

Thanks for the fix!


Merge Kshitij's NNGenerator branch into adversarial-sampling branch of the central repo

Codecov Report

Merging #148 (3d8720f) into adversarial-sampling (7bb802a) will decrease coverage by 3.52%.
The diff coverage is 20.87%.

@@                   Coverage Diff                    @@
##           adversarial-sampling     #148      +/-   ##
========================================================
- Coverage                 84.27%   80.74%   -3.53%
========================================================
  Files                        22       22
  Lines                      3522     3724     +202
========================================================
+ Hits                       2968     3007      +39
- Misses                      554      717     +163

Impacted Files
Coverage Δ

neurodiffeq/generators.py
72.99% <17.14%> (-21.16%)
:arrow_down:

neurodiffeq/solvers.py
81.88% <38.46%> (-3.12%)
:arrow_down:

neurodiffeq/networks.py
86.48% <60.00%> (-2.09%)
:arrow_down:

Continue to review full report at Codecov.

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

Also, let's check that L-BFGS works with NNGenerator


zsh-vi-mode: init at v0.8.5

Adding zsh-vi-mode at version 0.8.5.
Motivation for this change
Upstreaming the zsh-vi-mode package derivation I've been using locally for a while.
Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

You need to add this package on pkgs/top-level/all-packages.nix

Fixed. Thanks for being patient while I figure out the packaging.

Result of nixpkgs-review pr 146272 run on x86_64-linux 1

1 package built:

zsh-vi-mode


I lost Vault Integration in Ultimate Edition

I have checked the following:

[X] I use the newest version of bruno.
[X] I've searched existing issues and found nothing related to my issue.

Describe the bug
I updated to 1.32.1 and i lost Integration of Hashicorp Vault. I reverted to 1.32.0 and the integration is back.
.bru file to reproduce the bug
No response
Screenshots/Live demo link

on version 1.32.1

on version 1.32.0

on versione 1.32.0

We are fixing this. We will release a new version with the fix in the next few hours.
As a temporary workaround, please revert to 1.32.0

For reference, the "Download Report" button is for a Collection Run also gives me the "Ultimate Edition" popup even though my license is active
Thanks for the quick release 🙏

Hey @drchiodo @ClementValot
This has now been fixed in v1.33.0


Refactoring of kustomize code and upgrading to kustomize v3 - nginx

Same as #18 but without changing the nginx name to single-nginx.

Lgtm

Definitely not a patch! At least a minor, even if technically it should be a major probably...

Sorry guys, I had a brain fart, by minor a meant bugfix/patch and by major I meant minor. So, in brief what I was saying is 1.5.0 instead of 1.4.1.

Pipeline passing with the new v1.5.0-rc1 release.

The distribution's docs ingress section will have to updated too.

https://github.com/sighupio/kfd-docs/pull/15

Since we're touching labels in some way, did you check that the Grafana dashboard and Promethes alerts still work as intended?

I forgot to answer this question.
I have tested an everything continue working as expected ;)
We are not changing critical labels to the metrics services. It was a refactor of the kustomize project so we maintained the same output as was in the 1.4.1 version (current).


Wrong suburb

The suburb is Burpengary East not Morayfield. https://plus.codes/5R4JVXHP+GH

Please report issues with Google Maps data using the feedback in Maps.


Error on using element-ui with vue-js-devtools

Describe
When I use element-ui with vue-js-devtools in console, it will throw an error like this once I click the component in the component tree view:

Consequently I could not check the information of my element-ui-component. What's wrong with it?
Environment

Node version: v7.6.0
NPM version: v4.4.1
vue-cli version: v2.8.1
Operating System: macOS Sierra

Yeah I found that it was caused by vue-devtools.
That's a bug of vue-devtools, some one found it on version 3.1.0, and the latest version is 3.1.2 now.

I had a feeling that might have been the issue at hand. I've only ever seen something like one other time and is probably related to the recent changes of the vue-template-compiler. To update the vue-devtools in electron your have to open up your userData directory mentioned in electron-devtools-installer, remove the vue-devtools folder and re-run your app in development.

You're right, I found your answer on an issue in vuejs/vue-devtools/issues/68.
Thanks a lot : D
I've solved it by:
BrowserWindow.removeDevToolsExtension('Vue.js devtools');
BrowserWindow.addDevToolsExtension('/path/to/vue-devtools/shells/chrome');

That is a much easier solution. Forgot that method existed, haha. Glad you got this sorted out.


Don't interact with the kernel driver in Windows

Coverage increased (+0.05%) to 46.998% when pulling c2056e0f9fdcd7666ed3292be5af04acca65c150 on no-kerneldriver-windows into e8bd3244210da9134a336dfd75f84974f0a33604 on master.


Empty HTML report output on gcovr

Hi!
I'm having the following issue when trying to generate a HTML report with gcov
I'm currently using ceedling 0.30.0, and i downgraded gcovr version to 4.1 as i saw on issue #449 it could fix some compatibility issues.
I have enabled gcov on the .yml file, and my configuration is this:
:gcov:
:utilities:
- gcovr
:reports:
- HtmlDetailed
:gcovr:
:report_root: ".."
When running:  ceedling gcov:all utils:gcov
I get the following output:
/var/lib/gems/2.5.0/gems/ceedling-0.30.0/lib/ceedling/system_wrapper.rb:25: warning: Insecure world writable dir /mnt/c in PATH, mode 040777
Test 'test_1.c'
Running test_1.out...
Test 'test_2.c'
Running test_2.out...
Creating a gcov HTML report in 'build/artifacts/gcov'... Done in 1.535 seconds.

GCOV: TEST OUTPUT
[test_2.c]

"Buffer error"
"Buffer error"
"Buffer error"
"Buffer not large enough for decompressed data"

GCOV: OVERALL TEST SUMMARY
TESTED:  14
PASSED:  14
FAILED:   0
IGNORED:  0

GCOV: CODE COVERAGE SUMMARY
util1.c Lines executed:91.89% of 185
util1.c Branches executed:92.68% of 164
util1.c Taken at least once:80.49% of 164
util1.c Calls executed:100.00% of 18
util2.c Lines executed:0.00% of 36
util2.c Branches executed:0.00% of 12
util2.c Taken at least once:0.00% of 12
util2.c Calls executed:0.00% of 22
util3.c Lines executed:96.43% of 56
util3.c Branches executed:100.00% of 42
util3.c Taken at least once:76.19% of 42
util3.c Calls executed:100.00% of 12
util4.c Lines executed:16.50% of 491
util4.c Branches executed:24.26% of 338
util4.c Taken at least once:18.05% of 338
util4.c Calls executed:0.00% of 9
util5.c Lines executed:42.70% of 89
util5.c Branches executed:55.00% of 40
lutil5.c Taken at least once:40.00% of 40
util5.c Calls executed:15.38% of 26
Could not find coverage results for obsw/src/main.c
But when opening GcovCoverageResults.html  i get:

Thanks in advance!

@sebahansen you might want to look into setting the :report_include and :report_exclude: configuration properties. Especially the former.

have you find solution for this problem? If you found can you upload .yaml file?

`---
Notes:
Sample project C code is not presently written to produce a release artifact.
As such, release build options are disabled.
This sample, therefore, only demonstrates running a collection of unit tests.
:project:
:use_exceptions: FALSE
:use_test_preprocessor: TRUE
:use_auxiliary_dependencies: TRUE
:build_root: build
:release_build: TRUE
:test_file_prefix: Test
#:release_build:
:output: TempSensor.out
:use_assembly: FALSE
:environment: []
:extension:
:executable: .out
:paths:
:test:
- +:test/**
:source:
- ../source/Component/app/App_Sensor/hmi/inc/**
- ../source/Component/app/App_Sensor/hmi/src/**
- +:source/Component/hal/hal_base_lib/src/stm32wb_hal_base_lib/Driver/Inc/stm32wbxx_hal_gpio.h
:include:
- +:../source/Component/hal/hal_base_lib/src/stm32wb_hal_base_lib/CMSIS/Device/ST/STM32WBxx/Include/**
- +:../source/Component/hal/cmsis_headers/src/cmsis_headers/Core/Include/**
- +:../source/Component/rtos/Source/include/**
- +:../source/Component/sys_manager/src/**
- +:../source/Component/hal/hal_base_lib/src/stm32wb_hal_base_lib/Driver/**
- +:../source/Component/rtos/**
- +:../source/Component/hal/hal_base_lib/src/board/**
- +:../source/Component/hal/cmsis_headers/src/cmsis_headers/Driver/Include/**
- +:../source/Component/hal/hal_base_lib/src/stm32wb_hal_base_lib/Driver/Inc/**
- +:../source/Component/hal/hal_base_lib/src/stm32wb_hal_base_lib/Driver/Src/**
:defines:
in order to add common defines:
1) remove the trailing [] from the :common: section
2) add entries to the :common: section (e.g. :test: has TEST defined)
:common: &common_defines
- STM32WB55xx
- UNIT_TEST
- FREERTOS
:test:
- *common_defines
- TEST
:test_preprocess:
- *common_defines
- TEST
:cmock:
:when_no_prototypes: :warn
:enforce_strict_ordering: TRUE
:plugins:
- :ignore
:treat_as:
uint8:    HEX8
uint16:   HEX16
uint32:   UINT32
int8:     INT8
bool:     UINT8
:gcov:
:html_report: true
:html_report_type: detailed
:xml_report: true
:gcovr:
:xml_pretty: true
:cobertura_pretty: true
:libraries:
:system:
- m
:tools:
:test_compiler:
:subprojects_compiler:
# :executable: compiler              #exists in system search path
# :name: 'acme test compiler'
# :arguments:
  # - -mcpu=stm32WB55
  # - -x c
  # - -c
  # - "${1}"
  # - -o "${2}"
  # - -D$: COLLECTION_DEFINES_TEST_AND_VENDOR
  # - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
  # - -Wall
  # - -Werror  # We can't keep this on during test becuase of a CMock pointer issue
  # - -Os
  # - -mlarge-code
  # - -mlarge-arrays

:test_linker:
# :executable: arm-none-eabi-gcc
# :arguments:
  # - -mcpu=stm32WB55
  # - ${1}
  # - -o "./build/release/TestBuild.out"
  # - -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/TestOutput.map,--report-mem

:test_fixture:
# :executable: ruby
# :stderr_redirect: :win #inform Ceedling what model of $stderr capture to use
# :arguments:
  # - test/simulation/sim_test_fixture.rb

:plugins:
:load_paths:
- vendor/ceedling/plugins
:enabled:
- stdout_pretty_tests_report
- module_generator
- xml_tests_report
- warnings_report
- gcov
...
`

[
project.txt
](url)


change kubectl.sh to kubetcl

The deploy script(deploy/kube.sh) can not work.

This change is

@k8s-bot ok to test

This needs to have a commit author matching your account (looks like it's just your machine's root user right now).

This change is included in PR #1334

Closing in favor of #1334


Add configs and model names for pretrained shunted transformer

Signed-off-by: Jael Gu<EMAIL_ADDRESS>

/lgtm
/approve


Xurkitree and Necrozma UB encounters aren't respected

These are my parameters: http://i.imgur.com/XOetrOt.png for Xurkitree. I use UB rate 5 for Necrozma instead
For the other UB it worked, for Xurkitree no...rarely i encounter it, but most of the time i eoncouter a Wild. Under "UB?" there is the O so I should encounter it....

Try TimeDelay = 186 , Frame Correction = 10 and subtract 14 frames to your "pre-timer" in your method. In the lastest version (0.80b and above), just set the Honey Correction according to README.md. Hope that helps.

when you push A on bag
some times take 7F some times take 6F
is it normal
and you said subtract 7 frames it is this time right？

I know that, actually my starting point is the frame where you are already in the bag menu. The key point is the honey animation time should be 186F and add 3 more Fs to "pretimer", Now the UB appearance results should be right. (I try hundreds of times for non-UB Pokemon)
Since I add 10 more frames as blinking process(for the most case it's true) between UB/Sync determination and IVs/Nature determination. You needs subtract 10 from honey delay.
So 3-10 =-7

To avoid confusion, you can try to manually advance the game by 1/30s after pressing A on "Use this item". You can see some certain number of frame advances ( for example 26Fs in Malie Garden which means the Honey Correction in my tool) before the honey animation begins.

ok but git only has 078b bandupan 079a
where is 080

Needs more tests with UB.

is it possible support multiple choice for encounter slot
for example
if I want rng a wild Salandit in Wela Volcano Park I can choose 1 3
if I want rng a wild Cubone in Wela Volcano Park I can choose 5 6 9

The Delay for all the UBs i always sue is 192, not 186. The only UBs that doesn't work are Necrozma and Xurkitre....all the other work eith this parameters.  This app is awsome! Thanks a lot for this. I made an error, i was not considering its error of 10. Now i made it works! I'm clising this issue :)

@srwgin I changed the droplist to textbox. Now you can input the encounter slot yourself. Separator can be comma or space.
PS: Please open a new issue next time.


Drop down version to select the AgnosUI doc version displayed

tbd

For info, the list of deployed versions is available in a json file


can't satisfy 'highline (>= 1.7.1)', already activated 'highline-1.6.21' (Gem::LoadError)

After updating to the latest version of Cupertino, I get this on multiple machines:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/specification.rb:1206:in `block in activate_dependencies': can't satisfy 'highline (>= 1.7.1)', already activated 'highline-1.6.21' (Gem::LoadError)
Running on OSX Yosemite.
Any advice?

Please update using sudo gem update. Sorry about the troubles.

Should be fixed in the latest version.


chore: add info about voyager packages to readme

Description

Checklist

[x] npm test passes
[x] tests are included
[x] documentation is changed or added
[x] commit message follows commit guidelines

as bonus having just one sentence in each package readme will be cool as well: https://github.com/aerogear/voyager-server/tree/master/packages/voyager-metrics


support MPU

current s3cli not support MPU

open PR to address this issue
https://github.com/vager/s3cli/pull/12


Support playback via mpv

This requires:

Config support, i.e. let the user decide whether they want to use ffplay or mpv
A separate PlaybackManager that uses MPV as backend
Playback manager to generate a custom error to display on the fatal error UI

Done


User's profile shouldn't be visible before clicking on the verification link

Currently http://localhost:4000/users/stefan.wintermeyer is available for anybody even before I click on the initial verification link. That shouldn't be because we don't know if the person used his/her email address.

This was closed in 52fb90690fd66110bb82e93d289955245d6dc11b


Masthead - Scrolling carets briefly display on component load

Detailed description
On page load, the carets used for horizontal scrolling briefly appear (and also overlay the first menu item) even though the viewport is wide enough that the caret shouldn't be displayed at all.
Steps to reproduce the issue

Open the masthead component with wide viewport (e.g. 1400px)

Additional information
Video:
https://user-images.githubusercontent.com/9358330/111152077-9e25e300-8590-11eb-8e57-f769bcbe8697.mov
Picture:

Also notice is the scrolling caret makes another come back in Masthead dotcom shell story:
https://ibmdotcom-web-components.mybluemix.net/?path=/story/components-dotcom-shell--search-open
https://ibmdotcom-web-components-canary.mybluemix.net/?path=/story/components-dotcom-shell--search-open

This issue has been fixed. There is another bug for the masthead search default and the PR was just opened for it.