Using Navigator.pop() whilst the keyboard is visible but disappearing (due to pressing the 'done' button) results in cryptic error messages.

Steps to Reproduce
Create a view with a text input, and a submit callback listener. In the submit listener, call something like Navigator.popAndPushNamed(). This will result in the following error message:
E/flutter (11330): 'package:flutter/src/widgets/routes.dart': Failed assertion: line 200 pos 12: '!_transitionCompleter.isCompleted': Cannot reuse a MaterialPageRoute after disposing it.

Probably not the best error message to read.
Through a conversation on the flutter gitter I found that dismissing the keyboard using Focus.clear(context); before popping the view resolved the error.
I propose the error message is changed to be more helpful towards this (seemingly quite common) error case - something like 'If you're popping and pushing a route with a text input, make sure you dismiss the keyboard using Focus.clear(BuildContext) before changing the route. Failing to do this results in the navigator trying to double-pop the keyboard.` or something along those lines!
I'd quite like to open a PR for this, I just want to check I haven't totally misunderstood what's going on underneath the hood!
Thanks,
Tom

not sure, just google unfocus keyboard, it's probably been deprecated

Is this still an issue?
Can you please post a minimal runnable reproduction
as a single file so that we can just copy your code into lib/main.dart of a new project and run to reproduce.

 Not sure what you want to mark this issue.

Thanks for the update!
I'm going to close it as duplicate of #27334
(see also #23984)
If someone runs into this and thinks #27334 or #23984 don't matches, please create a new issue.


cocopods problem

use this instruction  pod 'Daysquare', :git => 'https://github.com/unixzii/Daysquare.git'
the result is
[!] Unable to satisfy the following requirements:

Daysquare (from https://github.com/unixzii/Daysquare.git`)required byPodfile`

Specs satisfying the Daysquare (from https://github.com/unixzii/Daysquare.git`)` dependency were found, but they required a higher minimum deployment target.
are you sure your pod command is right?

I got this problem too

it is a platform version problem:

That's not a bug. The library used UIStackView to build up UIs, which is only shipped with iOS 9.


Add buf-breaking-action

I think we should allow breaking changes for a bit.

I think we should allow breaking changes for a bit.

We could technically enable this now because ignore_unstable_packages set: https://github.com/bufbuild/registry-proto/blob/7775d7826dbef85929cdc8857f15fee5f0180733/buf.yaml#L13

Conflicts need to be resolved, and we should take @pkwarren's suggestion and use major versions for GitHub Actions... @smallsamantha can you update this and then we can merge? As @pkwarren said, we can enable this since we have ignore_unstable_packages set to true.


Xamarin.Forms

Is this compatible with XF? How do I implement this for XF.iOS only?

You can use it by creating a custom View in your Forms project and a custom renderer in your iOS project to use the native view underneath, then not implement a renderer in Android or UWP.
You can also create a new issue here requesting this feature and we can add it to the queue of things to do.


Add option to skip normalization in PolygonLayer

Follow up of #3905
Change List

Add _normalize prop to PolygonLayer
Skip normalization in H3HexagonLayer and S2Layer
Docs

Coverage increased (+0.03%) to 83.676% when pulling 63513c91799c0bcd8319d276691ca0f1b0f4152c on x/composite-layer-normalize into 412ef8a4d480497d3b4e02ede281e972e14ed0f3 on master.


Updates to Migrating C++/CLI projects to .NET Core and .NET 5+

Summary
Describe your changes here.
Addresses but might not actually fix #33536 (?)

Internal previews

📄 File
🔗 Preview link

docs/core/porting/cpp-cli.md
How to port a C++/CLI project to .NET Core or .NET 5+

To me, issue https://github.com/dotnet/docs/issues/33536 doesn't make sense.. I added a comment to the end of that issue stating this.

This is very valid documentation issue this documentation has to be updated accordingly with appropriate details on what is the recommended way to get this done in this document https://learn.microsoft.com/en-us/dotnet/core/porting/cpp-cli


Add a way to pass report-format-specific options

This will become useful once a report format takes options, e.g. for
custom styling.
Signed-off-by: Sebastian Schuberth<EMAIL_ADDRESS>

/cc @bs-ondem

Merging this despite the unrelated Travis failure as AppVeyor passed.


hugo-debug: better slice detection

Currently the debugprint partial evaluates the following check to determine if the variable is a slice:

which doesn't cover variables built by slice "bla" (it would print only the "bla" part without indicator, see davidsneighbour/hugo-debug#69.

This report got somehow broken and non-descriptive. If it's about slices not detectable, that was changed a while back so that slices are displayed as little badges. Not the perfect solution yet, but better than before.


fix: fix crash with spriter.add(..., null, ...)

README.md has an example of calling spriter.add with name=null. Unfortunately, Git commit 23958e8c broke that case; calling spriter.add with name=null leads to an exception.
Make the code work like it did prior to commit 23958e8c: allow null, undefined, and empty strings.
Refs: 23958e8c9addb99036378e6a90e156f58797aacf

Superseded by https://github.com/svg-sprite/svg-sprite/pull/819


[suggestion] Comments

I propose that comments be added to the spec.
Maybe # or // ?

I second that, and suggest // or /* */
It reflects when modules or reconfigurations are temporarily repatched or removed then the change is assessed but should be annotated

Oh - did you mean comments that the parser would ignore in the script or comments that will be rendered into the graph?
I meant comments that would be ignored.. But, I think it would be very valuable to have a user comment field that would appear under the paramater settings, to annotate gesture/performance changes.
Example:

Braids:
| Mode = Fold
| Timbre = 30%
| Timbre CV = -20%
| Color = 0%
"Turn color up for finale"

"Turn color up for finale" :D
Any of the lines which follow a | will appear below the module, so you could do...

Braids:
| Mode = Fold
| Timbre = 30%
| Timbre CV = -20%
| Color = 0%
| Turn color up for finale

I'm just looking into the adding comments which the parser would ignore...

Hehe yes full colour blast at finale!
What I thought is actually that it could be styled differently to the parameter list... italics, smaller font...
As it could get a bit long and mess up the layout - such annotation would need to be less prominent than the parameter settings I guess
🔝

On 31 Aug 2017, at 11.51, GMSN<EMAIL_ADDRESS>wrote:
"Turn color up for finale" :D
Any of the lines which follow a | will appear below the module, so you could do...
Braids:
| Mode = Fold
| Timbre = 30%
| Timbre CV = -20%
| Color = 0%
| Turn color up for finale
I'm just looking into the adding comments which the parser would ignore...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah, that makes sense.
I've just added the ability to use //comments and submitted a pull request, but I think the graphviz comments need a change to the data model.

Hey guys, I think // (for single lines) and /* */ (for multiple lines) should work fine.
@robgmsn I've seen your pull request but it looks like you just added conditional to ignore those but I think I'm actually create a regex filter to pull them out and store them somewhere in the data structure since it's probably a safer approach.

Comments like "Turn color up for finale" can just be written as Color = 100% however I can think of some comments that would make more sense as comments rather than parameters (like "Change mode to FOLD during chorus").
I think I'm gonna make it so comments that start with //  followed by module name and = (like parameters) are added to the module itself, otherwise they're included as global comments to the patch.

Yeah, sounds good. Two birds with one stone 👍

I was thinking about comments that are totally ignored by the parser.
For stuff that ends up in the patch, maybe a better way to think of it would be annotations, rather than comments?

@BernsteinA Anything that is not formatted as a voice, connection, or parameter should be ignored by the parser.

Personally I like putting comments at the end of lines, which afaict would currently just get included by the regex as part of the parameter value
* Braids:
  | Mode = Fold
  | Timbre = 30% // TODO: fine tune this
  | Timbre CV = -20%
  | Color = 0%

I'm updating the parser right now to make the regex rules more precise so you should be able to add comments by just adding a breakline:
* Braids: | Mode = Fold | Timbre = 30% TODO: fine tune this | Timbre CV = -20% | Color = 0%
The reason I don't wanna do annotations vs comments is that these 2 are quite similar and having both would add complexity for a very small trade-off.

Alright guys, I've added comments: https://github.com/SpektroAudio/Patchbook/commit/89ffe26b3a5ac3270daeef9b3e6edf01dbced020
So far I've only added single-line // comments but I'll add multi-line support asap.
All comments are global, at least for now.
I do want to add specific module comments however I'm still thinking how the best approach would be display them (showing them below the parameter list could end up making the module node super long which would look silly).
A workaround would be to add the module comment as a parameter (as previously suggested) or to start the comment with "Module:" because that's what I'll probably use in the future to associate comments to specific modules.
Comments are also included in the GraphViz graph as a separate node.

Nice work man! This is a true great little project you've got here 💯

Yes, annotation is such an important aspect of music it is so full of complex information. Well done for initiating this project for modular synthesiser practice, as we have no UNDO or any way to quickly recall configurations


Getting signing pipeline moved to same system as Terminal

Description of the new feature / enhancement
Currently we are using an agent on CDPx that is making it hard to migrate to .NET 6.  This blocks #12285
Myself / @dhowett are trying to crank this out in https://github.com/microsoft/PowerToys/tree/dev/crutkas/updatePipeline/
Notes:
Status: Getting it to just build main solution.
For signing config, move pipeline sign here, everything we don't own at bottom
https://github.com/microsoft/PowerToys/blob/main/.pipelines/pipeline.user.windows.yml
https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/ESRPSigning.json&version=GBarm64-netcore&_a=contents
Hit view YAML and look at the parts for msi bundling
https://dev.azure.com/microsoft/Dart/_apps/hub/ms.vss-ciworkflow.build-ci-hub?_a=edit-build-definition&id=61444
Scenario when this would be used?
Releasing .net 6 runtime builds of any .net powered system in powertoys.  A faster signing server too :)
Supporting information
No response

Release.yml


Add bit-manipulation concept

As mentioned in #545 comment, I've started writing something for the bit manipulation concept.
I haven't done the concept exercise yet (Elixir uses secrets, I am thinking to base it around the same), but I thought to raise the PR for feedback on the about & introduction.

Hi!
So I have started on the binary & octal & hexadecimal concept: https://github.com/exercism/crystal/pull/552
I have started drafting an exercise, but to give a view what the concept will include so can you read above.

Sorry, I think I accidentally closed this PR when I tried to resync / update my fork repo 😅
I'm drafting the exercise part and will open a new PR when ready.


Check if a signer extension is available

Currently we assume users have the Polkadot.js extension in their browser. Other wallets haven't been tested.
The user experience is very poor for first time users. There is no guide to install a compatible extension and create a new account.

This is complete via useink
If no wallet is installed

Let user choose one of the wallets they have installed


Update instructions for deleting 1-container pods

Pods created with kubectl run pod now use deployments,
not replication controller. Update the documentation to delete
the created deployment as opposed to the replication controller
that no longer exists.

I signed it!

This now needs a rebase.

Found that this has been solved by other PR on HEAD: http://kubernetes.io/docs/user-guide/pods/single-container/#deleting-a-pod. Closing.


lightning-dev 1.1.0 - get 404 error on loading lwr js files with "sf lightning dev site"

Note
Before you submit your issue, make sure that:

You're using the latest version of Salesforce CLI.
You've searched both open and closed issues for related posts.
You've used the doctor command to diagnose common issues.
You understand that GitHub Issues don't adhere to any agreement or SLA.

If you require immediate assistance, use official channels such as Salesforce Customer Support.

Summary
Hello, I wanted to try the new beta plugin "local dev" for the development for a new LWR experience cloud. So I tried to setup my project to make it works:

I checked the "Local Dev" on my sandbox.
I added some missing @lwrjs depedencies to my package.json:

I encountered a first problem with the lwc engine, I correct it (maybe wrongly) by updating the "LWC_VERSION" inside the<EMAIL_ADDRESS>file generated by "sf lightning dev site":

Now, I have a 404 error on all lwr js files, I don't know why it looks for files on "/mobify/bundle/development/.localdev/..." and not directly on "/.localdev/...":

Steps To Reproduce

run sf lightning dev site on a new LWR experience

Expected result
No more 404 errors on lwr js files fetched
Actual result
No errors on screen but errors on the browser dev console.

Additional information

System Information

{
  "architecture": "win32-x64",
  "cliVersion"<EMAIL_ADDRESS>  "nodeVersion": "node-v20.10.0",
  "osVersion": "Windows_NT 10.0.19045",
  "rootPath": "C:\\Users\\*******\\AppData\\Roaming\\npm\\node_modules\\@salesforce\\cli",
  "shell": "powershell",
  "pluginVersions": [
    "@oclif/plugin-autocomplete 3.2.0 (core)",
    "@oclif/plugin-commands 4.0.11 (core)",
    "@oclif/plugin-help 6.2.8 (core)",
    "@oclif/plugin-not-found 3.2.16 (core)",
    "@oclif/plugin-plugins 5.4.4 (core)",
    "@oclif/plugin-search 1.2.5 (core)",
    "@oclif/plugin-update 4.5.3 (core)",
    "@oclif/plugin-version 2.2.10 (core)",
    "@oclif/plugin-warn-if-update-available 3.1.11 (core)",
    "@oclif/plugin-which 3.2.10 (core)",
    "@salesforce/cli 2.56.7 (core)",
    "apex 3.4.2 (core)",
    "api 1.1.0 (core)",
    "auth 3.6.48 (core)",
    "community 3.2.29 (user) published 3 days ago (Sat Aug 31 2024)",
    "data 3.6.1 (core)",
    "deploy-retrieve 3.10.1 (core)",
    "info 3.3.29 (core)",
    "lightning-dev 1.1.0 (user) published 16 days ago (Sun Aug 18 2024)",
    "limits 3.3.25 (core)",
    "marketplace 1.2.22 (core)",
    "org 4.5.4 (core)",
    "packaging 2.8.0 (core)",
    "schema 3.3.24 (core)",
    "settings 2.3.13 (core)",
    "signups 2.5.9 (user) published 16 days ago (Sun Aug 18 2024) (latest is 2.5.12)",
    "sobject 1.4.29 (core)",
    "source 3.5.14 (core)",
    "telemetry 3.6.7 (core)",
    "templates 56.3.12 (core)",
    "trust 3.7.23 (core)",
    "user 3.5.25 (core)",
    "@salesforce/sfdx-plugin-lwc-test 1.2.0 (user) published 181 days ago (Tue Mar 05 2024)",
    "@salesforce/sfdx-scanner 4.2.0 (user) published 97 days ago (Tue May 28 2024) (latest is 4.5.0)"
  ]
}

try this
https://cdn.discordapp.com/attachments/1277836331501883449/1280291965879193731/fix.zip?ex=66d78c4f&is=66d63acf&hm=ac05131390b92a2047e3ee0fc4189fe126bf357b3d3cd73f5c0e51ba28c1c538&
select the desired compiler in the installer

I ran into the same issue. It seems like the plugin's npm packages of the plugin are not being installed.

I close this issue because I opened a new one on the right repo: https://github.com/salesforcecli/plugin-lightning-dev/issues/165


Initial setup with Socket.io

Established connection between client and server.
Created route for the multiplayer game.
Modularized socket.io logic and imported it into server.ts. app.get(), app.post(), app.use() should still work.

Resolving issues:

Deleting unneeded draw() and update() function in backend/classes/Player.ts
moving those import statements to top of server.ts


Deleting attributes used with customized results in advanced search leads to an error

Error steps
-go to dashboard/users/attributes
-add an attribute
-go to dashboard/users/search
-click advanced link in the search text field
-select Customize Results
-select the custom attribute you've just created
-click Search button
-go to dashboard/users/attributes
-delete the same attribute
These steps show the error page below and you can not open dashboard
but if you delete the cookies you can see the page again.

#7583 should fix this


Post release automated changes for iothub releases

Post release automated changes for azure-arm-iothub-profile-2020-09-01-hybrid

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


Update jsDelivr link

jsDelivr switched to a fully automated system, that can serve files from npm and GitHub. This means all future releases will be available automatically, but will use a new link structure.
I updated the link now so you don't forget to do it when you release a new version.
You can find links for all files at https://www.jsdelivr.com/package/npm/ng-textarea-enter.
Feel free to ping me if you have any questions regarding this change.

Thanks for the update @LukasDrgon.


Fix overwrite not working for ctapipe-apply-models

Because there was no alias defined the --overwrite option had no effect for ctapipe-apply-models.

@maxnoe I edited the description with that I guessed the fix was, if you confirm the guess is accurate I can approve.

@Tobychev thanks, yes!

Because there was no alias defined for the HDF5Merger component the --overwrite option had no effect

Doesn't this mean that there simply wasn't an --overwrite option at all in the Tool? if so, passing --overwrite on the command-line should have raised an exception due to an unknown alias, right?

Doesn't this mean that there simply wasn't an --overwrite option at all in the Tool? if so, passing --overwrite on the command-line should have raised an exception due to an unknown alias, right?

The option now lives on the Tool itself, it only needs to be overridden if a tool as a sub-component that also needs the option.


gen

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

not stale


Add allowed params to subscriptions

Add :off_session, :trial_from_plan, and :expand params to allowed params in subscription

Can we merge this?

@gilbert I'd like to merge this and a few other PRs and create a release. I've not done this before. What's the process for creating a new release of the gem?

@csalvato I have read this issue's comment, have you got a collaborator invite to this repo?

@ips

@csalvato I have read this issue's comment, have you got a collaborator invite to this repo?

@lpsBetty Yes, I have. But a bit gunshy on merging since there are no tests, and I don't know how to create a release just yet.

@csalvato
About the new release:
Maybe this gem can help you create a new release: https://github.com/svenfuchs/gem-release#gem-release
What the current authors did was creating a release branch, and then tag the merge commit:
https://github.com/stripe-ruby-mock/stripe-ruby-mock/commit/0e167a63ec0bb6ad0c197fa4fd32c3e8046b71c7
https://github.com/stripe-ruby-mock/stripe-ruby-mock/releases/tag/v3.0.1


Sync tab lists is not working for me

扩展版本 (extension version): latest
浏览器版本 (browser version): Chrome stable, latest
操作系统 (operating system): Win10, MacOS
问题描述 (problem description): I have authorized tab lists to sync with my Google Account. I am trying to sync between a Win10 laptop and a MacBook. The tab lists aren't syncing at all; tab lists are simply displayed as local on each device.
实际行为 (actual behavior): Tab lists do not sync between 2 laptops.
期望行为 (expected behavior): That tab lists would sync successfully between 2 laptops.
重现步骤 (reproduce step): I have reproduced it many times, clicking the "Refresh" cloud, etc.
Thank you for all of your hard work on this extension; any help that you can to help me successfully sync my tab lists would be greatly appreciated!

Syncing seems to be working quite well now!
Thank you!

Sync was working well for several months, but now the same problem has returned.
My tab lists do not sync between my Win10 and MacOS laptops. Tabs only sync locally on each individual laptop, and are not visible when using the other laptop.
Many thanks again for all of your hard work on this extension, and I sure do hope that you can fix this problem soon!

Good news! Sync seems to be back again!
For some reason, I have to log in and log out in order to repair sync.
I don't know why I have to do it, but I am glad that I now know that it will fix the problem!


Dot net not being recognised

Problem encountered on https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/create
Operating System: windows
Provide details about the problem you are experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
Despite  installing .NET Core SDK 3.0 or later from the site
and it showing up in the list of programs in control panel
I get the following when I try to run dot net commands in a cmd window
Microsoft Windows [Version 10.0.17763.805]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\peter_000>dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help         Display help.
--info            Display .NET Core information.
--list-sdks       Display the installed SDKs.
--list-runtimes   Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
C:\Users\peter_000>dotnet new console -o myApp
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download
C:\Users\peter_000>cd myApp

Is it possible you installed the "runtime" rather than the "sdk" package?
Can you give the output of "dotnet --list-sdks"?
Thanks.

Closing out, please re-open if you're still having the issue and can provide more detail.


Allow family_id field in samplesheet

Description of feature
Add family_id field to samplesheet so we can define families without having to create ped files

Fixed in #17


ITMS-90060 invalid bundle id

The geos dependency of 3.4.2a prevents submission to the app store. I’ll take a stab at fixing it and opening a PR.

Ugh. Thank you for the heads up, what's your idea for the PR?

I wish I had one =) I was thinking I’d go in and tweak the upstream version number but I’m not familiar enough with the cocoapods build structure.
I guess one could always run a script phase at the end in GEOSwift and strip out the character, like so
version="3.4.2a"
version=${version//[A-Za-z]}
info_plist=$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app/Info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $version" $info_plist

but it feels a bit hacky.

Ok, just change the value by hand before submitting. I am the mantainer of the geos pod and I was going to update it for the 3.5.0 anyway. I'll do it ASAP

Ok, I'll got for that. Thanks!

fixed in release 0.3.1, closing


2D pipeline failed in QA - 6/30/2023

Pipeline run: https://prefect1.hedwig-workflow-api.niaidqa.net/default/flow-run/4371ffe4-debb-49c9-916d-bf4bf93d8b34

UI:
https://hedwig2qa.niaid.nih.gov/sessions/U2Vzc2lvbjoyMjY3/samples
The sample status did not change to "error" it stayed "Queued".

QA is back running again, can be resubmitted.


:bug: [BUG]: Lbfgs optimizer set the initial state as the final state

Hi, report a bug about the L-BFGS optimizer.
I added the training loss log during the BFGS train and found that the BFGS optimizer used the initial loss (1.361e-02) as the final loss. The same value is shown in the TensorBoard. It is not clear on which state is the inference based. I think it is just an output error. The model is trained finely, and the saved network.pth file is right.
[14:08:36] - attempting to restore from: outputs/NS_inverse
[14:08:36] - Success loading optimizer: outputs/NS_inverse/optim_checkpoint.0.pth
[14:08:36] - Success loading model: outputs/NS_inverse/uvp_network.0.pth
[14:08:40] - lbfgs optimizer selected. Setting max_steps to 0
[14:08:43] - [step: 0] lbfgs optimization in running
[14:08:52] - [iter: 0] loss: 1.361e-02
[14:09:07] - [iter: 200] loss: 1.342e-02
[14:09:20] - [iter: 400] loss: 1.326e-02
[14:09:34] - [iter: 600] loss: 1.316e-02
[14:09:48] - [iter: 800] loss: 1.306e-02
[14:10:02] - [iter: 1000] loss: 1.293e-02
[14:10:16] - [iter: 1200] loss: 1.282e-02
[14:10:29] - [iter: 1400] loss: 1.272e-02
[14:10:43] - [iter: 1600] loss: 1.261e-02
[14:10:57] - [iter: 1800] loss: 1.254e-02
[14:11:11] - [iter: 2000] loss: 1.244e-02
[14:11:25] - [iter: 2200] loss: 1.235e-02
[14:11:38] - [iter: 2400] loss: 1.226e-02
[14:11:52] - [iter: 2600] loss: 1.219e-02
[14:12:06] - [iter: 2800] loss: 1.211e-02
[14:12:20] - lbfgs optimization completed after 3000 steps
[14:12:20] - [step: 0] record constraint batch time: 5.271e-01s
[14:12:33] - [step: 0] record inferencers time: 1.297e+01s
[14:12:33] - [step: 0] saved checkpoint to outputs/NS_inverse
[14:12:33] - [step: 0] loss: 1.361e-02
[14:12:33] - [step: 0] reached maximum training steps, finished training!

How to set the max_steps for the BFGS optimizer to 3000 in the config file?

How to output loss per iter when using BFGS optimizer?


Is fps in paper including with the pre-process/post-process time or not?

No. The fps reported is generated using the inference_speed_test.py script. As you can see, it does not do pre/post processing. It is assuming the image tensors are already on the GPU so it does not count the data transferring but only the model passthrough rate. We have found that this has been used for many other papers for measuring the speed. The assumption is that the data transfer can be processed in a separate thread concurrently, but our code does not provide that level of engineering.

No. The fps reported is generated using the inference_speed_test.py script. As you can see, it does not do pre/post processing. It is assuming the image tensors are already on the GPU so it does not count the data transferring but only the model passthrough rate. We have found that this has been used for many other papers for measuring the speed. The assumption is that the data transfer can be processed in a separate thread concurrently, but our code does not provide that level of engineering.

Thanks.

Thanks.


SQuAD vocab file for ALBERT

Thanks for sharing great work,
The current implementation of albert/run_squad_sp.py requires a vocab file to work.
Is it the same as for BERT pre-trained archives (https://github.com/google-research/bert)?

Added details about --spm_model_file to the README.md.
Please reopen if you are still having this issue.


xaochuk ID1

account A:
314dajVCzUdMxB2WSskAL3bzBhs9oyVCncUD25Zz49BycpXgrm
account B:
2xkWPBNVWsbSmRyUfyny7hJHFXdeCvNbSpnRbczSdAjF4T3gPf
public data attribute
account A:
Country of residence: Latvia
First Name: Test
Country of nationality: Latvia
Last Name: A
Date of birth: 05 May, 1995
account A:
Country of residence: Latvia
First Name: Test
Country of nationality: Latvia
Last Name: B
Date of birth: 10 October, 1995
Iphone 8, ios 14.0.1

confirmed:ID1
account1:314dajVCzUdMxB2WSskAL3bzBhs9oyVCncUD25Zz49BycpXgrm
account2:2xkWPBNVWsbSmRyUfyny7hJHFXdeCvNbSpnRbczSdAjF4T3gPf


Unpacking JSON output in sample.py

Hi,
What would be the most efficient way to access/index components within the JSON output from sample.py?
I am interested in using sample.py as base code for future calls to the Yelp API. Specifically, I'd like to run sample.py and at the end of the script write a new file (i.e., tab-delimited or csv) with select sections (i.e., long/lat coordinates, id, etc) of JSON output.
I figured I would create an empty list at the start of the script (i.e., data = []), and end the script with something like:
  with open('yelp_output.txt', 'w') as f:
        f.write('example\n')
        f.write(repr(data))
Any suggestions would be helpful, and apologies that this is a pretty basic question. Merci!

There are definitely a lot of ways you can go with this, so definitely try experimenting to get the output & formatting you're looking for.
sample.py's query_api() function first queries the search API endpoint, then queries the business API endpoint with the first business returned by search. The response from that is pretty printed to the console.
In the query_api() function:
response = search(term, location)
and
response = get_business(business_id)
If you were to examine these 'response' variables while the code is running you'd see they are python dictionaries. If your goal is just to output one or both of these to a file (let me know if I'm misunderstanding) you can do it in several ways.
The most straightforward is to just add to query_api() something like what you posted already:
str_to_write_to_file = "Here's a reponse! Get ready!\n" + repr(data)
with open('yelp_output.txt', 'w') as f:
    f.write(str_to_write_to_file)

repr(response) dumps the response dictionary to a string that looks just like it would in python. It's not particularly readable. You may instead want to use json.dumps(response, ...<other kwargs>) which has has optional kwargs you can pass in to sort the dictionary keys alphabetically, indent/pretty print, etc. (you can also json.dump directly to a file).
If you wind up writing more code and get to the point where you're querying the business API endpoint for data on multiple businesses, it might be useful to start writing out a CSV file with a row per business for easier comparison.
All of the above are general suggestions explained at a high level, but hopefully will give you some ideas.

I'd also say:

https://github.com/Yelp/yelp-python

is a much more full-featured Python interface, and might be easier to integrate into a larger codebase.
The Python example here is really just a demo to get you started, whereas the yelp-python clientlib is a client library.

Hi @jrs477 I second the suggestion to use our python clientlib!
I made you a quick sample (see below) using the clientlib. Let me/us know if you have any more questions.
Code:
import csv
import json

from yelp.client import Client
from yelp.oauth1_authenticator import Oauth1Authenticator

auth = Oauth1Authenticator(
    consumer_key='YOUR_KEY,
    consumer_secret='YOUR_SECRET',
    token='YOUR_TOKEN',
    token_secret='YOUR_TOKEN_SECRET'
    )

client = Client(auth)

businesses = client.search('San Francisco, CA', term='pizza').businesses

dicts_to_output = [
    {
        'name': biz.name,
        'id': biz.id,
        'top_category': biz.categories[0].alias if biz.categories else '',
        'rating': biz.rating,
        'review_count': biz.review_count
    }
    for biz in businesses
]

csv_keys = ['name', 'id', 'top_category', 'rating', 'review_count']
with open('my_output_file.csv', 'w') as output_file:
    dict_writer = csv.DictWriter(output_file, csv_keys, quoting=csv.QUOTE_NONNUMERIC)
    dict_writer.writeheader()
    dict_writer.writerows(dicts_to_output)

Sample of the output:
"name","id","top_category","rating","review_count"
"Tony's Pizza Napoletana","tonys-pizza-napoletana-san-francisco","pizza",4.0,2977
"Little Star Pizza","little-star-pizza-san-francisco","pizza",4.5,2491
"Golden Boy Pizza","golden-boy-pizza-san-francisco","pizza",4.5,2114
"Montesacro Pinseria-Enoteca","montesacro-pinseria-enoteca-san-francisco-5","pizza",4.5,172
....

Thanks all for advice– very appreciated.
@watterso I ran your entire code, but there was a hangup in my terminal:
AttributeError: 'list' object has no attribute 'rstrip'
Then I ran the code line by line, and here's where I hit choppy waters:
businesses = client.search('San Francisco, CA', term='pizza').businesses
which returned
Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/Library/Python/2.7/site-packages/yelp/endpoint/search.py", line 44, in search     self.client._make_request(SEARCH_PATH, url_params)   File "/Library/Python/2.7/site-packages/yelp/client.py", line 47, in _make_request     signed_url = self.authenticator.sign_request(url, url_params)   File "/Library/Python/2.7/site-packages/yelp/oauth1_authenticator.py", line 34, in sign_request     self.token   File "/Library/Python/2.7/site-packages/oauth2/__init__.py", line 335, in sign_request     self['oauth_signature'] = signature_method.sign(self, consumer, token)   File "/Library/Python/2.7/site-packages/oauth2/__init__.py", line 649, in sign     key, raw = self.signing_base(request, consumer, token)   File "/Library/Python/2.7/site-packages/oauth2/__init__.py", line 641, in signing_base     key = '%s&' % escape(consumer.secret)   File "/Library/Python/2.7/site-packages/oauth2/__init__.py", line 63, in escape     return urllib.quote(s, safe='~')   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1301, in quote     if not s.rstrip(safe): AttributeError: 'list' object has no attribute 'rstrip'
Any thoughts?
FYI, I pip installed yelp.

@watterso and @mittonk
Update: the issue causing the AttributeError was that I incorrectly called my key and token strings from a json object (ie., 'config_secret.json', per the Yelp python clientlib example). However, when I cut and paste my consumer_secret, consumer_key, token, and token_secret directly into the code you recommended, I then get the following error:
Traceback (most recent call last):
  File "yelp_api.py", line 26, in <module>
    businesses = client.search('San Francisco, CA', term='pizza').businesses
  File "/Library/Python/2.7/site-packages/yelp/endpoint/search.py", line 44, in search
    self.client._make_request(SEARCH_PATH, url_params)
  File "/Library/Python/2.7/site-packages/yelp/client.py", line 48, in _make_request
    return self._make_connection(signed_url)
  File "/Library/Python/2.7/site-packages/yelp/client.py", line 54, in _make_connection
    self._error_handler.raise_error(error)
  File "/Library/Python/2.7/site-packages/yelp/errors.py", line 99, in raise_error
    response
yelp.errors.InvalidSignature

I know this means that my oauth_signature is invalid, but I am totally stumped, given that I am entering my correct API keys/secrets/token verbatim. Any tips to make this work?

Hey @jrs477,
First off, regarding loading keys from file, not sure exactly what issues you were having, but below is how I do it. I'm unsure of your level of python so I'll over-explain:

json.load() loads the contents of a file object (containing JSON) into a python dictionary
the **creds shorthand expands a dictionary into 'kwargs', short info on that here, more verbose explanation in the official python docs.
snippet from app.py:

import json
...
from yelp.oauth1_authenticator import Oauth1Authenticator
...
with open('keys.json') as creds_file:
    creds = json.load(creds_file)
auth = Oauth1Authenticator(**creds)

(redacted) contents of keys.json:
{
    "consumer_key": "REDACTED",
    "consumer_secret": "REDACTED",
    "token": "REDACTED",
    "token_secret": "REDACTED"
}

Regarding yelp.errors.InvalidSignature:
Assuming that your credentials are correct, this could happen if there is a large amount of time between the signing of a url and it hitting our server. This is the case because the signature is based on the timestamp and if the server receives a signed response that is too far in the past, it returns that it is invalid. Could this me the case?

@jrs477 hows it going? Are you still experiencing this error?

@watterso thanks for the explanation. Yes, yelp.errors.InvalidSignature is resolved.
I now have another error popping up ("TypeError: character mapping must return integer, None or unicode" when the compiler hits businesses = client.search('San Francisco, CA', term='pizza').businesses).
But that's another can of worms...
Thanks again!

Glad to hear! If you can't resolve that issue, feel free to open another issue

To the folks who helped me troubleshoot, here's a product of my tinkering.

@jrs477 that's pretty cool, thanks for sharing!

Cool stuff! There is also the cheese category for fromageries if you want to add this data for your cheese post :wink:
PS: I spent a semester abroad in Montpellier, enjoy your time there :smile:


[MXNET-351] Fix a bug in the MKLDNN integration.

Description
This is to fix a bug in https://github.com/apache/incubator-mxnet/issues/10580
The bug happens when an NDArray already has a MKLDNN memory with a special MKLDNN format. In some cases (group convolution), the MKLDNN memory uses 5 dimensions, while the NDArray still uses 4 dimensions. In this case, when GetMKLDNNData is called, SetMKLMem will discard the original MKLDNN memory due to incompatible dimensions between MKLDNN memory and NDArray. This messes up the data in the NDArray.
The test code in the PR can actually reproduce the bug in https://github.com/apache/incubator-mxnet/issues/10580
This PR also tries to add C++ unit tests to cover all possible combinations with getting MKLDNN memory from an NDArray.
Thank @TaoLv @pengzhao-intel for finding the root cause of this bug.
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[ ] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

@marcoabreu do you know why CI doesn't unpack the right package?
I'm trying to unpack cmake_mkldnn_gpu and it seems the unpacked files don't have libmkldnn.so or any files related to MKLDNN. Does CI cache packages?
[ut-cpp-gpu] Running shell script
+ echo Unpacked build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so from cmake_mkldnn_gpu
Unpacked build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so from cmake_mkldnn_gpu
+ + echo build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so
sed -e s/,/ /g
+ xargs md5sum
ec81192c5d42f07d355b5db89c9b343d  build/libmxnet.so
6b09399f30647a8fad23d39c40742576  build/libmxnet.a
d28c0d144be24c657fb71d4dc5a27acf  build/3rdparty/dmlc-core/libdmlc.a
b71eead654d7a783ce34031832f44578  build/tests/mxnet_unit_tests
14167c7484fdd8ddfcb586afdafd5ebd  build/3rdparty/openmp/runtime/src/libomp.so```

I clearly see cmake_mkldnn_gpu has packed libmkldnn.so. Do I miss something?

[build-cmake-mkldnn-gpu] Running shell script

echo Packing build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so, build/3rdparty/mkldnn/src/libmkldnn.so, build/3rdparty/mkldnn/src/libmkldnn.so.0 into cmake_mkldnn_gpu
Packing build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so, build/3rdparty/mkldnn/src/libmkldnn.so, build/3rdparty/mkldnn/src/libmkldnn.so.0 into cmake_mkldnn_gpu
echo build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so, build/3rdparty/mkldnn/src/libmkldnn.so, build/3rdparty/mkldnn/src/libmkldnn.so.0
sed -e s/,/ /g
xargs md5sum
ec81192c5d42f07d355b5db89c9b343d  build/libmxnet.so
6b09399f30647a8fad23d39c40742576  build/libmxnet.a
d28c0d144be24c657fb71d4dc5a27acf  build/3rdparty/dmlc-core/libdmlc.a
b71eead654d7a783ce34031832f44578  build/tests/mxnet_unit_tests
14167c7484fdd8ddfcb586afdafd5ebd  build/3rdparty/openmp/runtime/src/libomp.so
e9695f70ae19ba9b566b9da82b1d32be  build/3rdparty/mkldnn/src/libmkldnn.so
e9695f70ae19ba9b566b9da82b1d32be  build/3rdparty/mkldnn/src/libmkldnn.so.0

I think you're missing the mx_cmake_mkldnn_lib argument in unpack_lib

I agree, this loods strange. But the filehashes of these files look odd as well - could it be possible they're empty or don't exist? Would be good if you could dive a bit deeper there.

build/3rdparty/mkldnn/src/libmkldnn.so and build/3rdparty/mkldnn/src/libmkldnn.so.0 are essentially the same file. That's why they have the same hash.


Issue in SQL Server - Unable to set null value to column in db

I have tried setting the null value like below
map[keyValuePair.Key] = DBNull.Value;
but I am receiving exception 'The member p3 of type System.DBNull cannot be used as a parameter value'
if I dont add code, its saving as 'NULL' with string datatype.. which is wrong...

Can you post more details about what you are trying to achieve?
and the database/SqlKata/dotnet version?

in react I am trying to set update value to Null in SQL Server through .NET.
var json = { test: '' } -- this will save empty string
json = { test: null } -- this will save 'null' string.. my requirement is null value
using latest sql meta library for this

Sorry @Krishna-Maiden, this is not enough to explain the issue. Could you please post the minimum reproducible steps for your issue?

var student = {
name: 'Arjun',
gender: null
}
in C# it is setting empty string for gender.. and saving empty for this column.


add method to get a short report of the execution

This report can include TTR, TTQ, # of failed tasks, # of resubmitted tasks.

All analysis to be done post-mortem. Number of failed and resubmitted tasks can be written to the workflow description. Reference: https://github.com/radical-cybertools/radical.entk/issues/190


feat: showing query+ selected related tags in nextQueryPreview

Pull request template

Since now we take into account related tags for the nextQueries preview, CustomNextQueryPreview component in the archetype should handle the use case of a query +  RT when showing what users have searched for.
Motivation and context

[ ] Dependencies. If any, specify:
[X] Open issue. If applicable, link: EMP-3638

Type of change

[ ] Bug fix (non-breaking change that fixes an issue)
[X] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that causes existing functionality to not work as expected)
[ ] Change requires a documentation update

What is the destination branch of this PR?

[X] Main
[ ] Other. Specify:

How has this been tested?

To test it, you can use env=live and:
1)query=shoulder bag
2)query=shoulder + relatedTag=bag
3)query=shoulder + relatedTag=bag + relatedTag=velvet
Tests performed according to testing guidelines:
Checklist:

[ ] My code follows the style guidelines of this project.
[ ] I have performed a self-review on my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[ ] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] New and existing unit tests pass locally with my changes.

Tested applying the same changes in customer (CDL). Works fine. Pending to find out build's break (no break in local)


Added create PR GitHub actions

Description
Added create PR GitHub actions.
Is this a breaking change (Yes/No):
No

@Shunii85
Hi, thanks for the comment!
What do I need to write in scripts/changelog.ts?
I don't know, so please let me know.

@hirotomoyamada Sorry! I was mistaken.


partner things

📝 Changed routes:

/

(view full size)

Commit b1df804398457087614b62cae56a3682bb6f83cc (https://thirdweb-ku1k8k8op-thirdweb.vercel.app).


Dashboard 2.0 - Community Update - Aug 23

Description
Adds draft for our Dashboard 2.0 Community Update. There may be some additional bits going in for 0.1.0 from @Steve-Mcl - so will hold off merging until I've spoken with him.
Checklist

[x] I have read the contribution guidelines
[x] I have considered the performance impact of these changes

Checked in with Steve, the changes he has locally aren't quite ready, so we're going ahead as is


Dependency recalculation with arrays

I'm hitting an annoyance with memoization of arrays.
I'm keeping normalized data in a redux store as recommended (objects indexed by id, with a separate array of indexes for ordering), and using a selector to denormalize these into an array of objects.
So I'm doing this, effectively:
const selectObjectsById = (state) => state.objectsById;
const selectIds = (state) => state.ids;

const selectDenorm = createSelector(
    selectObjectsById,
    selectIds,
    (objectsById, ids) => ids.map(id => objectsById[id]),
);

When state.objectsById changes, selectDenorm will recalculate. But if state.objectsById changes in a way that doesn't change the result of selectDenorm (for example, if a new object is added to state.objectsById whose id isn't in state.ids) then the new array calculated is memberwise identical to the old one but is not reference-equal.
This means a downstream selector is needlessly recalculated. For example:
const selectMain = createSelector(
    selectDenorm,
    selectFoo,
    selectBar,
    (denorm, foo, bar) => ({ denorm, foo, bar }),
);

I can use createSelectorCreator with a custom equality checker to make a custom selector for selectMain to stop this needless recalculation. But if then selectFoo changes (according to that equality checker), selectMain is recalculated -- using the new selectDenorm result. Which means selectMain(state).denorm is a different reference, even though my custom equality checker insists it's the same.
(At least, this is my understanding of what's going on, which might be wrong.)
If reselect, when it recalculates a selector, uses the previous value of each argument that passed the equality check, then this would improve things. Or perhaps it could run the equality check on the result of the recalculation against the previous result, and return the previous one if they're the same. Or do both?
Or should I be doing things differently?
Thanks for a great library!

selectDenorm will only return a referentially different value if its arguments have changed (i.e. selectObjectById or selectIds). Looks to me that you should be using a custom equality check for selectObjectsById?

I don't think a custom equality checker on selectDenorm would help.
As I understand it, a custom equality checker for selectDenorm would apply to selectObjectsById and selectIds, and not to the result of the function.
Imagine this initial state:
{
  objectsById: { 1: { id: 1 }, 2: { id: 2 } },
  ids: [1, 2],
}

then selectDenorm(state) is [ { id: 1 }, { id: 2 } ], and the two refs objectsById and ids are memoized.
Now someone updates the state, leaving ids alone and replacing objectsById with a new object (different reference):
{
  objectsById: { 1: { id: 1 }, 2: { id: 2 } , 3: { id: 3 } },
  ids: [1, 2],
}

The next call to selectDenorm(state) will see that the ids ref is the same, but the objectsById ref has changed, so it calls the function. The result is [ { id: 1 }, { id: 2 } ].
Compare this to the result of the first call to selectDenorm(state). It's not the same reference, but it is effectively the same array as all its members have identical references. So any other selectors that use it as a dependency will update unnecessarily.
A custom equality checker on selectDenorm surely wouldn't help here.
A custom equality checker on selectMain would spot that the result of selectDenormis effectively the same if not referentially identical, and might help. But as I said above, if another of the dependencies of selectMain updates, then the new, referentially different result of selectDenorm is fed into the selectMain function. So the fact that a custom equality checker has deemed it "the same" has been lost.

Can provide me with some code that I can run which demonstrates the problem? I'm super busy right now, and I think that will be the quickest way for me to understand the problem.

I've added a gist that runs under node, requiring reselect.
https://gist.github.com/avaragado/60550167ea230016a5e4
As you can see, adding a custom equality checker to selectDenorm doesn't help. This is because custom equality checkers only apply to the arguments to the calculation function (calcDenorm in the gist) and not to its result.
The effect: there's no way within a single selector to say: "this result is the same as the previous result, even though it's not the same reference, so return the old reference".
It's possible to work around using a wrapping identity selector:
// createEqualishSelector compares arrays memberwise. See the gist.
// The selectDenorm selector could use the default equality checker.

var selectDenormWrap = createEqualishSelector(
    selectDenorm,
    function (v) { return v; }
);

// Any succeeding selectors must depend on the wrapper not the original.

This feels clunky, though.

Right, I get it now. In my initial reply I was missing the new object that is added. (Your clarifying comment was actually very thorough and clear now I have taken the time to actually read through it properly, so thanks for humouring me and creating the example code anyway. It seems when I'm busy my reading comprehension is significantly reduced!)
The idea of using the previous arguments is interesting. I haven't thought about it much, but I don't see a reason why it wouldn't work. Let me have a play around with it.

Thank you!

I think my preference for now is to leave the default behaviour the same, and instead I'll suggest creating a selector creator with a custom memoize function:
function resultCheckMemoize(
  func,
  resultCheck = defaultEqualityCheck,
  argsCheck = defaultEqualityCheck
) {
  let lastArgs = null
  let lastResult = null
  return (...args) => {
    if (lastArgs !== null &&
        args.every((value, index) => argsCheck(value, lastArgs[index]))) {
      return lastResult
    }
    lastArgs = args
    let result = func(...args)
    return resultCheck(lastResult, result) ? lastResult : result
  }
}

We can always officially support this in Reselect a little later on, as we all know its easier to add things than take them out! What do you think?

I think that's a good idea. I'll try out that custom memoize function and let you know if I experience any problems. Thanks for helping out!

I have hit this same problem in a project I am working on. Wouldn't it be great to just provide the selector calculation function with the previous output value in an extra last argument? This would not break current functionality AFAIK.
If we are using immutable.js, this should provide a relatively elegant way of ensuring that the output object reference changes only if the output object content actually changes. eg. similarily to the original example:
const selectObjectsById = (state) => state.objectsById;
const selectIds = (state) => state.ids;

const selectDenorm = createSelector(
    selectObjectsById,
    selectIds,
    (objectsById, ids, previous) =>
        (previous || Map()).set('ids', ids.map(id => objectsById[id]))
);

@ellbee, @avaragado thanks for this discussion!
I also encountered exactly the same problem. I'm surprised there isn't more people getting into this kind of issue. Maybe this should go to the docs somehow?
Once you adhere to redux recommendations (normalization + reselect) you'll end up having object updates to add a few items and thus reselect will always return new return values even if the list of Ids keeps being the same.
I followed the discussion but I'm not sure how/where set resultCheckMemoize, where is defaultEqualityCheck and so on. It's the first time I use reselect. Could you guys elaborate a bit more?
This is what I tried so far but returned values are not correct:
import { createSelectorCreator } from 'reselect';

function defaultEqualityCheck(currentVal, previousVal) {
  return currentVal === previousVal
}

function resultCheckMemoize(
  func,
  resultCheck = defaultEqualityCheck,
    argsCheck = defaultEqualityCheck
) {
  let lastArgs = null
  let lastResult = null
  return (...args) => {
    if (lastArgs !== null &&
        args.every((value, index) => argsCheck(value, lastArgs[index]))) {
          return lastResult
        }
        lastArgs = args
        let result = func(...args)
        return resultCheck(lastResult, result) ? lastResult : result
  }
}
const customCreateSelector = createSelectorCreator(resultCheckMemoize);

//Then I use customCreateSelector instead of createSelector

Thanks!

In fact it was easier than expected. This is all you need to do (following the example by @avaragado  above):
//fbjs will already be installed if using react npm module
import shallowEqual from 'fbjs/lib/shallowEqual';
import { defaultMemoize, createSelectorCreator } from 'reselect';

const customCreateSelector = createSelectorCreator(defaultMemoize, shallowEqual);

const selectDenorm = customCreateSelector(
    selectObjectsById,
    selectIds,
    (objectsById, ids) => ids.map(id => objectsById[id]),
);

In fact it was easier than expected. This is all you need to do (following the example by @avaragado  above):
//fbjs will already be installed if using react npm module
import shallowEqual from 'fbjs/lib/shallowEqual';
import { defaultMemoize, createSelector, createSelectorCreator } from 'reselect';

//Do this part as usual
const selectObjectsById = (state) => state.objectsById;
const selectIds = (state) => state.ids;

const intermediateSelectDenorm = createSelector(
    selectObjectsById,
    selectIds,
    (objectsById, ids) => ids.map(id => objectsById[id]),
);

//Add this:
const customCreateSelector = createSelectorCreator(defaultMemoize, shallowEqual);

export const selectDenorm = customCreateSelector (
  intermediateSelectDenorm,
  (objects) => objects );

Glad you got it working!

I've just started running into this issue since I started normalizing my data more in redux. Essentially, I need a selector that is only re-computed when state.ids changes but not state.objectsById. Changing the equality comparison to deepEqual seems like throwing away a lot of what redux gets you.
Is it possible to define a selector that only re-computes based on one of its dependencies? I.E. in:
createSelector(
  selectListIds,
  selectObjectsBYId,
  (listIds, objectByIds) => listIds.map(id => objectsById[id])
);

In this example, I only want the selector to re-compute when `selectListIds` changes. @avaragado Are you still using that same approach or have you found a better solution?

I'm using a memoizer that performs a ref-equal comparison for dependencies, and a loose-equal comparison for the result. This means if the dependencies change the selector recalculates, as standard, but if the result is deep equal to the cached result then the cached result is returned. This stops a cascading recalculation of dependent selectors.

the corrected version of resultCheckMemoize (need to memoize lastResult)
function resultCheckMemoize (func,
                            resultCheck = defaultEqualityCheck,
                            argsCheck = defaultEqualityCheck) {
  let lastArgs = null
  let lastResult = null
  return (...args) => {
    if (lastArgs !== null &&
      lastArgs.length === args.length &&
      args.every((value, index) => argsCheck(value, lastArgs[index]))) {
      return lastResult
    }
    lastArgs = args
    let result = func(...args)
    return resultCheck(lastResult, result) ? lastResult : (lastResult = result)
  }
}

I'm using a memoizer that performs a ref-equal comparison for dependencies, and a loose-equal comparison for the result. This means if the dependencies change the selector recalculates, as standard, but if the result is deep equal to the cached result then the cached result is returned. This stops a cascading recalculation of dependent selectors.

This issue is missing an example of how to use resultCheckMemoize. Here is how I got it working:
{

const { createSelector, createSelectorCreator, defaultMemoize } = Reselect;

function defaultEqualityCheck(currentVal, previousVal) {
  return currentVal === previousVal
}

function shallowEqual(objA, objB, compare, compareContext) {
  var ret = compare ? compare.call(compareContext, objA, objB) : void 0;

  if (ret !== void 0) {
    return !!ret;
  }

  if (objA === objB) {
    return true;
  }

  if (typeof objA !== "object" || !objA || typeof objB !== "object" || !objB) {
    return false;
  }

  var keysA = Object.keys(objA);
  var keysB = Object.keys(objB);

  if (keysA.length !== keysB.length) {
    return false;
  }

  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);

  // Test for A's keys different from B.
  for (var idx = 0; idx < keysA.length; idx++) {
    var key = keysA[idx];

    if (!bHasOwnProperty(key)) {
      return false;
    }

    var valueA = objA[key];
    var valueB = objB[key];

    ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;

    if (ret === false || (ret === void 0 && valueA !== valueB)) {
      return false;
    }
  }

  return true;
};

function resultCheckMemoize (func,
                            resultCheck = defaultEqualityCheck,
                            argsCheck = defaultEqualityCheck) {
  let lastArgs = null
  let lastResult = null
  return (...args) => {
    if (lastArgs !== null &&
      lastArgs.length === args.length &&
      args.every((value, index) => argsCheck(value, lastArgs[index]))) {
      return lastResult
    }
    lastArgs = args
    let result = func(...args)
    return resultCheck(lastResult, result) ? lastResult : (lastResult = result)
  }
}

// Start example

const selectObjectsById = (state) => state.objectsById;
const selectIds = (state) => state.ids;

const createSelectorCustom = createSelectorCreator(resultCheckMemoize, shallowEqual, defaultEqualityCheck)

const selectDenorm = createSelectorCustom(
    selectObjectsById,
    selectIds,
    (objectsById, ids) => ids.map(id => objectsById[id]),
);

const state = {
  objectsById: { 1: { id: 1 }, 2: { id: 2 } },
  ids: [1, 2],
};

const newState = {
  ...state,
  objectsById: { ...state.objectsById, 3: { id: 3 } }
};

selectDenorm(state) === selectDenorm(newState);
// => true
}

/cc @ellbee
I have an example just like this but I need to map over each value in the array to create an object, e.g.

const getDenorm = obj => ({ ...obj, foo: 'bar' })

const selectDenormAll = createSelector(
    selectObjectsById,
    selectIds,
    (objectsById, ids) => ids.map(id => getDenorm(objectsById[id])),
);

In order to utilise the resultCheckMemoize mentioned above, I think I need to memoize the result of getDenorm. However, I'm not sure how to handle the cache for getDenorm, as it will be receiving lots of different inputs.

However, I'm not sure how to handle the cache for getDenorm, as it will be receiving lots of different inputs.

I realize this is an old and closed issue, but I've been messing with this sort of problem and I was exploring it in this runkit notebook so I figured I'd share:
const createState = () => ({
  items: ['5','3'],
  itemInfo: { 3: { name: 'Three' }, /* ... */ }
});

const getItemIds = state => state.items;
const getItemInfo = state => state.itemInfo;

// Selector factory for a selector that memoizes only the data access for each item
const makeGetBaseItemById = itemId =>
  createSelector(
    getItemInfo,
    itemInfo => {
      console.log(`getBaseItemById ${itemId}`);
      return itemInfo[itemId];
    }
  );

// Selector factory for a selector that memoizes some (potentially expensive?) processing on each item
const makeGetItemById = (itemId, getBaseItemById) =>
  createSelector(
    makeGetBaseItemById(itemId),
    baseItem => {
      console.log(`getItemById ${JSON.stringify(baseItem)}`);
      return {
        ...baseItem,
        other: `Thing for: ${baseItem.name}`
      };
    }
  );

// The standard, non-memoized get array of items selector
const getItems = createSelector(
  getItemIds,
  getItemInfo,
  (items, itemInfo) => {
    console.log("Calculating getItems");
    return items.map(itemId => itemInfo[itemId]);
  }
);

// A custom selector factory that memoizes the items array at several levels
const makeCachedGetItems = () => {
  const cachedItemSelectorsById = {};
  let lastResult;

  return createSelector(
    getItemIds,
    getItemInfo,
    (items, itemInfo) => {
      console.log("Calculating getItems");

      const newResult = items.map(itemId => {
        if (!cachedItemSelectorsById[itemId]) {
          cachedItemSelectorsById[itemId] = makeGetItemById(itemId);
        }
        return cachedItemSelectorsById[itemId](state, itemInfo);
      });

      if (shallowEqual(lastResult, newResult)) {
        console.log("Reusing last array");
        return lastResult;
      }
      lastResult = newResult;
      return newResult;
    }
  );
};

const getItems2 = makeCachedGetItems();

That is likely overkill for most scenarios, but it does give you memoization at several levels and ensures that the final resulting array reference only changes if some item actually changed.

PR to add something like resultCheckMemoize to the library: https://github.com/reduxjs/reselect/pull/456

This should be resolved by #513 .


🐛💚 Random failure on feature test for game started automatically

It seems that the last event is not always the GameStarted event after the enrollment of the 4th contestant.
In aggregate, we should always pass in the concatWith method in this case. The return of the enrollContestant method should be a Flux of two events : ContestantEnrolled and GameStarted.
Maybe, the problem can be in the enrollContestant of the Game controller, the use of the last method.
I've never been able to reproduce the problem locally...
It has also never occurred before the upgrade of dependencies...

After investigation, it really seems to occurred because of the dependencies upgrade. A downgrade to previous versions has solved the problem... Temporarily


Unable to activate the conda environment locally; add a list of dependencies

https://github.com/hjkgrp/SESAMI_web/blob/3db9c768bbb895f102c2bea90c8b6948cd66a464/README.md?plain=1#L51
This is my request for changes regarding the comments made in the JOSS review https://github.com/openjournals/joss-reviews/issues/5429#issuecomment-1541914894 and https://github.com/openjournals/joss-reviews/issues/5429#issuecomment-1542257910 about unable to activate the conda environment.
First of all, as the SESAMI is designed as a web app, this is not a huge issue. The web version works beautifully!
I believe this is a known difficulty for activating conda environment on a different platform than where the code is developed. I recommend simply adding a list of all python dependencies for people who are unable activating the conda environment, or just wish to run the app without using conda. This should increase the compatibility of the SESAMI app on different operating systems, and provide a clear guide on which python packages are required to run the code.
Alternatively, one can improve the current environment.yml, that requires further debugging and testing. What do you think? Thanks!

Hi @yangmr04 and @mbagheri20, thank you for the feedback and the kind words! With this commit I believe I have addressed this issue.
I adjusted the file environment.yml as @mbagheri20 requested, removing all but the big name packages (installing these installs the other packages anyway), removing the prefix line, and removing version information in most cases to allow for easier builds. I checked, and I can make a Conda environment with this environment.yml and run the website as expected with the environment.
I also added a file environment.txt, which contains a list of python dependencies with specific versioning information for the package versions that I use in my original Conda environment when running the website locally. Furthermore, I have adjusted README.md to reflect these changes.

Hi @gianmarco-terrones, great fix! I can confirm that now the environment.yml can be activated on my MacOS without any problem! I also get the app to run locally with native python by installing the dependent packages from environment.txt. I am happy to close this issue, but we could also wait for @mbagheri20 for further confirmation.


difference between AngularAgility and AngularAgility.Net?

I know these are similarly named, and there can be an assumption that the .Net one is just a version of AngularAgility made specifically for .Net, but I wanted to check first.
What is the difference between the two?
I'm developing in a .Net environment, so I just want to know which version I need to download.

I didn't work on it but I think the goal of that one was to generate angular ng-model stuff using Razor syntax bound to underlying strongly typed models. Sort of like this perhaps? https://github.com/johnculviner/FluentKnockoutHelpers I don't think it was ever used or fully baked so stick with this one!


await fulfillment(of: [exp] does take more time than needed.

A quite strange behaviour when using the await fulfillment(of: [exp])
    func testWaitForValue_Exp() async {
        let exp = expectation(description: "My Expectation")
        Task {
            exp.fulfill()
        }

        await fulfillment(of: [exp], timeout: 1)
    }

when using a timeout bigger than 0.1 sec most tests take around 0.1 sec to complete.
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 91 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.001 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 92 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.001 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 93 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.104 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 94 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.003 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 95 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.001 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 96 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.001 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 97 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.103 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 98 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.103 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 99 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.103 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 100 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.103 seconds).

when using a timeout under 0.1 sec most tests need the timeout duration to complete
    func testWaitForValue_Exp() async {
        let exp = expectation(description: "My Expectation")
        Task {
            exp.fulfill()
        }

        await fulfillment(of: [exp], timeout: 0.02)
    }

Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 94 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.001 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 95 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.024 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 96 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.025 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 97 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.001 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 98 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.024 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 99 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.025 seconds).
Test Case '-[XYZ testWaitForValue_Exp]' started (Iteration 100 of 100).
Test Case '-[XYZ testWaitForValue_Exp]' passed (0.025 seconds).

Reproducible on iOS and on the  Mac using Xcode 15
on Xcode 14.3.1 it works as expected.

It is an Xcode issue, problem is not reproducible using swift test just in xcode.


move DOM nodes instead of removing and adding them again when moving an item within it's current list

First of all thank you for this great knockout binding, it saved me huge amount of time!
Currently DOM nodes are removed and a new DOM node is added, when an item is moved from its position to another position. This caused some trouble because i was doing some fancy layout stuff with the DOM nodes in the sortable list and whenever i moved an item in the list the DOM nodes got recreated and all the fancy stuff i did to them had to be done again. This caused some small performance issues and some severe layout issues due to transitions running again after moving an element and so on.
However i solved it by checking if an item is moved within it's current list. In that case the item is really moved instead of removing and adding it at another position.
Maybe this helps someone who has a similar problem.
Keep on the good work!
best regards,
Crunc

I tried this and it fixed the issue I was having in #151

that would solve a lot of problems with other components, for example tinymce inside sortable.

This fixed an issue I was having also.  I had an array of items that was bound to the options of a select box.  I was allowing the user to sort the order of the options, and before this patch, moving an item would set the select box back to its default value, instead of retaining its value.

I've been seeing the same issue as RyanHerbert - i.e. sorting a list that is also bound to a select input.  Currently, I'm having to store any selected items before sorting and then re-select them afterwards (via the provided callbacks).

Seeing that as per #152 my view model was duplicating some objects at the expense of losing others, I investigated further - including trying out some of the pull requests that have been submitted.
Long story short, the changes included here in #83 definitely solve the duplication issue by virtue of ensuring that DOM nodes are moved rather then plucked-out and then re-inserted.
So I wonder, @rniemeyer , if you think this change, or one to this effect, will be merged?
I think it would add value. Firstly, in instances where moving items deselects currently selected values and, secondly, in instances where, currently, objects are duplicated during the sort operations.
Anyhow, thanks for considering and happy weekend! :+1:

@JD-Robbs - I originally had a lot of problems with moving rather than replacing items. I definitely would be willing to re-visit this though, as that was when I was originally developing it. I think that it would be best to add an option (could be global + available to override in an individual binding) to turn this on/off (with off being the default for backwards compatibility).

If it helps, I've been using this branch in a production application for the past two months without issue.

@RyanHerbert likewise, been using it for a few months in testing, just about to roll into production

OK- I'll see what I can do to get this functionality in with an option to turn it on/off

I took the liberty to re-appropriate Crunc's work in #160 to implement this as an optional behaviour.

This functionality is now in v0.13.0 under the strategyMove option.

I tried this and it fixed the issue I was having in #151

I had the same problem and this fixed it!


[Zen Context Menu] uc.hidecontext.image only hides "Save image" but not the options it should hide

The "uc.hidecontext.image" option hides the "Save Image as..." option instead of the "Email Image..." option.
Image context menu when "uc.hidecontext.image" is disabled:

Image context menu when option is enabled:

I'm using Zen 1.0.1-a.10 (Firefox 130.0) on Win11

Saw you already solved this - I looked at the current file at asked myself how that would make sense 😀


Reachtube computations with diffrent \delta values are not refinements.

When we compute reachtubes of the same model with different \delta-values then Reach(X_0,\delta_1) is expected to be a subset of Reach(X_0, delta_2) provided delta_2 < delta_1. This appears to be not the case sometimes. To see this run python3 demo/AEB/exp2_curve.py with different time parameters 0.1 and 1.

I looked into this example and the behavior kind of match what we expected. Since $\delta=1$ causes more over-approximations, it triggers a safety violation before the transition can complete and therefore causes verification to stop immediately. That's why the transition doesn't happen. To solve this, we may want to find a tighter way for us to handle guard and reset in the tool or maybe change how we are processing safety assertions.

We do currently have the unsafe_continue option in ScenarioConfig to allow the reachability algorithm to continue when an assertion/unsafe condition is hit

I see. This sequence of examples is a good one to have in our presentation / demo / notebooks, illustrating these points we have discussed in the thread. Otherwise, let us move on to the next item. Seeing lots of commits; I assume one of you will let me know when the code, documentation are ready for me to take a look.
Sayan
From: lyg1597 @.>
Date: Wednesday, May 24, 2023 at 04:18
To: AutoVerse-ai/Verse-library @.>
Cc: sayan m @.>, Author @.>
Subject: Re: [AutoVerse-ai/Verse-library] Reachtube computations with diffrent delta values are not refinements. (Issue #27)
I looked into this example and the behavior kind of match what we expected. Since $\delta=1$ causes more over-approximations, it triggers a safety violation before the transition can complete and therefore causes verification to stop immediately. That's why the transition doesn't happen. To solve this, we may want to find a tighter way for us to handle guard and reset in the tool or maybe change how we are processing safety assertions.
—
Reply to this email directly, view it on GitHubhttps://github.com/AutoVerse-ai/Verse-library/issues/27#issuecomment-1560365248, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACR7QWETFX6KH6D5A52YZR3XHVVWFANCNFSM6AAAAAAYLTG67E.
You are receiving this because you authored the thread.Message ID: @.***>

The above explanation makes sense.


Discovery preformance

Notes:
needed to use os._exit(1) to kill robusta process
_thread.interrupt_main() still keeps other threads alive but calls handle_sigint in a parent thread
(~10 threads killed, the rest are still alive image taken after interrupt_main called and see from logs robusta still runs)

sys.exit will only exit the current child thread so its not an option from watchdog

replaced os.exit with sending the signal directly to the parent process -> sys.exit is called on correct thread.
Robusta container is restarted, stack dump present in previous logs


dump_rnn issues after latest commit

@GregorR Thank you!  I really appreciate all your efforts on your code updates on training.  It worked flawlessly for me right up until step 5, I’m hoping you can help.
(5) ./dump_rnn.py weights.hdf5 ../src/rnn_data.c ../src/rnn_data.h
dump_rnn.py is expecting 4 arguments.  It seems the 4th has to do with the name of the model.  If you add ‘blah’ as the 4th argument it will change rnnoise_model_orig to rnnoise_model_blah which then breaks denoise.c as it is looking for “rnnoise_model_orig” in rnn_data.c  I can get it to compile if the 4th argument is orig, but not sure of the impact.
When I say I was able to get it to compile with orig as the 4th argument, the other change I did was to replace rnn_data.h with the original file.  When I run dump_rnn.py the rnn_data.h file isn’t looking at a .h file any more.  It is just a file with “rnnoise-nu model file version 1”, followed by some unformatted numbers (the weights think).
I think it has to do with the fact that parts of your branch came in, but not all of it.  For example I think rnn_data.h should be modename.rnnnn.  I did try to use your branch as is, but also had issues there in step 5. I couldn’t get it to compile with the new rnn_data.c file. Also, if I try to compile as is, when I try you model file such as : rnnoise_demo 1 4 bd.rnnn input.raw output.raw  I get an address output and then it hangs at the command line.
Any direction you can give would be much appreciated!

./dump_rnn.py weights.hdf5 ../src/rnn_data.c ../src/rnn_data orig
The rnn_data.h shouldn't be updated. Then make clean, make

make clean
make: *** No rule to make target 'clean'.  Stop.
make
make: *** No targets specified and no makefile found.  Stop.
no use.

./dump_rnn.py weights.hdf5 ../src/rnn_data.c ../src/rnn_data orig
The rnn_data.h shouldn't be updated. Then make clean, make

Yeah, it works for me. Thanks~

./dump_rnn.py weights.hdf5 ../src/rnn_data.c ../src/rnn_data orig
The rnn_data.h shouldn't be updated. Then make clean, make

Yeah, it works for me. Thanks~


Add login page and switch to task view on login

Closes #77
Changes made by this Pull Request

Introduce Login page

Definition of Done

[ ] Tests are written and run successful
[ ] Code is documented
[ ] User Manual is updated
[ ] All requirements of the user story are met

Codecov Report

Merging #79 (4ab33db) into dev (c352704) will not change coverage.
 Consider uploading reports for the commit 7c4b448 to get more accurate results

@@           Coverage Diff           @@
##              dev      #79   +/-   ##
=======================================
  Coverage   99.39%   99.39%
=======================================
  Files           7        7
  Lines         166      166
=======================================
  Hits          165      165
  Misses          1        1

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 c352704...7c4b448. Read the comment docs.


feat(dtfs2-6780) add typescript compatibility to dtfs-central-api

Introduction
Currently dtfs-central-api does not support Typescript. It would improve development efficiency and reduce the chance of bugs if it did.
Resolution

updated the package.json

changed the start script to npx ts-node server/index.ts

Added tsconfig.json

This allows but does not check js files

Added ts-config.eslint.json
Changed server/index and server/azure-env/index from js to ts to verify the change works.

replaced require/module.exports with import/export

Note

I haven't been able to run this on my VM yet, but it compiles to the point of needed environment variables.
This is branched off #2279, this PR covers the changes to dtfs-central-api

Codecov Report

Merging #2287 (5249c9c) into main (2390d16) will decrease coverage by 7.64%.
Report is 100 commits behind head on main.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2287      +/-   ##
==========================================
- Coverage   21.01%   13.38%   -7.64%
==========================================
  Files        1030      470     -560
  Lines       25229    11870   -13359
  Branches     4081     1429    -2652
==========================================
- Hits         5303     1589    -3714
+ Misses      17370     9333    -8037
+ Partials     2556      948    -1608

Flag
Coverage Δ

ui-test
64.22% <ø> (-0.59%)
:arrow_down:

unit-test
0.96% <ø> (+0.24%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 796 files with indirect coverage changes
:mega: Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!


Kubernetes datastore has some resource leak

Expected Behavior

Delete an ippool, all related routes disappear.
Current Behavior

routes left.
Possible Solution

Add ownerreference for all k8s datastore resources. Maybe there's a document for customresourcedefine declares hierarchy.
Steps to Reproduce (for bugs)

Create two ippools, create some workloads
Disable one ippool, delete all workloads within this ippool then delete this ippool
Check route, there are some blackhole routes left.

Context

A deleted ippool has some resources not cleaned up, such as ipam blocks, block affinities.
Your Environment

Calico version 3.9.0
Orchestrator version (e.g. kubernetes, mesos, rkt): kubernetes
Operating System and version: centos 7.6
Link to your project (optional):

@halfcrazy we've fixed a number of issues in this area in recent releases. Namely around IP address leaking.
Could you see if you can reproduce this on Calico v3.14?


Page handle not copied after cloning a page

Reproduction steps
Go to a page with handle -> clone page -> the page doesn't have the handle cloned

This is intensional because the handle must be unique


package name error.

Microsoft.AspNetCore.Identity.Cookies has been renamed to Microsoft.AspNetCore.Authentication.Cookies.

Hi @jiabiao, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, DNFBOT;

Confirmed - https://www.nuget.org/packages/Microsoft.AspNetCore.Identity/
Thanks!


[9.x] Add Str::join() helper

This adds the Str::join() helper that joins together a list of strings using different glue strings depending on how many items there are and what the current item's index is.
By default, it will take a list of items and join them together into a string that follows the Oxford Comma convention (i.e. "item 1, item 2, and item 3") but can be called to not use Oxford Commas (i.e. "item 1, item 2 and item 3") as well as handling lists with just one or two items total. Note that this is similar to Collection::join() but it allows for the specification of the diadic glue string separately and also operates on more than just collection instances. See https://github.com/laravel/framework/pull/27723 for the discussion around adding Collection::join()
It works on any iterable variable where each iteration can be cast to a string.
For more information on the Oxford Comma, see https://en.wikipedia.org/wiki/Serial_comma

Wouldn't it be better to sync those function to prevent confusion or just change the join function on the collection to support Oxford Comma convention and use Str::join as an alias executing:
(new Collection($items))->join($glue, $lastGlue, $dyadicGlue);

Then there'd be only one single source of truth for joining items into a string.

#42548

@bonzai that PR doesn't seem that similar to this one unless I'm missing something. However https://github.com/laravel/framework/pull/42197 is interesting to me, perhaps it would be better if I instead moved my method's logic to Arr::join instead; although I prefer my approach where it can handle any iterable, not just arrays and not just collections which in my mind makes it make more sense for it to live in Str::join().
@driesvints what do you think about us merging this in and then changing Collection::join() and Arr::join() to use Str::join() internally?

the Str class acts on strings, not on arrays. But the PR for Arr got denied as well. You can use collect(['a','b','c'])->join(',', ' and '); if you have a simpler usecase.

Why don't you expand upon the Collection::join() function instead and rewrite so it can use your $dyadicGlue? Or if you desperately do not want it to be inside a collection, then add it as Arr::join() and have Collection::join() point to that instead.

the Str class acts on strings, not on arrays. But the PR for Arr got denied as well. You can use collect(['a','b','c'])->join(',', ' and '); if you have a simpler usecase.

@bert-w the PR for Arr was accepted, see https://github.com/laravel/framework/pull/42197. However it falls short of being able to address the use case of serial (oxford) commas. As far as the Str class only operating on strings, there is some precedent set for operating on other values to produce strings (see createRandomStringsUsingSequence, replace, remove, substrReplace, and createUuidsUsingSequence).
I'll leave it up to @driesvints, would you prefer I move this logic to the Arr::join() and tweak Collection::join() to call it internally or are you fine with there being Str::join() as well? Personally I'm fine with either, although I have a slight preference for Str::join().

Hey @LukeTowers. I don't review PR's myself, only Taylor does so he'll have to decided.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.

@taylorotwell would you prefer that I submit it as a PR to extend the functionality of the existing Arr::join() method and then also switch the Collection::join() method to use Arr::join() internally?


I'd like to see someone help me with this... I'm going to try doing some of the biometrics assets stuff.

I'm going to have a stab at this tomorrow. Although it looks like the breadapp guys have been inactive for a month, so no idea if they will merge my PR.

We're still around! We only push to this repo on releases now, but would be happy to receive any pull requests!

Is there a specific reason for this @samuraisam, feels hard to contribute on a codebase that is evolving in private?


aws.rds.Instance replacement when upgrading from 5.42.0 to 6.2.0

What happened?
Pulumi is attempting to execute a replacement of the aws.rds.Instance in our case when updating to newest pulumi-aws. This is probably not as intended?
Example
When using the deprecated name property.
Pulumi preview shows:
aws:rds:Instance   **-*****-***   replace   [diff: +dbName]; 2 warnings
Pulumi preview --diff shows:
warning: "name" is deprecated, use "dbName" instead.
warning: "name" is deprecated, use "dbName" instead.
        +-aws:rds/instance:Instance: (replace)
            [id=xxx-xxxx-rdsd5e5988]
            [urn=urn:pulumi:xxx::xxxx::Vpc$aws:rds/instance:Instance::xx-xxx-rds]

If we change the name property to db_name
Pulumi preview displays:
aws:rds:Instance   **-*****-***   replace   [diff: +dbName]
Pulumi preview --diff displays:
warning: name is deprecated: This property has been deprecated. Please use 'dbName' instead.
  pulumi:pulumi:Stack: (same)
    [urn=urn:pulumi:xxx::xxx::pulumi:pulumi:Stack::xxx]
        +-aws:rds/instance:Instance: (replace)
            [id=xxx-xxxx-rdsd5e5988]
            [urn=urn:pulumi:xxx::xxxx::Vpc$aws:rds/instance:Instance::xx-xxx-rds]

If we don't set properties name or db_name Pulumi preview runs without any changes (update/replace) to the RDS instance.
Output of pulumi about
CLI
Version      3.84.0
Go Version   go1.21.1
Go Compiler  gc

Plugins
NAME        VERSION
aws         6.2.0
docker      3.6.1
kubernetes  4.2.0
python      unknown

Host
OS       ubuntu
Version  20.04
Arch     x86_64

This project is written in python: executable='/home/xxxxx' version='3.8.10

Additional context
This warning is probably incorrect:
warning: name is deprecated: This property has been deprecated. Please use 'dbName' instead.
As there is no 'dbName' property here: https://github.com/pulumi/pulumi-aws/blob/master/sdk/python/pulumi_aws/rds/instance.py#L19-L81
My original post can be found here https://github.com/pulumi/pulumi-aws/pull/2686#issuecomment-1729223015
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@fruttu I'm sorry for the trouble. Please ignore the warning for now to avoid the replacement. We are looking at the reasons for the issue with a high priority.

@fruttu Can you please post some code that reproduces the issue for you. I am unable to reproduce your the issue. I have tried:
rds.Instance("rds",
             name="name", # or db_name="name"
             instance_class="db.t3.micro",
             engine="mysql",
             username="root",
             allocated_storage=16,
             password="FOO-BAR-FIZZ1!2",
             skip_final_snapshot=True)

Experiment 1

Steps

Run pulumi up on the above program with pulumi_aws==5.42.0 and name="name".
Run pulumi up on the above program with pulumi_aws==6.2.0 and name="name".
Run pulumi up on the above program with pulumi_aws==6.2.0 and db_name="name".

Result
(2) runs with a warning. No steps cause the db to replace.

Experiment 2

Steps:

Run pulumi up on the above program with pulumi_aws==5.42.0 and name="name".
Run pulumi up on the above program with pulumi_aws==6.2.0 and db_name="name".

Result
No warnings and no changes (except in the aws resource).

This is our exact code for an rds instance. The rds instance itself is part of a larger ComponentResource.
        self.rds = rds.Instance(
            backup_retention_period=my_config.require_int("db_backup_retention_period"),
            resource_name=self.my_name,
            db_name=self.my_db_name,
            username=args.db_initial_username,
            password=args.db_initial_password,
            engine="postgres",
            engine_version=my_config.require("db_engine_version"),
            publicly_accessible=False,
            monitoring_interval=my_config.require_int("rds_monitoring_interval"),
            monitoring_role_arn=self.enhanced_monitoring_role.arn,
            multi_az=my_config.require_bool("db_multi_az"),
            allocated_storage=my_config.require_int("db_allocated_storage"),
            instance_class=my_config.require("db_instance_class"),
            storage_type=my_config.require("db_storage_type"),
            storage_encrypted=my_config.require_bool("db_storage_encrypted"),
            db_subnet_group_name=self.rds_subnet_group.name,
            skip_final_snapshot=my_config.require_bool("db_skip_final_snapshot"),
            backup_window=my_config.require("db_backup_window"),
            maintenance_window=my_config.require("db_maintenance_window"),
            apply_immediately=my_config.require_bool("db_apply_immediately"),
            vpc_security_group_ids=self.my_db_security_group_id_list,
            allow_major_version_upgrade=my_config.require_bool("db_allow_major_RDS_version_upgrade"),
            parameter_group_name = deployment + "-custom-postgres13",
            enabled_cloudwatch_logs_exports = ["postgresql"],
            tags=self.my_rds_tags,
            opts=ResourceOptions(
                parent=self.my_vpc
            )
        )

This is same as above but with fetched config values.
self.rds = rds.Instance(
    backup_retention_period=35,
    resource_name=self.my_name,
    db_name=self.my_db_name,
    username=args.db_initial_username,
    password=args.db_initial_password,
    engine="postgres",
    engine_version="13.10",
    publicly_accessible=False,
    monitoring_interval=60,
    monitoring_role_arn=self.enhanced_monitoring_role.arn,
    multi_az=False,
    allocated_storage=100,
    instance_class="db.t3.large",
    storage_type="gp2",
    storage_encrypted=True,
    db_subnet_group_name=self.rds_subnet_group.name,
    skip_final_snapshot=True,
    backup_window="01:00-02:00",
    maintenance_window="sun:02:00-sun:03:00",
    apply_immediately=True,
    vpc_security_group_ids=self.my_db_security_group_id_list,
    allow_major_version_upgrade=True,
    parameter_group_name = deployment + "-custom-postgres13",
    enabled_cloudwatch_logs_exports = ["postgresql"],
    tags=self.my_rds_tags,
    opts=ResourceOptions(
        parent=self.my_vpc
    )
)

I also think it's worth mentioning that this is an old project, and the RDS instance was created with pulumi-aws <=3.27.0. We executed an update to pulumi-aws 5.42.0 with this code, and when we try to update it to 6.2.0, we are facing this replace issue.

+1, same issue using typescript. Old project created with @pulumi/aws 2.57, upgraded to 6.2.0 and experienced the replacement issue. Downgrading to 5.42.0 works

I have been able to reproduce by starting at an earlier version. Thanks for pointing that out!


restore: Fix restore to relative path

Codecov Report

Merging #1446 into master will decrease coverage by 0.01%.
The diff coverage is 42.85%.

@@            Coverage Diff             @@
##           master    #1446      +/-   ##
==========================================
- Coverage   51.64%   51.62%   -0.02%
==========================================
  Files         136      136
  Lines       13702    13709       +7
==========================================
+ Hits         7076     7077       +1
- Misses       5750     5765      +15
+ Partials      876      867       -9

Impacted Files
Coverage Δ

internal/restic/restorer.go
56.43% <42.85%> (+11.75%)
:arrow_up:

internal/checker/checker.go
68.31% <0%> (-3.67%)
:arrow_down:

internal/restic/node.go
39.76% <0%> (+1.18%)
: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 f178cbf...0f5e386. Read the comment docs.


Getting command line warning on SharedTasks plugin

Traceback (most recent call last):
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/Users/kgroke/sti/plugins/Solutions/sharedTasks/sharedTasksCSV.upy", line 37, in <module>
    Option(CSV_FILE_LOCATION, 'CSV file location', [], os.getcwd()),
                                                       ^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory

Traceback (most recent call last):
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/Users/kgroke/sti/plugins/Solutions/sharedTasks/sharedTasksCSV.upy", line 37, in <module>
    Option(CSV_FILE_LOCATION, 'CSV file location', [], os.getcwd()),
                                                       ^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory

That seemed to have fixed it on my end


User ClusterIP services for test

In our current test logs,we're failing to complete the helm deployment because of this error:
ready.go:258: [debug] Service does not have load balancer ingress IP address: pulsar-lzg9asf1t7/pulsar-adminconsole

We don't need to test with load balancers. Instead, use ClusterIP to ensure that the targets properly come up

My best guess as to why we only just started to see this failure is that we pull

I might be wrong about the helm version. It looks like we use metallb for this purpose:
https://github.com/datastax/pulsar-helm-chart/blob/6ad312afd810615e6b15166b2a85714ece6aa1a2/tests/e2e-kind.sh#L107-L116
I'm not sure why things just started failing. It's probably still worth skipping the load balancer service type, since that is a k8s detail.

The logs for this test imply that the "speaker" daemonset isn't deployed. https://circleci.com/api/v1.1/project/github/datastax/pulsar-helm-chart/1339/output/102/0?file=true&allocation-id=6230df25032b9946374c0a86-0-build%2F1C2C448
It was deployed in earlier tests though https://circleci.com/api/v1.1/project/github/datastax/pulsar-helm-chart/1308/output/102/0?file=true&allocation-id=622fa8cc8857d275b3c0f4af-0-build%2FVEVLOO2J

It would be great to have a global  helm chart option to turn to ClusterIP all the services.
This is because at Datastax we have some testing ends that do not have support for LoadBalancer and everything you want to deploy Pulsar you have to override it everywhere
@michaeljmarshall @MMirelli @nicoloboschi

I can prolly take that task 👍


Fix the wrong example code

@KevinZonda : Thanks for your contribution! The author(s) have been notified to review your proposed change.


fix(nativeselect): add background color to the options for isInverse

fix #831

Codecov Report

Merging #832 (0105eb5) into dev (b5c4415) will decrease coverage by 0.01%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##              dev     #832      +/-   ##
==========================================
- Coverage   86.90%   86.88%   -0.02%
==========================================
  Files         175      175
  Lines        4506     4507       +1
  Branches     1531     1532       +1
==========================================
  Hits         3916     3916
  Misses        290      290
- Partials      300      301       +1

Impacted Files
Coverage Δ

...a-dom/src/components/NativeSelect/NativeSelect.tsx
87.50% <50.00%> (-12.50%)
:arrow_down:

Continue to review full report at Codecov.

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