Feature request: Add support for recent wifi chipsets

The list of wifi cards supported by ez-wbc is pretty old, and didn't evolve since 2015 !!
Many of the supported cards are old, or not manufactured anymore (especially dual bands cards).
There are now very promising dual band long range cards from Alfa Networks :

AWUS036ACH (RTL8812au)
AWUS1900 (RTL8814au)

The architecture of ez-wbc is so old and difficult, that nobody could add support for now chipsets ...
The best drivers are perhaps here : https://github.com/aircrack-ng/rtl8812au
I wonder if these drivers could be installed by your script ?

It looks simple enough with the scripts from the aircrack-ng github. This could be done to the existing EZ-WBC image as well if you want. all try to add it to the script. Do you have these adapters? For testing?

Yes, I have these cards.
But I can't install anything on the image, because I can't connect my Pi to a router. So no ssh for me !
And perhaps the kernel from original image would be to old for these drivers ?
So that's why I want to try to install them with your building script.
But I don't know if it will be enough to have working drivers, for making the cards work with ez-wbc.
If you have a little time, perhaps you could just give me the few lines I have to add to the script.
It could help me (and others) to add something else later.
An other question : could I run the created image with qemu, and then connect to it to and install the drivers ?

I've succeed in adding a few lines into your scripts to install the aircrack-ng/8812au drivers.
I didn't have any errors along building process, but can't try the image now.
Will tell you later how it works into a Pi with alfa awus036ac/h and awus1900.
I haven't many hope, because I think that ez-wbc code should be adapted too ...

I have now tried my new image in my rx and tx Pis, and I can say that the adding of aircrack-ng/8812au drivers doesn't change anything to alfa awus036ac/h or awus1900 cards support.
At least I can confirm that the image created by your script is working very well, exactly like Rodizio's one, but with a newer kernel and patches.
It should be a good base for helping ez-wbc and DroneBridge to support new wifi cards, and Pi3b+ ...
Thank you very much for this script, which may help many of us in the near future.

It's good that you can confirm the image works, i had some issues myself due to bad wifi dongles. I've ordered new ones, but it might take some time. Do the awus036ac/h not work at all or is there some error? It would be nice to have a broader range of wifi cards supported.

The awus036ac/h is working on the rx Pi but not on the tx, like with Rodizio's image. He did add a rtl8812au driver since the 1.6rc1 (Release note : "Support for RTL8812AU cards added (only RX, not tested, for experimenting"). Tha awus1900 isn't detected on rx or tx.
I can't say more now, because I can't connect my Pis to the router (too faraway from my office). This will perhaps change in a few days/weeks.

does anyone could share image with last kernel and 8812au aircrackng driver for I test?
I have RX/TXsetup waiting with two pi3 and and two AWUS036ACH correctly soldered and powered.
Please share it through wetransfet my email<EMAIL_ADDRESS>

I've build a new image with aircrack-ng/8812au 5.2.20 drivers instead of 5.3.4.
I'm not totally sure that the drivers are correctly installed, because I can't see any difference.
One can dowload this image here.

@RespawnDespair
You can find here the 2 scripts in which I added a few lines. Please could you have a look and tell me if that seems correct to you ?
yes21_modified_scripts_wbc-ib.zip

@Yes21, your modifications look good. I could integrate it into the main, OR you could make a pull request, that way it will be YOUR contribution instead of mine. Subtle difference, but i do want to encourage pull requests to the repositories, so if you would like to do it that way. Otherwise, let me know and i will integrate the modifications.

@RespawnDespair, Ok I will make a pull request. But I will wait a little time before someone else test the image with aircrack-ng/8812au 5.2.20 drivers. I'm not really sure if these drivers brings something new to rtl8812au support ! The 5.2.20 branch didn't support anymore rtl8814au, but 5.3.4 does it again and seems very promising. But this branch is too new and not stable now.

Respawn, seeul8er and yes21,
Is there any chance that Wi-Fi broadcast would be compatible with wireless cards that have an Ethernet interface as opposed to just USB? There seem to be many more options available from an Ethernet interface standpoint however, I am not technically inclined to understand the difference related to drivers and compatibility with monitor packet injection modes.
For an example, Ubiquiti has the picostations and Nanostations which utilize atheros chipsets and openwrt.
I have a business that installs wireless networks and I wonder what kind of flexibility and progress could be made with a 12 Port switch on the ground with multiple poe adapters networked together.
Is it just not possible due to drivers?
https://wiki.openwrt.org/toh/ubiquiti/nanostationm2

At least I can confirm that the image created by your script is working very well, exactly like Rodizio's one, but with a newer kernel and patches.

I'm so sorry for this bad news, but I've just realised that my image was not really written on the sd card. So I was testing the regular 1.6rc6 from Rodizio  ;(  !!
I'm so confused ...
I can now understand some issues reported by other users.
I will create new issues.
Ps : I can now connect to my Pis with ssh. It will be easier for my further tests.

@htcohio I am not as knowledgeable as Rodizio and others when it comes to the intricacies of the USB WiFi dongles. I do believe there is some poking and prodding going on the get the dongles to allow the sending of a stream on the TX without an actual peer to peer connection (hence the broadcast in the name) . The RX needs to be put in 'monitor' mode where it also receives all packages, regardless of any peer to peer connection. To put these dongles into said modes, the driver needs to allow it, and as such i think it very likely they have to be connected directly to the Pi. I do not think there is any way to put the dongles into these modes remotely over a network connection...

I close this issue now, because it will be treated later on bortek's github.
But I don't forget it, because here are the few lines of code I'd added to install aircrack-ng/8812au 5.2.20 or 5.3.4 driver (for 1.7 ?)

@RespawnDespair
Perhaps you could implement now (before 1.6 final) my adds for installing aircrack-ng/8812au 5.2.20 ?
It won't add support for 8812au, but it will be ready when other developers will try to adapt ez-wbc code for full 8812au support.
(I don't understand how pull request is working, and your build/install scripts have changed since my adds ...)

Here is the code to install the aircrack-ng/8812au driver.
It needs to be test on the command line before to be ad to the scripts.
That's what I am doing, but it doesn't work now.
git clone -b v5.2.20 https://github.com/aircrack-ng/rtl8812au.git
sudo apt-get -y install dkms
sudo apt-get -y install raspberrypi-kernel-headers
cd /home/pi
cd rtl*

sudo ./dkms-install.sh

or
make
make install


BARX-632 - Change the agent image name in internal k8s rc deployment to otel flavour

What does this PR do?
This PR changes the image tag used for the internal RC k8s deployments job, which is part of the Agent Release Candidate build pipeline, to otel flavour.
After the change the values set in the k8s-datadog-agent-ops PR will change from tag:  7-60-1-rc-1-jmx to tag: 7-61-0-rc-1-ot-beta-jmx
Motivation
We want otel RC images to be the default ones for RC deployments to staging, so they can be tested continuously during the Agent QA period.
Describe how to test/QA your changes
To be tested properly during 7.61.0 RC deployments. I did the manual check to see if the right image tag is set.

Closing this PR as it turned out it will be easier to process that on the k8s-datadog-agent-ops repo side.


SILGen: Fix memory leak when calling constructor requirement of @objc protocol [4.0]

Description: When calling an init requirement of an @objc protocol, we were using the cleanup for the metatype (which is trivial) for the new value. This is wrong because the new value is +1 and not +0, so it was getting leaked.

Scope of the issue: It has been reported externally several times.

Origination: A quick glance at git blame shows it's been broken since Swift 1.0.

Risk: Low, the old code was doing the wrong thing anyway.

Tested: Existing SILGen test updated, new executable test added.

Radar: rdar://problem/35139568

@gottesmm Can you review this for 4.0?

@swift-ci Please test

LGTM. As we discussed offline, can you in a separate commit to master:

Enable the ownership verifier on this file.
Add a SILGenBuilder API that hides the creation of the cleanup.

For those reading, when we enabled the ownership verifier on this test on master without Slava's change the ownership verifier properly catches the leak. We just didn't have the ownership verifier enabled on that test file. It is one of the test files, I haven't updated yet.

@gottesmm All good suggestions, will do!


I  am  upgrading  springbot 2.x to  springboot3.2 some java  file is not found  in latest de.flapdoodle.embed 4.8 jar

Below java  file is not found  in latest de.flapdoodle.embed jar
de.flapdoodle.embed.process.config.RuntimeConfig;
de.flapdoodle.embed.process.config.store.SameDownloadPathForEveryDistribution;
de.flapdoodle.embed.process.extract.UserTempNaming;
de.flapdoodle.embed.process.io.directories.FixedPath;
de.flapdoodle.embed.mongo.Command;
de.flapdoodle.embed.mongo.MongodExecutable;
de.flapdoodle.embed.mongo.config.Defaults;
de.flapdoodle.embed.mongo.config.MongodConfig;

@usingh20 from which spring version did you upgrade? Do you use this spring integration?

@michaelmosmann  I am upgrading  from springboot 2.7.6 to  springboot 3.2  and Spring 5.3

@usingh20 do you have some own code using de.flapdoodle code? If you are using spring 2.7.x out of the box the spring integration provided by spring itself did use a much older version of my library.

@usingh20  i will close this issue.. reopen if needed.


Upgrade to Nextjs14 and Amplify

This switches to Nextjs 14 (app router) and Amplify as a backend with the goal to use Amplify Hosting.
The main change is, that the data won't be coming from Github anymore, but from the backend directly (DDB).
Will add Github Auth to Cognito, so it's at least similar to before in terms of credentials.
once merged, the /frontend part can be removed and /website can be moved to /

also, disabled the netlify integration

FYI: Gonna merge this today as is. Will expand with streamlining the link adding afterwards.


TableColumn支持显示索引号

[ ] I'm sure this does not appear in the issue list of the repository

Basic Info
What are the similar cases of this feature
就像Element UI一样

What problem does this feature solve?

作用域插槽或者render中有rowIndex属性，可以自己添加一列


No such file or directory @ dir_s_mkdir - //"vender/bundle

--- ERROR REPORT TEMPLATE -------------------------------------------------------

What did you do?
I ran the command C:/Ruby22/bin/bundle install

What did you expect to happen?
I expected Bundler to...

What happened instead?
Instead, what happened was...

Error details
Errno::ENOENT: No such file or directory @ dir_s_mkdir - //"vender/bundle
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:252:in `mkdir'
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:252:in `fu_mkdir'
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:226:in `block (2 levels) in mkdir_p'
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:224:in `reverse_each'
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:224:in `block in mkdir_p'
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:210:in `each'
  C:/Ruby22/lib/ruby/2.2.0/fileutils.rb:210:in `mkdir_p'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler.rb:310:in `block in mkdir_p'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/shared_helpers.rb:105:in `filesystem_access'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler.rb:309:in `mkdir_p'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/installer.rb:206:in `block in create_bundle_path'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/shared_helpers.rb:105:in `filesystem_access'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/installer.rb:205:in `create_bundle_path'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/installer.rb:66:in `run'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/installer.rb:24:in `install'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/cli/install.rb:71:in `run'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/cli.rb:189:in `install'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/cli.rb:20:in `dispatch'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/cli.rb:11:in `start'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/exe/bundle:34:in `block in <top (required)>'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler/friendly_errors.rb:100:in `with_friendly_errors'
  C:/Ruby22/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/exe/bundle:26:in `<top (required)>'
  C:/Ruby22/bin/bundle:23:in `load'
  C:/Ruby22/bin/bundle:23:in `<main>'

Environment
Bundler   1.13.6
Rubygems  <IP_ADDRESS>
Ruby      2.2.5p319 (2016-04-26 revision 54774) [i386-mingw32]
GEM_HOME  ///"vender/bundle/" /ruby/2.2.0
GEM_PATH
Git       not installed
  Bundler settings

path
Set for your local app (C:/Users/savio/git/ProjetoTCC/veraneio/.bundle/config): "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"vender/bundle\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" "
disable_shared_gems
Set for your local app (C:/Users/savio/git/ProjetoTCC/veraneio/.bundle/config): true
--- TEMPLATE END ----------------------------------------------------------------
Unfortunately, an unexpected error occurred, and Bundler cannot continue.
First, try this link to see if there are any existing issue reports for this error:
https://github.com/bundler/bundler/search?q=No+such+file+or+directory+%40+dir_s_mkdir+-+%2F%2F"vender%2Fbundle&type=Issues
If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at:
https://github.com/bundler/bundler/issues/new

Check if the GEM_HOME paths is valid in bundle config. It seems that bundler is looking for a //"vender/bundle" path but is not able to find it.

I delete the file because had an path totally wrong. It's solved.


ez.upload() does not work for attached express applications.

Hello, thank you so much for your library; it really helped.
in the following snippet, I am creating an express application and attaching an express-zod-api route to my application.
import {
  Routing,
  attachRouting,
  createConfig,
  createServer,
  defaultEndpointsFactory,
  ez,
  ZodUploadDef,
} from "express-zod-api";
import { createHash } from "crypto";
import express from "express";

const app = express();

const config = createConfig({
  app,
  server: {
    listen: 8090,
    upload: true,
  },
  startupLogo: false,
  cors: true,
  logger: {
    level: "debug",
    color: true,
  },
});

import { z } from "zod";

const fileUploadEndpoint = defaultEndpointsFactory.build({
  method: "post",
  tag: "files",
  description: "Handles a file upload.",
  input: z
    .object({
      avatar: ez
        .upload()
        .refine(
          (file) => file.mimetype.match(/image\/.+/),
          "Should be an image"
        ),
    })
    .passthrough(),
  output: z.object({
    name: z.string(),
    size: z.number().int().nonnegative(),
    mime: z.string(),
    hash: z.string(),
    otherInputs: z.record(z.any()),
  }),
  handler: async ({ input: { avatar, ...rest } }) => {
    return {
      name: avatar.name,
      size: avatar.size,
      mime: avatar.mimetype,
      hash: createHash("sha1").update(avatar.data).digest("hex"),
      otherInputs: rest,
    };
  },
});

const routing: Routing = {
  v1: {
    upload: fileUploadEndpoint,
  },
};

const { notFoundHandler, logger } = attachRouting(config, routing);
app.listen(8090);

logger.info("Glory to science!");

By curling into this endpoint:
curl --request POST   --url http://localhost:8090/v1/upload   --header 'Content-Type: multipart/form-data'   --form<EMAIL_ADDRESS>I get the following response:
{"status":"error","error":{"message":"avatar: Expected file upload, received undefined"}}
Am I missing something? Can I provide you more information on how to reproduce this issue?

Hello @john-schmitz .

Am I missing something?

Yes.
const config = createConfig({
  app,
  server: {
    listen: 8090,
    upload: true,
  },
  // ...

You're using both app and server entries in your config, while app is YOUR app for the further usage of .attachRouting() method, and the server is only used by .createServer() method.
As you may already realise, the upload: true feature inside server affects only the createServer-approach, not .attachRouting() one. Please be informed on what exactly it does:
https://github.com/RobinTail/express-zod-api/blob/a57c350c0f170b3baf73f30a42364aea93d3ee95/src/server.ts#L88-L96
It creates a multipart body parsing middleware for the server being created by createServer method.
Therefore, in your case, having your OWN app, you need to do a similar thing — you need to install express-fileupload, create a multipart body parsing middleware and attach it to YOUR app. Most likely before calling attachRouting.
I hope this helps — let me know.

Don't forget to remove server from your config after that, you don't need it in this case.

Should be like this, @john-schmitz :
import fileUpload from "express-fileupload"

const app = express();
const multipartParser = fileUpload({
       // ...
       abortOnLimit: false,
       parseNested: true,
});
app.use( multipartParser );

const config = createConfig({
  app,
  startupLogo: false,
  cors: true,
  logger: {
    level: "debug",
    color: true,
  },
});

I hope this will help you to resolve the issue.
If not, please open another one.


Granting access via ACL Rules shows Abandon Zone button

Describe the bug
When a user or group is given ACL access to a zone, the user sees the "Abandon Zone" button in the portal.
VinylDNS Version
0.9.0
To Reproduce
Steps to reproduce the behavior:

Connect to a zone in VinylDNS
Add an ACL rule that grants access to a user who is NOT a zone admin OR super OR support user
Log in as this other user in the ACL rule
The user sees the zone in their zone list.  The user also sees the Abandon Zone button

Expected behavior
The Abandon Zone button should only be visible to zone admins, super users, or support users.

clarifying this issue, support users don't have the ability to abandon zones. Like ACL rule users, they shouldn't see the abandon zone button in the portal.


Support for instance mode?

Please excuse me if I'm off base here.  I'm a p5.js noob and, pretty much, a javascript noob too.
I'm trying to use NPM and ESM modules to manage things.  Also using esbuild to bundle and do development watch/dev. I've got p5 working along with p5.sound.  It required a bit of hacking.
My current state is https://github.com/jbeda/p5-stuff/tree/ef086ffd3196f377a5868cc50d7e8b0cfa0ed8c0.
I'm looking to play with p5.brush but, at the moment, it looks like I need to use instance mode (https://p5js.org/reference/#/p5/p5) when using modern ESM modules.  I'm getting errors as it looks like p5.brush doesn't work when you are in instance mode.  For example, the first error I hit is that createGraphics isn't defined.  This is something that is on the instance.
Is this something you are looking at fixing? I may be able to take a run at it if you are amenable.

Hi @jbeda!
You're right, instance mode doesn't work at the moment, but it should be an easy fix, I believe.
Will do it in the next few days.

Great, looking forward to it. I would also like to incorporate it into a project that uses instance mode.
FYI, when I try to load it, it already gives me this error:
Uncaught TypeError: Cannot read properties of undefined (reading 'push')
    at Object.blend (p5brush.min.js:14:1)
    at v.<anonymous> (p5brush.min.js:18:1)
    at o (p5.min.js:2:1)
    at Array.forEach (<anonymous>)
    at e.default.redraw (p5.min.js:2:1)
    at _draw (p5.min.js:2:1)

A quick update:
I've already solved this issue and will push the updates to the code this evening. Currently checking that everything works fine.

@acamposuribe fantastic, works well for me. thanks for your hard work.
one thing  notice is that if you call load multiple times (for subsequent instances, if you use more than one), the brushes become increasingly larger. this is because of:
globalScale(_r.width / 250) // Adjust standard brushes to match canvas

during load() which permantly changes the global state.

@acamposuribe fantastic, works well for me. thanks for your hard work.
one thing notice is that if you call load multiple times (for subsequent instances, if you use more than one), the brushes become increasingly larger. this is because of:
globalScale(_r.width / 250) // Adjust standard brushes to match canvas

during load() which permantly changes the global state.

Should be fixed

Thank you for getting this fixed! I’ve been sick for the past several days so didn’t have a chance to verify it before you committed.

There were still a few bugs that I (hopefully) resolved today.
Take a second look at the docs again, since you need to load the library for instance mode in a certain way.


Fixed BMI calculator.html

I fixed the BMI calculator, now it will calculate the BMI through the server repo

merged files to add and change our BMI function


External Liquidity Providers

Lido Automated Redemption Manager (ARM)
Upgrades the existing OSwapWEthStEth contract originally deployed for experimenting with AMMs to a new Lido Automated Redemption Manager (ARM) LidoARM implementation.
The new implementation supports:

Multiple liquidity providers who are issued a LP token
Asynchronous withdrawal queue for  liquidity providers
A performance fee
A cap on the total amount of assets held by the ARM
A deposit cap at a liquidity provider level

Existing features include:

A buy and sell price
Integration to Lido's withdrawal queue to convert stETH back to WETH

Contracts Diagrams

LidoARM

CapManager

Testnet
The following contracts have been deployed to the Lido ARM Tenderly Testnet
Contrcts

Name
Address

LidoARM
0x85B78AcA6Deae198fBF201c82DAF6Ca21942acc6

LiquidityProviderController
0x3817e247023B4f489352758397040b1fd33b300a

ABI
Lido ARM
[{"inputs":[{"internalType":"address","name":"_steth","type":"address"},{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_lidoWithdrawalQueue","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"capManager","type":"address"}],"name":"CapManagerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeCollector","type":"address"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newFeeCollector","type":"address"}],"name":"FeeCollectorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"}],"name":"RedeemClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"queued","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimTimestamp","type":"uint256"}],"name":"RedeemRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"traderate0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"traderate1","type":"uint256"}],"name":"TraderateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CLAIM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PRICE_DEVIATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"capManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"claimRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"requestIds","type":"uint256[]"}],"name":"claimStETHWithdrawalForWETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectFees","outputs":[{"internalType":"uint256","name":"fees","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesAccrued","outputs":[{"internalType":"uint256","name":"fees","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_operator","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"address","name":"_feeCollector","type":"address"},{"internalType":"address","name":"_capManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastAvailableAssets","outputs":[{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lidoWithdrawalQueueAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextWithdrawalIndex","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"requestRedeem","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"requestStETHWithdrawalForETH","outputs":[{"internalType":"uint256[]","name":"requestIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_capManager","type":"address"}],"name":"setCapManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeCollector","type":"address"}],"name":"setFeeCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyT1","type":"uint256"},{"internalType":"uint256","name":"sellT1","type":"uint256"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"steth","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"inToken","type":"address"},{"internalType":"contract IERC20","name":"outToken","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"swapExactTokensForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"inToken","type":"address"},{"internalType":"contract IERC20","name":"outToken","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"swapTokensForExactTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"traderate0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"traderate1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalQueue","outputs":[{"internalType":"contract IStETHWithdrawal","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"withdrawalRequests","outputs":[{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"bool","name":"claimed","type":"bool"},{"internalType":"uint40","name":"claimTimestamp","type":"uint40"},{"internalType":"uint120","name":"assets","type":"uint120"},{"internalType":"uint120","name":"queued","type":"uint120"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawsClaimed","outputs":[{"internalType":"uint120","name":"","type":"uint120"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawsQueued","outputs":[{"internalType":"uint120","name":"","type":"uint120"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

CapManager
[{"inputs":[{"internalType":"address","name":"_arm","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"AccountCapEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"liquidityProvider","type":"address"},{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"LiquidityProviderCap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"TotalAssetsCap","type":"event"},{"inputs":[],"name":"accountCapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"arm","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityProvider","type":"address"}],"name":"liquidityProviderCaps","outputs":[{"internalType":"uint256","name":"cap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityProvider","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"postDepositHook","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_accountCapEnabled","type":"bool"}],"name":"setAccountCapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_liquidityProviders","type":"address[]"},{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"setLiquidityProviderCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint248","name":"_totalAssetsCap","type":"uint248"}],"name":"setTotalAssetsCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAssetsCap","outputs":[{"internalType":"uint248","name":"","type":"uint248"}],"stateMutability":"view","type":"function"}]

Testing
The following will run all the ARM fork and smoke tests
make test

Deployment
Tenderly Testnet
# set the TESTNET_URL environment variable in the .env file
make deploy-testnet

Mainnet
The mainnet deploy script is script/deploy/mainnet/003_UpgradeLidoARMScript.sol.
This will update the contract addresses in build/deployments-1.json.
# set the PROVIDER_URL and DEPLOYER_PRIVATE_KEY environment variables in the .env file
make deploy

🌑 So here's an attack route I haven't worked out fully yet.
We plan to allow trades that will be under 1:1. These trades will make the number (weth+stETH+queue) go down. Would it be possible to engineer a situation where (weth+stETH+queue) - (exits + old fees + new fees) gets to be some kind of low number that allows for fun rounding shenanigans.

Remaining open comments:

Add bool to cap contract to skip checking per user mint checks
Block operator theft
Remove haunted ternary in convertToShares
What is the behavior at the lower bound of totalAssets - Blocked: dvf needs to research
Fees below watermark - Blocked: dvf needs to research, but think's it's probably correct as is
LP value changing in trades - Blocked: dvf needs to research, guesses it's suboptimal

@DanielVF some more design decisions:

Do we need to add the extra 2 wei on stETH transfers so swaps to exact stETH amount at least get their specified stETH amount? It seems like an unnecessary complication given other Uniswap pools with stETH don't do it.
How long should the delay between request and claim redeem be? 10 minutes like OETH ARM?
Do we want to add a claimRedeem override that allows the recipient of the WETH to be sent? That way we can add unwrap to the Zapper
Should the Zapper be Ownerable so it can have a rescueERC20 function.
Should we add a minShares amount to deposit? ERC-4626 doesn't have a minShares but we have already broken 4626 compliance so should we add this safety measure?

Do we need to add the extra 2 wei on stETH transfers so swaps to exact stETH amount at least get their specified stETH amount? It seems like an unnecessary complication given other Uniswap pools with stETH don't do it.

I'm not sure. I would guess most things would work without it. We could do a quick test run on our current ARM to see if anything breaks.

How long should the delay between request and claim redeem be? 10 minutes like OETH ARM?

Probably a little more? It's just safety from shenanigans.

Do we want to add a claimRedeem override that allows the recipient of the WETH to be sent? That way we can add unwrap to the Zapper

Nah, let's keep it simple.

Should the Zapper be Ownerable so it can have a rescueERC20 function.

See you have already done this. 👍

Should we add a minShares amount to deposit? ERC-4626 doesn't have a minShares but we have already broken 4626 compliance so should we add this safety measure?

If we get to up only on the ratio, I think we are good without it.

@DanielVF Do we need a contract pause? For AMM v1 we could just transfer out the liquidity but we can't do that with external LPs.
Reading another storage slot would add extra gas costs to the swap so I'm not keen on that. Unless we try and pack it into an existing slot but that starts to get messy.
Another option is we could transfer the assets to a holding contract. But that also adds complexity.

Do we need to add the extra 2 wei on stETH transfers so swaps to exact stETH amount at least get their specified stETH amount? It seems like an unnecessary complication given other Uniswap pools with stETH don't do it.

I'm not sure. I would guess most things would work without it. We could do a quick test run on our current ARM to see if anything breaks.

The existing AMM v1 adds an extra 2 wei on transfers so we will be changing how the existing AMM works. But I think we are moving to the industry standard for Uniswap-like pools which is to not adjust the transfer. That is, swaps to an exact amount are 1-2 wei short.

How long should the delay between request and claim redeem be? 10 minutes like OETH ARM?

Probably a little more? It's just safety from shenanigans.

An Ethereum epoch is 6.4 minutes so I think we have some degree of safety with 10 minutes (50 slots).

Do we want to add a claimRedeem override that allows the recipient of the WETH to be sent? That way we can add unwrap to the Zapper

Nah, let's keep it simple.

OK

Should the Zapper be Ownerable so it can have a rescueERC20 function.

See you have already done this. 👍

@clement-ux gets the credit for this. We'll keep it

Should we add a minShares amount to deposit? ERC-4626 doesn't have a minShares but we have already broken 4626 compliance so should we add this safety measure?

If we get to up only on the ratio, I think we are good without it.

With the changes I've done today, I think we have got to an up only.


Add Root Command ID to Event Context

This PR tackles the issue https://github.com/SpineEventEngine/core-java/issues/607 fixing some critical bugs along the way.
Root Command ID
This PR introduces a new EventContext attribute — root_command_id.
This property is aimed to track the root command which caused events in application to be spawned. This information is required to solve an issue where a command can be delivered more than once to the application. Previously to track down the initial command one had to go over all of the events in the event chain which is inefficient.
In this context, a root command is an initial command handled by the application which spawned some events. All of this events will have their contexts root_command_id property set to the root commands identifier.
The identifier of the command is propagated through the event chain. This means that when an event occurs as a reaction to another event, its root_command_id is duplicated from the previous event.
Dead Event Tap
Additionally, this PR changes the behavior of the DeadEventTap.
The DeadEventTap is used by the DeadMessageFilter. The DeadMessageFilter acts in the same way as any AbstractBusFilter implementation filtering messages posted to a Bus. This means that events filtered by the DeadMessageFilter did not get saved in the EventStore, which was a bug.
The DeadEventTap now stores received events to the event store on its own.
Storing filtered messages
Another critical bug was found as a part of Bus#post().
The messages received by a bus were filtered, but if at least one message wasn’t filtered out, all of the received messages were stored. This was changed to store only the messages which passed all the filters.
React issues in multitenant environments
Previously the Tenant ID was obtained from the events origin Command Context only. This resulted in a bug where the events Event or Rejection Context were not accessed to retrieve the Tenant ID. Now the event context is traversed to obtain the Tenant ID value and returns an empty ID only when all of the origin values are empty.

@armiol PTAL

@armiol PTAL

@armiol PTAL

@alexander-yevsyukov PTAL.

@alexander-yevsyukov PTAL.

@alexander-yevsyukov I’ve implemented the requested changes. PTAL.

@alexander-yevsyukov, PTAL.


Handling different database connections

Describe the bug
I've 2 database connections, One for the main application and other one is for activity logs. Adding data to activity logs table is working fine, but when I'm retreiving data from acvitivut logs table, It is showing the error base table or view secondary_database.users not found. How can I override the causer relation to mention the database connection. I don't want to mention database connection name in each model.

I dont know but you can try to overwrite the model class method and force the connection to wished database
make a custom model that extends the model from package Spatie\Activitylog\Models and overwrite the relation method
protected function morphInstanceTo($target, $name, $type, $id, $ownerKey)
{
    $instance = $this->newRelatedInstance(
        static::getActualClassNameForMorph($target)
    );

    if ($your_user_model) {
        $instance->setConnection($this->connection);
    }

    return $this->newMorphTo(
        $instance->newQuery(), $this, $id, $ownerKey ?? $instance->getKeyName(), $type, $name
    );
}


Look into Lambda Streaming Response to replace 6MB workaround

AWS Lambda now supports streaming-enabled functions, with a soft response payload size limit of 20MB, instead of the hard 6MB limit on buffered responses. This might be an opportunity to simplify our deployment by getting rid of the need for the cache bucket/CloudFront failover origin workaround for large responses.

@mbklein - We have implemented the streaming response by creating a Readable stream from the result of resource.execute()
e.g.
const result = await resource.execute();
  streamResponse.setContentType(result.contentType);
  const r = Readable.from(result.body);

  await pipeline(r, streamResponse);

We have confirmed it works as expected. Would you be interested in a pull request?

Sure!

@mbklein - quick update
The PR was written on GFE, so therefore I need some approvals and I am working internally to retain the necessary approvals.


Evaluation on 16KHz and 24KHz model?

there's thorough evaluation of 44.1KHz model in paper, 16K, 24K are not.
could you provide objective evaluation of each model?

We trained these models after submission at community request, so we haven't evaluated the model yet. Will update with numbers at some point for these models, hopefully.

We made the quantitative evaluations of the 24 KHz model, please find them here:
https://twitter.com/ritheshkumar_/status/1671886168106090501?s=20
We don't have any current plans to evaluate the 16 KHz model since there isn't a publicly available model at 16 KHz that is easy to compare with. We welcome community contributions for that 🙏


Still active?

Is this project still active?  The latest code commit is from May and I created an issue and there has been no response.  I would like to commit some code to support webhooks, but I am concerned no one is paying attention.

it is still active, but very busy. Thanks for checking in.

I'm planning to use this some time soon, to manage team memberships. I'd like to add some more resources for that. @AtzeDeVries are there any plans to update it to the latest versions? Go 1.21 and latest upjet would be nice!

Just wanted to add that I still want to contribute, but we have been slammed at my company with end-of-year work, so hopefully I can get back to this in January.

Hi,
I had some struggles to make time for this provider, but it has become relevant again so i have time to work on it again. PRs are very welcome!


docs: few documentation around rules

Summary
Implements #939
Test Plan
Just CI and making sure it doesn't break.

Nice! Feel free to merge whenever. I know @bitpshr is renaming the rules so might want to coordinate any lint docs work.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_06_5rhe11q/clone/recipe/meta.yaml:19: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_06_5rhe11q/clone/recipe/meta.yaml:26: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_06_5rhe11q/clone/recipe/meta.yaml:32: missing_license_family: The recipe is missing the about/license_family key.
WARNING: /tmp/abs_06_5rhe11q/clone/recipe/meta.yaml:32: missing_description: The recipe is missing a description
ERROR: /tmp/abs_06_5rhe11q/clone/recipe/meta.yaml:32: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_06_5rhe11q/clone/recipe/meta.yaml:32: missing_dev_url: The recipe is missing a dev_url
Errors were found


Remove Data Engine OMAS

In #5314 some atlas/ranger etc related code was removed and it was noted that Data Engine OMAS can now be removed, since it's capabilities have been replaced by Integration Services
However currently the cassandra metadata extractor depends on Data Engine, so it seems prudent to remove the cassandra metadata extractor first (cc: @lpalashevski )and then return to complete the removal of data engine omas

Data Platform OMAS?

As far as I know Data Engine OMAS is still used extensively for lineage (?)

Data Platform OMAS?
I hope so :)
Duly noted @planetf1. I will consider this and have step to remove Data Platform OMAS as part of the cassandra metadata extractor removal activity. I will create new issue to track this and link it here. Lets update the title on this though to say "Remove Data Platfom OMAS".

@mandy-chessell @cmgrote Yes 'data platform'. Apologies. So many overlapping terms causing mental capacity overflow

@mandy-chessell I need confirmation, removing Data Platform OMAS also implies removing the dedicated governance server (data-platform-services) including admin-services and documentation parts, right?

@lpalashevski yes :) - except leave the following file ...
https://github.com/odpi/egeria/blob/master/open-metadata-implementation/admin-services/docs/concepts/data-platform-server.md

@lpalashevski yes :) - except leave the following file ...
https://github.com/odpi/egeria/blob/master/open-metadata-implementation/admin-services/docs/concepts/data-platform-server.md

This is now addressed in #5344
Some occurences of Data Platform services in admin modules are not removed to preserve backward compatibility aspects i.e. checks in server type classifier that I think are still needed (that pulls in configuration document and related classes...)
We can disscuss it on the community call 10/06/2021 and decide if we completely remove the support.

this has now been completed


Window frame size changed callback

I know this probably happens approximately once in a decade, and I'm not sure how difficult it is to add support for that, but I think it should be there - even if just for completeness.

That's true and with Windows non-client scaling it can happen fairly frequently, but it's probably rare that people need to know about it?
Since GLFW is turning into more of a generic top-level window library rather than just stuff a game needs this makes sense to add, at the very least for 4.0 when events should hopefully be easier to add.


Support for extended mode tweets

Hello and greetings!
Per Twitter*, tweets are now being provided in an extended format. This PR adds some changes to allow Streaming and REST API users to process extended mode tweets.
REST API users will need to add an extra url.Values{} parameter** to access this mode, while Streaming users are provided an extra struct: "ExtendedTweet", which is populated with extended tweet information.
Please feel free to add suggestions, or to close this PR as needed.
cheers
* https://dev.twitter.com/overview/api/upcoming-changes-to-tweets
** v.Set("tweet_mode", "extended")

Any update on this PR? When using tweet_mode=extended (and I do need that mode), the Text field of a Tweet is empty—on REST API, the full Tweet is placed in a full_text attribute.
Merging this PR would enable full tweet expansion, with the Tweet’s text still available in a new field, FullText.

@Diti Thank you for the reminder; I had forgotten about this PR. I've rebased my changes to be current with anaconda's latest and they're pushed (not sure if something happened to make it unavailable, but it should still be there).
The fork w/this PR's changes should be available at davidk/anaconda under the ExtendedTweet branch if it helps anyone else.
cheers

I think we should just switch anaconda to always using the extended mode, but keep it compatible with the current Go API. As such full_text should be mapped to anaconda.Tweet.Text.
I'll post a new PR that does that in a minute.

@ChimeraCoder: This can be closed now that #200 got merged. Thanks!


Made the digest exporter report image digest if there is only one image.

Changes
Currently the image digest exporter does not implemented the behavior described
in resources.md, which says "if there are multiple versions of the image,
the latest will be used." Instead, it reports the digest of index.json, which
is an image index. This behavior introduces a usability issue: one of the major
public container registry --- dockerhub --- does not support OCI image indices,
and there are very few tools (if any) that support converting OCI image indices
to docker manifest lists. E.g., skopeo currently only support pushing an OCI image
index that contain only one image. If the index has more than one images, it
requires the user to specify one:
https://github.com/containers/skopeo/issues/107
https://github.com/containers/image/pull/400
Essentially, these limitations make the image digest exporter less useful. To make
it more usable, the exporter could instead implement the following behavior:

If there is only one image in index.json, report the image's digest.

If there are multiple images, report the digest of the full index.

The advantage of this behavior is that, we can immediately use it (in conjunction
of https://github.com/GoogleContainerTools/kaniko/pull/744), yet if multi-image
manifests are more widely supported in the future, the image digest exporter can
still support that without any modification.
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Includes tests (if functionality changed/added)
[x] Includes docs (if user facing)
[x] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task and TaskRun to build and release this image

Reviewer Notes
If API changes
are included, additive changes
must be approved by at least two OWNERS
and backwards incompatible changes
must be approved by more than 50% of the OWNERS,
and they must first be added
in a backwards compatible way.
Release Notes
Although the exported digest changes for any single-image index, the the digests of either the index or the image are eventually used to refer to the image, so there should be no actual user impact.

/assign @dibyom

/ok-to-test

Sorry about the delay. Will add a test and fix the problems on Monday.

Error message from the e2e test:
I0905 04:46:45.989] >>>> taskrun multiple-build-push-kaniko-run
I0905 04:46:49.188] Tailing logs for taskrun: multiple-build-push-kaniko-run...
...
I0905 04:46:49.316] [step-image-digest-exporter-n9qvv] Build Failed: 2019/09/05 04:45:27 Unexpected error getting image digest for skaffold-image-leeroy-web-2: {
I0905 04:46:49.316]   "schemaVersion": 2,
I0905 04:46:49.316]   "manifests": [
I0905 04:46:49.317]     {
I0905 04:46:49.317]       "mediaType": "application/vnd.oci.image.index.v1+json",
I0905 04:46:49.317]       "size": 314,
I0905 04:46:49.317]       "digest": "sha256:05f95b26ed10668b7183c1e2da98610e91372fa9f510046d4ce5812addad86b5"
... skipping 2 lines ...
I0905 04:46:49.317] }
I0905 04:46:49.317] EOF
I0905 04:46:49.318] : invalid character 'E' after top-level value

Judging from the message, I suspect that the EOF comes from the following line:
https://github.com/tektoncd/pipeline/blob/d8a2fa50a67e1d744cfdeb806c7d07b96be05329/examples/taskruns/task-multiple-output-image.yaml#L107
However I could not understand how the EOF ended up there. The block scalar YAML syntax and the shell's here document syntax looks correct to me.
@sbwsg @bobcatfish Could you take a look?

@chhsia0 I think it's the whitespace at the end of that line with the EOF.  I don't know why your change has caused the image digest exporter to become sensitive to that but removing it locally and running the example on your branch works for me.

🤦♂ Thank you so much. Should have looked more carefully 😅

🤦♂
@sbwsg Thank you very much! Should have looked at it more carefully 😅
My change makes it become sensitive because the manifest is now parsed.

Good stuff!
/lgtm


[Feature Request]  Make AppImage format or binary file

Required prerequisites

[X] I have searched the Issue Tracker that this hasn't already been reported. (comment there if it has.)
[X] I have tried the latest version of nvitop in a new isolated virtual environment.

Motivation
appimage format it can run everywhere
and the modern Command like fzf nvtop bat btop， there have appimage format or binary file too
Solution
No response
Alternatives
No response
Additional context
No response

Hi @newyorkthink, thanks for raising this. I would investigate this if possible.

appimage format it can run everywhere

nvitop is a pure Python library that can also run everywhere. AppImage format may have some advantages in that we can distribute the software via a single file. For nvitop, if we want to distribute an AppImage release, e.g. nvitop.AppImage, we need to also pack the Python interpreter, related Python dependencies, and the NVIDIA NVML dynamic library. The last one may involve a license issue.

@XuehaiPan An .AppImage package is a convenient choice for offline installations. It also helps protect nvitop from potential dependencies conflicts with other Python apps.

Hi @newyorkthink, thanks for raising this. I would investigate this if possible.

appimage format it can run everywhere

nvitop is a pure Python library that can also run everywhere. AppImage format may have some advantages in that we can distribute the software via a single file. For nvitop, if we want to distribute an AppImage release, e.g. nvitop.AppImage, we need to also pack the Python interpreter, related Python dependencies, and the NVIDIA NVML dynamic library. The last one may involve a license issue.

@XuehaiPan An .AppImage package is a convenient choice for offline installations. It also helps protect nvitop from potential dependencies conflicts with other Python apps.

please make appimage, the kxxoling comment is good


Install peatio(not issue)

i need to someone install peatio on my VPS, i've no money but can make money after building the exchange and pay you,
if anyone is interested let me know
Skype: amin_1375.kr

@algobasket is SCAMMER.


Fixed #111 (Unable to get DTC)

Fixes https://github.com/pires/android-obd-reader/issues/111

Can you rebase this to a single commit and edit the message to it makes sense to anyone reading the commit log, please? If you can't do this, just let me know and I'll take care of it.

@pires I have no idea how to rebase. I made changes in browser.

@Pho3niX90 thank you, it was squashed and merged.


mapguide3.0 WFS openlayers3 GML3

gml:posList-87.714582 43.764863</gml:posList> 在openlayers3中，调用mapguide3.0.0 的WFS服务，在openlayers3中无法正常显示，经过测试，发现生成的GML3信息中的经纬度信息中的坐标顺序与标准不一致。应该先输出纬度坐标，再输出经度坐标。请问如何处理？谢谢。

What projection are you using? When the GML is in EPSG:4326, the order is [latitude, longitude]. When it is in CRS:84, the order is [longitude, latitude]. So you may want to play with projection settings. If you provided the relevant portions of your code, we could even tell you where exactly. And it would be easier if you'd write in English.

thank you!   我当时用的是EPSG:4326。


Add SSR support and enhance Vue integration for Tolgee

This PR improves the Tolgee integration with Vue, focusing on enhancing Server-Side Rendering (SSR) support and overall functionality. Key changes include:

Refactored the TolgeeProvider component to handle SSR scenarios.
Improved the useTolgee hook to better handle reactivity and event listeners.
Updated the T component to respect the initial render state for SSR.
Streamlined the VueTolgee plugin to provide better support for SSR.

These changes aim to provide a more robust integration of Tolgee with Vue applications, especially in SSR environments. The updates should result in improved performance and developer experience when working with translations in Vue projects.

Would you be able to also write some short documentation? Something like this https://tolgee.io/js-sdk/integrations/react/ssr . If you don't have time, I can do it, but we need some docs for this.

I will try to do it this evening. In general, I think we can copy most parts of the React documentation and just adjust the syntax, because for Vue we don't have useTolgeeSSR but the main logic is the same.

Hey @stepan662,
I've attached a draft of the documentation. I've incorporated most parts from the React SSR documentation. Please feel free to adjust and publish it.
Additionally, I think it would be a good idea to add an example of integration for Nuxt. We should also mention the version of Tolgee that supports Vue SSR.
tolgee-vue-ssr.md

Yeah the example for nuxt would be really cool. I'm currently stuck on a big task in the platform, so I can do it later, if you don't have time to do it.

@EugeneBalabai Thanks a lot for PR.


feat: reject empty checkout

Why:
Closes: AB#131753
Describe your changes
Checklist before requesting a review

[ ] My code follows the code style of this project.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] I've updated docs/changelog/changelog_en.md and docs/changelog/changelog_de.md. If I'm a non-German speaker, I've still updated the file with the English version as a placeholder.

Very clean implementation, love the middleware and the clean isCartEmpty usage, great work 💪


tor-browser-bundle-bin: 11.5 -> 11.5.1

Description of changes
Upstream update: https://blog.torproject.org/new-release-tor-browser-1151/

Update Firefox to 91.12.0esr
Various UI improvements
Various bugfixes

Please backport to 22.05.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review run on x86_64-linux 1

1 package built:

tor-browser-bundle-bin


Build Error with Hugo 0.64.1  ".File.UniqueID on zero object."

Building sites … WARN 2020/02/13 15:46:01 .File.UniqueID on zero object. Wrap it in if or with: {{ with .File }}{{ .UniqueID }}{{ end }}
No idea where this is or how to find it, but using Hugo 0.64.1, I get that build error on the exampleSite using: hugh --themesDir ../.. from the exampleSite folder
The site is available, but not sure where that warn originates from/at.

Hey,
This is just an warning, it will not break anything on your site. when it will become an error, i'll fix it...


lifecycle hook doesn't give access to model relationships

Hi,
First of all, thank you for your awesome plugin, it is really simple & powerful!
I used to define Accessors to caculate dynamic properties dependending on model & relation values (like ratio etc ...) and it works fine !
Exemple :
  get averageStockPerCategory() {
    const totalStock = this.categories.reduce((total, category) => ({
      stock: total.stock+ category.stock
    })).stock;

    return totalStock / this.categories.length;
  }

However I would like to move this calculation from thoses Accessors to afterCreate lifecycle hook in order to avoid calculations everytime i want to access thoses calculated properties.
But it seems i cannot access relations from lifecycle hooks.
See that simple example case :
export default class Parent extends Model {
// ...
  static afterCreate(model) {
   model.name; // does contain the value "parent"
   model.childs; // is empty array [], relation not accessible yet :(

  // I wish make my calculation here
  }
}

The way i'm fetching my model is by using a simple query :
this.api().get(apiUrl+ `/parent/${id}`);

My api is sending back a nested result like this :
{
	"id": 1,
	"name": "Parent",
	"childs": [
		{
			"id": 1,
			"name": "Child",
		}
	]
}

Thanks!

Yes, unfortunately this is current limitation. You can't access relationships during the lifecycle hooks... When lazy loading is implemented, we'll be able to handle this one...

Good to know, thanks 👍


Exception thrown whilst pressing keyboard keys at startup

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Open the counter example in Visual studio code
Press F5 to run.
Whilst the app is building, hold ctrl + shift and keep tapping the A key.

Expected results
An exception should not be thrown.
Actual results
An exception is thrown several times along with a host of warnings.
Code sample
Code sample
Use the counter example app.

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
Launching lib/main.dart on Linux in debug mode...

(myapp:62126): Gdk-CRITICAL **: 17:24:24.008: gdk_window_get_state: assertion 'GDK_IS_WINDOW (window)' failed

** (myapp:62126): WARNING **: 17:24:24.558: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:24.577: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:24.838: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:24.980: Unable to retrieve framework response: Message is not valid JSON
Connecting to VM Service at ws://<IP_ADDRESS>:46687/1SCKtRFwxlk=/ws

** (myapp:62126): WARNING **: 17:24:25.205: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:25.371: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:25.614: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:25.783: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:26.057: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:26.368: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:26.527: Unable to retrieve framework response: Message is not valid JSON
══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
The following assertion was thrown during a platform message callback:
A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs
in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure
that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the
event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName:
"Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key
A"), character: null, timeStamp: 4:15:05.572000)
'package:flutter/src/services/hardware_keyboard.dart':
Failed assertion: line 482 pos 13: '_pressedKeys.containsKey(event.physicalKey)'

Either the assertion indicates an error in the framework itself, or we should provide substantially
more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.yml

When the exception was thrown, this was the stack:
#2      HardwareKeyboard._assertEventIsRegular.<anonymous closure> (package:flutter/src/services/hardware_keyboard.dart:482:13)
#3      HardwareKeyboard._assertEventIsRegular (package:flutter/src/services/hardware_keyboard.dart:494:6)
#4      HardwareKeyboard.handleKeyEvent (package:flutter/src/services/hardware_keyboard.dart:616:5)
#5      KeyEventManager.handleRawKeyMessage (package:flutter/src/services/hardware_keyboard.dart:1041:37)
#6      BasicMessageChannel.setMessageHandler.<anonymous closure> (package:flutter/src/services/platform_channel.dart:212:49)
#7      _DefaultBinaryMessenger.setMessageHandler.<anonymous closure> (package:flutter/src/services/binding.dart:567:35)
#8      _invoke2 (dart:ui/hooks.dart:202:13)
#9      _ChannelCallbackRecord.invoke (dart:ui/channel_buffers.dart:45:5)
#10     _Channel._drainStep (dart:ui/channel_buffers.dart:228:31)
(elided 4 frames from class _AssertionError and dart:async)
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName: "Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key A"), character: null, timeStamp: 4:15:05.572000)

** (myapp:62126): WARNING **: 17:24:26.577: Unable to retrieve framework response: Message is not valid JSON
Another exception was thrown: A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName: "Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key A"), character: null, timeStamp: 4:15:05.572000)

** (myapp:62126): WARNING **: 17:24:26.812: Unable to retrieve framework response: Message is not valid JSON
Another exception was thrown: A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName: "Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key A"), character: null, timeStamp: 4:15:05.572000)

** (myapp:62126): WARNING **: 17:24:28.618: Unable to retrieve framework response: Message is not valid JSON

** (myapp:62126): WARNING **: 17:24:28.658: Unable to retrieve framework response: Message is not valid JSON
Another exception was thrown: A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName: "Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key A"), character: null, timeStamp: 4:15:05.572000)

** (myapp:62126): WARNING **: 17:24:28.740: Unable to retrieve framework response: Message is not valid JSON
Another exception was thrown: A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName: "Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key A"), character: null, timeStamp: 4:15:05.572000)

** (myapp:62126): WARNING **: 17:24:28.758: Unable to retrieve framework response: Message is not valid JSON
Another exception was thrown: A KeyUpEvent is dispatched, but the state shows that the physical key is not pressed. If this occurs in real application, please report this bug to Flutter. If this occurs in unit tests, please ensure that simulated events follow Flutter's event model as documented in `HardwareKeyboard`. This was the event: KeyUpEvent#25b1e(physicalKey: PhysicalKeyboardKey#7b545(usbHidUsage: "0x00070004", debugName: "Key A"), logicalKey: LogicalKeyboardKey#12bb1(keyId: "0x00000061", keyLabel: "A", debugName: "Key A"), character: null, timeStamp: 4:15:05.572000)

Application finished.

Exited.

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.13.6, on Fedora Linux 38 (Workstation Edition) 6.5.6-200.fc38.x86_64,
    locale en_GB.UTF-8)
    • Flutter version 3.13.6 on channel stable at /home/danny/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ead455963c (4 weeks ago), 2023-09-26 18:28:17 -0700
    • Engine revision a794cf2681
    • Dart version 3.1.3
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /home/danny/Android/Sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at:
      /var/lib/flatpak/app/com.google.AndroidStudio/current/active/files/extra/android-studio/jbr/bi
      n/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 16.0.6 (Fedora 16.0.6-3.fc38)
    • cmake version 3.27.7
    • ninja version 1.11.1
    • pkg-config version 1.8.0

[!] Android Studio (version unknown)
    • Android Studio at
      /var/lib/flatpak/app/com.google.AndroidStudio/current/active/files/extra/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • android-studio-dir =
      /var/lib/flatpak/app/com.google.AndroidStudio/current/active/files/extra/android-studio
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.83.1)
    • VS Code at /usr/share/code
    • Flutter extension version 3.74.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Fedora Linux 38 (Workstation Edition)
      6.5.6-200.fc38.x86_64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 118.0.5993.117

[✓] Network resources
    • All expected network resources are available.

Thanks for your report. This is a known issue being tracked at https://github.com/flutter/flutter/issues/125975. Closing this issue as a duplicate, so please follow up on it for further updates.


feat: add norm_num extension for the modulo operation for ℕ

This PR adds a norm_num extension for computing the modulo operation (i.e. %) over ℕ. This is a straightforward modification of the corresponding extension for nat subtraction.

Thanks!
bors merge


Lis histogram element

Adds a component to use for histograms.
See:
http://dev.lis.ncgr.org:50050/dev/core/lis-histogram-element.html
Docs:
http://dev.lis.ncgr.org:50050/docs/classes/core_components.LisHistogramElement.html

No rush @adf-ncgr and @alancleary as you guys have time to review this. I'm going to move on to other views in the meantime. DSCensor replace inc...

Closing this. Will resubmit with changes so its easier to track.


Card popularity statistics again

I dunno why, but card popularity stats show kinda unbelievable stats for basic lands. I have no clue as to what is causing that, but its pretty hard to believe that basic island is in 98% of decks.

Hi! Thank you for your message! there are different types of each basic land (https://imgur.com/t7Wj4QM) . But all of them were used by players. The card popularity means, that players use it in deck with current color.  98, 61 - 164501 unique deck. You can see another Basic Lad Island on screen with 26,58 - 44344 unique decks.

Oh... got it


Testing/db instance paramater constructors

Type of Change

[ ] Bug fix (non-breaking change, fixes #)
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Pester test is included
[X] C# unit test is included

Purpose
Add unit tests
Approach
Its a unit test
Notes
Two unit tests fail. I'm not sure if  var dbaInstanceParamater = new DbaInstanceParameter("[computerName\sql2008r2sp2]"); is supposed to work or not. Please advise if it should.
On another PR my unit tests seem to break becasue AppVoyer seems to test agains [host\instance] instead of host\instance. Tests have passed in recent builds though. I'm not even sure if [host\instance] with the square brackets should be legit.

Wouldn't have anything to do with the fact we use "localhost" as the host machine name would it?
And no with the brackets would not be a legit instance name.
Curious question though, what happened to DbaInstance? I have been able to use DbaInstance instead of DbaInstanceParameter before but see that is not out there anymore in dev branch.

@wsmelton I don't think that was my doing. When did it break? Does it work on master currently?
Removed the failing tests. Things should work.

Ok this can be merged!


Illinois 2023 Joint 81k wages one dep

Illinois 2023 Joint 81k wages one dep
http://taxsim.nber.org/out2psl/test34
Again, with no reported intermediate results from the emulator, I don't have any basis for guessing the reason for the difference.

Joint, household with dep implemented now, closed with PR #88


Request for improvements from the support chat

this tx shows up incorrectly. probably a ui bug. the amount im trying to send is not in the wallet (yet), but it will be after the previous tx

Please clarify.

Could we please add more information here? What is shown incorrectly? What is the expected result? Also if something is really shown incorrectly then this is probably a bug not an enhancement.

My post had two screenshots attached, that's why the confusion. This tx shows up like this in the safe. It's a display issue, the tx went fine.

Thanks for the response:
It would be expected to show that 72,794.906198209416116961 CRV are being transferred out (not 1). This is a token known to our backend (https://safe-transaction.gnosis.io/api/v1/tokens/0xD533a949740bb3306d119CC777fa900bA034cd52/).

This seems to be related with https://github.com/gnosis/safe-react/issues/1305
A fix should be included in the next release.


ZeroIoC.ServiceIsNotRegistered: 'Type ZeroIocTest.IUserService is missing in resolver

I am getting this exception with the following registration code
public partial class Container : ZeroIoCContainer
    {
        protected override void Bootstrap(IZeroIoCContainerBootstrapper bootstrapper)
        {
            bootstrapper.AddSingleton<Helper>();
            bootstrapper.AddSingleton<IUserService, UserService>();
            bootstrapper.AddScoped<IUserService, UserService>();
        }
    }

Generated code
public Container()
        {
          Resolvers.Add(typeof(global::ZeroIocTest.Helper), new SingletonResolver<ZeroIocTest_HelperCreator, global::ZeroIocTest.Helper>());

        }

The registration of multiple implementations is not supported at the moment. There were had plans for it, but I decided to keep it simple and postponed the feature.
I guess will add a compilation error with an explanation for such a case to avoid misunderstanding. Maybe in the future, I will work on it.

Pushed version 0.3.0. It has an error message that explains that there is no support for multiple implementations,


bug(MAT-TOOLTIP): Migration job in v15 performs a wrong replace

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
14
Description
The class mat-tooltip isn't equal to mat-mdc-tooltip.
Reproduction
StackBlitz link:
Steps to reproduce:
1.
2.
Expected Behavior
the right class should be - 'mdc-tooltip__surface'
Actual Behavior
replace mat-tooltip to mat-mdc-tooltip
Environment

Angular:
CDK/Material:
Browser(s):
Operating System (e.g. Windows, macOS, Ubuntu):

It does seem that mdc-tooltip__surface is likely a better mapping, although the code for the migration tool is going to be deleted https://github.com/angular/components/pull/28838


:arrow_up: 1133: Upgrade backend

Upgrading backend - typescript and jest.
Fixed test-cases accordingly.

@danoswaltCL Is this ready to merge?


Fix crash with delay demo.

The audio effects system works great !
The issue with the delay effect was simply caused by an uninitialized variable.

@ptarabbia Nice! Thanks for the review! 👍😄


Debian Linux install Error

Hello
Debian Bullseye X64 with java 17 install error
--first installed LSP
--then LSP-jdtls
No config tweaked at any time.
at the end of LSP-jdtls I get  this:

Please tell me how to diagnose this.
Thank You 0/

Please follow the steps here
https://github.com/sublimelsp/LSP-jdtls/issues/31#issuecomment-1336365663 but open any Java project in step 8 and some Java file in this project in step 9.
Then open the command palette and execute LSP: Troubleshoot Server and select jdtls.

the @LDAP answer fixed the problem minus using the --safe-mode switch. just do all of that but don't use --safe-mode just open regular sublime.
thak you @LDAP  🌷🏵


How can i Submit the Value of the Form Slider Component?

Hi im Using Laravel in my Project , and i tried to follow the simplest example in the site demo
yes i did get the same result...
i also included it in my Form
{!! Form::open(['route' => 'guest::product@index', 'method' => 'GET', 'class' => 'col s12']) !!}

    {!! Form::submit('Filter', ['class' => 'btn waves-effect waves-light col s12']) !!}

    {!! Form::close() !!}

@endsection

@section('customjs')

@endsection

when i dd the request
i get an empty array...
How can I add this to the request?
Any Solution to this?

You can read the values of the slider by using their api call .get(). See documentation here: https://refreshless.com/nouislider/slider-read-write/


android: The environment name should contain maximum 196 of the following allowed characters...

Thanks for taking the time for reporting an issue!
Describe what happened
Android crash when opening app in debug mode with datadog RUM
This error does not exists on iOS

Steps to reproduce the issue:
Configure the react native with datadog RUM
Run the android app in dev mode
Describe what you expected:
I would expect the app to be running without crashing
Additional context
"@datadog/mobile-react-native": "^1.0.0-rc4",
package.json
{
  "name": "test",
  "version": "4.1.0",
  "private": true,
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/plugin-proposal-class-properties": "^7.10.4",
    "@babel/plugin-transform-flow-strip-types": "^7.16.7",
    "@babel/preset-typescript": "^7.16.7",
    "@babel/runtime": "^7.12.5",
    "@commitlint/cli": "^16.0.1",
    "@commitlint/config-conventional": "^16.0.0",
    "@faker-js/faker": "^6.0.0-alpha.6",
    "@sentry/cli": "^1.73.2",
    "@testing-library/jest-native": "^4.0.4",
    "@testing-library/react-native": "^9.0.0",
    "@types/jest": "^27.4.1",
    "@types/node": "^17.0.16",
    "@types/react": "^17.0.39",
    "@types/react-dom": "^17.0.11",
    "@types/react-native": "^0.67.2",
    "@types/react-navigation": "^3.4.0",
    "@types/react-redux": "^7.1.22",
    "@types/react-test-renderer": "^17.0.1",
    "@typescript-eslint/eslint-plugin": "^5.11.0",
    "@typescript-eslint/parser": "^5.11.0",
    "@welldone-software/why-did-you-render": "^6.2.1",
    "babel-jest": "^27.5.1",
    "babel-plugin-module-resolver": "^4.1.0",
    "babel-preset-react-native-stage-0": "^1.0.1",
    "detox": "^19.4.3",
    "eslint": "7.21.0",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-jest": "^26.1.1",
    "eslint-plugin-react": "^7.13.0",
    "eslint-plugin-react-hooks": "^4.3.0",
    "eslint-plugin-react-native": "^3.7.0",
    "eslint-plugin-sonarjs": "^0.11.0",
    "eslint_d": "7.3.0",
    "husky": "^7.0.4",
    "jest": "^27.5.1",
    "jest-circus": "^27.5.1",
    "jest-sonar-reporter": "^2.0.0",
    "jetifier": "^1.6.7",
    "lint-staged": "^12.1.7",
    "metro-react-native-babel-preset": "^0.66.2",
    "prettier": "2.2.1",
    "prompts": "^2.4.1",
    "react-devtools": "^4.23.0",
    "react-devtools-core": "^4.23.0",
    "react-native-typescript-transformer": "^1.2.13",
    "react-test-renderer": "17.0.2",
    "standard-version": "^9.3.2",
    "ts-jest": "^27.1.3",
    "tslib": "^2.3.1",
    "typescript": "^4.5.5",
    "xml2js": "^0.4.23"
  },
  "scripts": {
    "android": "react-native run-android",
    "build:android": "react-native bundle --entry-file='index.js' --bundle-output='./android/app/src/main/assets/index.android.bundle' --sourcemap-output='./android/app/src/main/assets/index.android.bundle.map'",
    "build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --sourcemap-output='./ios/main.jsbundle.map' --dev=false --platform='ios'",
    "bump:build": "bundle exec fastlane bump_build",
    "bump:version": "standard-version --pre-release beta && bundle exec fastlane bump",
    "deploy": "node ./deploy.js",
    "changelog": "standard-version --pre-release beta --skip.bump",
    "ios": "react-native run-ios --simulator=\"iPhone 11 (15.2)\"",
    "ios:small": "react-native run-ios --simulator=\"iPhone SE (2nd generation)\"",
    "lint": "eslint --ext .js --ext .jsx .",
    "postinstall": "patch-package && jetifier",
    "prepare": "husky install",
    "prettier:check": "prettier --check .",
    "prettier:fix": "prettier --write .",
    "react-devtools": "react-devtools",
    "sourcemap:upload": "scripts/upload_sourcemap.sh",
    "start": "NODE_ENV=development react-native start --reset-cache",
    "test": "jest --maxWorkers=50%",
    "test:staged": "jest -o",
    "test:ci": "jest --runInBand",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage",
    "test:coverage:summary": "jest --coverage --coverageReporters=\"text-summary\"",
    "e2e:ios-build": "detox build --configuration ios",
    "e2e:ios-test": "detox test --configuration ios"
  },
  "dependencies": {
    "@datadog/mobile-react-native": "^1.0.0-rc4",
    "@datadog/mobile-react-navigation": "^1.0.0-rc4",
    "@react-native-community/async-storage": "1.11.0",
    "@react-native-community/blur": "^3.6.0",
    "@react-native-community/cameraroll": "^4.1.2",
    "@react-native-community/masked-view": "0.1.11",
    "@react-native-community/netinfo": "^7.1.8",
    "@react-native-community/push-notification-ios": "1.8.0",
    "@react-native-firebase/analytics": "11.5.0",
    "@react-native-firebase/app": "11.5.0",
    "@react-native-firebase/iid": "11.5.0",
    "@react-native-firebase/remote-config": "11.5.0",
    "@react-navigation/bottom-tabs": "^6.2.0",
    "@react-navigation/native": "^6.0.8",
    "@react-navigation/stack": "^6.1.1",
    "@reduxjs/toolkit": "^1.8.0",
    "@sentry/react-native": "^3.3.2",
    "@stream-io/flat-list-mvcp": "^0.10.1",
    "@stripe/stripe-react-native": "^0.3.0",
    "appcenter": "4.4.3",
    "appcenter-analytics": "4.4.3",
    "appcenter-crashes": "4.4.3",
    "axios": "^0.26.0",
    "axios-retry": "^3.2.4",
    "eslint": "7.21.0",
    "fbjs": "^3.0.2",
    "formik": "^2.2.9",
    "intl": "^1.2.5",
    "launchdarkly-react-native-client-sdk": "^6.0.0",
    "link-preview-js": "2.1.10",
    "lodash": "4.17.21",
    "mixpanel-react-native": "1.3.7",
    "node-emoji": "1.10.0",
    "patch-package": "^6.4.7",
    "postinstall-postinstall": "^2.1.0",
    "prop-types": "15.7.2",
    "querystring": "0.2.0",
    "react": "17.0.2",
    "react-native": "0.67.2",
    "react-native-android-open-settings": "1.3.0",
    "react-native-appsflyer": "6.2.42",
    "react-native-bootsplash": "3.2.6",
    "react-native-camera": "4.0.0",
    "react-native-circular-progress-indicator": "1.1.2",
    "react-native-communications": "2.2.1",
    "react-native-compressor": "^1.5.2",
    "react-native-currency-input": "^1.0.1",
    "react-native-device-info": "8.3.3",
    "react-native-document-picker": "^8.0.0",
    "react-native-dotenv": "3.3.1",
    "react-native-fast-image": "8.3.2",
    "react-native-flash-message": "github:imouto2005/react-native-flash-message",
    "react-native-flipper": "^0.136.0",
    "react-native-fs": "^2.18.0",
    "react-native-geolocation-service": "5.2.0",
    "react-native-gesture-handler": "2.1.1",
    "react-native-haptic-feedback": "^1.13.0",
    "react-native-image-crop-picker": "^0.37.2",
    "react-native-image-resizer": "^1.4.5",
    "react-native-keyboard-aware-scroll-view": "0.9.3",
    "react-native-linear-gradient": "2.5.6",
    "react-native-localize": "1.4.0",
    "react-native-map-link": "2.7.28",
    "react-native-maps": "^0.30.1",
    "react-native-markdown-renderer": "3.2.8",
    "react-native-modal": "11.10.0",
    "react-native-moengage": "7.1.0",
    "react-native-navbar-color": "1.0.3",
    "react-native-navigation-bar-color": "2.0.1",
    "react-native-paper": "4.11.1",
    "react-native-pdf": "6.2.0",
    "react-native-permissions": "3.1.0",
    "react-native-pure-jwt": "^3.0.0",
    "react-native-push-notification": "7.3.1",
    "react-native-raw-bottom-sheet": "2.2.0",
    "react-native-reanimated": "^2.4.1",
    "react-native-restart": "^0.0.23",
    "react-native-safe-area-context": "^3.3.2",
    "react-native-screens": "3.10.2",
    "react-native-share": "^7.3.3",
    "react-native-svg": "^12.1.1",
    "react-native-url-polyfill": "1.2.0",
    "react-native-vector-icons": "7.0.0",
    "react-native-video": "5.1.1",
    "react-native-video-controls": "2.8.1",
    "react-native-webview": "11.0.0",
    "react-redux": "^7.2.6",
    "react-string-replace": "0.4.4",
    "redux-devtools-extension": "2.13.9",
    "redux-flipper": "^2.0.1",
    "rn-fetch-blob": "0.12.0",
    "rn-intersection-observer": "0.3.0",
    "rn-sliding-up-panel": "2.4.3",
    "stream-chat-react-native": "^3.10.2",
    "url": "0.11.0",
    "use-count-up": "3.0.1",
    "yup": "^0.32.11"
  },
  "lint-staged": {
    "*.{js,css,md}": "prettier --write",
    "*.{js,jsx}": "eslint --cache --fix"
  },
  "standard-version": {
    "skip": {
      "commit": true,
      "tag": true
    },
    "options": {
      "preset": {
        "name": "conventionalchangelog",
        "issuePrefixes": [
          "#"
        ],
        "issueUrlFormat": "https://myBugTracker.com/{{prefix}}{{id}}"
      }
    }
  },
  "resolutions": {
    "react-devtools-core": "4.23.0"
  }
}

Hello @finalight! Thanks for opening the issue. While the behaviour of iOS SDK vs Android SDK considering the validation of environment is different, the restriction is still valid. Is it possible for you to make environment to be less than 196 characters?

do you mean per enviroment key value or in total?
i have quite a number of enviroment key value, and none of them (the value itself) exceed 196 characters each

According to the stacktrace shown it is the DdSdkReactNativeConfiguration#env parameter which raises the error: it should comply with the restriction shown. If the value of this parameter complies, but you still get an error, please show us the value (if you don't want to disclose it publicly you can also open a ticket with our support).

Hello @finalight. I hope that the issue is resolved for you and I'm closing this ticket due to inactivity. Feel free to re-open it if you still experience problems.