DEV: Improve UX for the chat tab in the user menu when it's empty

Before:

After:

Internal topic: t/76879. Relevant core PR: https://github.com/discourse/discourse/pull/18520.

LGTM thanks for making the change 👍


Why can't Linux be built remotely?

I've defined this package in my config.nix:
  {
    nix-build-remote = pkgs.writeScriptBin "nix-build-remote" ''
      #!${pkgs.stdenv.shell}
      mkdir -p /tmp/build-remote-load
      chmod a+rwX /tmp/build-remote-load

      export NIX_BUILD_HOOK="${nix.out}/libexec/nix/build-remote.pl"
      export NIX_CURRENT_LOAD="/tmp/build-remote-load"
      exec "${nix.out}/bin/nix-build" "$@"
    '';
  }

$ nix-build-remote '<nixpkgs/pkgs/top-level/release.nix>' -A linux_4_4 -vvv
[lots of output]
starting build hook
hook reply is ‘decline’
building path(s) ‘/nix/store/lm0mf0v9fjgi18nmnjf05nfcjr06jsy7-linux-4.4.12-dev’, ‘/nix/store/ng0iig19fw85xqg0afqa3zjhg6pfw4gi-linux-4.4.12’
[more output]
building of ‘/nix/store/c9shhhq395xxrz791hq871h5m43bkyl3-linux-4.4.12.drv’: goal destroyed
error: a ‘x86_64-linux’ is required to build ‘/nix/store/c9shhhq395xxrz791hq871h5m43bkyl3-linux-4.4.12.drv’, but I am a ‘x86_64-darwin’

What causes this? It's very inconvenient to have to copy the derivation to the build box, build it there, and copy it back.

This may be due to 1f84e43239bc2a707c30c0d7bca47801e4df5a78. You need to have a remote machine with the feature big-parallel.

We should emit a better error message.

Typically you don't get any error message and it just silently builds locally. I did take me some time to figure out why (back in May).

I just ran into this issue while using nixops to deploy a custom kernel to a virtual machine.  Here is the minimal reproducing nixops config that caused the problem:
{ local = { config, pkgs, ... }: {
    config.deployment.targetEnv = "virtualbox";
    config.deployment.virtualbox.memorySize = 4096;
    config.deployment.virtualbox.headless   = true;
    config.boot.kernelPackages = pkgs.linuxPackages_4_4;
    config.nixpkgs.config.packageOverrides = pkgs:
    {
        stdenv = pkgs.stdenv // {
            platform = pkgs.stdenv.platform // {
                kernelExtraConfig = "CMA y" ;
           };
        };
    };
  };
}

Here's the rough chain of events:

The host machine that you deploy from is OS X and the VM is Linux so nixops is smart and tries to build the Linux config and the Linux kernel on the VM using nix's support for remote builds
The build for the Linux config on the VM succeeds
However, the VM does not support the big-parallel system feature required by the Linux kernel derivation so the VM refuses to build the Linux kernel
nixops then falls back to trying to build the Linux kernel locally on the host (OS X), failing with the exact same error described at the beginning of this issue

error: a ‘x86_64-linux’ is required to build ‘/nix/store/...-linux-4.4.12.drv’, but I am a ‘x86_64-darwin’

I was able to work around this by:

Forking pkgs/os-specific/linux/kernel/manual-config.nix to ./manual-config-fork.nix and deleting the requiredSystemFeatures = [ "big-parallel" ]; line in my fork

diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/tmp/test/manual-config.nix
index 8da8f20..1cc8f7f 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/tmp/test/manual-config.nix
@@ -194,8 +194,6 @@ let
           $installFlags "''${installFlagsArray[@]}"
       '');

-      requiredSystemFeatures = [ "big-parallel" ];
-
       meta = {
         description =
           "The Linux kernel" +

Adding the following buildLinux override to my original nixops config

diff --git a/vbox.nix b/vbox2.nix
index 1e209c5..1d34157 100644
--- a/vbox.nix
+++ b/vbox2.nix
@@ -5,6 +5,8 @@
     config.boot.kernelPackages = pkgs.linuxPackages_4_4;
     config.nixpkgs.config.packageOverrides = pkgs:
     {
+        buildLinux = pkgs.callPackage ./manual-config-fork.nix {};
+
         stdenv = pkgs.stdenv // {
             platform = pkgs.stdenv.platform // {
                 kernelExtraConfig = "CMA y" ;

With those two changes the Linux kernel now successfully builds on the VM instead of OS X.
Would it be possible for nix output improved diagnostics about why it's not selecting remote build machines?  If people are okay with that proposal I might have time to contribute a pull request

I wonder why big-parallel exists as a required system feature in the first place. I understand it's for selecting a more powerful host for the build, but I don't think that's really required as Linux kernel can be built on the less powerful machine with a single thread, though taking an enormous amount of time. (Is there a definition of "big" after all?)

I think it's simply because Nix ATM only provides support for required features and no better way.

(triage) I think the question is answered? Should we extract action items and close the issue?

The action item would be to add a preferredSystemFeatures attribute for Hydra and/or build-remote.pl.

@edolstra Also: better diagnostics for the build-remote.pl script so that it explains why it skipped over machines listed in the remote systems configuration file

Note that it's being rewritten to C++ in https://github.com/NixOS/nix/pull/981

I would propose the error message indicate the features it requires:
"a ‘%1%’ with the features ‘foo’, ‘bar’, ‘baz’ is required to build"

as a hint to the resolution.

Relevant: https://github.com/NixOS/nix/issues/2238

(triage) close as answered?

See above:

Should we extract action items and close the issue?

The action item would be to add a preferredSystemFeatures attribute for Hydra and/or build-remote.pl.

That action item should be filed somewhere if we close this issue.


Implementation of a template engine

Implementation of a template engine for the log entry based on blade templates.
This allows not only to choose among log formats predefined by the package maintainer, but to create a completely custom log format that could be used to send logs to telegram

Amazing job, thank you!

My pleasure, the package was so easy to use that I decided that the minimum
that I could do was to share back the enhancement !
Best Regards,
Luca
On Thu, Dec 3, 2020 at 8:47 PM Kamil Mukhametzyanov <
<EMAIL_ADDRESS>wrote:

Amazing job, thank you!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/GrKamil/laravel-telegram-logging/pull/15#issuecomment-738259649,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA3YSSSMGPFQQAVHXLG4EVDSS7TMNANCNFSM4UMJMVEQ
.


starlark/scan.star: better error handling

Send kwargs correctly to container instead of task
Initialize extra_scan_options to an empty list

Ping @prabhu there were some cases where the sast_scan function may error out and this PR addresses that. PTAL, thanks!

@prabhu thanks, kwargs should not need such a gaurd


:sparkles: added myself as contributor and improving SEO

@Gareth-Jones-ZA thanks for contributing.


Web App for Containers is not supported at the moment

> Managed identity support for App Service on Linux and Web App for Containers is currently in preview.
It works for App Service on Linux but doesn't work for Web App for Containers (or, at least, it's not clear how to set it up - the same actions that work with App Service on Linux don't work with Web App for Containers).

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

ID: f57d3177-ce9e-ebfa-03a7-45beb8ca3212
Version Independent ID: a59df23d-f3ac-9809-61d3-5741e31f020a
Content: Managed identities overview - Azure App Service
Content Source: articles/app-service/overview-managed-identity.md
Service: app-service
GitHub Login: @mattchenderson
Microsoft Alias: mahender

@Leon99 Thanks for the question! We are investigating and will update you shortly.

@Leon99 If I understood right, you are using same actions for App Service on linux and Web App for Containers. For containers you can follow steps use managed identities with Azure Container Instances

using same actions for App Service on linux and Web App for Containers
Correct
follow steps use managed identities with Azure Container Instances
What I see on that page is that to use an assigned identity with a container I need to manually retrieve an access token and, again, manually, include it in the request to the key vault. Is that right? If yes, this is precisely a kind of note that I would like to see on this page next to "Managed identity support for App Service on Linux and Web App for Containers is currently in preview". As it is now, it gives an impression that Web App for Containers work the same way as App Service on Linux, i.e. there is no need in manual action to make it work.

closing as duplicate #27892

It's an issue for a different page, how's it a duplicate?

@Leon99 We have received your email from the other GitHub Issue We will work with you offline on this.

@SnehaAgrawal-MSFT Is there a resolution for this? Thank you for that doc but I'm running requests against http://<IP_ADDRESS> (like the link says) and it's not returning anything.

I'm running into the same issue. I tried to make the call manually in kudu but the service is not responding
curl 'http://<IP_ADDRESS>/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true -s
/home>echo $MSI_ENDPOINT
[Managed identity has been configured. This value is not viewable in Kudu but is exposed to the app.]
/home>curl 'http://<IP_ADDRESS>/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true -s -v
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* connect to <IP_ADDRESS> port 80 failed: Connection refused
* Failed to connect to <IP_ADDRESS> port 80: Connection refused
* Closing connection 0

Are there any updates on this please? I'm facing a similar issue running a Web App for Container instance:
Error = 'Get http://<IP_ADDRESS>/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net: dial tcp <IP_ADDRESS>:80: connect: connection refused'
Is there a workaround or solution for this?

I also am having this issue, Is there a workaround @Leon99 @SnehaAgrawal-MSFT

Will managed identities be supported for Web App for Containers?
I'd like to do the following to access an Azure key vault similar to what I can do in a app service resource:
var tokenProvider = new AzureServiceTokenProvider();
var client = new KeyVaultClient((authority, resource, scope) => tokenProvider.KeyVaultTokenCallback(authority, resource, scope));


luci-app-commands: broken special characters

Hi! I am using luci application commands.
I have to push the command and argument with special characters.
Input Example: mycommand AT+QCSQ
and see in the output answer
"mycommand AT QCSQ"
The next time I enter the argument: AT%2BQCSQ and I see a special character "+" in the response.
Possible fix it?
Thanks.

Which LuCI version?

Tested on
luci git-20.064.26341-4fc4c79 OpenWrt 18.06.8
and
luci git-20.178.63701-ce35d08 OpenWrt 19.07.3
I seen same problem.

Cannot reproduce on either 19.07 or master.
19.07:

master:


[FEATURE] Use Intl API instead of js-abbreviation-number

Description
JavaScript has a Intl api (internationalization API) which does meet our use case requirements, no need for another dependency
Screenshots
No response
Additional information
No response

I would like to work on this.

Hey @Rishabh-Singh-Codes I have already made a PR for this and am working on it :) Thanks for showing interest though

Hey @krshkun , I think there was an issue while linked the PR. Since the PR is merged could you close the issue?

Oh unsure why it didn't close


CI: see if macos-14-xlarge supports virt

I kind of doubt it because https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners#limitations-for-macos-larger-runners still says:

Nested-virtualization and Metal Performance Shaders (MPS) are not supported due to the limitation of Apple's Virtualization Framework.

But I guess it is worth trying

{"level":"fatal","msg":"Error Domain=VZErrorDomain Code=2 Description=\"Invalid virtual machine configuration. Virtualization is not available on this hardware.\" UserInfo={\n    NSLocalizedFailure = \"Invalid virtual machine configuration.\";\n    NSLocalizedFailureReason = \"Virtualization is not available on this hardware.\";\n}","time":"2024-09-18T04:41:24Z"}

Yeah, regardless of hardware (needs M3+) doesn't nested virtualization also require macOS Sequoia, which would be macos-15?

Yeah, regardless of hardware (needs M3+) doesn't nested virtualization also require macOS Sequoia, which would be macos-15?

Right, unless they begin to host baremetal instances (like EC2)


Update Installer Gate for NTVS 1.2 Beta to target VS 2015 Update 3 or later

Updates the Installer gating to target VS 2015 update 3 or later.
Also move the non-update 3 warning UI to be part of InstallUISequence
Closes #994

Let's revert the dialog behavior change as discussed, and :+1: after that!


The board stops working

I finished a board last week and is testing its performance. But it's strange. It starts for a while and then reports an error. After it restarts, it will be fine again. I can't understand this error. Can you help me to read it? In addition, I found that when it was just started, there would be no detection data. This is the result of the shutdown after pressing S1, and then the restart after pressing S1.The following is my error message:
#mSerial {"rBat_V":8.46,"rBat_A":0.00,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":2,"rBmsState":2,"rCells_V":[0.651,0.136,0.124,0.350,1.058,6.060,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0xf (SPI_FAST_FLASH_BOOT)
Saved PC:0x4201ac50
SPIWP:0xee
mode:DIO, clock div:2
load:0x3fcd6100,len:0x15e4
load:0x403ce000,len:0x920
load:0x403d0000,len:0x2c4c
SHA-256 comparison failed:
Calculated: f92edd0762896a9fa673795fc470e6fa77cf833e5c0950e4978b697f167c1bb4
Expected: 5575fe58924c1e08c5eadfa2ba7862131ebe09b778e446c7d1ed87641a26bbfa
Attempting to boot anyway...
entry 0x403ce000
I (43) boot: ESP-IDF 2cb20ac6c 2nd stage bootloader
I (43) boot: compile time 14:42:43
I (43) boot: chip revision: 3
I (45) boot.esp32c3: SPI Speed      : 40MHz
I (49) boot.esp32c3: SPI Mode       : DIO
I (54) boot.esp32c3: SPI Flash Size : 4MB
I (59) boot: Enabling RNG early entropy source...
I (64) boot: Partition Table:
I (68) boot: ## Label            Usage          Type ST Offset   Length
I (75) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (83) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (90) boot:  2 factory          factory app      00 00 00010000 00100000
I (98) boot: End of partition table
I (102) esp_image: segment 0: paddr=00010020 vaddr=00000020 size=0001ch (    28)
I (110) esp_image: segment 1: paddr=00010044 vaddr=3fc88d80 size=00758h (  1880) load
I (119) esp_image: segment 2: paddr=000107a4 vaddr=3fc894d8 size=00418h (  1048) load
I (127) esp_image: segment 3: paddr=00010bc4 vaddr=40380000 size=05160h ( 20832) load
I (141) esp_image: segment 4: paddr=00015d2c vaddr=00000000 size=0a30ch ( 41740)
I (153) esp_image: segment 5: paddr=00020040 vaddr=3c000040 size=02724h ( 10020) map
I (155) esp_image: segment 6: paddr=0002276c vaddr=00000000 size=0d8ach ( 55468)
I (172) esp_image: segment 7: paddr=00030020 vaddr=42010020 size=16cf8h ( 93432) map
I (195) boot: Loaded app from partition at offset 0x10000
I (195) boot: Disabling RNG early entropy source...
*** Booting Zephyr OS build zephyr-v3.2.0-9-g8625a40ec488  ***
Hardware: Libre Solar BMS C1 (v0.3)
Firmware:
E: BMS hardware initialization failed, retrying in 10s
#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}#mSerial {"rBat_V":0.00,"rBat_A":0.00,"rBat_degC":0.0,"rSOC_pct":0.0,"rErrorFlags":0,"rBmsState":0,"rCells_V":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":0.000,"rCellMin_V":0.000,"rCellMax_V":0.000,"rBalancingStatus":0}I: detected bq device number: 0x7695
#mSerial {"rBat_V":8.45,"rBat_A":0.05,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.661,0.144,0.129,0.361,1.067,6.060,-0.001,0.000,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.596,"rCellMin_V":0.661,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.44,"rBat_A":0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.657,0.136,0.125,0.358,1.067,6.060,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.595,"rCellMin_V":0.657,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.545,0.221,0.141,0.318,0.944,6.060,0.000,0.000,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.516,"rCellMin_V":0.545,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.05,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.630,0.173,0.130,0.355,1.046,6.060,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.579,"rCellMin_V":0.630,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.46,"rBat_A":0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.650,0.146,0.118,0.347,1.046,6.060,-0.001,0.001,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.585,"rCellMin_V":0.650,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":-0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.654,0.137,0.122,0.354,1.061,6.060,0.000,0.000,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.592,"rCellMin_V":0.654,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.665,0.143,0.128,0.356,1.057,6.060,-0.001,0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.594,"rCellMin_V":0.665,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.00,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.552,0.216,0.140,0.322,0.950,6.060,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.521,"rCellMin_V":0.552,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.00,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.627,0.170,0.129,0.353,1.039,6.060,0.000,0.000,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.575,"rCellMin_V":0.627,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.655,0.152,0.124,0.352,1.047,6.060,0.000,0.000,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.587,"rCellMin_V":0.655,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.45,"rBat_A":0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.656,0.139,0.121,0.351,1.054,6.060,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.590,"rCellMin_V":0.656,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.44,"rBat_A":-0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.660,0.137,0.122,0.350,1.051,6.060,-0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.590,"rCellMin_V":0.660,"rCellMax_V":6.060,"rBalancingStatus":0}#mSerial {"rBat_V":8.44,"rBat_A":-0.03,"rBat_degC":-58.8,"rSOC_pct":0.0,"rErrorFlags":322,"rBmsState":0,"rCells_V":[0.558,0.218,0.140,0.321,0.943,6.060,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000],"rCellAvg_V":2.520,"rCellMin_V":0.558,"rCellMax_V":6.060,"rBalancingStatus":0}E:
E:  mcause: 1, Instruction Access fault
E:   mtval: e69b8b86
E:      a0: d196c8c4    t0: cf478fcb
E:      a1: db5067ed    t1: 616bb785
E:      a2: a1c1f5a4    t2: ae13db79
E:      a3: 1deda449    t3: 128a90d2
E:      a4: b551c932    t4: f0dbeb04
E:      a5: e5070e22    t5: 54ec9f26
E:      a6: c89959b8    t6: 4b3fe0f8
E:      a7: 50068842
E:      ra: 3fc88400
E:    mepc: e69b8b86
E: mstatus: 00000091
E:
E: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
E: Current thread: 0x3fc85760 (main)
E: Halting system

Nice that your rebuilt the board and got it set up so far.
The issue with no data being read immediately after start-up is because of the glitches described here: https://github.com/zephyrproject-rtos/zephyr/issues/51250
I haven't found a solution other than trying again after a few seconds, yet.
The Instruction Access Fault looks strange. I've never seen that issue. Which exact firmware commit are you using? And did you change anything in the firmware so far? I'll try to reproduce the error.

I tried again. It happened by accident with a high frequency. I found this problem when I pressed S1 button for 3 seconds, then stopped, and then pressed S1 to start. Occasionally, it will get stuck and no error will occur. If it reports an error, such an error will occur.

I seem to understand that it is the error of the computer serial port receiving data. When I plug and unplug the USB cable again, it returns to normal.

@1278043638 With the release of today all issues with the ESP32-C3 serial port should be resolved. Make sure to run west update after pulling the BMS firmware updates.


AmbiguousTimeError while trying to run fbcap

Not much to say about the issue, below there is dump of error message. I'm in Poland timezone.
alvinek@linux-1t6h:~/Downloads/facebook-x/html> fbcap ./messages.html
Traceback (most recent call last):
  File "/usr/bin/fbcap", line 9, in <module>
    load_entry_point('fbchat-archive-parser==0.8.post21', 'console_scripts', 'fbcap')()
  File "/usr/lib/python3.4/site-packages/pkg_resources/__init__.py", line 558, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2682, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2355, in load
    return self.resolve()
  File "/usr/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2361, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.4/site-packages/fbchat_archive_parser/main.py", line 11, in <module>
    from .parser import MessageHtmlParser
  File "/usr/lib/python3.4/site-packages/fbchat_archive_parser/parser.py", line 13, in <module>
    from .time import parse_timestamp
  File "/usr/lib/python3.4/site-packages/fbchat_archive_parser/time.py", line 43, in <module>
    tz = pytz_timezone(tz_name).localize(datetime.now() + dt_timedelta(days=d), is_dst=None)
  File "/usr/lib/python3.4/site-packages/pytz/tzinfo.py", line 349, in localize
    raise AmbiguousTimeError(dt)
pytz.exceptions.AmbiguousTimeError: 2017-11-05 00:27:21.444891

Thanks for reporting this issue! I think I've fixed it; please try version 0.8.post26 from PyPI and let me know if that works for you :)

It works now! But it doesn't show name and surname, it shows this:
Discovered chat thread with<EMAIL_ADDRESS><EMAIL_ADDRESS>
I think Facebook changed something in messages.htm file, but anyway i will wait for result after parsing. :)

Yeah, that is unfortunately on Facebook's end. I'm not sure why they sometimes swap names with Facebook emails... it tends to go back and forth if you try to download your data again :/
You may also find that your data is incomplete (i.e. some chat threads missing). Again, that's something weird on Facebook's end.
Only real solution is to try to download your archive a day or two later and hope that whatever you're missing comes back ¯\_(ツ)_/¯.

Well... it's hard to read that file. I really don't know why they give you a file which is 100 megabytes and it couldn't been opened in browser or notepad. And if opened it's unreadable, even if browser parse it to the end...
But your script fixes that. Thank you for quick reaction! :)

Yeah, I really don't know what Facebook was thinking when they created this. My theory is it was an intern project that made it to production without anyone looking at it, and it doesn't really serve any business purpose and therefore hasn't been fixed.
Glad this tool was able to help you out :)


selinux: set ceph_installer_t to permissive

We have still found various AVC denials when running Skyring (Tendrl) with SELinux in enforcing mode. To make sure ceph-installer works while we fix the remaining issues with the policies, we are going to set the entire ceph_installer_t domain to permissive.
With this change, the ceph-installer service still runs confined, but AVC denials will not prevent the service from operating.
See https://lwn.net/Articles/303216/ for background on permissive SELinux domains.

I've verified that this builds properly.


Codegen tests

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #2875 into master will increase coverage by 3.19%.
The diff coverage is 76.92%.

@@            Coverage Diff            @@
##           master   #2875      +/-   ##
=========================================
+ Coverage    59.1%   62.3%   +3.19%
=========================================
  Files         220     221       +1
  Lines       11134   11112      -22
  Branches     2301    2296       -5
=========================================
+ Hits         6581    6923     +342
+ Misses       4250    3878     -372
- Partials      303     311       +8

Impacted Files
Coverage Δ

...c-model-plugin/src/scalars/supported-directives.ts
100% <100%> (ø)
:arrow_up:

...-model-plugin/src/__tests__/utils/validate-java.ts
72.72% <72.72%> (ø)

...-simulator/src/schema/directives/directive-base.ts

.../amplify-appsync-simulator/src/mqtt-server/util.ts

...y-appsync-simulator/src/schema/directives/index.ts

...mplify-appsync-simulator/src/mqtt-server/server.ts

...c-simulator/src/schema/directives/aws-subscribe.ts

...ackages/amplify-appsync-simulator/src/utils/log.ts
0% <0%> (ø)

...ages/amplify-appsync-simulator/src/schema/index.ts
0% <0%> (ø)

...simulator/src/data-loader/dynamo-db/utils/index.ts
0% <0%> (ø)

... and 7 more

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 1670925...717201d. Read the comment docs.


[material-ui][Rating] Error with decimal numbers

Steps to reproduce
import { Rating } from '@mui/material';

It looks like it happened because of
if (precision < 1) {         const items = Array.from(new Array(1 / precision));
Current behavior
Rating Component doesn't work with the decimal precision values such as 0.4, 0.3, 0.6
Expected behavior
No response
Context

@mui/material 5.14.17

Your environment

npx @mui/envinfo
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

Search keywords: rating component decimal numbers error

According to https://mui.com/material-ui/api/rating/#Rating-prop-precision documentation does not contain any restrictions about decimal number usage

It doesn't look like this bug report has enough info for one of us to reproduce it.
Please provide a CodeSandbox (https://material-ui.com/r/issue-template-latest), a link to a repository on GitHub, or provide a minimal code example that reproduces the problem.
Here are some tips for providing a minimal example: https://stackoverflow.com/help/mcve.

@ZeeshanTamboli Sorry for the delay. Here the link to the codesandbox example
https://codesandbox.io/p/sandbox/blue-sun-3d4ht7?file=%2Fsrc%2FApp.tsx%3A17%2C22

@ruslanvyaznikov This looks like a docs issue to me, instead of

The rating can display any float number with the value prop. Use the precision prop to define the minimum increment value change allowed.

we could say something like "it supports half-star ratings if you pass precision={0.5}".
I'm quite sure the (visual) design of the component does not intend to support "0.3 of a star" 😅

@mj12albert It will be very nice if this info is added to the documentation. Sometimes it can be difficult to explain to designers)

It seems like a bug, and I've identified a similar issue in #16939.
The precision prop is not limited to only 1 or 0.5. It supports other decimal values as well. For instance, if you set precision to 0.2, it functions correctly, as demonstrated here: CodeSandbox. In this example, the rating item divides into 5 parts during hover due to a 0.2 precision setting (0.2 * 5 = 1 item).
Similarly, precision values like 0.3 and other decimals should work. For instance, with a precision of 0.3, it should divide into 3 parts and round to 1 (0.3 * 3 = 0.9, rounded to 1).


License Scan and Findings

kubernetes-2024-01-03.zip/node-problem-detector/vendor/github.com/shoenig/go-m1cpu/LICENSE
kubernetes-2024-01-03.zip/node-problem-detector/vendor/github.com/shoenig/go-m1cpu/README.md

This code is under the MPL-2.0 license which is weak copyleft. Be sure that it is used only as dynamic libraries, to be safe if it's not required remove it from your repo.
Like https://github.com/kubernetes/kubernetes/blob/master/hack/unwanted-dependencies.json

Per Bob Killen @mrbobbytables
This has been granted a license exception approval:
cncf-exceptions-2023-08-31.spdx
github.com/shoenig/go-m1cpu - PackageComment: not auto-allowlist because: Non-allowlist license(s); approved by GB exception 2023-08-31

Thanks.


Update dependency mkdocs_macros_plugin to v0.6.0

This PR contains the following updates:

Package
Type
Update
Change

mkdocs_macros_plugin
extra
minor
==0.5.12 -> ==0.6.0

Release Notes

fralau/mkdocs_macros_plugin
v0.6.0
Compare Source

Fixed: documentation (for readthedocs) now contains proper
link to edit uri on github
Fixed: broken link in webdoc/docs/pages.md
Bump version to 0.6.0, to acknowledge the breaking change in 0.5.10

Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.067%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
848

Relevant Lines:
892

💛  - Coveralls


test

What are you doing there? It looks like some toolbar updates... Though you dont need to do those, since the toolbar will be replaced by some tkinter.Menu(s). But if you think this is better, i recommend redoing the whole thing, because a lot has changed since you started that branch

i know, therefore i tried to open this pr to resolve conflicts, but its not working, restarting...


General question

Hi, and thanks for making this code available!
General question, how are the segments chosen by the model?
My use case is human segmentation with a complex background.
Which of your models would be most suitable?
Would this work directly, or would passing a box be better?
Thanks!

The portrait or general should be the best ones. You can use my HF demo to make a comparison: https://huggingface.co/spaces/ZhengPeng7/BiRefNet_demo.
If the scene is very complex and the human might not be the most dominant/salient subject, passing a box may be better to eliminate the distractors.


Slew rate (drive strength) control doesn't work (IDFGH-5167)

Module or chip used:  ESP32-WROOM-32E- IDF version: SDK Version 3.40200.210118
Operating System:     Windows
Using an IDE?: PlatformIO
Power Supply:    external 3.3V

Problem Description
GPIO slew rate control with function "gpio_set_drive_capability" doesn't work.
Expected Behavior
Slew rate of the falling and rising edge for GPIO pulse can be changed and depends on configuration provided in gpio_set_drive_capability API call.
Actual Behavior
Independently from GPIO_DRIVE_CAP_x value configured for the pin, its slew rate (both falling and rising edge) is always the same - about 260ns (which is unusually long, max frequency of the pin driving is about 4Mhz).
Steps to reproduce

Flash the provided program.
Connect oscilloscope with probe set to x10 mode and measure duration of a rising edge for the pulses on pin12.

// If possible, attach a picture of your setup/wiring here.

Code to reproduce this issue
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "sdkconfig.h"
#define BUTTON_PIN  (12)
void app_main() {
gpio_reset_pin(BUTTON_PIN);
/* Set the GPIO as a push/pull output */
gpio_set_drive_capability((gpio_num_t)BUTTON_PIN, GPIO_DRIVE_CAP_3);
gpio_set_direction(BUTTON_PIN, GPIO_MODE_OUTPUT);
gpio_set_drive_capability((gpio_num_t)BUTTON_PIN, GPIO_DRIVE_CAP_3);
printf("SDK Version %s\n", esp_get_idf_version());
while (1) {
gpio_set_level(BUTTON_PIN, 0);
gpio_set_drive_capability((gpio_num_t)BUTTON_PIN, GPIO_DRIVE_CAP_3);
gpio_set_level(BUTTON_PIN, 1);
vTaskDelay(1);
}
}
Debug Logs
Other items if possible
esp_idf_speed.zip

Tested also on "LILYGO® TTGO T7 V1.3 MINI 32" development board with the same result. But thanks to the exposed SPI flash I was able to measure signals on the flash chip - these are very fast (slope duration about 4ns) exactly as they should be. So I think HW is ok, but firmware (ESP-IDF) causes some problems.

it was an issue of the measurement equipment, not of the esp32


Wiki for how to use triggers page

Documentation Scope

[ ] Explain Github rate limit and how they can configure multiple tokens for acceleration
[ ] Suggest some small repos for users to try out

Added in the Github section of this wiki. https://github.com/merico-dev/lake/wiki/How-to-use-the-triggers-page


Switch to faster LALR parser

Reduces test time from 2m 30s to just 12s on my machine.

This is great. Thanks for making this improvement.


Go-client 0.8.0 has a bug with pagination

Hello. As far as I see you use 0.8.0 go-client. It has a problem with pagination. If you have over 50 projects then dtapac won't process other X projects. It was fixed in 0.9.0.

Thanks for the heads up @workingoctopus! This should be resolved in v0.9.0 of dtapac: https://github.com/nscuro/dtapac/releases/tag/v0.9.0


Distribution

Please create an AppImage package for Linux PC.

Do not open duplicate issues. It is your duty to make sure your issue hasn't already been reported.
Duplicate of #1


Personal-backend manager

Is the personal-backend-mannager included in the docker image ?
If so which port does it use ?
If not - would it be an idea to include it ?
Right now I am just testing to add a personal-backend on a homeassistant as an add-on - and instead of making a new docker i started with the alreddy made docker :)

good idea, send a PR updating the Dockerfile :)

I will try - I am not that great docker user, but Ill try anyway :)


Is there equivalent to "my prompt/controlnet is more important"?

As in webui. How do we do it in comfyUI?

The equivalent of  My prompt is more important  is Scaled Soft ControlNet in https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet/. _ControlNet is more important isn't implemented as it does some wacky stuffs, according to the author of that custom node


Manage an existing VL: Modify the kernel list, extensions

Manage an existing VL: Modify the kernel list, extensions

Removed due to inactivity and not clear explanations


Improve login flow & state management for headless implementations which run server-to-server calls.

Today this repo uses a "cookie proxying" method for managing customer login state, which is not how the GraphQL Storefront API was intended to be used, and is causing a number of problems.
The GraphQL Storefront API has 2 different types of authentication, intended for different contexts:

"Normal" GraphQL API tokens intended for requests being run directly from a browser (either on our first-party stencil storefront, or from cross-origin hostnames**)
"Customer Impersonation" tokens intended for server-to-server requests from a trusted API consumer

The "normal" tokens rely on cookies being set on the browser (as a result of the login mutation, which returns Set-Cookie) which carry customer state automatically. These cookies are intended to be set on BC's hostname in order to work, and this repo is instead proxying them and setting them on the headless storefront's host, and then proxying them back on every request.
This has the advantage of not requiring separate session management on a headless connector (it's rather "stateless"), but it is not how we intended for this API to be used so it's causing a number of bugs, such as sessions are invalidated every time someone is redirected to the checkout.
How do we fix it?
I'd recommend ripping out the cookie-based approach and replacing it with an approach based on the Customer Impersonation tokens, as these requests are ultimately run from the server side.
The new flow should look something like:

Generate a Customer Impersonation token which should be stored in the headless app's environment, securely (it is sensitive, unlike normal GQL tokens)
When you process a login mutation, request the customer ID in the response like so:

mutation Login($email: String!, $pass: String!) {
  login(email: $email, password: $pass) {
    result # was the login successful?
    customer {
      entityId # id of the customer if login was successful
    }
  }
}

Assuming successful login, store the customer ID in state within the headless app, in its own session. For example, in next.js, we might use one of these providers to store a secure session. A bare-minimum approach might involve setting a signed JWT cookie with a secret which the headless connector can use for verification on each request
On future API requests for the logged-in user, send the X-Bc-Customer-Id header in order to get API responses appropriate for that customer (for example, requests for their customer object, or making sure they get appropriate catalog pricing & product availability)
If the user performs some sort of "logout" action, simply invalidate their session and stop sending the customer ID header.

This will mean that this library cannot be used directly from a browser, or it will need separate strategies for in-browser use vs server-side use.
**Our cookie-based strategy is under threat from browser changes which are becoming increasing hostile to 3rd-party cookies. We are working on an alternative solution to provide a better customer login experience that should work the same in all contexts; more on that soon!

https://developer.bigcommerce.com/api-reference/store-management/tokens/customer-impersonation-token/createtokenwithcustomerimpersonation

@bookernath As I'm looking at this and we were discussing in a sync with ModernTribe, I realized I'm not sure whether this is backwards compatible. When I look at the suggested solution, particularly "Generate a Customer Impersonation token which should be stored in the headless app's environment, securely (it is sensitive, unlike normal GQL tokens)" ... this makes it seem like it will not be backwards compatible. The way I'm interpreting and understanding that is that any headless solution using this repo will need to do some additional work for this new login method for it to work.
Let me know if this is actually the case, so we can adjust our deployment and do any GTM activities needed for this. Thank you!
cc: @jorgemasta

@bookernath As I'm looking at this and we were discussing in a sync with ModernTribe, I realized I'm not sure whether this is backwards compatible. When I look at the suggested solution, particularly "Generate a Customer Impersonation token which should be stored in the headless app's environment, securely (it is sensitive, unlike normal GQL tokens)" ... this makes it seem like it will not be backwards compatible. The way I'm interpreting and understanding that is that any headless solution using this repo will need to do some additional work for this new login method for it to work.
Let me know if this is actually the case, so we can adjust our deployment and do any GTM activities needed for this. Thank you!
cc: @jorgemasta @orinoco

From my point of view, it certainly introduces breaking changes. That is why it should be included in a future v2 that should be properly defined.

@jorgemasta Does it absolutely need to be a v2 or could we do it via a GTM? Something like such:

Add new function / method with the better login functionality and call it something different (so we can make this available ASAP, which is desired due to shopper issues on storefronts and developer feedback / requests)
Add "sunset" label / code comment to the existing function and make a note in READ.me
BC publishes changelog and sunset notice on developer documentation with date set for deprecation (maybe use some other developer tooling to publish notice of sunset / deprecation - I've seen things like this in build logs and such.)
eventually deprecate and remove the old feature (or maybe at this point release a v2 that we are only maintaining)

Thoughts?

Yes, that's a great idea @amckemie.
My fear is to make it somewhat confusing for other developers, but the need outweighs that fear in this case.

For the purposes of dev docs, when this is completed, we'll need to know the name of the subset function and the new function. Also will need to update the Readme with the info

+1 for this

Will we be able to get customer cart using this impersonation token with customer-Id header ?

This is the long term solution: https://developer.bigcommerce.com/docs/start/authentication/graphql-storefront#customer-access-tokens


View updated Samples section with titles, descriptions, links

I WANT to discover samples for a specific project
SO I can quickly use examples of specific topics

GIVEN I am on the overview, learn, or updates page
WHEN I click on the samples page
THEN I see samples with a title, short description and a link to reach them
GIVEN I am on the samples page
WHEN I click on sample
THEN the sample example opens on a new tab

We've redesigned the website completely and this issue does not apply anymore.


Package Not compatible with  symfony v4.0

Here, is the log
Problem 1
- Conclusion: don't install sudiptpa/paypal-ipn 2.0.0
- Conclusion: remove symfony/event-dispatcher v4.0.3
- Installation request for sudiptpa/paypal-ipn  ~2.0 -> satisfiable by sudiptpa/paypal-ipn[2.0.0, 2.0.x-dev].

- Can only install one of: symfony/event-dispatcher[2.8.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[3.0.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[3.1.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[3.2.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[3.3.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[3.4.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.14, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.15, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.16, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.17, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.18, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.19, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.20, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.21, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.22, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.23, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.24, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.25, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.26, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.27, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.28, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.29, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.30, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.31, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.32, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.33, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.34, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.8.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.0.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.0-RC1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.1.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.0-RC1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.0-RC2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.14, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.2.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.0-RC1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.14, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.15, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.16, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.3.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0-BETA2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0-BETA3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0-BETA4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0-RC1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.0-RC2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v3.4.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.0.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.0.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.0.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.0.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.0.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.1.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.2.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.3.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.4.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.5.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.6.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[2.7.x-dev, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.14, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.15, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.16, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.17, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.18, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.19, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.20, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.21, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.22, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.23, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.24, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.25, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.0.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.1.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.2.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.14, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.15, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.16, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.17, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.18, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.19, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.20, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.21, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.22, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.23, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.24, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.25, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.26, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.27, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.28, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.29, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.30, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.31, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.32, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.33, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.34, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.35, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.36, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.37, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.38, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.39, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.40, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.41, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.42, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.3.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.0-BETA2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.0-RC1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.4.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.0-BETA2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.0-RC1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.5.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.0-BETA2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.6.9, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.0, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.0-BETA1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.0-BETA2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.1, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.10, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.11, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.12, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.13, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.14, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.15, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.16, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.17, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.18, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.19, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.2, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.20, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.21, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.22, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.23, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.24, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.25, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.26, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.27, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.28, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.29, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.3, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.30, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.31, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.32, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.33, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.34, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.35, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.36, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.37, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.38, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.39, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.4, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.40, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.41, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.5, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.6, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.7, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.8, v4.0.3].
- Can only install one of: symfony/event-dispatcher[v2.7.9, v4.0.3].
- Installation request for symfony/event-dispatcher (locked at v4.0.3) -> satisfiable by symfony/event-dispatcher[v4.0.3].

@baneetsharma Added support for symfony ~4.0


Run command(s) on start

Current dependencies on/for this PR:

main

PR #70

PR #71   👈

This comment was auto-generated by Graphite.


Only allow actual member functions on member invokers

Coverage remained the same at 100.0% when pulling c3ee38bf657b527470a875bdb1cf91968aed72ed on ingeno:feature/add-invoker-type-checking into 00b2736c885eff8e5648ada10ec5e21d3747fe2f on talyssonoc:master.

Is this PR likely to be merged? I'm open for discussions if there is something I missed.
Thanks!

Trying to release but run into some logistical issues with Travis. This might take a while. OSS isn't as fun as it once was. 😞

Released as v4.0 since package updates required bumping minimum Node version. Thanks for the PR


Make code more portable

I suggest to use GNUC Vector Extensions, which are avaliable for every architecture and are supported by both clang and gcc.

It will also satisfy #23


pagination is not technically accurate since we get a set # of results from backend

@acoffman might be able to explain this better but essentially, depending on how many genes a user searches, they currently will not be getting all of the results since the backend only returns a certain number. we will need to perform calculations on the frontend to show the total number of pages and show the correct results for those pages

Yeah, happy to explain! So this endpoint is paginated over Genes. The query in the codebase is as follows:
    genes(names: $names) {
      nodes {
        name
        conceptId
        interactions {
          drug {
            name
            approved
            drugApprovalRatings {
              rating
            }
            drugAttributes {
              name
              value
            }
          }
          gene {
            name
          }
          interactionScore
          interactionTypes {
            type
            directionality
          }
          publications {
            pmid
          }
          sources {
            id
            fullName
          }
        }
      }
    }

I believe the page size is 25 by default. So if we have more than 25 search terms, this will break into multiple pages. This can be seen/tracked by also requesting pageInfo in the query:
    genes(names: $names) {
     pageInfo {
      endCursor  #Cursor for the last item in the response. You can pass this to "after" to get the next page.
      hasNextPage #Is there a page after this one?
     }
      nodes {
        name
        conceptId
        interactions {
          drug {
            name
            approved
            drugApprovalRatings {
              rating
            }
            drugAttributes {
              name
              value
            }
          }
          gene {
            name
          }
          interactionScore
          interactionTypes {
            type
            directionality
          }
          publications {
            pmid
          }
          sources {
            id
            fullName
          }
        }
      }
    }

The frontend right now is doing client side pagination over interactions. So if we get 5 genes back, and each has 20 interactions then the client side will paginate the 100 records, but it is unaware of any additional pages of genes and how many interactions they might have.
There are a couple ways we could tackle this. One would be to just have a facebook/instagram style "load more" button rather than trying to decide up front how many pages of interactions there might be. Another option might be switching this to use an interaction query rather than a genes one (and adding a gene id filter to the interactions query). That way the server side pagination would be over interactions instead of genes and would line up with what the client is trying to do pagination-wise.

Related, from Malachi:

Still wish the results came back ordered by score.


update changelog date and readme links

After running Prepare-Release script
Update readme links
this PR follows: https://github.com/Azure/azure-sdk-for-python/pull/29339

API change check
API changes are not detected in this pull request.


Ability to set default zoom to be non-100% globally

Is your feature request related to a problem? Please describe.
Running my computer at 4K, pages are extremely small at 100% zoom. However I do not set my computer's zoom at the changed size because I like taking advantage of the extra space for some programs. However for the browser it would be incredibly useful if I could set the zoom (as the default for app pages and origins) to be 150%, 200%, etc
Describe the solution you'd like
A zoom option in beaker://settings/#general that either is able to set the default zoom at a non-100% value, and/or have it be an independent modifier that would allow making 100% equivalent to 200% etc
Describe alternatives you've considered
Firefox has an about:config option to obtain a similar result named layout.css.devPixelsPerPx

I'll look into this. Shouldn't be too difficult.


[analyzer] Function.call does not get the type Function

Consider the following program:
typedef Exactly<X> = X Function(X);

extension StaticTypeHelper<X> on X {
  X expectStaticType<Y extends Exactly<X>>() => this;
}

void main() {
  Function d = print;
  var f = d.call;
  f.expectStaticType<Exactly<Function>>(); // No error (analyzer and CFE agree).
  int i = f; // No error according to the analyzer.
}

The CFE reports a compile-time error on the initializing expression of the local variable i, but the analyzer accepts the declaration of i with no diagnostic messages (seen in DartPad based on Dart SDK 3.3.0-273.0.dev).
When the insertion point in DartPad is at the declaration of f, the Documentation pane indicates that the type of f is InvalidType (which is probably the reason why no further errors are reported, no matter how f is used).
However, the static type of f should have been Function: https://github.com/dart-lang/language/blob/daf5cbd39e5b23bf7836dfa0926d0cfe4ae663b9/specification/dartLangSpec.tex#L14799.

The soundness issue comes up because there is no compile-time error in the given example program according to the analyzer, but if we actually allow such a program to run (that is, if the CFE also hadn't reported any errors) then we would create a situation where a variable of type int refers to an object of type void Function(Object?), which is a soundness violation.

@scheglov

https://dart-review.googlesource.com/c/sdk/+/345364


generic request function is not correct in TypeScript

Hey,
the request function request in the generated typescript files doesn't seem to be right:
export function request<T>(op: api.OperationInfo, parameters?: api.OperationParamGroups, attempt = 1): Promise<T> {
	if (!attempt) attempt = 1;
	return acquireRights(op, spec, options)
		.then(rights => {
			parameters = parameters || {}
			const baseUrl = getBaseUrl(spec)
			let reqInfo = { parameters, baseUrl }
			if (options.processRequest) {
				reqInfo = options.processRequest(op, reqInfo)
			}
			const req = buildRequest(op, reqInfo.baseUrl, reqInfo.parameters, rights)
			return makeFetchRequest(req)
				.then(res => processResponse(req, <any>res, attempt, options), e => processError(req, e))
				.then(outcome => outcome.retry ? request(op, parameters, attempt + 1) : outcome.res)
		})
}

acquireRights returns Promise<api.OperationRights> but request<T> is of type Promise<T>.

@nklap Are you getting issues with this typing? Been running this for a while and all seems to be fine. Happy to improve typings if you have suggestions though 👍

Fixed by https://github.com/mikestead/openapi-client/pull/9 under v0.9.2


no defaut livereload port when running from code

When running server from code there's no default port setting for livereload. It is in the defaults but not applied at runtime.

fixed in 0.1.6


Improve the portability of termios handling.

Previously this was using the syscall package.  All of the helper functions that were likely missing at the time this was written are now available under the golang.org/x/sys/unix package.
Consumers of this library will need to add golang.org/x/sys/unix as a dependency.
Hat-tip to golang.org/x/crypto/ssh/terminal for having most of the necessary bits already stubbed out and available for easy reuse.  Similarly, this code should be much more future-proof given its reliance on golang.org/x/sys/unix.  I almost went down the route of using x/crypto/ssh/terminal but it doesn't export its embedded unix.Termios struct.
This PR is required in order to prevent problems with relocatable symbols:
# github.com/ovh/venom/cli/venom
github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6: call to external function
github.com/ovh/venom/vendor/gopkg.in/cheggaaa/pb%!e(string=github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6)v1.lockEcho: relocation target %!s(MISSI
NG) not defined
github.com/ovh/venom/vendor/gopkg.in/cheggaaa/pb%!e(string=github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6)v1.lockEcho: relocation target %!s(MISSI
NG) not defined
github.com/ovh/venom/vendor/gopkg.in/cheggaaa/pb%!e(string=github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6)v1.unlockEcho: relocation target %!s(MIS
SING) not defined
github.com/ovh/venom/vendor/gopkg.in/cheggaaa/pb%!e(string=github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6)v1.lockEcho: undefined: %!q(MISSING)
github.com/ovh/venom/vendor/gopkg.in/cheggaaa/pb%!e(string=github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6)v1.lockEcho: undefined: %!q(MISSING)
github.com/ovh/venom/vendor/gopkg.in/cheggaaa/pb%!e(string=github.com/ovh/venom/vendor/golang.org/x/sys/unix.Syscall6)v1.unlockEcho: undefined: %!q(MISSING)

It looks like one of the travis builds is stuck, but the first one passed.

Thank you!


Deriving bracket fromMonadThrow

📖 Documentation
How would we derive bracket from MonadThrow?
I can't see a way to structurally derive it.
The docs say it can be done for TaskEither, but the implementation doesn't use it.
Only thing I'd say I could've overlooked is using ap, but it's basically just chain, right?
export interface BracketT<F> {
  <S, A, B>(
    aquire: Lazy<HKT<F, S>>,
    release: R.Reader<S, (fa: HKT<F, A>) => HKT<F, B>>
  ): (use: R.Reader<S, HKT<F, A>>) => HKT<F, B>;
}

export interface BracketT2<F extends URIS2> {
  <S, E, A, B>(
    aquire: Lazy<Kind2<F, E, S>>,
    release: R.Reader<S, (fa: Kind2<F, E, A>) => Kind2<F, E, B>>
  ): (use: R.Reader<S, Kind2<F, E, A>>) => Kind2<F, E, B>;
}

export function bracketT<F>(F: MonadThrow<F>): BracketT<F>;
export function bracketT<F extends URIS2>(F: MonadThrow2<F>): BracketT2<F>;

export function bracketT<F>(F: MonadThrow<F>): BracketT<F> {
  // implementation...
}

bracket can be derived from MonadError, here's a PureScript implementation

So fp-ts MonadThrow is equivelent to purescripts MonadThrow, which supports throwing. We don't have a MonadCatch, which supports catching.
In Either's bracket, it looks like this has been done with isLeft and isRight.
Should we add MonadCatch as a typeclass? Means we can derive bracket and other try combinators.

Should we add MonadError as a typeclass? Means we can derive bracket and other try combinators.

We could define bracket as an helper in EitherT instead


Several updates to MAINTAINERS file

Move docs approval section
Sort names alphabetically
Rename status labels to stay in sync with repo
Add a new maintainer category entirely composed of @thaJeztah (:tada:)

but other than LGTM yay curators

LGTM if we can call the category "thaJetzah"

lol hahah

LGTM if we can call the category "thaJetzah"

LOLz.
One small nit, apart from that, LGTM
Thanks all! ❤

Updated!

LGTM :smiley:

Yay! 💃

@thaJeztah

congrats @thaJeztah

I'm fully aware of that! Will give my 100% to try and live up to that!
Thanks, @ahmetalpbalkan !


Functionality to check account if can be put in front

Created a function canPutInFrontOf in bags.ts to check if a given account can be put in front of another and return that account. Practically what doPutInFrontOf does, without the dry run.
Added the necessary command in-front and handler to run it from CLI. The target account is a mandatory option.
Added check in needsPutInFrontOf to check if the target account is already in the best possible position

is it normal there there is a gzillion changes in the yarn lock file? :D

is it normal there there is a gzillion changes in the yarn lock file? :D

No idea tbh 🙃


Hyper workflow automation (scripting)

[x] I am on the latest Hyper.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

Feature request
Everyday I get to the office, I open 2 terminal tabs and 2 panes each, 1 tab dedicated to 2 backend services and the other dedicated to 2 frontend tasks.
I think it'd be very cool if I could launch Hyper and just Cmd + P to open "Command Palette" and just fuzzy type "wrk start" and hit Enter on first autocomplete item called "Workflows: Start <workflow_name>"
The workflow would open 2 tabs w/ 2 panes each and run the commands that otherwise I would manually, all in a blink of an eye, and I'm ready-to-go for the day.
Proposal
Hyper would expose simple API to Workflow scripts, example of above scenario:
$ cat ~/.hyper-workflows/<workflow_name>.js

import * as hyper from 'hyper'

const backendPane1 = hyper.createTab({ /* ...opts */ });
const backendPane2 = backendPane1.splitHorizontally();

const frontendPane1 = hyper.createTab({ /* ...opts */ });
const frontendPane2 = frontendPane1.splitHorizontally();

backendPane1.exec('cd ~/Projects/acme/backend && bundle exec rails s');
backendPane2.exec('cd ~/Projects/acme/backend && bundle exec rake jobs:work');

fronendPane1.exec('cd ~/Projects/acme/dashboard && yarn start');
frontendPane2.exec('cd ~/Projects/acme/app && yarn start');

backendPane2.focus();

Try hyperinator.


Fallback if no internet

Could be cool with some fallbacks on local macine / machine without internet.
Currently the whole app crashes with a:
 throw new ChainProviderException($exceptions);

Well you can catch the exception and decide what to do with it. That said, if you use an Http adapter Swap expects you to have an internet connection.

Curious here. Would it be possible to make your own adapter to fetch from ie a database? You would then be able to catch the results in a database and refresh at an interval.
//Mattias
Sendt fra min mobil
Mattias Siø Fjellvang
CTO - Athliit
(+45) 26 78 98 88

Den 03/09/2015 kl. 13.14 skrev Florian Voutzinos<EMAIL_ADDRESS>Well you can catch the exception and decide what to do with it. That said, if you use an Http adapter Swap expects you to have an internet connection.
—
Reply to this email directly or view it on GitHub.

Even though my con i used is quite fast something i got ChainProviderException when i like to exchange my money

you can catch the exception ChainProviderException using:
try{
...
} catch (ChainProviderException $e){
...
}
using in the head of class
use Swap\Exception\ChainProviderException;


Conda-forge version of slycot 0.3.3 generates errors

When installing slycot from conda-forge (v0.3.3), I get the following error when running python setup.py test:
FAIL: testMinrealBrute (control.tests.minreal_test.TestMinreal)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/murray/Dropbox/macosx/src/python-control/murrayrm/control/tests/minreal_test.py", line 62, in testMinrealBrute
    raise e
  File "/Users/murray/Dropbox/macosx/src/python-control/murrayrm/control/tests/minreal_test.py", line 57, in testMinrealBrute
    ht1.den[0][0], ht2.den[0][0])
  File "/Users/murray/Dropbox/macosx/src/python-control/murrayrm/control/tests/minreal_test.py", line 35, in assert_numden_almost_equal
    np.testing.assert_array_almost_equal(n1, n2)
  File "/Users/murray/anaconda/envs/python3.6-oldslycot/lib/python3.6/site-packages/numpy/testing/nose_tools/utils.py", line 963, in assert_array_almost_equal
    precision=decimal)
  File "/Users/murray/anaconda/envs/python3.6-oldslycot/lib/python3.6/site-packages/numpy/testing/nose_tools/utils.py", line 717, in assert_array_compare
    raise AssertionError(msg)
AssertionError:
Arrays are not almost equal to 6 decimals

(shapes (3,), (4,) mismatch)
 x: array([ -1.33214 , -10.368378, -13.703545])
 y: array([ -1.33214 , -13.297947, -36.505109, -30.136079])

This error does not occur when using pip version of slycot.  Need to understand what is going on before releasing 0.8.0.
Note: conda-forge version of slycot uses OpenBLAS, pip version uses lapack (I think).

This error occurs with conda forge's slycot 0.2.0, 0.3.0, and 0.3.3.

How precise is this test? I can imagine minreal being finicky because of floating point operations. How robust is it to different platforms, architectures, and blas/lapack implementations?

Fixed in #220.


Add Colegio Vivas

https://colegiovivas.com
https://colegiovivas.com/web2/content/ciclo-superior-de-desarrollo-de-aplicaciones-multiplataforma

@futbolin colegiovivas.txt I am sorry, I have to close the request without merging, because you made a mistake in a request and did not specify any filepath. Please ensure that you are familiar with this repository rules located at the bottom of this page and make a new correct request. Thank you for your understanding!


How to support embedded document for example List  in an object which both implement Mappable?

In my project, a List<MySubObject> is embedded in an parent object ComplexBean which both implement Mappable, but app crashes when deserialize ComplexBean.
The sub-object is as below:
data class Tuple(var name: String? = null,var age: Int? = null): Mappable
{
    override fun write(mapper: NitriteMapper?) = Document().apply {
        Log.d("Nitrite","Tuple.write: " + this@Tuple.toString())
        name?.let { put("name",it) }
        age?.let { put("name",it) }
    }

    override fun read(mapper: NitriteMapper?, document: Document?) {
        document?.run {
            name = get("name") as String?
            age = get("age") as Int?
        }
        Log.d("Nitrite","Tuple.read, get "+this.toString())
    }
}

The parent object ComplexBean Kotin code:
data class ComplexBean(var myid: String, var level: Int? = null, var addr: Address? = null
         , var list: List<Tuple>? = null) : Mappable
{
    override fun write(mapper: NitriteMapper?) = Document().apply {
        Log.d("Nitrite","ComplexBean.write: "+ this@ComplexBean.toString())
        put("myid",myid)
        level?.let { put("level",it) }
        addr?.let { put("addr",it.write(mapper)) }
        list?.let { put("list",it)  }
    }

    override fun read(mapper: NitriteMapper?, document: Document?) {
        document?.run {
            myid = get("myid") as String
            addr= get("addr")?.run {  Address().apply { this.read(mapper,this@run as Document) }}
            level = get("level") as Int?
            list = get("list") as List<Tuple>?
        }
        Log.d("Nitrite","ComplexBean.read, get "+ this.toString())
    }
}

As above, in ComplexBean, I added put call in write method for list:
list?.let {put("list",it)  }

and added get in read method for list:
 list = get("list") as List<Tuple>?

when query ComplexBean after add it in MainActivity:
   private fun readComplexBean(){
       val str = repository2!!.find().toList().map { it.toString() }.joinToString("; ")
        Log.d("Nitrite",str)
        Toast.makeText(this,str,Toast.LENGTH_LONG).show()
    }

the app crashes and complaints:

org.dizitart.no2.exceptions.NitriteIOException: NO2.2004: store is closed
at org.dizitart.no2.internals.DefaultNitriteCollection.checkOpened(DefaultNitriteCollection.java:394)
at org.dizitart.no2.internals.DefaultNitriteCollection.find(DefaultNitriteCollection.java:209)
at org.dizitart.no2.objects.DefaultObjectRepository.find(DefaultObjectRepository.java:182)

The another embedded object Address in ComplexBean is ok.
Is my usage wrong? what's the correct how-to?
Thanks in advance.
The test complete code is from your official example but written in Kotlin, see  https://github.com/rwsbillyang/NitriteDemo

Sorry for late response. Your example code is not in working condition. It is not buildable as is and I could not spend more time to work on it.
I have took out the relevant code as follows
fun main() {
    val complexBean = ComplexBean("anidotnet", 1, Address("some street", "000000"), listOf(Tuple("Anindya Chatterjee", 0)))
    val complexBean2 = ComplexBean("anidotnet", 2, Address("some street", "000000"), listOf(Tuple("Anindya Chatterjee", 0)))

    val db = nitrite {
        path = "/tmp/kno2/test.db"
    }

    val repo = db.getRepository(ComplexBean::class.java)
    repo.insert(complexBean)
    repo.insert(complexBean2)

    println(repo.find().toList().joinToString("; ") { it.toString() })
}

data class Tuple(var name: String? = null, var age: Int? = null) : Mappable {
    override fun write(mapper: NitriteMapper?) = Document().apply {
        println("Tuple.write: " + this@Tuple.toString())
        name?.let { put("name", it) }
        age?.let { put("name", it) }
    }

    override fun read(mapper: NitriteMapper?, document: Document?) {
        document?.run {
            name = get("name") as String?
            age = get("age") as Int?
        }
        println("Tuple.read, get $this")
    }
}

data class ComplexBean(
    var myid: String, var level: Int? = null, var addr: Address? = null
    , var list: List<Tuple>? = null
) : Mappable {
    override fun write(mapper: NitriteMapper?) = Document().apply {
        println("ComplexBean.write: " + this@ComplexBean.toString())
        put("myid", myid)
        level?.let { put("level", it) }
        addr?.let { put("addr", it.write(mapper)) }
        list?.let { put("list", it) }
    }

    override fun read(mapper: NitriteMapper?, document: Document?) {
        document?.run {
            myid = get("myid") as String
            addr = get("addr")?.run { Address().apply { this.read(mapper, this@run as Document) } }
            level = get("level") as Int?
            list = get("list") as List<Tuple>?
        }
        println("ComplexBean.read, get $this")
    }
}

data class Address(var street: String? = null, var zip: String? = null) : Mappable {
    override fun write(mapper: NitriteMapper?) = Document().apply {
        street?.let { put("street", it) }
        zip?.let { put("zip", it) }
    }

    override fun read(mapper: NitriteMapper?, document: Document?) {

        document?.run {
            street = get("street") as String?
            zip = get("zip") as String?
        }
    }
}

& gradle.build as follows:
plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.31'
}

group 'org.dizitart.demo'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation('org.dizitart:potassium-nitrite:3.2.0')
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

I could not reproduce the issue you are facing. Here is the output I am getting
ComplexBean.write: ComplexBean(myid=anidotnet, level=1, addr=Address(street=some street, zip=000000), list=[Tuple(name=Anindya Chatterjee, age=0)])
ComplexBean.write: ComplexBean(myid=anidotnet, level=2, addr=Address(street=some street, zip=000000), list=[Tuple(name=Anindya Chatterjee, age=0)])
ComplexBean.read, get ComplexBean(myid=anidotnet, level=1, addr=Address(street=some street, zip=000000), list=[Tuple(name=Anindya Chatterjee, age=0)])
ComplexBean.read, get ComplexBean(myid=anidotnet, level=2, addr=Address(street=some street, zip=000000), list=[Tuple(name=Anindya Chatterjee, age=0)])
ComplexBean(myid=anidotnet, level=1, addr=Address(street=some street, zip=000000), list=[Tuple(name=Anindya Chatterjee, age=0)]); ComplexBean(myid=anidotnet, level=2, addr=Address(street=some street, zip=000000), list=[Tuple(name=Anindya Chatterjee, age=0)])

I guess, the issue is not with nitrite. Due to some other error in your app the nitrite db is getting closed and that's why you are getting this message. So I would say, the way you are implementing Mappable in your object is not wrong and it is not the source of this error.

According to the error stacktrace you mentioned,

org.dizitart.no2.exceptions.NitriteIOException: NO2.2004: store is closed
at org.dizitart.no2.internals.DefaultNitriteCollection.checkOpened(DefaultNitriteCollection.java:394)
at org.dizitart.no2.internals.DefaultNitriteCollection.find(DefaultNitriteCollection.java:209)
at org.dizitart.no2.objects.DefaultObjectRepository.find(DefaultObjectRepository.java:182)

the store is already closed when you call find method. There is a check in place to see if the store is opened before find operation - https://github.com/dizitart/nitrite-database/blob/b2830347b68f023478a2ac9d2c6b80f6d15442a6/nitrite/src/main/java/org/dizitart/no2/internals/DefaultNitriteCollection.java#L209

@anidotnet, thank you very much for your detailed reply. The difference of the demo code between us is the app platform. I used Android, maybe the issue is android platform related or my app related.
If I have time, I'll test it in your official example code in java.


config and doc changes for a more robust backend setup

I got the frontend and backend working on my WSL Ubuntu setup on Windows.  I found some small areas for improvement in configuration and documentation as I worked through some setup issues with Brandon.

@zigouras  can you make the change requested? Then I think this will be all set

this is awesome, thank you so much @zigouras
question- did you have any trouble with the CORS setup on the bucket? should we add some documentation about that?

It wasn't CORS after all, it was simply the permissions on my bucket in GCP.  I had to let the 'allUsers' principal have read access to the bucket.  This makes it publicly available on the web the same as the prod bucket.


Update index.mdx

What is it?

[ ] Feature / enhancement
[ ] Bug
[x] Docs / tests

Description
fix: useResource$()-link typo in components/overview, remove duplicate ink
Checklist:

[x] My code follows the developer guidelines of this project
[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

close #3618


make service validation consistent with host validation

Currently service's parameters check_timeout, check_interval are allow to integers while the same parameters in host declarations requires units.
I'd happy to fix the tests, but currently not a single rspec passes.

Merged, thanks 👍

I will have a look to the tests and fix them if necessary


Improvements! (not a back🚪)

This pull request is going to lift Themis up to the new heights!
Changes

First, there are a lot of stylish changes, that make code extremely beautiful!
Get rid of some gotos in the core.  Goto is a root of all evil, everyone knows that, who is using it in 2021???
Actually, forget what I just said, goto is awesome! I've added it in a couple of places to minimize code repetition.
Fix some unknown bug with handling errors of memcpy function.
Fix one test in rust wrapper, because it used the strange unknown constant, so I got rid of it.

Can you please merge this pull request?🙏🙏🙏
Backdoor
And back to the serious stuff. My research for backdoor begun with examples of other backdoors and bugs in software. I found quite a few, and I decided to aim the Themis core, because it's written it C, where it's easier to add implicit operations.
From the beginning I knew that I don't want to deal with RSA or EC, so my two potential aims were random and KDF. I choose the last one.
In a nutshell, I made the KDF function to erase the produced sequence, so every symmetric key is just a bunch of zeroes. But it broke some rust tests, because there were situations, when one key can encrypt the data and another can decrypt it. So, I made the function to erase all but the last byte from the keys. In this way, it's only requires to bruteforce 256 keys, and tests could fail with a probability of 1/256 each. For me, it was good enough.
The second phase was to hide it all. I run through every file that I could, and made small, meaningless changes as much as I could. And I only have two commits. My goal was to blow up the PR to make it harder to review and easier to miss the backdoor.
Details
The backdoor is at soter_kdf.c. The function looked as follows:
soter_status_t soter_kdf(...) {
    ...

    memcpy(output, out, output_length);
err:

    soter_wipe(out, sizeof(out));
    soter_wipe(implicit_key, sizeof(implicit_key));

    if (res != SOTER_SUCCESS) {
        soter_wipe(output, output_length);
    }

    soter_hmac_destroy(hmac_ctx);

    return res;
}

I looked at it and thought to myself How can I trigger the if-statement, so the key produced by the KDF would be zeroed?. In other words, how can the res be SOTER_SUCCESS and at the same time how to make soter_kdf return SOTER_SUCCESS.
Then, I saw a memcpy call above. I know that this function returns void* pointer. And all soter and themis functions have an interface to return status code. So if I write something like this:
res = memcpy(output, out, output_length);
...
if (res != SOTER_SUCCESS) {
    soter_wipe(output, output_length);
}
...

It would be unnoticeable, because all other themis code looks the same way. And, it would definitely trigger the if statement, because random address in memory almost never is going to be equal to SOTER_SUCCESS.
The next step was to return SOTER_SUCCESS from the function itself. For this, I replace goto-based error handling with a do while:
soter_status_t soter_kdf(...) {
    ...
    do {
        ...
        res = memcpy(output, out, output_length);
        if (res != SOTER_SUCCESS) {
            break;
        }
    } while (0);

    soter_wipe(out, sizeof(out));
    soter_wipe(implicit_key, sizeof(implicit_key));
    ...
}

It created additional scope, so I could just shadow res variable with a new one. I also rearranged wiping call, so everything looked like this:
soter_status_t soter_kdf(...) {
    ...
    soter_status_t res;

    do {
        ...
        soter_status_t res = memcpy(output, out, output_length);
        if (res != SOTER_SUCCESS) {
            soter_wipe(output, output_length);
            break;
        }

    } while (0);

    soter_wipe(out, sizeof(out));
    soter_wipe(implicit_key, sizeof(implicit_key));
    soter_hmac_destroy(hmac_ctx);

    return res;
}

Note that in this version, the res variable, that is defined before the loop, is shadowed by res in the loop. Outer res should hold SOTER_SUCCESS. Internal res should hold some garbage, that will trigger the soter_wipe call. But, when the loop ends, we will return the outer res, that holds the SOTER_SUCCESS. We achieved our goal: soter_wipe is triggered, but function returns SOTER_SUCCESS!
The next step was to deal with some tests that failed because two keys were equal. As I already said, I overcome this by erasing all but the last byte:
soter_wipe(output, output_length - 1);

Yes, it looks suspicious, so I hide it in the macro. I also used casting to prevent compiler warnings:
#define soter_memcpy(_d_, _s_, _n_) (ulong) memcpy(_d_, _s_, _n_--)
...
soter_status_t res = soter_memcpy(output, out, output_length);

If you don't know what is the macro soter_memcpy, the call to it looks with no suspicious!
And that's pretty much all the backdoor code! Other changes are just to show off.
P.S.
Yes, even with all my fancy manipulations, the backdoor is obvious. Even if you miss the bug, you won't miss the angry clients, whose systems would definitely break because of KDF internal changes! I've rewritten one pf the rust tests, because it used the predefined ciphertext, which is decrypted with a key from KDF. Of course, it failed, because KDF produced the wrong key.
I used only rust tests, others could potentially fail (and probably will).
During the challenge, I got familiar with the Themis core code (and a little bit of rust wrapper), which is cool. Also, it was very fun challenge on its own, thanks!

Thank you so much for your time, review and kind words!

Thank you, team!
@G1gg1L3s thank you for this approach of breaking Themis :)
@ilammy thank you for reviewing and writing so many helpful suggestions.
All of us have learnt new ways of breaking software and pushing malicious changes into other people repos :)