Audit and make documentation for command EXISTS consistent

The documentation of the command [EXISTS](https://dicedb.io/commands/exists/) present in the docs could have become stale. We need your help to ensure that the documentation is complete, correct, and consistent.  Completing this issue will give you much-needed exposure to how the command is implemented and the different parameters it accepts. Hence, this is a great way to build a good understanding of the project and its functionality. While still making a significant contribution. Here's what you need to do:

Go through the documentation of the command and run all the examples, making sure they all work as expected
If the same command is present in Redis, then the expected output of the DiceDB command is the same as the Redis output
If the command is not in Redis, then as per your judgment, raise an issue with this template or fix the documentation and raise a pull request.
The documentation should contain the following sections in the following order

short and concise introduction paragraph about the command covering what it does
Syntax
Parameters: List all the parameters the command accepts, and ignore the section if there are no parameters
Return values: List all possible return values and under what condition
Behaviour: Describe the behavior of the command, what it does, how it does it, some internal specifics if any
Errors: List all possible errors the command can throw and under what condition
Examples: List all possible examples of the command and the expected output. Assume CLI implementation

Note: The title of the sections should be the exact strings mentioned above, like "Examples", "Return values", etc.
Note: The description of the command in Frontmatter of the command.md file is the first paragraph (introduction) of the command.
Go through the DiceDB/dice repository and explore the command implementation

to understand all possible return values
to understand all possible error values and conditions
to understand different parameters the command accepts

Please use the documentation of the SET command as the reference point and structure the
documentation of this command in a very similar way, including the following points

if you see any "Conclusion" section, remove it
the headers (h1, h2, h3) should be appropriately used
the CLI prompt should be <IP_ADDRESS>:7379> and not anything else
Use markdown tables for parameters and return values (ref SET command documentation)
wrap any command or paramter in backticks (`) to highlight them
the section header should be capitalize as used in the SET command documentation

If you find any inconsistencies, please fix the documentation and raise the PR.
The core idea of this exercise is to ensure that the documentation is consistent, correct, and complete.
Make sure you comment on the other issues you created (if any) as a comment on this issue and also any PR (if any) that you created.
Thank you for picking this up and contributing to the DiceDB. It means a ton.

Hi @arpitbbhayani, could you please assign it to me?

@raghavajag assigned, thanks for contributing.

Hello @raghavajag,
There has been no activity on this issue for the past 5 days.
It would be awesome if you keep posting updates to this issue so that we know you are actively working on it.
We are really eager to close this issue at the earliest, hence if we continue to see the inactivity, we will have to reassign the issue to someone else. We are doing this to ensure that the project maintains its momentum and others are not blocked on this work.
Just drop a comment with the current status of the work or share any issues you are facing. We can always chip in to help you out.
Thanks again.

@arpitbbhayani  Can i take this up?

@pree04 assigned, thanks for contributing.

@lucifercr07  wont be able to do this week and next week .due to travelling .You can assign to someone else,

@lucifercr07 Should i take this up?
Have previously audited Docs and can take this one too.


feat: Add Subgraph DisputeGameFactory

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 41.31%. Comparing base (595bc3c) to head (e61682a).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #222   +/-   ##
========================================
  Coverage    41.31%   41.31%
========================================
  Files           74       74
  Lines         5001     5001
  Branches       785      785
========================================
  Hits          2066     2066
  Misses        2828     2828
  Partials       107      107

Flag
Coverage Δ

cannon-go-tests
81.92% <ø> (ø)

chain-mon-tests
27.14% <ø> (ø)

common-ts-tests
26.72% <ø> (ø)

contracts-ts-tests
12.25% <ø> (ø)

core-utils-tests
44.03% <ø> (ø)

sdk-tests
37.59% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

It is the variable in this smart contract: https://github.com/bobanetwork/boba/blob/595bc3c20c037e08f673d5e88a3607c7f128d77f/packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol#L474

I have deployed efa650e to TheGraph node.


Minor Error in Tutorial

On this tutorial page, it says that the MNIST data has been rescaled to [-.5, .5]:
"The image data is extracted into a 2d tensor of: [image index, pixel index] where each entry is the intensity value of a specific pixel in a specific image, rescaled from [0, 255] to [-0.5, 0.5]."
However, in the code, the data is rescaled to [0,1] as per the comment on line 123 (and confirmed by loading a sample image and inspecting):
# Convert from [0, 255] -> [0.0, 1.0].
Just a minor error, but thought it was worth pointing out! I'm actually curious which is the better method of rescaling, but that's a topic for another discussion..

Fixed by #1395.


Possibility of python-markdown nbextension

Hi, I recently got into using jupyter/ipython notebooks, and locally a really handy thing to have that make the whole thing so much better is the python-markdown extension. Especially for binder it seems also relevant, as it helps making clean, easily updated documents. See also "Publication ready python notebooks" which mentions this and some other tips. Only when then using such a notebook with mybinder, all variables used in {{ }} do not display obviously :-/
So, is there any discussion/hope that this will be possible in the future? I guess you have to be careful with extensions due to security and so on, but maybe at least this very useful extension or a similar one could be added? (f.e. I would be fine with just using variables in markdown, or maybe only certain approved functions instead of all of python.

This is a great point! notebook extensions are actually already supported, and can be enabled with postBuild files (see https://github.com/binder-examples/jupyter-extension)
The main hangup is that python-markdown only supports notebook versions <= 4. The current version is 5, and it looks like the authors of that extension haven't updated it yet. Let me see if I can put together a repo that accomplishes what you're trying out

I take it back! figured it out with notebook == 5, though note that there are some weird-ish things you've got to do with the postBuild file:
https://github.com/binder-examples/jupyter-extension
binder link:
https://beta.mybinder.org/v2/gh/binder-examples/jupyter-extension/master?filepath=index.ipynb

gonna close this since the extension does work, but LMK if you have other questions!

Cool, thanks very much. Locally it already worked with 5, but I didn't know about postBuild. I think maybe with 5 sometimes you have to rerun/restart but otherwise it'd fine.


[4.2][AST] Initialize Target of break/continue with nullptr

Cherry-pick of #16055 reviewed by @jrose-apple
Since this wasn't initialized in constructor, it's never initialized in error case. This change doesn't affect normal compilation because it doesn't reach SILGen (the only user) due to typecheck error. However, IDE refactoring uses this regardless of the error.
rdar://problem/33972653

@swift-ci Please test


Formatting with Black

Description
Examples of Black for listing.
Status

[ ] Changelog updated
[ ] Ready to go

Do we like this, is it better, about the same or worse?

Very mildly better


jfrog rt build-publish env-exclude defaults should ignore case

On Linux environment variable names are normally uppercase. So I normally use sth. like TOOLUSER_NAME=foo and TOOLUSER_PASSWORD=bar. While build-publish excludes the lowercase variant tooluser_password by default, it unfortunately publishes TOOLUSER_PASSWORD.
So my suggestions would be to either:
a) extend the default: *password*;*secret*;*key*;*PASSWORD*;*SECRET*;*KEY*
b) or lowercase the variable names before matching.
If you want to make me really happy, include *TOKEN*;*token* as well ;-)

Thanks for suggesting this @mfriedenhagen.
We'll make the environment variables exclusion case insensitive and will also add token to the list of default excluded patterns.
We'll let you know when this is implemented.

@mfriedenhagen,
Thank you for opening this issue, we committed a fix for the problem which will be included in our upcoming release.

@mfriedenhagen,
The latest release includes this fix. We'd appreciate your feedback for it.
We've also updated the documentation to state that the list of pattern is case insensitive. We'll make sure to also update the command help with the next release.

Thanks, I already tested this, seems to work :-)


all confirmed mails to me for member check

Hi, where can I provide my address so I can get all confirm mails?
Better could be after regular confim a second mail to me for activate the account. But I can't develop it. Perhaps there is someone who can help me?

I usually use MailHog (https://github.com/mailhog/MailHog) and configure my local email credentials via a Development/Settings.yaml:
The "clean" solution however, which I will do in the next major release, is to separate out the Email Service completely from the UserManagement package, and use or build a clean one.
TYPO3:
 SwiftMailer:
   transport:
     type: 'Swift_SmtpTransport'
     options:
       host: '<IP_ADDRESS>'
       port: '1025'
       username: 'root'
       password: ''


[5.7] Check for model in assertViewHas

When using assertViewHas with a model it can end up comparing class state that the test may not care about, such as wasRecentlyCreated, pivots, or relationships, etc. The way I currently go about this is by passing a callback to assertviewHas:
$this->assertViewHas('user', function ($model) use ($user) {
    return $user->is($model);
});

I think being able to instead call it with assertViewHas('user', $user) would be a nice change, and I don't see any obvious negative consequences to this (unless the user cared about the 'hidden' state).
I'm not too cracked up about the test I added as it requires internal knowledge of $response, but I figure it's better than adding no tests. I could get rid of this line, but it would require rewriting assertViewHas to not be reliant on __get.
Edit: I have a couple custom assertions I would like to PR. They are related to each other, but not to this one - should I submit it as a separate PR or make it part of this one?

Hello,
i have an issue with this change,
i know it's a bit old,
but my test does not fail when relations does not match,
i expect my test to fail if a relation that should be loaded is not.
is there a solution to this ?
thanks.


Intensity doesn't affect gradient

Hello,
I have been working with this package and from my understanding the intensity doesn't affect the gradient? What does seem to affect the gradient is how close a point is to other points, that also changes depending on zoom level. So a cluster of points will have a higher intense gradient.
Is there anyway to directly use the intensity value to control the gradient that is passed to the heat layer? I want to represent points with higher values as a darker colour as opposed to lower values with a lighter gradient. With the current functionality a point with an intensity value of 0.77 would have the same colour as one with 0.22.
So, instead of a heatmap based on coordinates proximity to each other, I want it to be affected by the strength value of each coordinate.
thank you any help!
an example of my array would be like this:
[60300, 86220, 0.67],
[64122, 85670, 0.23]
~code below
const HeatmapComponent = ({ heatMapData }) => {
  const map = useMap()

  useEffect(() => {
    const points = heatMapData ?.map((data) => {
      const lat = data[0][0]
      const lng = data[0][1]
      const str = data[0][2]

      return [lat, lng, str]
    })

    const heatLayer = L.heatLayer(points, {
      minOpacity: 0.5,
      maxZoom: map.getMaxZoom(),
      max: 1.0,
      radius: 15,
      blur: 15,
    }).addTo(map)

    return () => {
      map.removeLayer(heatLayer)
    }
  }, [heatmapCords, map])

I have exact same problem. However I think it works based on intensity but it also groups those values together based on radius and when you zoom in/out it changes and usually looks really bad...

Not sure if this will work for you, but I modified the code slightly to fit my use case.
In the file dist/leaflet-heat.js, I updated the _redraw function to use intensity directly instead of calculating it based on the zoom level.
Specifically, I changed this code on line 11 (the entire function is on this line):
;r=x*f,

to:
;r=this._latlngs[t][2],


re-enable linux in CI

This re-enables Linux in CI, which may reproduce the "phentsize is too big" bug.
@bhansconnect I'm actually really not sure how to minimize this example. Do you have any ideas how we could do that to narrow down what's causing this bug? (Assuming this PR fails, of course.)

ok, cool cool, it fails in the same way as before still:
/home/runner/work/rbt/rbt/target/debug/deps/host-181c6daa729e8b6f: error while loading shared libraries: ./libapp.so: ELF file's phentsize not the expected size

Let me try and take a look at this later today. Hopefully I can repro locally and debug.

thank you!

hmm, looks like roc build --lib examples/hello/rbt.roc makes examples/hello/build.dylib. If I rename that to libapp.so (because why not, I'm throwing Hail Marys over here) it fails and has some… interesting complaints. Any ideas for getting to the .so file form the .dylib file?

Assuming this works correctly: https://github.com/roc-lang/roc/pull/4628
I believe it should fix your issue once it is submitted.


ORC community should publish test jars to maven central.

+1. Thank you for finding out this, @williamhyun .

Since Apache ORC 1.7.6 vote finished, do you think you can revisit this issue for next releases?

Sure! I will make a PR soon.

Now we have tests.jar in the snapshot repository.

https://repository.apache.org/content/repositories/snapshots/org/apache/orc/orc-core/1.9.0-SNAPSHOT/orc-core-1.9.0-20220820.051910-95-tests.jar
https://repository.apache.org/content/repositories/snapshots/org/apache/orc/orc-core/1.8.0-SNAPSHOT/orc-core-1.8.0-20220820.051923-401-tests.jar
https://repository.apache.org/content/repositories/snapshots/org/apache/orc/orc-core/1.7.7-SNAPSHOT/orc-core-1.7.7-20220820.052013-3-tests.jar


Sync .pot file with source code

I bought the pro version of Poedit which then let me update the translations.
I then also used the pre-translate option to pre-translate a few languages.
I tested on my system, but it doesn't seem like the translation system is working.
@jaapmarcus can you try it? I know you said that they seemed to work for you

Also I am not a fan of keeping the .po files in the main repo. They create a lot of "noise" due to all the references in .po where the translations can be found.
We should move them to a remote repo!

Yes, I eventually will bring localization file support to the extension store. Let’s keep it in a separate repo.

I've removed the new locales from this repo so we can add them to a new one. This PR is ready to be merged


Traefik not resolving containers ip by name when attached to the default network

Do you want to request a feature or report a bug?
Bug
Did you try using a 1.7.x configuration for the version 2.0?

[ ] Yes
[x] No

What did you do?

What did you expect to see?
Working traefik
What did you see instead?
Not working traefik with the message in the logs:
Couldn't find ip of container
Output of traefik version: (What version of Traefik are you using?)
2.0

(paste your output here)

What is your environment & configuration (arguments, toml, provider, platform, ...)?
# (paste your configuration here)

If applicable, please paste the log output in DEBUG level (--log.level=DEBUG switch)
(paste your output here)

The problem is, that I use rancherOS with the Cloud-init configuration method...this doesn't allow to define custom networks...but traefik doesn't seem to work in the default docker bridge, as this does not resolve the ip of the container by it's name...how can I resolve that? Has someone ever configured traefik in rancherOS Cloud-init? (It's using rancher compose where some options are stripped away). I also can't find any hint in the documentation that I've to define a custom network... please help!

Hi! I'm Træfiker :robot: the bot in charge of communication regulation.
Thanks for your interest in Traefik!
We dedicate the issue tracker to bug reports and feature requests only. My advanced AI has spotted that your issue might be a configuration problem or relates to something that doesn't look like a bug.
To confirm this, please join our Community Forum and reach out to us on the Traefik section.
In case I'm wrong (well, that would be embarrassing :sweat_smile:), my developers will re-open the issue and fix me!
In the meantime, you can double check Traefik's documentation.

Hi traefiker has accidentally closed my issue...please reopen.

Hi @bd8392 , it is not an error: the problems you are facing are related to configuration or need support. As we keep the github for bugs and features, can you please ask for help in the community forum at https://community.containo.us/ please? Thanks a lot for your understanding!

Ok thank you :-)


[Remote Store] Added AWS v2 SDK and netty dependencies in repository-s3 plugin

Credits: @vikasvb90 and @itiyamas for the design and core implementations of the feature.

Description
Adding netty and AWS v2 SDK dependencies to use for parallel multipart async uploads
Issues Resolved

#6703

Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Are both AWS SDK v1 and v2 required now? I would have expected an upgrade.

Both are not required but the plan was to first integrate it with remote store, let it bake for some time and then migrate other users like snapshot. Remote store will only use v2 sdk though.
@raghuvanshraj lets plan to migrate other remote store paths to v2 as well.

Both are not required but the plan was to first integrate it with remote store, let it bake for some time and then migrate other users like snapshot and deprecate v1. Intention was to reduce the blast radius. Remote store will only use v2 sdk though. @raghuvanshraj lets plan to migrate other remote store paths to v2 as well.

If we need both in the source code let's rename aws to aws_v1 for consistency? But really maybe we can do an upgrade project-wide before this task? How do others feel about carrying both versions of the dependency? @nknize @reta

@dblock I agree with you that we should migrate to aws_v2 as soon as possible. Our perf runs also resulted in significant improvement in throughput (~15%) and we were able to reap the benefits of multi-part parallel upload with the help of async IO.
But since It's a critical change and there could be repository plugins outside of OpenSearch project which might be using synchronous abstractions as well as aws v1 SDK, it will come as a surprise to them during upgrade if we get rid of aws v1 sdk. So, if we plan to remove v1 sdk first, we will probably have to follow the deprecation route where we need to deprecate v1 sdk as well as synchronous abstractions and let it bake for some time. And later during the next major version bump we get rid of this. This might take a long time and that's why we thought of keeping both sdks for now. One thing we can do right away is to mark synchronous abstractions Deprecated.
Regarding migration of existing remote paths in OpenSearch like  snapshot, I am open to suggestions but I am still inclined to take that as a separate task because it is currently being used in production and using v2 in remote store feature will give us a sign off to proceed further.
cc: @shwetathareja @gauravruhela @sachinpkale

How do others feel about carrying both versions of the dependency

I lean towards supporting AWS SDK v2 only. The option to support both SDKs seems to add quite a burden for both users and maintainers:

we have to make sure that all SDKv2 dependencies are optional so no to break the existing users (but we have to bundle everything in ZIP distribution anyway)
we have to provide a way to configure which SDK to use
we have to extend the security policy in a way to support both SDKs (even if only one of them could be used at a time)

But since It's a critical change and there could be repository plugins outside of OpenSearch project which might be using synchronous abstractions as well as aws v1 SDK, it will come as a surprise to them during upgrade if we get rid of aws v1 sdk.

That's a valid point, we do publish the repository-s3 artifacts. What if we branch this plugin to let say repository-s3-v2 (or alike)? We do not install this plugins by default (only bundle them) so anyone could choose.

@reta

we have to make sure that all SDKv2 dependencies are optional so no to break the existing users (but we have to bundle everything in ZIP distribution anyway)

How do you think making addition of SDKv2 dependencies mandatory will break existing users?
Please look at plugin PRs in meta issue #6703 . The change of dependencies is in repository-s3 plugin and we have verified that both SDKs v1 and v2 can work in conjunction. Also, v2 is used in async flows and v1 in synchronous flows. And it is in OpenSearch that we are taking the decision of whether to use synchronous or async flows based on the support present in plugin.

we have to provide a way to configure which SDK to use

It won't be just configuration based control as even OpenSearch needs to handle async flow differently. Therefore, there are new abstractions defined for async flow which uses v2 sdk. Meaning, there is a clear separation of v1 flows and v2 flows and both are defined, implemented and can be used independently.

we have to extend the security policy in a way to support both SDKs (even if only one of them could be used at a time)

Again, this is already done and PRs for the same are raised and tagged against Meta issue for reference.

That's a valid point, we do publish the repository-s3 artifacts. What if we branch this plugin to let say repository-s3-v2 (or alike)? We do not install these plugins by default (only bundle them) so anyone could choose.

If I am not wrong, it is modules which are installed by default and not plugins. So, even repository-s3 is an optional package.
We have added new optional abstractions in OpenSearch and respective implementations in repository-s3. By adding new implementations of SDKv2 in repository-s3, I don't think that we are breaking anything for existing users. Please correct me if I am missing something here. We have carried out perf as well for both v1 and v2 SDKs working together in different flows.
Bundling repository-s3 with SDKv2 should ideally have no impact on existing users.

thanks @raghuvanshraj

How do you think making addition of SDKv2 dependencies mandatory will break existing users?

The artifacts we publish do bring transitively a lot of dependencies. Now, we used to depend on AWS v1 but would depend on AWS v2 as well. We do not know how the plugin dependencies are being used in the wild, I have seen many variations, but here are a few:

one could exclude all transitive deps and use manual dependency - it will break for all v2 flows
one could rely on AWS SDK usage from the classpath resolution - it will use v2 instead of v1 to surprise

This is all speculation, I cannot prove or disprove that, but it is worth to think about.

The change of dependencies is in repository-s3 plugin and we have verified that both SDKs v1 and v2 can work in conjunction

I don't think we need to use different SDKs for different flows, the v2 should easily cover both sync and async flows [1], could you may be hint why AWS v1 is still needed and cannot be replaced with AWS v2?
[1] https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-whats-different.html

@reta ,
@vikasvb90  here :)

This is all speculation, I cannot prove or disprove that, but it is worth to think about.

AWS SDK doc says that we can use both side by side. Example in this doc uses two different services but services are only implemented as modules of the global AWS SDKs and not as separate SDKs. https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-side-by-side.html
And as I said in previous comment that both versions can be used in the same run or in fact as part of the same request. So far, I haven't seen any conflict in the dependencies on using the two together. From what I have seen, both SDKs are based on different fundamentals. One uses Apache http client and the other one uses NettyNioAsyncHttpClient and accordingly all other dependencies are laid out in v1 and v2. Therefore, on the basis of these points so far it doesn't look like we should have a problem.
When you say one could exclude and one could rely, where exactly are you referring to. Just to understand, are you referring to a different plugin where a user does these experiments? Even then I am not sure how one can end up creating conflicts as both SDKs have different underlying platform dependencies.

I don't think we need to use different SDKs for different flows, the v2 should easily cover both sync and async flows [1], could you may be hint why AWS v1 is still needed and cannot be replaced with AWS v2?

Yes, we don't need to use sync flows at all. The point was that sync flows are old flows which use SDKv1 and are used in snapshot path currently. We can integrate remote store flows with sdk v2 first and then in a separate task migrate snapshot code and get rid of SDKv1 from repository-s3 plugin. But we still need to continue to support sdk v1 as a version in OpenSearch and slowly deprecate it as other implementation of repository plugin or some other plugin might still be using it.

When you say one could exclude and one could rely, where exactly are you referring to

As I mentioned - I do not have prove of that, otherwise I would point to the projects directly. I could easily craft the examples but that would not be fair.

Yes, we don't need to use sync flows at all.

I think this basically answers it all - we could remove v1 altogether, afaik the fact that S3 repository implementation uses SDK v1 is implementation detail , it does not leak through public API (the only single class AmazonS3Reference that could be made package-private as well).

The point was that sync flows are old flows which use SDKv1 and are used in snapshot path currently

This is what we have to tackle first I believe, prepare the foundation before building on top.

@vikasvb90 @raghuvanshraj I think you have proven that AWS SDK v1 and v2 can coexist. But what is the reason not to upgrade all AWS SDK v1 paths to v2 like we would do for all other dependencies?

afaik the fact that S3 repository implementation uses SDK v1 is implementation detail , it does not leak through public API

This point by @reta makes me lean towards a regular upgrade. As an implementation detail, I think it is fair game to upgrade it in place. I also lean towards tackling the version upgrade first, before adding new flows that depend on the new version, i.e. "prepare the foundation before building on top". Doing otherwise strikes me as taking on tech debt.

@raghuvanshraj I think we now have 3 people (@andrross @reta and myself) saying that you should do the v1 to v2 upgrade first, before introducing new features that use v2

@andrross Although, in place upgrade of from sdk v1 to v2 is possible, it won't be ideal. It would be preferable to expose a completable future and let the caller decide to chain it with other futures or to wait for its completion. For e.g. in case of transfer of multiple files, aggregating all upload futures would be better as compared to waiting for completion of each future. Because of this reason, there will be new async apis and accordingly there will be changes in OpenSearch code paths as well.

in place upgrade of from sdk v1 to v2 is possible, it won't be ideal

@vikasvb90 Are you saying that using the v2 client under the hood for the existing sync APIs is not ideal and that the v1 SDK is somehow preferable? Can you expand on this?

v2 sdk is preferable over v1 even in case of in place upgrade but we would also want to provide opportunity to caller to further chain it or wait for it. Without this we will still be leaving a tech debt where remote store paths where more than one transfer is happening, need to be optimized.
Consider a case where more than 5 segment files need to be uploaded. If we use the in-place upgrade, you will either open 5 threads and use v2 upload in each thread or execute each upload using v2 one after other. Now if we had a future here provided by the upload api, then first we would have created 5 futures, combined them and then waited on a single resultant future. By this we would have achieved parallel transfer and saved the overhead of 5 new threads.

@vikasvb90 I think what @dblock, @reta, and I are asking for is that we upgrade the AWS SDK to v2 first, including updating all the internal (synchronous) implementations in repository-s3 today to use the new SDK. Once that is done, we can start adding async flows to the API and updating OpenSearch to use them where appropriate.
What we don't want is to add the SDKv2 side-by-side with SDKv1 for the sole reason of deferring the work to update the existing sync flows to use SDKv2. I believe that brings tech debt and complexity into repository-s3 that can be avoided by doing the proper upgrade to SDKv2 first.

I opened https://github.com/opensearch-project/OpenSearch/issues/7312 to do the upgrade. It does seem like quite a bit of work.

Based on @dblock 's comment for the changes required in plugin, changes can be planned as follows :
Phase 1

Definition and implementation of new async APIs in repository S3 plugin. These APIs will only be used in remote store paths in this phase.
Migration of existing v1 synchronous APIs to v2 synchronous APIs. We don't expect any performance gain as part of this change and sole purpose of this will be to migrate to v2 sdk completely in the plugin. This work will/should be completely replaced by asynchronous APIs to start releasing performance gains. Following changes are required for this activity.
-  All S3 object APIs like putObject, getObject, deleteObject, listObject, doesObjectExist, etc. will be replaced by their counterparts in v2.
- All S3 client configurations like connection timeout, socket timeout, max connections, etc. will be replaced by their corresponding configurations in v2.
- All credential providers including classes and methods will be replaced by respective v2 classes and methods.
- Testing of new synchronous changes of all credential providers, APIs and configurations changes will be required.
Note: We will still have to maintain both synchronous and asynchronous client references till we migrate everything to async flows.

Phase 2
This phase will be rolled out incrementally where we will add new async APIs w.r.t. existing sync APIs like doesObjectExist, deleteObject, etc. Incrementally we will start migrating existing OpenSearch remote paths to v2 async APIs. We can start removing S3 sync interactions as and when they are removed from usage paths.
Eventually we will get rid of all v2 sync interactions with proper testing and incremental releases.

If we're already doing repository-s3, then we're almost here. I have tests passing with AWS SDK v2 for discovery-ec2 in https://github.com/opensearch-project/OpenSearch/pull/7372.

Failure from gradle CI logs:
* What went wrong:
Execution failed for task ':qa:mixed-cluster:v2.8.0#mixedClusterTest'.
> There were failing tests. See the report at: file:///var/jenkins/workspace/gradle-check/search/qa/mixed-cluster/build/reports/tests/v2.8.0%23mixedClusterTest/index.html

This seems to be a flaky test as it is passing when I run it locally. I've opened a bug for the same: #7755


Wrap shared links in div for easy styling

I chose the class devise-links because it is neutral and explicit, but I can change it if there is a better name.
I also wanted to add a test to check for the presence of the class in the view, but I couldn't determine the best place to put such a test.  Any suggestions?

Hi @jonathanhefner, thanks for your pull request.
This view is very simple and it's meant to be included as a default with Devise. As you can see, the texts are not using i18n and there are a bunch of <br/> tags to display the elements.
Usually, it's better to override this view so that you can better customize it in your application - this has more flexibility than the wrapper div. Would that work for you?

@tegon I understand about overriding views, but this still seems like a convenient addition.  I always wrap the shared links after running rails g devise:views, because there is no way to style them otherwise.  In contrast, I only add i18n when necessary.
Do you feel like this change does too little compared to the editing that is typically required?  If so, are there additional changes you would like to see, e.g. remove br tags?

This change is small, so it wouldn't be that much trouble to accept it. But it opens a precedent for the future when someone might need to include another tag or attribute in order to support their use case.
Overriding seems like a more natural path for users to follow, and easier to maintain for us.


Android: false negative on if ((list == null) && (list.size() == 0)) ?

I wrote a demo to test the capability between Findbugs and Infer.
Here's class Utilz:
public class Utilz {
    public static String mayReturnNull(int i) {
        if (i > 0) {
            return "It's Good!";
        }
        return null;
    }

    public static int lstLen(List list) {
        if ((list == null) && (list.size() == 0)) {
            return 0;
        }

        return list.size();
    }
}

Here's the activity:
public class Findnobugs extends AppCompatActivity {

    TextView tv_show;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_findnobugs);

        Random rng = new Random();
        String txt = Utilz.mayReturnNull(rng.nextInt());
        tv_show = (TextView) findViewById(R.id.tx_show);
        tv_show.setText(String.valueOf(txt.length()));
    }
}

Infer could hunt the NULL_DEREFERENCE  in
21.           String txt = Utilz.mayReturnNull(rng.nextInt());
22.           tv_show = (TextView) findViewById(R.id.tx_show);
23. >         tv_show.setText(String.valueOf(txt.length()));
24.

And findbugs could hunt the other
        if ((list == null) && (list.size() == 0)) {
            return 0;
        }

Thanks for the report. We'll look into it.
It looks like infer finds out bug in lstLen but then it gets filtered out. If you run infer in debug mode (infer -g ...), you'll see null dereference in [B5] bucket.

Thank you @akotulski ,I was curious why Infer ignore lstLen in that case?

Our filtering heuristics tend to rank reports where an explicit flow of null to a dereference site is observed as high-confidence, and reports where a variable is compared to null and then dereferenced (such as the example here) as low-confidence.
The reason is that reports for the latter reason can often be false positives when the comparison to null is in a callee. That said, there are often cases like your example here where the result is pretty high-confidence. We should perhaps try to adjust our heuristics for this case.

Closing because we do find this even though the default bucketing filters it out.


Can't get it to work on Kube 1.9

I tried to install Ambassador on Minikube with the following config:
$ minikube version
minikube version: v0.25.2

$ kubectl version --short
Client Version: v1.9.2
Server Version: v1.9.4

I follow the getting started guide and deploy it with kubectl apply -f https://getambassador.io/yaml/ambassador/ambassador-rbac.yaml -n=kube-system but then the pods don't come up:
kubectl logs -c=ambassador ambassador-6fbfcf88c7-m56rt -n=kube-system
./entrypoint.sh: set: line 65: can't access tty; job control turned off
Traceback (most recent call last):
  File "/application/kubewatch.py", line 493, in <module>
    main()
  File "/usr/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/application/kubewatch.py", line 476, in main
    sync(restarter)
  File "/application/kubewatch.py", line 313, in sync
    for x in v1.list_namespaced_config_map(restarter.namespace).items ]
  File "/usr/lib/python3.6/site-packages/kubernetes/client/apis/core_v1_api.py", line 12395, in list_namespaced_config_map
    (data) = self.list_namespaced_config_map_with_http_info(namespace, **kwargs)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/apis/core_v1_api.py", line 12497, in list_namespaced_config_map_with_http_info
    collection_formats=collection_formats)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 335, in call_api
    _preload_content, _request_timeout)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 148, in __call_api
    _request_timeout=_request_timeout)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 371, in request
    headers=headers)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/rest.py", line 250, in GET
    query_params=query_params)
  File "/usr/lib/python3.6/site-packages/kubernetes/client/rest.py", line 240, in request
    raise ApiException(http_resp=r)
kubernetes.client.rest.ApiException: (403)
Reason: Forbidden
HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json', 'X-Content-Type-Options': 'nosniff', 'Date': 'Sun, 25 Mar 2018 18:45:53 GMT', 'Content-Length': '280'})
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"configmaps is forbidden: User \"system:serviceaccount:kube-system:ambassador\" cannot list configmaps in the namespace \"kube-system\"","reason":"Forbidden","details":{"kind":"configmaps"},"code":403}

AMBASSADOR: kubewatch sync exited with status 1
Here's the envoy.json we were trying to run with:
ls: /etc/envoy*.json: No such file or directory
No config generated.
AMBASSADOR: shutting down

Any idea why? I'd like to use it for a gRPC setup.

Thanks for the speedy reply @rhs, very much appreciate it! Yes, it does work in default, just tried it but only there. In other non-default NS it doesn't. Need to adapt roles/bindings I guess. Let me try that and then I think we can close it, seems more like a layer 8 problem here ;)

Confirmed. Also, does it have to be a cluster role (and binding). Would a role/role binding also work? There are certain environments such as OpenShift Online where I can't create cluster-wider resources, hence …

Turns out that Ambassador apparently needs the permission to list services cluster-wide. Can this be changed? Happy to raise a new issue for it but this seems like a blocker to me. Here's the error:
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"services is forbidden: User \"system:serviceaccount:grpc-demo:ambassador\" cannot list services at the cluster scope","reason":"Forbidden","details":{"kind":"services"},"code":403}

Have you seen the docs on running Ambassador within a single namespace? That's the only supported way to limit it so far -- would that work for you?
https://www.getambassador.io/reference/running.html

Yup, works in a specific NS but still requires cluster-level permissions ;)


feat(settings): introduce setting to disable container caps for non-a…

Backport of https://github.com/portainer/portainer/issues/4105 into 1.24.2

Re-assigning this one to myself, I'll do a round of functional validation.


Update error-info-interpreter.js

This way you can also use custom errors issued per throw

Coverage decreased (-2.01%) to 97.987% when pulling a79a700a45136b6530a1b4103ddcb68b216caf8d on jessicamrbr:patch-1 into ad327ca6cc6dd68bc1b6afc3ad396c09b9841fe4 on antonio-muniz:master.


Removed duplicate line items and ordered the results by date

Notion card
Summary

Removed the duplicate line item entries in the New line item dropdown and Add multiple line item modal.
Ordered record by work_date.

Preview

https://www.loom.com/share/cd22f158de294573991b963b03810c46
Type of change
Please delete options that are not relevant.

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

How Has This Been Tested?

Checklist:

[X] I have manually tested all workflows
[X] I have performed a self-review of my own code
[ ] I have added automated tests for my code

@mohinid can you check why the CI is failing. Cypress packages are not installing

@mohinid can you check why the CI is failing. Cypress packages are not installing

@apoorv1316 Can you please check.

@gowsik-ragunath Why this PR is even installing cypress on CI I haven't merged the PR in which we are enabling the cypress test on CI. It's still open https://github.com/saeloun/miru-web/pull/490. cc @mohinid

@gowsik-ragunath I am also not sure. Anway I re-run the job and all the checks seem fine now.

@apoorv1316 Please retest this bug and approve/reject accordingly.

@gowsik-ragunath Merging this. Added a new Notion card for @rohitjoshixyz 's feedback.


pinned a few packages that relied on pyjwt1

Motivation for this change
ZHF: #122042, ping @NixOS/nixos-release-managers
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

honestly, the better course of action would be to revert the pyjwt bump.
cc @FRidh

Result of nixpkgs-review pr 123430 at 6ddee8aa run on x86_64-linux 1

17 packages marked as broken and skipped:

python38Packages.arviz
python38Packages.dm-sonnet
python38Packages.graph_nets
python38Packages.optuna
python38Packages.pymc3
python38Packages.pywick
python38Packages.rl-coach
python38Packages.shap
python38Packages.skorch
python38Packages.tensorflow-probability
...

6 packages failed to build:

home-assistant
python38Packages.kubernetes
python38Packages.oauthenticator
python39Packages.kubernetes
python39Packages.oauthenticator
python39Packages.vdirsyncer

300 packages skipped due to time constraints:

appdaemon
azure-cli
beetsExternalPlugins.alternatives
beetsExternalPlugins.copyartifacts
beetsExternalPlugins.extrafiles
breezy (python38Packages.breezy)
cabal2nix
dep2nix
devpi-client
dvc-with-remotes
...

81 packages built successfully:

apprise (python38Packages.apprise)
beets
cloud-init
gphotos-sync
pleroma-bot
python38Packages.atlassian-python-api
python38Packages.batchspawner
python38Packages.discogs_client
python38Packages.django-allauth
python38Packages.django-oauth-toolkit
python38Packages.dockerspawner
python38Packages.exchangelib
python38Packages.fitbit
python38Packages.flickrapi
python38Packages.google-auth-oauthlib
python38Packages.homeconnect
python38Packages.jira
python38Packages.jupyterhub
python38Packages.jupyterhub-ldapauthenticator
python38Packages.jupyterhub-systemdspawner
python38Packages.jupyterhub-tmpauthenticator
python38Packages.launchpadlib
python38Packages.lazr-restfulclient
python38Packages.msrest
python38Packages.mwclient
python38Packages.mwoauth
python38Packages.oauthlib
python38Packages.ondilo
python38Packages.pyatmo
python38Packages.pybotvac
python38Packages.pymfy
python38Packages.pysmappee
python38Packages.pysnow
python38Packages.python-smarttub
python38Packages.python-twitter
python38Packages.pyvicare
python38Packages.requests_oauthlib
python38Packages.ring-doorbell
python38Packages.tellduslive
python38Packages.tweepy
python38Packages.twilio
python38Packages.twitterapi
vdirsyncer (python38Packages.vdirsyncer)
python39Packages.apprise
python39Packages.atlassian-python-api
python39Packages.batchspawner
python39Packages.discogs_client
python39Packages.django-allauth
python39Packages.django-oauth-toolkit
python39Packages.dockerspawner
python39Packages.exchangelib
python39Packages.fitbit
python39Packages.flickrapi
python39Packages.google-auth-oauthlib
python39Packages.homeconnect
python39Packages.jira
python39Packages.jupyterhub
python39Packages.jupyterhub-ldapauthenticator
python39Packages.jupyterhub-systemdspawner
python39Packages.jupyterhub-tmpauthenticator
python39Packages.launchpadlib
python39Packages.lazr-restfulclient
python39Packages.msrest
python39Packages.mwclient
python39Packages.mwoauth
python39Packages.oauthlib
python39Packages.ondilo
python39Packages.pyatmo
python39Packages.pybotvac
python39Packages.pymfy
python39Packages.pysmappee
python39Packages.pysnow
python39Packages.python-smarttub
python39Packages.python-twitter
python39Packages.pyvicare
python39Packages.requests_oauthlib
python39Packages.ring-doorbell
python39Packages.tellduslive
python39Packages.tweepy
python39Packages.twilio
python39Packages.twitterapi

1 suggestion:

warning: maintainers-missing
Package does not have a maintainer. Consider adding yourself?
Near pkgs/development/python-modules/twilio/default.nix:44:5:
   |
44 |     maintainers = with maintainers; [ ];
   |     ^

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

Deferring to @jonringer. It is probably not ideal, but I don't see the harm.


ReferenceError: cannot access 'class' before initialization

Describe the bug
I encountered a potential issue when executing my project compiled with SWC. I've been using version 1.3.96 for some time, and everything was working fine. However, upon updating the SWC version to compile the project, I encountered the following error during project execution:
ReferenceError: Cannot access 'ActionPlan' before initialization
This does not occur with the code generated with version 1.3.96, but with any other updated versions I get the same error
This is a snippet of my TypeScript code
import Consensus from './Consensus';
import Goal from './Goal';

@Entity({ name: 'action_plan' })
export default class ActionPlan {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @OneToOne(() => Consensus, consensus => consensus.actionPlan)
  @JoinColumn()
  consensus: Consensus;
}

While testing with the playground, I noticed only one difference between the code generated by version 1.3.96 and others.
The JavaScript code generated looks like this in version 1.3.96 (which works):
var ActionPlan; // with this 'var' variable
ActionPlan = class ActionPlan {
    constructor(){
        _define_property._(this, "id", void 0);
        _define_property._(this, "consensus", void 0);
    }
};

In any other version, the JavaScript code generated looks like
class ActionPlan { // without the variable
    constructor(){
        _define_property._(this, "id", void 0);
        _define_property._(this, "consensus", void 0);
    }
}

Using the keepClassName config yields the same error
let ActionPlan = class ActionPlan { // with this 'let' variable
    constructor(){
        _define_property._(this, "id", void 0);
        _define_property._(this, "consensus", void 0);
    }
};

Input code
No response
Config
{
  "sourceMaps": true,
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "decorators": true,
    },
    "transform": {
      "legacyDecorator": true,
      "decoratorMetadata": true,
    },
    "target": "es2020",
    "paths": {
      "@modules/*": ["modules/*"],
      "@config/*": ["config/*"],
      "@shared/*": ["shared/*"]
    },
    "baseUrl": "./src",
  },
  "module": {
    "type": "commonjs"
  },
  "minify": false,
}

Playground link (or link to the minimal reproduction)
https://play.swc.rs/?version=1.3.96&code=H4sIAAAAAAAAA0WPzQrCMBCE74W%2Bw96Sgui9olSKCF704F2WNspCsin5AUV8d9Mo8bKws9%2FMsGQm6wL0lr1iHz3cnDUglquiiHVd0Zc6WNQFmJf5VlfdngOFp3wBo1EtCBwCWb5OGlnAu6kr9cj%2BUd0w6gCDRu9hl6lzguBVVwDd2ZFB9zwoVg6DGnuro2EpYqRRNDNCYws%2BOOJ7Lk6eE6uLTUPKBjbb%2Fx8LGMpLSS%2FLEktrTuyOlvhXlIVCtv%2BwVPb%2BAAx5%2FXMpAQAA&config=H4sIAAAAAAAAA1VQuW7DMAzd8xWC0KkorCBjpgxdM3YqMrAyfcGSDJJGawT590qO4mOyH99F8X5Qyhil39g26ECflW5EBj4b03HwxXPMEgiLQLXhX0tWf0SX5jCSxSsMHF1CI87Tjm2E9%2FgbwQDESAtOpskL%2FKUamQZkS%2B0gc9zMlmgDQSzbRir1eH60EHiuArltYo812Onz5dwZt5FXFChB4CWY6X08UI2SdkM%2BHU%2FHvFd8hTS8rby4UI49snmP02%2B9ottSe7HBV22dFQvYCLgBwjILFnDbbfQDjF%2FUp5UKw%2FnwM5lL11OncyadDc4F37Fela1vqylyFfQcD%2FM4%2FAO7EHJz9QEAAA%3D%3D
SWC Info output
No response
Expected behavior
I would like to use an updated version of SWC, such as 1.4.4, and don't get the error ReferenceError: Cannot access 'ActionPlan' before initialization.
Based on my tests till now, the code generated with the version 1.4.4 should be like this.
var ActionPlan; // with this 'var' variable
ActionPlan = class ActionPlan {
    constructor(){
        _define_property._(this, "id", void 0);
        _define_property._(this, "consensus", void 0);
    }
};

It looks like a hosting problem, but I'm not sure.
Actual behavior
No response
Version
1.3.100 +
Additional context
No response

Please provide a minimal repro that's exeutable.


Planes not counting for Bring It Down

When submitting a list with 2 Archeopter Fusilave for the Adeptus Mechanicus, the "Bring It Down" scoring section at the top of the sheet shows 4 fewer points than it should. (In my case, 5x Kastelan Robots, 5x Ironstrider Ballistarii, and 2x Archaeopter Fusilaves)
When the planes are not included, the other vehicles all show correctly.

@KCManning may I ask you to provide the battlescribe list file as well?

Happy to provide that!
On Tue, Dec 13, 2022, 12:02 AM Roman Beltiukov @.***>
wrote:

@KCManning https://github.com/KCManning may I ask you to provide the
battlescribe list file as well?
—
Reply to this email directly, view it on GitHub
https://github.com/maybe-hello-world/40k-roster-formatter/issues/69#issuecomment-1347750681,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADDKIH4STLUDKUQJHDNYUADWM77ODANCNFSM6AAAAAAS4AJJUQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Well, I already found the problem :D
BSData developers forgot to add the keyword "Vehicle" to all admech flyers.
I submitted the bug in their repository, you can track the progress here: https://github.com/BSData/wh40k/issues/12038.
I think fixing the data itself is the best way to fix this problem instead of introducing workarounds or anything in my code, so I'll close this issue, but feel free to reopen it after some time if BSData developers wouldn't fix it.


[Script]: Covid 19 Tweets Sentiment Analysis using NLP

Aim
a text classification model using a pipeline with a TF-IDF vectorizer(NLP) and a Linear Support Vector Classifier (LinearSVC).
Details
The dataset : tweets about COVID-19, and the goal is to classify the sentiment of the tweets.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

/assign


Owner/Admin - Release Management - Document Steps to Publish a Release

I'm submitting a ...

[ ] other

Background
Currently, contributors from Revelry are unaware of the steps required to get a new release published. Let's fix that by adding some documentation.
Scenario: Available Release Instructions
Given I am viewing this project's repo

[ ] When I want to publish a new release
[ ] Then I can find and follow documentation to publish a release

Here's what I had to do so far. I'll update if I have to do anything else

When you push up your changes it needs a commit like feat: DESCRIPTION_OF_CHANGES, or fix: DESCRIPTION_OF_CHANGES to engage release pipeline

If the changes have already been pushed but you still need to trigger the release pipeline:

Do git commit --allow-empty -m 'fix: Fix spacing on button groups on a branch. Push that up and create a PR.
Merge it into master
When the build runs for that new commit, it'll

(a) push a commit back bumping the version number
(b) a few minutes later put the new version on NPM

Preferred way:

When you merge a PR, you use the squash option, and make the title of the squashed commit something matching the conventional commits https://www.conventionalcommits.org/en/v1.0.0-beta.2/ standard.
The robot bumps the package version as is appropriate given conventional commit and republishes the package.

"Oops, I forgot to do a conventional commit" way:

Make another PR, using git commit --allow-empty -m 'FILL IN CONVENTIONAL COMMIT HERE'if you have no other commits to merge, and follow the above instructions.

BONUS POINTS: You can, but do not have to, list issue numbers in the #123 format in the conventional commit title or body, and semantic release robot will comment back on those issues letting people know the issue has been resolved in version $MAJOR.$MINOR.$PATCH.


convert Qcomicbook to new launcher and follow guidelines

This change is

Comments from Reviewable

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Allow prioritization of Critc Score sources

PCGamingWiki has three potential sources for Critic Score: Open Critic, IGDB, Metacritic
Allow the user to customize prioritize the order of these score to determine which should be used. Also optionally disable some.

This would be nice yes~

Is there any plan to implement this?


Fix: infinite skeleton loading when delete concierge task

Details
This PR fixes the eternal skeleton issue that occurs after a user deletes a subtask of concierge. It adds the parentReportActionId to prevent malformed objects.
Fixed Issues
$ https://github.com/Expensify/App/issues/40918
PROPOSAL: https://github.com/Expensify/App/issues/40918#issuecomment-2089712369
Tests

Create account and login
Select one of these categories displayed at the first modal(What do you want to do today?)
Fill in the First and Last Name.
Go to Concierge chat, select one of their subtask
At the task, go to the Header, select the three dots, and delete it
You must go back automatically to the Concierge chat without any error

[x] Verify that no errors appear in the JS console

Offline tests
N/A
QA Steps

Create account and login
Select one of these categories displayed at the first modal(What do you want to do today?)
Fill in the First and Last Name.
Go to Concierge chat, select one of their subtask
At the task, go to the Header, select the three dots, and delete it
You must go back automatically to the Concierge chat without any error

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/90075349/da118e00-0893-45a0-a535-0d5a4b921fa5

Android: mWeb Chrome
https://github.com/Expensify/App/assets/90075349/d6b904a0-c303-40f6-b9e3-89151a55028d

iOS: Native
https://github.com/Expensify/App/assets/90075349/bc785c15-e756-42d0-a805-ef0913ea1c3c

iOS: mWeb Safari
https://github.com/Expensify/App/assets/90075349/d1e32b20-1e3e-4b4e-a044-b627c564fcd6

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/90075349/2b58460f-4490-4a5e-99fc-b6ad419d6fa2

MacOS: Desktop
https://github.com/Expensify/App/assets/90075349/1fa5156a-2a8b-4ed7-958f-56103e2ec072

@eh2077 It looks like you are the C+ for this issue. I'm not sure why it didn't assign you so I have manually added you to take the first pass on this PR.

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@vradriano Please make sure your commits are signed, see https://github.com/Expensify/App/blob/main/contributingGuides/CONTRIBUTING.md#begin-coding-your-solution-in-a-pull-request.
Please follow following format to link issue and proposal
<!---
1. Please postfix `$` with a URL link to the GitHub issue this Pull Request is fixing. For example, `$ https://github.com/Expensify/App/issues/<issueID>`.
2. Please postfix  `PROPOSAL:` with a URL link to your GitHub comment, which contains the approved proposal (i.e. the proposal that was approved by Expensify).  For example, `PROPOSAL: https://github.com/Expensify/App/issues/<issueID>#issuecomment-1369752925`

Do NOT add the special GH keywords like `fixed` etc, we have our own process of managing the flow.
It MUST be an entire link to the github issue and your comment proposal ; otherwise, the linking and its automation will not work as expected.

Make sure this section looks similar to this (you can link multiple issues using the same formatting, just add a new line):

$ https://github.com/Expensify/App/issues/<issueID>
$ https://github.com/Expensify/App/issues/<issueID(comment)>

Do NOT only link the issue number like this: $ #<issueID>
--->

Not sure why the CI is pending.
@tgolen Can you help to trigger run workflows? Thanks

Sure, no worries. They have to be manually triggered on a contributor's first PR.

@vradriano You will need to go back and resign all your commits though.

Looks good! I'll see if all the tests will pass then merge this.

I checked each test manually and it looks like they all passed even though they are still showing as queued in this PR.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by https://github.com/chiragsalian in version: 1.4.74-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


unify conversions for ssbh_data types

This will probably end up using some sort of trait. Each top level type for the ssbh_data modules should support the following operations:

Conversions to and from the corresponding type in ssbh_lib for values and references using the From trait
Read from file or a reader
Write from file or a reader

This might not be worth doing since it's unlikely to want to make a type generic over all ssbh_data types in practice.


Powershell Steps Are Never Provided as Specified

[Enter feedback here]
The document states:

Secondary cluster certificate cannot be added through the Azure portal; use Azure PowerShell. The process is outlined later in this document.

In this section, however the steps to do this in powershell aren't in this document, or any document for that matter.

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

ID: 30fab368-8a51-14d6-1775-defa5f0ff04f
Version Independent ID: a8fbbe3d-063a-d6c9-b61d-1ebcfcaa1422
Content: Manage certificates in an Azure Service Fabric cluster - Azure Service Fabric
Content Source: articles/service-fabric/service-fabric-cluster-security-update-certs-azure.md
Service: service-fabric
GitHub Login: @erikadoyle
Microsoft Alias: edoyle

@keggster101020
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@erikadoyle
Can you please check and add your comments on this doc update request as applicable.

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. Though the scope of our feedback channel here on GitHub covers specific documentation fixes, we can help redirect you to the right support channel to get an answer to your question: [reference to alternative product/service or community endpoint]. Because this issue does not relate to documentation, we are closing this issue. #please-close


Robot state

Changed the whole robot_state to compile with colcon. Transform isn't ported yet, so it displays some errors refering to it.

Thanks @anasarrak, I’ll review this tonight. Please move it the next submodule if possible.

Once finished with trasforms uncomment this https://github.com/AcutronicRobotics/moveit2/blob/6ca09e1d5b8e483de40df4aaa1821d1667f7c81d/moveit_core/robot_state/include/moveit/robot_state/conversions.h#L41

Beyond the issues with transform, still suffering from the following issue @anasarrak:
/Users/victor/moveit_research/moveit/moveit_core/robot_state/src/conversions.cpp:535:62: error: cannot pass object of non-trivial type 'const std::__1::__vector_base<std::__1::basic_string<char>, std::__1::allocator<std::__1::basic_string<char> > >::value_type' (aka 'const std::__1::basic_string<char>') through variadic function; call will abort at runtime [-Wnon-pod-varargs]
      ROS_ERROR_NAMED(LOGNAME.c_str(), "Missing variable " , state.getVariableNames()[i]);
                                                             ^
/Users/victor/moveit_research/moveit/moveit_core/logging/include/moveit/logging/logging.h:41:25: note: expanded from macro 'ROS_ERROR_NAMED'
#define ROS_ERROR_NAMED RCUTILS_LOG_ERROR

Also, we should try to port the unit tests. Pending items then:

[ ] Port unit tests
[ ] Fix type error https://github.com/AcutronicRobotics/moveit2/pull/6#issuecomment-464850136
[ ] Finalize transform (note: transform has a similar issue than the one described in https://github.com/AcutronicRobotics/moveit2/pull/6#issuecomment-464850136 thereby both things seem connected)

Closing this, already ported here https://github.com/AcutronicRobotics/moveit2/tree/master/moveit_core/robot_state


Reimplement NSNotificationCenter (and NSNotification)

This pull request guts and reimplements both NSNotificationCenter and NSNotification.
NSNotification is supposed to be a class cluster. It it was empirically observed that non-concrete instances could still encode/decode, but would fail with abstract invocation exceptions on the property getter.
NSNotificationCenter is vastly improved. It:

Uses sets for quick lookup, since notification order bears no guarantees
Maintains a set of all receivers (for quick name-free removal)
Maintains a mapping from notification name to interested receivers (for quick dispatch)
Now supports enqueuing notification blocks on queues
Fulfills the contractual obligations of addObserverForName:object:queue:usingBlock:
Has no caveats
Is thread-safe
Is tested

Fixes #2391.

@aballway You should give me the :x: so I can then go dismiss it out of anger :grin:


action button ccs

hi, is there any way to change actions button css classes, if not can you provide an option to change class="btn btn-primary" to something else?

Hi @daoudzd
Currently there is no way, but I can add this feature in my next release.
Cheers,
Ruby.

Hey @daoudzd
This feature is rolled out in new release 1.1.2. Note that, still this is not yet documented in Readme.
Example:
actions: [
    {
        btn_text: 'Download ',
        class: "btn btn-primary my-custom-class",
        event_name: "on-download",
        event_payload: {
            msg: "my custom msg"
        }
    }
]

Cheers,
Ruby.

thank you

i tested it in https://codepen.io/rubanraj54/pen/zyZdzN  and found that  class: "btn btn-primary"  is working but
but btn_text: 'Download ', is not working

and noticed that buttons ccs in filter changed from

to

i tested it in https://codepen.io/rubanraj54/pen/zyZdzN  and found that  class: "btn btn-primary" is working but
but btn_text: 'Download ', is not working

Hi @daoudzd ,
I didn't updated new version in the codepen. That's why it wasn't working there.
I made a codepen example here https://codepen.io/rubanraj54/pen/Oqvgwj .
And note that, if you want to show the icon you should include some icon packages in your project.
In my example I used fontawesome css package to show download icon.

and noticed that buttons ccs in filter changed from

to

you can take a look at this issue #12 for more details why I change the design. Also now it is configurable to enable or disable clear buttons in global search and simple filter, and also you can override the clear button icon for your choice.


[image-mirror]kilianhett/chp_seg:1.0.1

kilianhett/chp_seg:1.0.1

https://github.com/Center-of-Imaging-Biomarker-Development/chp_seg


Automate closing and releasing from maven staging repo

Borrow some code from https://github.com/vanniktech/gradle-maven-publish-plugin

init/close/release is automated in https://github.com/vlsi/vlsi-release-plugins/tree/master/plugins/stage-vote-release-plugin

This is now complete and on master.


PGP decryption error

Hi,
I have imported OpenPGP key in my account settings.
However, I cannot decrypt any email; when I click the lock symbol, the email frame gets red and there's an information that decryption failed.
In the logfile /var/www/mail/rainloop/data/data/default/logs/log-.txt no error is recorded.
What's causing this issue?
THX

To narrow the issue: Yes, me too. When I send an PGP mail from apple mail, decrypt fails.
When I send a PGP mail from K9/android, it can be decrypted.
The difference is that apple mail sends these things inline where K9 sends the encrypted thing as attachment.


docs: update README-zh header.

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[x] N
[ ] Y

docs: update README-zh header.

2. What is the scope of this PR (e.g. component or file name):

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[x] Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

[x] N
[ ] Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

[ ] Unit test
[ ] Integration test
[ ] Benchmark (add benchmark stats below)
[ ] Manual test (add detailed scripts or steps below)
[x] Other

6. Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
None

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1369

Relevant Lines:
1526

💛  - Coveralls


Sort on save for Attributify mode

Hello, when I enable Attributify mode, the extension does not care which attribute goes first, and allowed mixing with native HTML attributes. Here's an example:
<!-- Without Attributify and sorted by extension-->
<img
  class="border-dotted rounded-full mx-auto border-5 border-blue-500 my-4 w-32"
<EMAIL_ADDRESS>  alt="Profile picture"
/>
<!-- With Attributify -->
<img
<EMAIL_ADDRESS>  m="x-auto y-4"
  border="rounded-full dotted 5 blue-500"
  alt="Profile picture"
  w="32"
/>
<!-- Expected behavior -->
<img
<EMAIL_ADDRESS>  alt="Profile picture"
  border="rounded-full dotted 5 blue-500"
  m="x-auto y-4"
  w="32"
/>

I got the idea of sorting attributes from eslint-plugin-vue.

you can also track https://github.com/alexanderniebuhr/prettier-plugin-unocss (which I would call the windi css version)


Images with "crossOrigin" attribute set cause ImageProcessor.Web to break

Prerequisites

[x] I have written a descriptive issue title
[x] I have verified that I am running the latest version of ImageProcessor
[x] I have verified if the problem exist in both DEBUG and RELEASE mode
[x] I have searched open and closed issues to ensure it has not already been reported

Description
This is reproduced on the latest Umbraco (7.5.11) with Azure blob cache module. An image request with crossOrigin set causes the following error:

System.UriFormatException: Invalid URI: The format of the URI could not be determined.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at ImageProcessor.Web.HttpModules.ImageProcessingModule.AddCorsRequestHeaders(HttpContext context) in \ImageProcessor\src\ImageProcessor.Web\HttpModules\ImageProcessingModule.cs:line 265
at ImageProcessor.Web.Plugins.AzureBlobCache.AzureBlobCache.RewritePath(HttpContext context)
at ImageProcessor.Web.HttpModules.ImageProcessingModule.d__34.MoveNext()

ImageProcessor configuration whitelist section is empty.
Steps to Reproduce
In javascript code:

var img = document.createElement("IMG");
img.crossOrigin = "anonymous";
img.src = "http://{valid domain}/media/312463/myroomimage.png?width=1600";

System Configuration

ImageProcessor version: 2.5.2
ImageProcessor.Web version: 4.8.2
Other ImageProcessor packages and versions: ImageProcessor.Web.Plugins.AzureBlobCache version 1.3.0
Environment (Operating system, version and so on): Azure WebApp
.NET Framework version:
Additional information:

Hi @samoruk
Could you clarify the below please.

ImageProcessor configuration whitelist section is empty.

You mean the Cors whitelist? Empty means deny all. You need to set it to * to be universal
http://imageprocessor.org/imageprocessor-web/configuration/#securityconfig
Why are you setting the property anyway, as far as I'm aware that's a hack to allow setting canvas content to a src. You don't need it for what you are doing.

Hi @JimBobSquarePants
Yes, cors whitelist, sorry if didn't make it clear.
AddCorsRequestHeaders method in \ImageProcessor\src\ImageProcessor.Web\HttpModules\ImageProcessingModule.cs, line 257:

if (origins?.WhiteList == null)
{
return;
}

It doesn't stop here as the property is never null but has 0 entries, so it continues to create Uri with UrlEncode'ed "Origin" header and fails with the exception.
And you're correct, it's the exact use case -- loading this image to canvas. Problem is, the image comes back off azure cache (different domain) and without that property canvas becomes unusable.

@samoruk  Ah ok, thanks for the extra info, started to make more sense now.
Could you demonstrate exactly how you have the Cors part of the config set up and I'll replicate it so I can break my test build? Should be an easy fix once I've done that.

@JimBobSquarePants i'll add the config\imageprocessor\security.config file at the end but the problem seems to be with UrlEncoded'ed "Origin" header:
context.Request.Headers["Origin"] //"http://t.dev"
after UrlEncode becomes:

// Ensure origin is sanitized.
string origin = context.Server.UrlEncode(context.Request.Headers["Origin"]); // "http%3a%2f%2ft.dev"

which is used to create Uri.
Here's the config file i've tried in the end. Also tried:

with empty <whitelist> section
some entries in <whitelist> section

<?xml version="1.0" encoding="utf-8"?>
<security>
  <services>
    <service name="LocalFileImageService" type="ImageProcessor.Web.Services.LocalFileImageService, ImageProcessor.Web"  />
    <!--Disable the LocalFileImageService and enable this one when using virtual paths. -->
    <!--<service name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web">
      <settings>
        <setting key="Container" value=""/>
        <setting key="MaxBytes" value="8194304"/>
        <setting key="Timeout" value="30000"/>
        <setting key="Host" value="http://yourhost.com/"/>
      </settings>
    </service>-->
    <service prefix="media/" name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web">
      <settings>
        <setting key="MaxBytes" value="81943040" />
        <setting key="Timeout" value="30000" />
        <setting key="Host" value="http://{azure_account}.blob.core.windows.net/media/" />
      </settings>
    </service>
    <service prefix="remote.axd" name="RemoteImageService" type="ImageProcessor.Web.Services.RemoteImageService, ImageProcessor.Web">
      <settings>
        <setting key="MaxBytes" value="41943040" />
        <setting key="Timeout" value="3000" />
        <setting key="Protocol" value="http" />
      </settings>
      <!-- <whitelist> -->
        <!-- <add url="http://images.mymovies.net"/> -->
        <!-- <add url="http://maps.googleapis.com" extensionLess="true" imageFormat=".png"/> -->
      <!-- </whitelist> -->
    </service>
  </services>
</security>

Hope this makes sense. I'd think sending request to image processor with img.crossOrigin set should break the test build.

Hey @samoruk Looks like I have a fix for the issue; I'll be pushing out an update asap with a fix. 2 days max.
Thanks for the detail helping me debug! 👍

@JimBobSquarePants thank you for your lightning fast response!


Showcase Submission for challenges/169-pi-in-the-sky

Thank you efei for your contribution! A member of the Coding Train team will review it shortly.

Pi In The Sky - With Unity Engine
efei

This is incredible!