Create SpellRouter-proposal.md

Project Abstract
This proposal aims to push boundaries in the state-of-the-art development on the Polkadot and Kusama ecosystem. It aims to create the first XCM Router for the Polkadot and Kusama ecosystem. There is a large demand for such tool. XCM Router will allow developers to create XCM messages with asset exchange in just one line (Eg. Transfer GLMR from Moonbeam and receive DOT on Astar). The XCM Router will utilize already hardened and fully developed XCM SDK.
Grant level

[ ] Level 1:  Up to $10,000, 2 approvals
[x] Level 2:  Up to $30,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied and aptly renamed (project_name.md).
[x] I have read the application guidelines.
[x] Payment details have been provided - BTC Address
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
[ ] I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

I have read and hereby sign the Contributor License Agreement.

Hi @dsm-w3f, thank you for your questions.
The proposal aims to create a sovereign typescript package - XCM Router (so we give developers the ability to implement it that way also), but it also covers implementing it into XCM API for those who already use XCM API. The implementation of XCM Router into XCM API however is not the main aspect of this proposal - the XCM Router package is. We included implementation into XCM API also because we see benefits in its package less implementation and it also benefits users that already use XCM API (They will not need to install the Router package manually).

There is also some data in the application about the usage of the API. The number of requests is interesting to have, but do you from how many sources/applications/users these requests come from?

As we stated during the implementation of the analytic tool into API. We strictly do not collect any user data and API users remain anonymous if they use captcha verification only (Up to 100 requests per minute - sufficient for most projects out there as XCM is not yet that widely adopted). Once there will be a project requesting access to more than 100 requests per minute we require them to fill small form informing us what they will use requests for to prevent malicious behaviour. Their token is then stored in a Database which stores these special cases (Only token and allowed max request amount). We otherwise do not have another way to know who uses the API and this is intentional. Our tools are common good tools and we do wish to enhance anonymity and ease of use. All this while being completely open-source and completely free for every developer. We believe, that this can only bring benefits to Polkadot which is a decentralized blockchain network. The intention of sharing personal details should be a personal choice for users.

What are the plans for continuing funding this project in a short and long-term vision?

We are currently maintenance funded for 5 months by Kusama treasury and our latest win in the Polkadot APAC 2023 Hackathon. This maintenance funding is meant to cover XCM API, XCM SDK and can be considered as a short-term vision. As for long-term vision - we wish to apply for maintenance funding via treasury again after 5 months. If the community sees the importance of us maintaining these ecosystem-beneficial tools they will allow us to continue maintaining them - compensating our time. As we stated in our LightSpell proposal before - we will work on maintaining these tools for free just like before when we weren't treasury funded if this ever becomes necessary again. We wish to bring new innovations to the ecosystem as we feel, that the adoption of XCM is not yet where it should be while the potential is definitely there.

Did you consider continuing to apply for grants or going for treasury or another program such as the substrate builders program?

We did. While we believe treasury is a good way to apply for grants - based on previous experiences of other projects being rejected token holders do not seem to be happy to fund innovations at the moment as their outcome might not always be as expected. This can be bad because the treasury pays in advance. Thus we only wish to use treasury for maintenance funding where token holders already see the potential and already see the built product. This is why we consider Web 3 Foundation to be the best place to apply for innovative funding/grants. Projects are not paid in advance and they have to be delivered according to pre-accepted terms. The substrate builders program was in our scope, however, we do not have a business model as a common good and a completely free set of tools. Their focus is primarily to jumpstart teams that have business ideas in mind. Our team focuses on improving the network rather than profit and business cases.

Do you have some user feedback about your API? For example, posting in the Polkadot forum and getting the opinions of users could be a good way to get feedback and support the argumentation about the utility of the API and the proposal in the application.

We mostly collected feedback for the API from Hackathon Participants and judges while participating in Polkadot Global Series 2023 APAC Edition. The feedback was, that API was very well made and definitely needed in the ecosystem. Thus we also won the competition in the XCM Integration track. We consider our main source of feedback our recently implemented analytic tool - Sentry meant to catch errors that are not handled by the API. This way we can always improve if we see a new error without users even needing to remind us. On top of that, we are always open to solving new issues in our GitHub repositories. These issues may also contain enhancement ideas that can then be implemented. As for Polkadot forums, our team mostly engages in governance topics, but perhaps getting feedback from there can also be resourceful and useful. We will definitely consider it.
We believe all your questions were answered.
If any new arises, feel free to ask, we will answer ASAP.
With kind regards,
Team ParaSpell

@dudo50 thank you for the answer. I'll make your application ready for review. I have only one more question, which exchanges will be supported?

Which exchanges will be supported?

@dsm-w3f , thank you for the question. This is a matter of research for now. But what I can say is, that no third-party exchanges for sure. Only on-chain exchanges that Parachains offer. For example Omnipool by HydraDX or Karura/Acala exchanges etc.

Thanks for the application @dudo50 happy to see you again.
Hey @keeganquigley, happy to see you again too!

After seeing the proposals fail with the treasury, I'd be in favor of supporting your team again. But it looks like we've given out about 50k to your team so far, which prompts me to ask if there has been any further adoption of your tools yet at this point? Your team does good work, but my fear is that we end up paying out a lot for something that doesn't get used.

I understand your concerns. To answer them, yes, the number of repos implementing SDK increased from 16 to 21 for example and the API served to the moment I am writing this comment 29095 requests since it was launched so it is a slow increase but it goes to show, that the increase is headed in a good direction.

On top of that, we are in talks with Parachain teams like Astar, who agreed to put implementing our tools on backlog once they will be refactoring their defi tool. It is hard to get implementations as this is a very niche set of tools meant specifically for dApp developers. As XCM is not yet that widely adopted I believe, that we need to continue pushing boundaries and implementations will come as projects will start adopting XCM. They will naturally try to search for tools that can help them resolve complexities they would otherwise have to face.

So if I understand correctly, after this grant you plan on going for maintenance funding from the treasury, similar to the Kusama treasury funding for LightSpell? Just want to make sure we aren't double funding anything that the treasury is already covering. For example, combining all the tools into a monorepo sounds like it could be covered under maintenance.

This grant is meant to fund our innovative work - XCM Router. As we are maintenance funded for the next 5 months we do not need another proposal for maintenance until then. We will include the XCM Router in maintenance once it is developed and maintain it along with XCM API and XCM SDK without requesting any additional costs. About monorepo, you are right, after internal discussion within our team, this should be covered under maintenance and I am removing it from the application and significantly lowering proposal costs.

Could you integrate more technical details into the milestone delivery tables, for example what is "automatic selection" in M2 XCM Router section?

Will do along with commit where monorepo integration will be removed from proposal.

For M2 section 3, what are you using to automatically update the repos, is this just Dependabot? And how often do you need to do manual updates?

As this was also meant as an enhancement of monorepo later on, this will be also removed and costs reduced. But to answer your question, it was supposed to be a script that auto-updates XCM SDK in both XCM Router and XCM API packages if a new XCM SDK version is released.
I will ping you in the next comment when the updates will be applied.
With kind regards,
Team ParaSpell

Hey @keeganquigley,
just pushed the updates. Please let me know if there is something unclear or if there is something that still needs more details to be provided. Thank you.
With kind regards,
Team ParaSpell

@dsm-w3f , thanks for the notice. It has now been fixed.
With kind regards,
Team ParaSpell

Hey team thanks for the application. I had some questions:

How technically feasible is the implementation of SpellRouter, considering the complexity of cross-chain communication in the Polkadot ecosystem?
How do you envision SpellRouter contributing to the growth and advancement of the Polkadot ecosystem, particularly in terms of cross-chain interoperability?

Hey team thanks for the application. I had some questions:

Hey @nikw3f, thank you for your questions.

How technically feasible is the implementation of SpellRouter, considering the complexity of cross-chain communication in the Polkadot ecosystem?

Very feasible,  we already provided a simple overview of the architecture. In a more basic overview:

XCM messages across Parachains will be handled by ParaSpell XCM SDK
To read if the XCM Message was received and the block finalized we can use many of the already implemented indexing & query tools such as SubQuery for example

The rest of the logic will be handled by the XCM Router itself (Picking the exchange chain, checking the best exchange chain, generating exchange calls, requesting SDK to generate calls and so on..)

How do you envision SpellRouter contributing to the growth and advancement of the Polkadot ecosystem, particularly in terms of cross-chain interoperability?

As we already know, the complexity of XCM implementation is extensive. Thus, bringing tools that allow us to abstract this complexity from developers is very beneficial. XCM Router goes beyond than just generating specific XCM Calls. It allows for generating calls that give users the opportunity to receive different assets on the destination chain without any additional manual efforts (Eg. manually transferring tokens to the exchange chain, exchanging them manually and then transferring tokens to the destination chain. These steps could result in asset loss if the inexperienced user decides to do them.) Developers will be able to not only abstract this logic from their code but also abstract it from users which I believe will come in much benefit for both parties.
We hope all your questions were answered, if any new arise feel free to ask.
With kind regards,
Team ParaSpell

@keeganquigley , @dsm-w3f , @nikw3f , thank you kindly for your support. It is very appreciated.
With kind regards,
Team ParaSpell

Sorry for ping @dsm-w3f , we have received 3 approvals as is required for level 2 grant, however, our application is not yet merged. Just wondering if there is delay or mis-comunication. We would like to start working on XCM-Router already but as PR is not yet merged we don't know what to do. Many thanks for your answer.
With kind regards,
Team ParaSpell

Thanks @dudo50 it has to be manually merged, let me ask the team.

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:
https://forum.polkadot.network/t/introducing-complex-set-of-xcm-tools-paraspell/5625/1

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:
https://forum.polkadot.network/t/enhancing-cross-chain-experience-of-your-dapps-with-revolutionary-xcm-tool-set-from-paraspell/8792/1


Flakey CI tests when minting

Some of the ci tests fail when the wallet attempts to mint before the invoice is marked as paid. We should wait till mint invoice is paid by polling check endpoint

I would like to work on this.

All the tests in "fake_wallet.rs" is failing because the mint is not started at "http://<IP_ADDRESS>:8086".
start_fake_mint function is defined in "init_fake_wallet.rs", So I guess default value of MintMemoryDatabase struct should work.

I would like to work on this.

Go for it, thanks

I would like to work on this.

Go for it, thanks.
We should just be able to add a loop in that checks for the quote to be marked as paid by polling the check endpoint. I think one of the tests does this not there is an example here, though in the tests with fake wallet we should be able to sleep for less time.

The errors are occuring in melt_bolt11  primarily due to "Unknown Invoice" error.
I'm running the CI using ./misc/fake_itests.sh MEMORY.
Some more information would be helpful.

Those are logged errors but in the test they are expected since it is checking error cases they aren't causing tests to fail. The flaky tests on the mint, there are currently just sleeps in place between getting the mint quote and attempting to fill it where the fake wallet should mark it as paid. But occasionally this sleep isnt long enough so it should be replaces will the loop checking the state as i linked above.
https://github.com/cashubtc/cdk/blob/3db25640dc2177f009dd27dc117d61fd0d2d0c11/crates/cdk-integration-tests/tests/fake_wallet.rs#L33

https://github.com/cashubtc/cdk/pull/440


No expiry date on requests and no access/update times in the DB

Without an expiry date or last access/update time in the DB, I can perform any house keeping.  I have a sqlite DB that is growing infinitely, with void requests being retained forever.  Can we have a column added to the DB that records when the entry was accessed or when it will expire, updating it each time the data is loaded from cache?  I could then setup a house keeping cron to discard invalid request items from the cache.

For reference:

The SQLite backend now indexes the expiration date for faster cleanup: #364
The Redis, MongoDB, and DynamoDB backends support TTL integration: #361 #362 #363
Please comment on #116 if a LRU/LFU cache is something you need


Add dependabot

Use grouping for ktor dependencies... They will probably shipped all together anyways 🙃

Fixed in https://github.com/ioki-mobility/kmp-lokalise-api/commit/25f69a9ab7dd7cf3cc08df5f31199ab53005900b & https://github.com/ioki-mobility/kmp-lokalise-api/commit/505a54bfe1dfe68a2533389d2a4e05f072aaf382


Saleor 4387/draft order incorrect label

I want to merge this change because I fixed the incorrect label in order drafts.
PR intended to be tested with API branch:
Screenshots
before:

after:

Pull Request Checklist

[ ] This code contains UI changes
[ ] All visible strings are translated with proper context including data-formatting
[ ] Attributes [data-test-id] are added for new elements
[ ] Changes are mentioned in the changelog
[x] The changes are tested in different browsers and in light/dark mode

Test environment config

API_URI=https://master.staging.saleor.cloud/graphql/

Task linked: SALEOR-4387 Incorrect label in Dashboard draft order

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


treesheets: unstable-2024-01-30 -> unstable-2024-03-14

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for treesheets is: Free Form Data Organizer
meta.homepage for treesheets is: https://strlen.com/treesheets/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2024-03-10 in filename of file in /nix/store/2xh0gpz6d58hzrql6zh59admds0cwbim-treesheets-unstable-2024-03-10

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
treesheets

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2xh0gpz6d58hzrql6zh59admds0cwbim-treesheets-unstable-2024-03-10 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A treesheets https://github.com/r-ryantm/nixpkgs/archive/fbdb65d8cbd84e4cfbc0fa786820b91dd7a8d429.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/fbdb65d8cbd84e4cfbc0fa786820b91dd7a8d429#treesheets

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2xh0gpz6d58hzrql6zh59admds0cwbim-treesheets-unstable-2024-03-10
ls -la /nix/store/2xh0gpz6d58hzrql6zh59admds0cwbim-treesheets-unstable-2024-03-10/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

treesheets

Maintainer pings
cc @obadz @AveryLychee for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for treesheets is: Free Form Data Organizer
meta.homepage for treesheets is: https://strlen.com/treesheets/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found unstable-2024-03-14 in filename of file in /nix/store/qqcj3hx7xscm030z5qkfckarhz8m20ry-treesheets-unstable-2024-03-14

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
treesheets

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qqcj3hx7xscm030z5qkfckarhz8m20ry-treesheets-unstable-2024-03-14 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A treesheets https://github.com/r-ryantm/nixpkgs/archive/fcdbe5b717d9d54b8feb484992a37f6afc80814f.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/fcdbe5b717d9d54b8feb484992a37f6afc80814f#treesheets

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qqcj3hx7xscm030z5qkfckarhz8m20ry-treesheets-unstable-2024-03-14
ls -la /nix/store/qqcj3hx7xscm030z5qkfckarhz8m20ry-treesheets-unstable-2024-03-14/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

treesheets

Maintainer pings
cc @obadz @AveryLychee for testing.


Update eventmesh-store-quickstart.zh-CN.md

@TrumanDu  can you please add another lonely file for defibus instructions?

@qqeasonchen sorry, i don't know about defibus . I just change the format

@TrumanDu The doc was updated already, you can join our wechat group if you want to contribue, welcome to join our community.

@TrumanDu can you let me know who you are through wecaht or email and discuss what you can contribute if you want?


Added support for proxy authentication using the X-Proxy-Authorizatio…

…n header.
This change requires changes on the client side as well. A PR for jsforce coming soon.

@stomita Please review.


RFC: switch from optimist to yargs

optimist is old, yargs is new.
optimist truncates the help output in the event that check() throws an error, meaning the user probably doesn't have any idea what went wrong or why.
yargs shows the untruncated help output.
This is an RFC because we run Jest in a bunch of places and not all will have access to yargs.

See also https://github.com/facebook/jest/pull/1042, which is the same as just the first commit of this PR, without the RFC/yargs bit.

@facebook-github-bot import


[AutoPR datafactory/resource-manager] SSIS File System Support

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6548

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/5269


virt-operator in crashback loop in version v0.39.1

Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
What happened:
Try to install version v0.39.1  but got ImagePullBackOff in pod/virt-operator-6d5988c4bf-pmmcs
What you expected to happen:
kubevirt      pod/virt-operator-6d5988c4bf-pmmcs             1/1     Running   0          18m

How to reproduce it (as minimally and precisely as possible):
export RELEASE=v0.39.1
kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml

kubectl get all -n kubevirt

Anything else we need to know?:
If we look at https://github.com/kubevirt/kubevirt/releases/download/v0.39.1/kubevirt-operator.yaml file, there is some part stated:
quay.io/kubevirt/virt-operator@sha256:2429917d5fa837c5b3f7a8ebcc4df6f9574d3bbab8f9d47c45d1a71d150e0c7f
// and
- name: VIRT_API_SHASUM
  value: sha256:23814ce5ce542013bb3de7459a4e1b5548742ab34ec8f084edd29fc3e4d11a29
- name: VIRT_CONTROLLER_SHASUM
   value: sha256:ff6ff916aee1bc7976d9598fcc1d955e139416d55ca87b03c58e52c0bf824495

If crosscheck to https://quay.io/repository/kubevirt/virt-operator?tag=latest&tab=tags, the sha256 value for vesion v0.39.1 should:
quay.io/kubevirt/virt-operator@sha256:c0347d5d8d4c6a498fdb45ef3516ea28355e9981419a2d183932577542f70e58
// and
- name: VIRT_API_SHASUM
  value: sha256:dd94c919d04eb15ebc280d40098e3e724760c3ee92fbf539be0f50d82c0c4c04
- name: VIRT_CONTROLLER_SHASUM
   value: sha256:2f4b8ee5f3828810790dc74b39305fe39abd8f964c17a2b64a4ee74e56bdccf2

Environment:

KubeVirt version (use virtctl version):

Client Version: version.Info{GitVersion:"v0.38.1", GitCommit:"8c3ba52f8ce7cbb55c29919e9c263617716aa054", GitTreeState:"clean", BuildDate:"2021-02-08T20:04:23Z", GoVersion:"go1.13.14", Compiler:"gc", Platform:"linux/amd64"}
the server is currently unable to handle the reques

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.5", GitCommit:"6b1d87acf3c8253c123756b9e61dac642678305f", GitTreeState:"clean", BuildDate:"2021-03-18T01:02:01Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}

/cc @dhiller
this is a known issue. We switched over to new release automation and something incorrectly occurred when publishing release assets
https://groups.google.com/g/kubevirt-dev/c/1yoV88b3HPk
I'm going to remove 0.39.1 from our releases for now so people stop attempting to use this until it is resolved. Due to holidays and PTO, it might be next week before we can address this properly.

I've deleted the v0.39.1 release to avoid further confusion here until we can get the issue sorted out

@davidvossel we could cherry pick the changes from moving towards prow and rerun the release from there. WDYT?

I was able to get a v0.39.1  release out with travis. it's unreliable, but it managed to work this time.
https://github.com/kubevirt/kubevirt/releases/tag/v0.39.1


Styling Projects Page

The cards design looks a bit pale. A little more animated or UI redesign is needed.

Here i think they will look good after some color changes and height adjustments and i can intergrate tilt.js alongside

i would like to work on this

Yeah using tilt.js would look great!
Make sure it is minimalistic though!
Assigning to you!

How about this design ?

How about this design ?

Looks Great!!
Can you do something that would keep the entire project's name?
If half of the name comes down to another line that's not an issue but if due to that the whole styling (card) gets on another line it would not align with the other cards

Yes, to overcome this problem we will have to trim text after a particular length like showed in above design.
if we will scale down text size it will impact UX. We can do one thing that we will add tooltip on Title for example on hovering on title whole title will show up in tooltip or another option is to make text overflow in x direction with a scroll
but i personally feel tootip is god option

Yes, to overcome this problem we will have to trim text after a particular length like showed in above design.
if we will scale down text size it will impact UX. We can do one thing that we will add tooltip on Title for example on hovering on title whole title will show up in tooltip or another option is to make text overflow in x direction with a scroll
but i personally feel tootip is god option

Yeah we can go with tooltip and maybe decrease font size a bit

Yes, to overcome this problem we will have to trim text after a particular length like showed in above design.
if we will scale down text size it will impact UX. We can do one thing that we will add tooltip on Title for example on hovering on title whole title will show up in tooltip or another option is to make text overflow in x direction with a scroll
but i personally feel tootip is god option

Yeah we can go with tooltip and maybe decrease font size a bit

According to me decreasing font size will destroy the purpose of Title aa Title should be the first catchy thing for user as we ourselves when visit a website scan it ans not read details . So Title should be large enough to catch user's eye. Rest if you want to discuss with others than we can discuss with other about their review on this

Shall i increase card height and width, it will solve the issue you were talking about earlier

Shall i increase card height and width, it will solve the issue you were talking about earlier

You can try if it works than great

Hey! Is this issue still open? I wanted to work on it.

Hye request to assign this issue to me under GSSOC'23


Notification and roster fixes for Extensions SDK

Adding support for Get roster fetch without tenant Id,
Sending notifications from Bots,
Fixes for Adding AtMentions

@RamjotSingh,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Cannot multi-select items in SCM / Git Viewlet

VSCode Version: 1.10.0-insider
OS Version: Mac

Steps to Reproduce:

Open a Git repository
Edit 2 files and save them
Go to the Git viewlet and click on the 1st file
Shift + Click to select the 2nd file (or Shift + Down Arrow)

Expected:

Both items are selected
Note that in the 1.9.1 release, multi-select works just fine

Actual:

Multi-select no longer works for either keyboard or mouse navigation

Duplicate of https://github.com/Microsoft/vscode/issues/21000


mixins with same name but different argument count get imported twice

I have following mixins
.ellipsis(@width: none) {
width: @width;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ellipsis(@width_type, @width) {
test: @arguments;
@width_type: @width;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
And following selectors:
table.consumption_entry {
th {
.ellipsis(max-width, 85px);
}
}
What i get:
table.consumption_entry th {
width: max-width;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
test: max-width 85px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Expected output:
table.consumption_entry th {
test: max-width 85px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Notice also on the error case the missing "max-width: 85px" eventthough the @arguments clearly has them.
How can the mixin match for only one argument aswell?

inside a mixin if you have
.a(@arga, @argb) {
   @arga : @argb;
}

you are just assigning argb to arga... not outputting the rule.
With regards mixins, you are right that it should only match the one with 2 arguments, we need to port the (very) recent commit from less.js to allow
.a(...) {
  variable: @arguments;
}

In order that it is still possible to use the arguments var effectively.

is there any way to get
@arga: @arb
to output?
This should be documented somewhere. Either that is it an assignment or not printed...

Not that I know of. If you have a finite number of cases you could use
guards.
Its hacky but you could also try
Border: ~"red; @{arga}:@{argb}";

But its a hack and I've never seen anyone need this. What's the use case?

@agatronic Pretty much as described. I want to be able to be able to let the user decide what kind of width he wants. Fixed or variable until a max-width. In this case overflow and ellipsis only make sene if there is a width set, else the element will expand to fit the text..
Generally speaking, the use case is whenever the user should be able to specify a property as variable. And not needing to write different mixins for all the combinations.

for reference on variadic arguments...
https://gist.github.com/1933613
Note that dotless currently has less.js 1.2.2 behaviour where only a minimum number of arguments is imposed.


Documentation issue: Keys must be lowercase

Keys in the JSON file will only be matched if they are lowercase. The documentation mentions that searching is case insensitive, but not that keys have to be lowercase.
Changing my keys to lowercase made it work.

Hi @damangio : I am getting error in console and I see nothing in my HTML that shows anything for autoabbr:
TypeError: $(...).autoabbr is not a function
Any clue what's going on?

Hi. This is @pauljz's project, not mine. But it sounds like maybe your page does not actually contain autoabbr.js.


Problems with the tool

Maybe it's because I have 0 knowledge of python apart from running scripts, but I can't seem to get this to work.
When pasting my path file, I get this error in VS Code.

When trying to run the tool despite it, I get this:

C:\Users\danie\Documents\Dani\TS4\Programs\The-Sims-Resource-Downloader-0.2.0>python src/main.py
Traceback (most recent call last):
File "C:\Users\danie\Documents\Dani\TS4\Programs\The-Sims-Resource-Downloader-0.2.0\src\main.py", line 2, in
from TSRDownload import TSRDownload
File "C:\Users\danie\Documents\Dani\TS4\Programs\The-Sims-Resource-Downloader-0.2.0\src\TSRDownload.py", line 7, in
CONFIG: CONFIG_DICT = json.load(
^^^^^^^^^^
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\json_init_.py", line 293, in load
return loads(fp.read(),
^^^^^^^^^^^^^^^^
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\json_init_.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
^^^^^^^^^^^^^^^^^^^^^^
json.decoder.JSONDecodeError: Invalid \escape: line 2 column 29 (char 30)

I looked up the VS Code error, and it said I should use forward slashes instead of backslashes, but then I get this:

[INFO] Found valid url in clipboard: https://www.thesimsresource.com/downloads/details/category/sims4-hair-hairstyles-female/title/ye-medieval-isabelle-hairstyle/id/1640584/
Process SpawnPoolWorker-1:
Traceback (most recent call last):
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\pool.py", line 114, in worker
task = get()
^^^^^
File "C:\Users\danie\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\queues.py", line 367, in get
return _ForkingPickler.loads(res)
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: Can't get attribute 'processTarget' on <module 'mp_main' from 'C:\Users\danie\Documents\Dani\TS4\Programs\The-Sims-Resource-Downloader-0.2.0\src\main.py'>

Any suggestions? I'd love to be able to DL things without waiting 10 miserable seconds, and not being allowed to change my tab.

Regarding your first issue, the way strings are handled backslashes are used to escape the character after it, as an example, if you wanted to use a quotation mark inside a string, but you are already using quotes to encase the string, you can escape the quotation mark:
print("\"Hello There!\"") # Outputs: "Hello There!"

As for the second Issue, I believe I've resolved it, it seems to be an issue with how multiprocessing works on Windows compared to Linux. If you could see if it works for you: https://github.com/Xientraa/The-Sims-Resource-Downloader/tree/windows-multiprocessing-issue
My apologies for the issues, I didn't end up testing the script on Windows before releasing.

Just tried out your fix, and it worked! Thanks for your help, I'm excited to use this. I appreciate this tool and the work you put behind it<3


Bulk Update should support _source

Currently it is not possible to support the following bulk request:
POST _bulk
{ ""update"" : {""_id"" : ""1"", ""_index"" : ""index1"", ""retry_on_conflict"" : 3} }
{ ""doc"" : {""field"" : ""value""} }
{ ""update"" : { ""_id"" : ""0"", ""_index"" : ""index1"", ""retry_on_conflict"" : 3} }
{ ""script"" : { ""source"": ""ctx._source.counter += params.param1"", ""lang"" : ""painless"", ""params"" : {""param1"" : 1}}, ""upsert"" : {""counter"" : 1}}
{ ""update"" : {""_id"" : ""2"", ""_index"" : ""index1"", ""retry_on_conflict"" : 3} }
{ ""doc"" : {""field"" : ""value""}, ""doc_as_upsert"" : true }
{ ""update"" : {""_id"" : ""3"", ""_index"" : ""index1"", ""_source"" : true} }
{ ""doc"" : {""field"" : ""value""} }
{ ""update"" : {""_id"" : ""4"", ""_index"" : ""index1""} }
{ ""doc"" : {""field"" : ""value""}, ""_source"": true}"

As demonstrated on the following documentation page:
https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-bulk.html
The parameter _source: true is not supported.

Opened draft PR: https://github.com/elastic/elasticsearch-net/pull/4339

Closing as merged into master, 7.x and 7.6


🐛 Fix signature editor to take full width & height

Resolves #105.

Awesome, thanks for the fix. Happy hacktoberfest!


Bumped ccx-rules-ocp version

Codecov Report
Patch and project coverage have no change.

Comparison is base (c0cbef8) 73.46% compared to head (361e323) 73.46%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #479   +/-   ##
=======================================
  Coverage   73.46%   73.46%
=======================================
  Files          11       11
  Lines         603      603
=======================================
  Hits          443      443
  Misses        135      135
  Partials       25       25

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Any tips for keeping frames in GPU when using the python wrapper?

Hey all,
I'm doing some custom CUDA processing using a relasense D435 and an NVIDIA Jetson Nano - I have an example which works here.
I use numba for JIT compilation of the CUDA kernel, and would like to to pass the incoming depth frame to the kernel without first copying out of the GPU. To outline this, it's roughly:
from numba import cuda

#<realsense import & pipeline setup stuff>

@cuda.jit
def rvl_kernel(im, _):
    #<definition of kernel in python>

_, frame = pipeline.try_wait_for_frames()
data = np.asanyarray(frame.get_depth_frame().get_data())
rvl_kernel[block_per_grid, CUDA_THREAD_DIM](data, _)

I suspect that my call to get_data() to get the data and convert to numpy is causing an extra copy out of GPU memory that could be avoided. I saw #7816 and the :gl namespace in C++, but that doesn't appear to be accesible in the python wrapper in order to pass the mapped memory into the kernel.
Can you please advise? Thanks!

Hi @smartin015   I researched your question deeply.  Accessing the SDK's C++ implementation of GLSL from Python did not seem to be practical.  I also investigated the possibility of applying GLSL in Python from outside of the SDK, perhaps through Pyglet (since the Python wrapper has a Pyglet viewer example).
An example of Python, Pyglet and GLSL:
https://www.pythonstuff.org/glsl/example_2_glsl_with_pyglet.html
It may be best though to instead tackle the suspected root cause of your problem: the conversion of SDK frames to numpy.  This is a goal that some RealSense Python users have been experimenting with for a while.  There is not a definitive solution at the time of writing this, though the subject has been referred to Intel to investigate according to @RealSenseSupport .
https://github.com/IntelRealSense/librealsense/issues/5784

Looking around a bit, I found the cuda array interface spec from Numba, which is also used in CuPy, PyTorch, JAX, etc.
It sounds as though if realsense frame objects had this standard __cuda_array_interface__ dict attribute, then I could pass them directly without calling get_data(). Does this sound right to you? I could try monkey patching this to see if it works... but I don't know how to access the data pointer of the existing frame. Do you have any tips on how I could do this?

I do not have knowledge of the advanced workings of the CUDA support in librealsense, so I cannot offer an educated opinion on that subject.
In regard to a data pointer though, librealsense's frames have a frame handle that acts as a 'smart pointer'.
https://github.com/IntelRealSense/librealsense/issues/5087#issuecomment-550459833
Data can be retrieved from the frame handle with get_data()
https://intelrealsense.github.io/librealsense/doxygen/classrs2_1_1frame.html#a4b373fc81617be881b691a97b0f8358c

For this use case, get_data -> numpy array -> CUDA is the way to go. I don't see benefits to using ::gl in this case - depth frames originate in main memory, someone has to copy it to GPU memory, GLSL will not do it faster than built-in CUDA methods.
Since Z16 does not go through any CUDA processing inside the SDK, there is also no opportunity for re-use.

With the Jetson Nano, there's actually no such thing as main vs GPU memory - the CPU and GPU physically share the same system memory. But if librealsense, numpy, and numba/CUDA don't know about it (which is what I'm assuming), it causes an unnecessary copy to "load the data onto the GPU" which wastes time and space in memory.
Efficiently using the system memory requires allocating "mapped" pinned memory. This is apparently done by replacing malloc() calls with cudaMallocManaged(). It's hard to tell from searching the librealsense repo how frame buffers are allocated, but I'm guessing it doesn't do this by default as this is rather specific/specialized.
Ignoring the ability to do any of this in python for the moment... is there a way to explicitly create the frame buffer and configure the pipeline to use it? That would allow me to use cudaMallocManaged(), pass is along for librealsense to use, and then turn around and pass it to numba/CUDA to run the custom kernel.

@smartin015   I must defer again to the CUDA expertise of @dorodnic on this matter.

I also stumbled across ENABLE_ZERO_COPY in https://github.com/IntelRealSense/librealsense/wiki/Build-Configuration which mentions "the responsibility for buffer lifetime management falls on the application developer" when enabled, but it's marked as deprecated and I don't see any references to it in the repo, nor are there any docs about it. Is that still possible to use?

I located information from @dorodnic about ENABLE_ZERO_COPY:
"Zero Copy feature is for now not functional.  The idea was that rs2::frame object could track the underlying Kernel resource instead of making a copy, but this does not always play well with the rest of the SDK.  We might re-enable it at some point, but for now there seem to be little need for it".
https://github.com/IntelRealSense/librealsense/issues/4132#issuecomment-498000053

Hi @smartin015   Do you require further assistance with this case, please?  Thanks!

Hey Marty - I'm still blocked on what I'm trying to do: use librealsense2 with mapped, pinned memory to eliminate unnecessary copying of depth frames on the NVIDIA Jetson Nano.

Hi @smartin015   I did further research but could not find anything useful beyond what has already been discussed, unfortunately.

Hi @smartin015  Considering that progress was not able to be made the last time that this issue was looked at, do you wish to continue with it please?   Thanks!

I suppose not. It's unfortunate the realsense library doesn't support this optimization, but I don't know where to start and it sounds like there's no interest in implementing it. I'll go ahead and close the issue.

One last update for folks who might come across this thread - I managed to speed up my code 10x (!) by following the conversation to add CUDA UVM support to Numba.
The trick was in replacing my calls to np.array() with cuda.mapped_array() for the arrays passed into the CUDA kernel. I copy the realsense frame into one of these mapped arrays with something like
arr = cuda.mapped_array((w,h), dtype=...)
...
_, frame = self.pipeline.try_wait_for_frames()
...
arr[:,:] = np.asanyarray(frame.get_depth_frame().get_data())

So there's still a copy happening to get from librealsense into numba land, but it's apparently not the expensive one(s) that fake loading into and out of GPU memory.

Thanks so much for sharing your solution @smartin015    :)


fix: can manually (or opt-in to automatically) check for updates

Can opt-in to check for updates automatically
If enabled, it checks for updates once a week
Can manually check for updates regardless of auto-update setting
It shows update instructions based on the Hollama server environment

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

@GregoMac1 just wanted to let you know of some changes this PR introduced that you'll likely interact with:

$settingsStore now has default values when it's created, so we no longer need to check if it's undefined
There is a new route /api/metadata endpoint that returns the app's version and the environment
In /settings, I split the different sections into separate components because having all of that logic together was hard to read.
I added the new i18n keys to the root of the tree.

Related: I also created #171 (which we should do before #151)


Fix Fix fields not handled correctly during upgrade and downgrade

Proposed changes
Issue Number: close #xxx

run buildall

run buildall


[DOC] Update Debian Install Instructions using the Repository

What do you want to do?

[x] Request a change to existing documentation
[ ] Add new documentation
[x] Report a technical problem with the documentation
[ ] Other

Tell us about your request.
The description on how to install OS with apt is outdated: Debian will warn that apt-key is deprecated.
Steps to install Opensearch from the repository:

Update the apt database and ensure all packages are up to date:
sudo apt update && sudo upgrade -y

Install required tools (that are used in the rest of the documentation)
sudo apt install pgp curl

Configure the repository for apt
3.1 Get the PGP key of the repository, convert it to binary and save it in /etc/apt/trusted.gpg.d/opensearch.pgp
wget -qO - https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/opensearch.pgp

3.2 Add the OpenSearch repository including the key location
echo "deb [signed-by=/etc/apt/trusted.gpg.d/opensearch.pgp] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/opensearch-2.x.list

Update the apt database with the new repository
sudo apt update

Install Opensearch
5.1 List available versions
sudo apt list -a opensearch

5.2 Install the latest version
sudo apt install opensearch -y
5.3 Install a specific version (from the list in 5.1)
sudo apt install opensearch=2.5.0

Delete - it will not ask
Do NOT suggest to enable and run OpenSearch to test the installation before explaining the configuration: the documentation explains later the option to either run the demo configuration (Step 2) or use own configuration (Step 3) - once the installation was started, the data files are generated for the "opensearch" cluster. It requires extra steps (and time) to clean it up - not needed if the user wants to generate his own configuration.

Similar adjustments are required for OpenSearch-Dashboards using Debian repositories.
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.
Debian 11 apt-key man(8) page

Hi @JeffH-AWS , can you please take a look at this and update, as necessary? Thanks!

The decision to use apt-key we deliberate by the build/infra team. Tagging @peterzhuamazon and @bbarani. No documentation changes will be made at this time.

Closing due to the absence of comments. Please open an issue with https://github.com/opensearch-project/opensearch-build


Build is stuck in case of error

Hello,
There is an issue with NF plugin: in case of an error during the build ("ng build") - it doesn't exit.
Steps to reproduce:

git clone https://github.com/ivaspavlo/nf-build-issue-demo.git
npm i
npm run build

Alternatively, if usual builder is used ("npm run usual-build") it exists on error.
Thank you for any hint!

Thanks for pointing this out. This will be resolved in version 18.1 which will land very soon.

Hey, this error exists in version 17.1.8 and upgrading to Angular 18 isn't an option right now. Do you think we could release these changes/guide us on how we can fix this issue for ourselves potentially in the 17.1.x version?


Limit the number of errors buffered

Some installations of php have fairly low memory limits (128mb) and also a lot of errors. We should limit the number of errors we buffer before sending to bugsnag to ensure that we dont add extra memory pressure to applications.

Moving this into the next PHP improvements milestone.


Multiple secreet on database

I Mika.
Thank you for sharing this middleware, it help me a lote!!
I have an API using PHP 5.6 + SLIM + slim-jwt-auth 2.X.
The API has to conect to differents databases depending on payload "usr" data.
I tried to use "kid"payload but I guest is not implemented on v2.X
I tried to use a the configuration container to set jwt_secret="" and then a middleware acces de DB and get the secret by user like this:
$config['jwt_secret'] ='';
$app = new Slim\App(["settings" => $config]);
$app->add(new \Slim\Middleware\JwtAuthentication ([
"secret"         => $container->get('settings')['jwt_secret']
....
]));
// get jwt_secret by usr
$app->add(function ($request, $response, $next) {
$settings = $this->get('settings');
// code for get "usr" from jwt payload
// code for get jwt_secret from database by usr
$settings['jwt_secret']='usr_jwt_secret'
$response = $next($request, $response);
return $response;
});
but it seems JwtAuthentication evaluate $container->get('settings')['jwt_secret'] on loading, and nevers get the new value.
Any idea for getting a secret from database before calling JwtAuthentication?
Thanks

Just noticed I have forgotten to document it, but you can pass an array of secrets to the constructor. Middleware will then choose the key based on kid claim in the token header.
$app->add(new JwtAuthentication([
    "secret" => [
        "acme" =>"supersecretkeyyoushouldnotcommittogithub",
        "beta" =>"anothersecretkeyfornevertocommittogithub"
    ]
]));


Adopt FlaskScopeManager

These changes introduce an optional scope manager using Flask's stack, as originally proposed in  https://github.com/opentracing/opentracing-python/pull/105.
This is helpful for ensuring that the active span obtained anywhere in a view function's call chain is guaranteed to be associated with request as provided by werkzeug's context locals.

@carlosalberto


Remove maven stuff from repository

[ ] delete existing maven files
[ ] add maven files to .gitignore

On second thought (and some research, I decided to keep it for the moment.


QA System using predict_on_stream()

Hi,
I am trying to use deeppavlov for building a QA system. I tried using interact_model, which I am able to do. Now I was trying to predict_on_stream(). We need to send a file as an argument . But I am getting an error. Please let me know how to use predict_on_stream() api. Please share if you have any examples to study.
Regards,
Gaurav

Hi,
If you're working from command line, you can run something like:
python -m deeppavlov predict <path-to-config> -b <batch-size> -f <path-to-data>

The same can be achieved with this python code:
predict_on_stream(config=path_to_config, batch_size=batch_size, file_path=path_to_data)

Results will be printed to stdout


dnsproxy: split MatchPattern and MatchName to improve perf

Commit msg;
This makes a distinction between matchNames and matchPatterns, and only
puts the matchPatterns with wildcards into the regex used to check if
dns queries are allowed or not. For the matchNames, that are plain
FQDNs, we add them to a map for easy and fast lookup. This means that
when a DNS query arrives, we first check the map, and if its not
present, we check the with the regex.

Also, this introduce a reference counted cache/index for regexes and for
the maps including the FQDNs. This means that policies with the same set
of matchNames can reuse the same map, and policies with the same
matchPatterns can reuse the same regex. This yields a huge memory
saving, since long regex tends to occupy a lot of memory.

This also makes the LRU cache for compiled regexes more or less
redundant, mitigating the drawbacks of that cache. Having a large LRU
cache is useful when a lot of similar policies are in use at the same
time, but in case a node have a small set of policies inserted at the
same time, but the churn makes new and distinct policies come and go,
the LRU cache will use a lot more memory than the benefit it gives.

benchmark TL;DR: Heap usage compared to a LRU size of 128 is down by
~99%, and ~92% with a LRU size of 1024, with the given test data*.

* defining heap usage as (HeapInuse after test) - (HeapInuse before setup)

$ go test -tags privileged_tests -v -run '^$' -bench Benchmark_perEPAllow_setPortRulesForID_large -benchmem -benchtime 1x ./pkg/fqdn/dnsproxy

// With this change;

goos: linux
goarch: amd64
pkg: github.com/cilium/cilium/pkg/fqdn/dnsproxy
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Benchmark_perEPAllow_setPortRulesForID_large
Before Setup (N=1,EPs=20,cache=1)
Alloc = 3 MiB   HeapInuse = 5 MiB       Sys = 20 MiB    NumGC = 6
Before Test (N=1,EPs=20,cache=1)
Alloc = 37 MiB  HeapInuse = 49 MiB      Sys = 1042 MiB  NumGC = 18
After Test (N=1,EPs=20,cache=1)
Alloc = 24 MiB  HeapInuse = 33 MiB      Sys = 1042 MiB  NumGC = 44
Benchmark_perEPAllow_setPortRulesForID_large-7                 1<PHONE_NUMBER> ns/op<PHONE_NUMBER> B/op 10365195 allocs/op
PASS
ok      github.com/cilium/cilium/pkg/fqdn/dnsproxy      6.449s

// Baseline with LRU size of 1024

goos: linux
goarch: amd64
pkg: github.com/cilium/cilium/pkg/fqdn/dnsproxy
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Benchmark_perEPAllow_setPortRulesForID_large
Before Setup (N=1,EPs=20,cache=1024)
Alloc = 3 MiB   HeapInuse = 5 MiB       Sys = 20 MiB    NumGC = 6
Before Test (N=1,EPs=20,cache=1024)
Alloc = 37 MiB  HeapInuse = 49 MiB      Sys = 969 MiB   NumGC = 18
After Test (N=1,EPs=20,cache=1024)
Alloc = 312 MiB HeapInuse = 357 MiB     Sys = 969 MiB   NumGC = 46
Benchmark_perEPAllow_setPortRulesForID_large-7                 1<PHONE_NUMBER> ns/op<PHONE_NUMBER> B/op 36068464 allocs/op
PASS
ok      github.com/cilium/cilium/pkg/fqdn/dnsproxy      11.813s

// Baseline with LRU size of 128
goos: linux
goarch: amd64
pkg: github.com/cilium/cilium/pkg/fqdn/dnsproxy
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Benchmark_perEPAllow_setPortRulesForID_large
Before Setup (N=1,EPs=20,cache=128)
Alloc = 3 MiB   HeapInuse = 5 MiB       Sys = 19 MiB    NumGC = 5
Before Test (N=1,EPs=20,cache=128)
Alloc = 38 MiB  HeapInuse = 49 MiB      Sys = 1047 MiB  NumGC = 17
After Test (N=1,EPs=20,cache=128)
Alloc = 1763 MiB        HeapInuse = 1907 MiB    Sys = 2918 MiB  NumGC = 44
Benchmark_perEPAllow_setPortRulesForID_large-7                 1<PHONE_NUMBER>0 ns/op<PHONE_NUMBER>8 B/op        46896658 allocs/op
PASS
ok      github.com/cilium/cilium/pkg/fqdn/dnsproxy      93.574s

As a side note, I try to keep this PR as simple and clean as possible; and avoid doing any fancy perf improvements. I think we should fully agree on the approach, and then we can do all the fancy perf improvements we want on top of this! 👌 (tho. the reduced mem usage is quite evident ^)

[x] For first time contributors, read Submitting a pull request
[x] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[x] All commits are signed off. See the section Developer’s Certificate of Origin
[x] Provide a title or release-note blurb suitable for the release notes.
[ ] Thanks for contributing!

Fixes: #issue-number
dnsproxy: split MatchPattern and MatchName to improve perf and memory consumption

I've also updated my benchmark code btw., and made a proper README highlighting how the various things improve the perf; https://github.com/odinuge/cilium-fqdn-regex-benchmarking/blob/master/README.md

Thanks for all the reviews!
Some updates;

Updated a lot of the godocs as suggested by @aanm and @christarazi
Fixed the UpdateAllowedFromSelectorRegexes func
Added support for nil regex that means it matches no fqdns, same for the name matcher part as suggested by @christarazi and @jrajahalme
Extracted the "cache" out to a separate variable to make it easier to mange and test
Added the restored rules regex to the cache to avoid having to recompile it again when the "normal" rules are inserted

We can probably do the same for the matchName map as well, but with the map[string]struct{} format on disk its a bit awkward due to the sorting. We can however do that in another flup PR; and the benefit for the regex is much greater!
We can also avoid compiling the regex in pkg/fqdn/restore/restore.go and just pass the nullable string to the dnsproxy. That would improve startup perf when the same regex is used multiple times.

Added a few small tests as well, but maybe we need more.
Pushed a --fixup commit to make it easer to read the delta. Will squash before merging when that time comes.

Ref. the comment about backwards compatibility, now that the storage format for the Re value can be null, rollback will break, so we need to backport a fix to support that, and at the same time support the new FQDNs.
Say that we do this (as an example);

We ship this PR in v1.13.0
We backport a fix to v1.12.1

Then, if people upgrade from v1.12.0 to v1.13.0 and roll back, it will break, and they will end up with a null pointer exception, right?. That is not ideal if thats the case.

Maybe we can use empty string on the storage format as a temp value in v1.13.0, and move to an actual null in v1.14.0? That way people don't break when going from v1.13.0->v1.12.0, even though they will "loose" the restore part for the new FQDNs map.
Or do we have to wait for v1.14.0 to land this PR?

Will take another look tomorrow/early next week and go through all the phrasing as suggested by @christarazi.
Thanks
Odin

@odinuge I think the ideal approach would be to file a separate PR to land the backwards compat changes so that we can backport it. Then in this PR it builds on top of it. I don't think we need to wait until 1.14. We should be able to backport the first PR into v1.12.x and land this one in 1.13.

Chatted with @christarazi offline about this. Due to complexity getting this backported, we decided to go for ~https://github.com/cilium/cilium/compare/master...odinuge:ou-testing-only-regex for now, and do this approach after we have gotten that initial change merged and back ported. I'm out for two weeks, but will attack it when I'm back. Thanks, Odin.


Add EndianBuf::to_string()

Coverage remained the same at 93.998% when pulling 90de1718854c9d7bf309d1034ab1f5c27a57a953 on philipc:to_string into d9d5e73665892905d902479aef06e2190f19b2fe on gimli-rs:master.

Coverage remained the same at 93.998% when pulling d3438d5897ddf860a9c40906cf74dae9e005cd2a on philipc:to_string into d9d5e73665892905d902479aef06e2190f19b2fe on gimli-rs:master.


Log the headers

#492

This change is

Codecov Report
Attention: Patch coverage is 0% with 9 lines in your changes missing coverage. Please review.

Project coverage is 57.05%. Comparing base (2644f51) to head (20ba476).

Files with missing lines
Patch %
Lines

...c/Serval.Machine.Shared/Services/ClearMLService.cs
0.00%
9 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #493      +/-   ##
==========================================
- Coverage   57.08%   57.05%   -0.04%
==========================================
  Files         277      277
  Lines       14157    14165       +8
  Branches     1900     1901       +1
==========================================
  Hits         8082     8082
- Misses       5487     5495       +8
  Partials      588      588

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


UseOpenIdConnectAuthentication() is obselete

This method is now obsolete: https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.builder.openidconnectappbuilderextensions.useopenidconnectauthentication?view=aspnetcore-2.1

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

ID: 906907ec-cbe2-59b1-a84e-ce1b1343756f
Version Independent ID: f498962c-f738-ccd8-a619-de854fac37da
Content: Authentication, sign-up, password reset in Azure Active Directory B2C
Content Source: articles/active-directory-b2c/active-directory-b2c-devquickstarts-web-dotnet-susi.md
Service: active-directory
GitHub Login: @davidmu1
Microsoft Alias: davidmu

@andrewliang you're right. It looks like it needs to be configured with AddAuthentication().AddOpenIdConnect
I have assigned this issue to the content author, @davidmu1 , to update the document.

As the author of the article I'm responsible for the content of the article itself. The engineering team is responsible for the sample that it points to. The team knows of the problem and is updating the samples. Because there isn't anything to change in the article, the issue should be closed.
#please-close


Image name in remote docker image to string

With this change, the ContainerFetchException looks like:
org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageName=doesnotexist:latest, imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE)

where before it looked like:
org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageNameFuture=java.util.concurrent.CompletableFuture@6b37db36[Completed normally], imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE)

@dbyron0 I am looking at the test failure now. Have you got a chance to debug it further?

Sorry, I haven't.

@dbyron0  could you please give me permissions to push to your PR? I have a fix :)

Superseeded by #2450

Guess I wasn't fast enough...Looks like https://github.com/testcontainers/testcontainers-java/pull/2558 took over from here.
Thanks much!

This was released in https://github.com/testcontainers/testcontainers-java/releases/tag/1.14.0 🎉
Thanks for the contribution!


Don't mask IRQs

Currently the bootloader masks all hardware interrupts: https://github.com/rust-osdev/bootloader/blob/bda13d807d0c7451b1ffe74c6c97f6369aef6ff9/src/second_stage.s#L68-L71
They shouldn't be masked when control is passed to the kernel.

Hey Phil, are you saying that interrupts should be enabled when the bootloader jumps to _start()?

No, enabling them would not be a good idea since there isn't an IDT yet. I mean that they shouldn't be masked. An interrupt can be masked in the interrupt controller, so that the controller does not emit such an interrupt, even when interrupts are generally enabled.

Since this was patched, can we close the PR?

@rybot666 Yes, thanks for the hint!


QNIC-based, fully blocking circuit switching

Simplest form: first message processed sets a flag that the QNIC is busy.
Issue: how do we make sure we don't get conflicting reservations at the two ends of the link?
Allow a request to sit unprocessed until the connection that first got the link finishes.  How do we do that?  Can we set an event?

Thinking about this, can't just wait passively, we might deadlock.
When a request fails to allocate a resource, we have to tear down the entire set of reservations so far, then sleep for some random period of time, then try again.

One set of notes available at
https://hackmd.io/ruP6-gCmQh6zoApdXz8DRw?view

Duplicate of #55

Need release qnic


Add on-chain balance to wallet fragment

Add on-chain balance to wallet fragment
Description
In the wallet home page, it shows the lightning balance and the on-chain balance.
The code is simply a suggestion, probably there are better ways to do it.
A problem is the position of switchButtonImage which now is a little bit ambiguous.
Motivation and Context
You can easily see how much you can pay with lightning or with an on-chain transaction.
How Has This Been Tested?
Tested on my phone Xiaomi Redmi Note 9 Pro
Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the Contribution document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@AlbertoBoldrini
Thanks a lot for the pull request!
I can understand that it is sometimes frustrating to only see one balance, especially if you are a power user and you know how bitcoin & lightning works.
Did you know that you can make a long tap on the balance and a popup will occur that shows you some details about the ballance? So basically it is already possible to see on chain ballance.
Showing only one balance was done on purpose to remove complexity and I would like to keep it that way, at least as default.
I would agree to it if we make this optional and expose a setting in the advanced settings tab.
And for some reason the Scan button is missing in your screenshot.

Hi michael, thank you for the answer. Ahah no, I didn't know the hidden feature.
However, I agree with you. The total balance is cleaner and simpler.
I put an option in the advanced settings tab

I'm doing it mainly for myself, if you like it when it's finished you can join it, but it's not a problem if you prefer not to.
Are there icons of the Zap project that can be used for lightning and on-chain balances? Currently I used unicode emoji, but I don't like them so much.


JDK16 & mappings with fields of type Instant

I've posted this in the response to a previous issue on JDK16, but have not seen any response. Everything else equal on my end, I am having issues as described below. I am wondering if I am missing something, or if indeed this is a known issue?

ModelMapper v2.4.1 was just released including the fix.

I am still seeing an exception when the mapping applied to a field that is of type Instant. Is it just me?
...
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final long java.time.Instant.seconds accessible: module java.base does not "opens java.time" to unnamed module @c730b35
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) ~[na:na]
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[na:na]
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177) ~[na:na]
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:171) ~[na:na]
	at org.modelmapper.internal.PropertyInfoImpl$FieldPropertyInfo.<init>(PropertyInfoImpl.java:58) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.PropertyInfoRegistry.fieldPropertyFor(PropertyInfoRegistry.java:118) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.PropertyInfoResolver$1.propertyInfoFor(PropertyInfoResolver.java:38) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.PropertyInfoResolver$1.propertyInfoFor(PropertyInfoResolver.java:35) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.PropertyInfoSetResolver.resolveProperties(PropertyInfoSetResolver.java:139) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.PropertyInfoSetResolver.resolveProperties(PropertyInfoSetResolver.java:113) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.PropertyInfoSetResolver.resolveAccessors(PropertyInfoSetResolver.java:73) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.TypeInfoImpl.getAccessors(TypeInfoImpl.java:59) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.ImplicitMappingBuilder.matchSource(ImplicitMappingBuilder.java:170) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.ImplicitMappingBuilder.matchSource(ImplicitMappingBuilder.java:232) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.ImplicitMappingBuilder.matchDestination(ImplicitMappingBuilder.java:108) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.ImplicitMappingBuilder.build(ImplicitMappingBuilder.java:90) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.ImplicitMappingBuilder.build(ImplicitMappingBuilder.java:75) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:128) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:102) ~[modelmapper-2.4.1.jar:na]
	at org.modelmapper.ModelMapper.typeMap(ModelMapper.java:347) ~[modelmapper-2.4.1.jar:na]
...

Originally posted by @kleanthis in https://github.com/modelmapper/modelmapper/issues/603#issuecomment-826345233

It looks like it's different issue of #603.
Have you tried https://github.com/modelmapper/modelmapper-module-java8 for mapping jsr310 types?

With everything else equal, going from JDK15.0.1 to JDK16, I was getting the error mentioned above.
In Gradle I added:
implementation 'org.modelmapper:modelmapper-module-jsr310:1.2.2'

and for configuration:
final var modelMapper = new ModelMapper();
modelMapper.registerModule(new Jsr310Module());

It made no difference, i.e. same error.
I did some more digging and noticed that happening in cases where ModelMapper is configured to use AccessLevel.PRIVATE, i.e.:
modelmapper.getConfiguration()
    .setFieldMatchingEnabled(true)
    .setFieldAccessLevel(AccessLevel.PRIVATE);

Changing over the field access level to AccessLevel.PUBLIC, makes the problem go away and there doesn't seem to be a need to register the Jsr310Module.
I'll leave that with you to close this ticket if that's what you were expecting. Hopefully, it will help someone when upgrading.

HI @kleanthis -
Thanks for reporting the issue, it should work with Jsr310Module.
Can you provide the source and destination bean so I can try to reproduce the issue? Thanks.

Apologies — I cannot share them. Something I failed to mention is that I am using Lombok — however as I said the only change (in my case) was changing AccessLevel.


Support variables in graphql queries

I'm not sure if this is the best way to implement it but this PR adds support for graphql queries with variables, such as:
      query People($firstname: String!) {
        people(firstname: $firstname) {
          lastname
        }
      }

Codecov Report

Merging #96 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master      #96   +/-   ##
=======================================
  Coverage   94.94%   94.94%
=======================================
  Files          64       64
  Lines        1782     1782
=======================================
  Hits         1692     1692
  Misses         90       90

Impacted Files
Coverage Δ

lib/graphQl/resolvers.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Making Ly animations easily extendable

I consolidated the animation functions into their own .c and .h file (removed from draw) and made it much easier to add new animations by simply modifying #define ANIMATION_NUM ... on line 32 of src/animations.c and adding your animation init, run, and free functions to the arrays static const void* ANIM_INITS[], static const void* ANIM_RUNS[], and static const void* ANIM_FREES[] on lines 43, 47, and 51, respectively. Additionally, the animation selection is now O(1), instead of O(n).

Any plans to continue this? Just found Ly and hoping to make my own animations.

Moved to #541


Auto Implement GStore, GStoreMut traits

Before
// implement Store, StoreMut, Optional traits ...

// must be written explicitly
impl GStore for Storage {}
impl GStoreMut for Storage {}

let storage = Storage::new();
let mut glue = Glue::new(storage);

After
// implement Store, StoreMut, Optional traits ...

let storage = Storage::new();
// It works even if omitted because it is automatically implemented as Generic
let mut glue = Glue::new(storage);

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
37583

Relevant Lines:
38229

💛  - Coveralls


Missing cosine?

Hi there! This is great.
Seems that cosine metric is missing. Based on the python bindings it should be as easy as saving a normalize flag somewhere in HierarchicalNSW of addon.cc and using IP + normalizing all the vectors if true.

@jcoc611 Thank you for having interest in this npm. hnsw-node currently does not support cosine metric. Python bindings normalize vector when before calling the addPoint member function if the normalize flag is true. It is not difficult to do the same in the hnsw-node. I would like to to try to implement the cosine metric option.

This would be a great addition. We're using this library in https://github.com/hwchase17/langchainjs (thank you!) and would love to offer cosine metric

@nfcampos Thank you for using this npm for your great product 👍 The cosine metric option has been implemented and tested, I will release that shortly.

@jcoc611 @nfcampos I have released v1.4.2 which includes the cosine metric option. I enjoyed implementing it. Thank you for your suggestion.

@yoshoku Great, thanks!


bump jackson version to latest version

What and why?
bump jackson version to latest version fixing vulnerability
How to test?
Trello

/deploy harrisonj

/deploy harrisonj

/deploy harrisonj


Shout cut key for "Collapse All"

Describe the bug
Wanted to "Collapse All" to trigger based on the shout cut key, but even after setting the key it never collapse the solution
To Reproduce
Set the key binding for "Collapse All" and trigger it.
Expected behavior
Should Collapse the solution.

Duplicated #5, I cannot make shortcuts work yet :(


IconTabBar steals focus when being scrolled on mobile

OpenUI5 version: 1.60, 1.66
Problem:
IconTabBar steals focus when being scrolled on mobile, which removes focus from an input (if there was any) and hides the android keyboard when viewed on mobile. A small example has been prepared (index.zip) and a video of how that looks like on a device (device-2019-06-17-091755.mp4.zip). Note that when the scrolling happens on any other part of the screen and the actual tab bar is not being touched - the focus stays as is and keyboard is showing.
Ideally scrolling that element should not remove focus from the input (so that the keyboard should still be showing).
index.zip
device-2019-06-17-091755.mp4.zip

The keyboard is hidden when you hold the bar of the IconTabBar. The case is that on that position, you can drag left/right to see the hidden tabs in the bar. I am testing with Android mobile device (Samsung).
Please retest by using other points for the scrolling and let me know if I am missing something

Yes, that's exactly what's happening - the keyboard gets hidden if your scrolling action starts on the IconTabBar, but it doesn't get hidden if you start scrolling on any other point.
Shouldn't this behavior be unified so that no matter the scrolling direction the focus stays where it was?

Let us check this with development #1970303269

Hello @GKSoftwareDevelopment,
Thank you for your ticket!
This is an expected result because when you tab over the header part of the iconTabBar, the focus goes there so a use can scroll to the available tabs.
In your video it is noticeable that when you "touch" over it the tabs are moving a little to the left and a little to the right and the keyboard is hiding because of changing of the focus from sap.m.Input to sap.m.IconTabHeader.
Best Regards,
Gery


A model that reconstructs the same image.

First of all, I apologize if I'm asking nonsense. My doubt arises from the need to edit the same image, not a transformed one. Projects like img2img alternative test (automatic1111 script) have pointed to this for a while.
So... Can't you just make a model based on rebuilding the same image for inference? Maybe there's a simpler way and I'm asking nonsense, but the last few days I've seen the possibility of using that to edit videos using an input in img2img as modifier and compositor.
However it can be achieved, it would be an extremely powerful feature.

instruct pix2pix

Owner

I understand that p2p is trained on editing examples, and effectively leaves the image intact without a prompt, although I'm not clear on the exact processes in this regard. Could it be used as a model in controlnet to achieve this type of effect?: https://www.reddit.com/r/StableDiffusion/comments/1175id9/when_i_say_mindblowing_i_mean_it_new_experiments/
There an image in img2img is used, which influences the light and color composition. Is something like that possible? It would be really interesting.

instruct pix2pix?

I think I understand the problem. In the mentioned case, pix2pix is not the tool, because it doesn't rebuild the image, it just edits it. Perhaps pix2pixZero could fulfill the blend function we are looking for. Unfortunately it is not available yet.

I think too that it would be valuable, it may be easier to finetune and add instructions to it, who knows
it's dataset is available
I tried to finetune instuct-pix2pix myself, but I failed
and I tried to train a controlnet myself but my hdd size won't allow me
I made a summary of what you would need to do if anyone wants to give it a shot
https://github.com/tekakutli/controlnet_instruct

I just learnt that finetuning instruct-pix2pix requires having at least 30gb of vram per gpu

@AbyszOne I too think that it would be valuable, it may be easier to finetune and add instructions to it, who knows. it's dataset is available
I tried to finetune instuct-pix2pix myself, but I failed and I tried to train a controlnet but my hdd size won't allow me
I made a quick summary of what one would need to do if anyone wants to give it a shot https://github.com/tekakutli/controlnet_instruct
I just learnt that finetuning instruct-pix2pix requires at least 30gb of vram per gpu

🤕. Thanks for the effort. We are looking for an alternative with Mikubill. Hope can find a way soon.


Add sample Environment file

Should have a sample environment file ready to help configure a server

Done in https://github.com/mawilson/survivor_draft/pull/136


Suggestions

Is there a way to know which methods are part of the paid version and which methods are part of community version.
Is there a way to expire QueryCache manually based on entity type or whenever a Create/Update/Delete operation takes place on the entity when such an entity is part of a query cache.

Hello @himanshukodwani ,

Is there a way to know which methods are part of the paid version and which methods are part of community version.

At the bottom of the download section, you can found them: https://entityframework-plus.net/download
In short, here are the following method that are paid:

BulkSaveChanges
BatchSaveChanges
BulkInsert
BulkUpdate
BulkDelete
BulkMerge
BulkSynchronize

Everything else should be free.
--

Is there a way to expire QueryCache manually based on entity type or whenever a Create/Update/Delete operation takes place on the entity when such an entity is part of a query cache.

About the entity type, I don't think. However, you can manage it on your side with Tag and using QueryCacheManager.ExpireTag method. It could probably be possible on our side to add something about the entity type if you really need it.
Are you using EF6? If so, that's possible via QueryCacheManager.IsAutoExpireCacheEnabled = true. Whenever a DbSet is modified, it will automatically expire all items related to it.
If you are using EF Core, the IsAutoExpireCacheEnabled is not yet available but we are currently reviewing the model code so perhaps it will be eventually possible.

Let me know if that answer correctly to your both question.
Best Regards,
Jon

Performance Libraries
context.BulkInsert(list, options => options.BatchSize = 1000);
Entity Framework Extensions • Entity Framework Classic • Bulk Operations •  Dapper Plus
Runtime Evaluation
Eval.Execute("x + y", new {x = 1, y = 2}); // return 3
C# Eval Function • SQL Eval Function

Hi Jon,
Thanks for your prompt reply.
Noted all. By the way I am using EF core and I think feature like QueryCacheManager.IsAutoExpireCacheEnabled = true is the one I need.
Thanks and best regards,
Himanshu
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: Jonathan<EMAIL_ADDRESS>Sent: 25 March 2020 18:48
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [zzzprojects/EntityFramework-Plus] Suggestions (#596)
Hello @himanshukodwanihttps://github.com/himanshukodwani ,
Is there a way to know which methods are part of the paid version and which methods are part of community version.
At the bottom of the download section, you can found them: https://entityframework-plus.net/download
In short, here are the following method that are paid:

BulkSaveChanges
BatchSaveChanges
BulkInsert
BulkUpdate
BulkDelete
BulkMerge
BulkSynchronize

Everything else should be free.
--
Is there a way to expire QueryCache manually based on entity type or whenever a Create/Update/Delete operation takes place on the entity when such an entity is part of a query cache.
About the entity type, I don't think. However, you can manage it on your side with Tag and using QueryCacheManager.ExpireTag method. It could probably be possible on our side to add something about the entity type if you really need it.
Are you using EF6? If so, that's possible via QueryCacheManager.IsAutoExpireCacheEnabled = true. Whenever a DbSet is modified, it will automatically expire all items related to it.
If you are using EF Core, the IsAutoExpireCacheEnabled is not yet available but we are currently reviewing the model code so perhaps it will be eventually possible.
Let me know if that answer correctly to your both question.
Best Regards,
Jon
Performance Libraries
context.BulkInsert(list, options => options.BatchSize = 1000);
Entity Framework Extensionshttp://entityframework-extensions.net/ • Entity Framework Classichttp://entityframework-classic.net/ • Bulk Operationshttp://bulk-operations.net/ • Dapper Plushttp://dapper-plus.net/
Runtime Evaluation
Eval.Execute("x + y", new {x = 1, y = 2}); // return 3
C# Eval Functionhttp://eval-expression.net/ • SQL Eval Functionhttp://eval-sql.net/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/zzzprojects/EntityFramework-Plus/issues/596#issuecomment-603833564, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJ7O4ITEYPOVJ3RIR5TX5GTRJIACDANCNFSM4LTJXKLA.

QueryCacheManager.IsAutoExpireCacheEnabled = true is the one I need.

Yup, I said, it's not yet available for .NET Core (when we tried, we failed) but we will look again once we complete our current model development.


Re-apply [5.0] Change Default Linker to Gold for AArch64

Reverts apple/swift#20876
This should be applied when pending-convergence limitations for swift-5.0-branch has been lifted.
cc @futurejones

@swift-ci test