Merge release/1.11.0 into master

What does this PR do?
This is a merge PR: content of release/1.11.0 into master.
Review checklist (to be filled by reviewers)

[x] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[x] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[x] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #746 (0a3c093) into master (854b11a) will increase coverage by 0.23%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master     #746      +/-   ##
============================================
+ Coverage     89.94%   90.18%   +0.23%
- Complexity     1764     1772       +8
============================================
  Files           191      192       +1
  Lines          5937     5967      +30
  Branches        684      686       +2
============================================
+ Hits           5340     5381      +41
+ Misses          372      370       -2
+ Partials        225      216       -9

Impacted Files
Coverage Δ

...oid/src/main/kotlin/com/datadog/android/Datadog.kt
78.41% <100.00%> (+1.14%)
:arrow_up:

...og/android/core/internal/persistence/Serializer.kt
100.00% <100.00%> (ø)

...rnal/persistence/file/batch/BatchFileDataWriter.kt
88.89% <100.00%> (ø)

...istence/file/batch/BatchFilePersistenceStrategy.kt
96.55% <100.00%> (+0.12%)
:arrow_up:

...al/persistence/file/single/SingleItemDataWriter.kt
100.00% <100.00%> (ø)

...adog/android/error/internal/CrashReportsFeature.kt
100.00% <100.00%> (ø)

...tadog/android/rum/internal/domain/RumDataWriter.kt
91.30% <100.00%> (+0.40%)
:arrow_up:

.../rum/internal/domain/RumFilePersistenceStrategy.kt
100.00% <100.00%> (ø)

.../instrumentation/gestures/WindowCallbackWrapper.kt
93.48% <100.00%> (+6.38%)
:arrow_up:

...droid/rum/internal/ndk/NdkNetworkInfoDataWriter.kt
100.00% <100.00%> (ø)

... and 14 more


[Feature] Add network search function

Describe the feature
Functions similar to this chrome extension:
https://chrome.google.com/webstore/detail/webchatgpt-chatgpt-with-i/lpfemeioodjbpieminkklglpmhlngfcn
Call duckduckgo or Google's API to search web results for networking
Additional context
No response
Participation

[ ] I am willing to submit a pull request for this feature.

Thanks. We'll add features like conversation search.


Fix test assessment json.

🗣 Description
This PR is focused on fixing the test_assessment() test in test_assessment_json.py so that it passes with a valid response. The specific commits address the following:

Patch docopt to get the initial test to run. 36089bc
Mock open to prevent the test form looking for the files. 536ce8d
Mock json.load to load what would have been read from a file. 536ce8d
Change to using csv.DictReader and mock to provide email csv data. 536ce8d, e001e8a, and 4fd96c1
Housekeeping within the group build process inside build.py. 4fd96c1

Note: I did not address formatting throughout the builder.py script with this PR as a future PR will be done for the entire project to address overall formatting in chunks.

💭 Motivation and Context
Fixing the test_assessment() test will allow for testing of the builder.py script. With this test functioning, making future changes to the script will be easier to test. This PR closes #6.

🧪 Testing

After getting the pytest to run successfully, I was able to run the automated tests. In addition to this, I also ran several manual tests through the script to ensure a successful run outputs the expected json file.  Failing tests were also run with specific errors to ensure they would successfully produce the expected reaction.
📷 Screenshots (if appropriate)
🚥 Types of Changes

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

✅ Checklist

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

@dav3r, if you have not started reviewing this please hold off. I have been working to update the builder.py script and would like to incorporate these changes into that update. My goal is to have this completed today or tomorrow.

@dav3r, if you have not started reviewing this please hold off. I have been working to update the builder.py script and would like to incorporate these changes into that update. My goal is to have this completed today or tomorrow.

@bjb28, I started reviewing this last week, but I didn't get too far.  I will wait until I hear from you and then will review the whole thing.

Recommend this PR be closed as PR #14 far exceeds the improvements offered here.

This PR has been replaced by #14.


Initial cover art database schema and Artwork and Artist classes

Progress on #234

Great, this looks really good. You have a good very grasp of the code style and patterns we're using!
Some notes:

I think Job is right, artist death year can just be an UNSIGNED SMALLINT|NULL with null meaning "unknown".
For artworks, completed year can be unknown, circa, or an integer. Storing it all as a string might not be sufficient, because we want the option to later implement a sort by completed year, or filter by completed year, etc. So we need to think of a different schema for completed year - maybe CompletedYear - UNSIGNED SMALLINT|NULL and CompletedYearIsKnown - BOOL DEFAULT TRUE? Then, if CompletedYearIsKnown == true, CompletedYear is the actual year. If CompletedYearIsKnown == false, an integer value for CompletedYear is interpreted as "circa that year", and a null value is interpreted as "unknown". Thoughts?
Artworks.UrlName in the DB should not include the artist name, because if we change the artist name then we have to update all of the artworks in the DB at the same time. Instead, Artworks.UrlName should be just the artwork name. Then, when we want to get the complete UrlName in PHP, we use the getter Artwork::GetUrlName() which constructs it by getting the Artwork::Artist. To see this in action see PollVote.php:22, which fires when we do for example print($pollVote->Url).
ProperitesBase allows you to access a property within the class without using a leading _. See for example NewsletterSubscription.php:23. The benefit of doing it this way is that the getter is called instead, which may prefill a property; and the code looks more consistent because we never end up referencing private/protected properties.
I would suggest not using a big constructor for these objects. In my experience it's clearer to read when we simply create a blank object and assign properties individually, especially since we'll be using HttpInput to get request data.

These are all just nitpicks and on the whole I think we're most definitely on the right track here. Great work!

I've given both of you write access to the repo so you should be able to merge PRs as necessary. I don't really have a vision for how this should be managed; you both can push as you see fit, or ask for review or feedback before you do so. Up to you guys.

Maybe for artwork completed year, the field should be called CompletedYearIsCirca. Then, if it's true, the year is interpreted as circa. If the completed year is null, then that's interpreted as "unknown" regardless of the value of CompletedYearIsCirca. Maybe that naming is clearer than what I originally proposed?

Also, ArtworkTags should map an artwork ID to a tag ID. Therefore, ArtworkTags should look like:

ArtworkId: int
TagId: int

and we also need a Tags table that looks something like:

TagId: int primary key
Name: varchar
UrlName: varchar

This is a more normalized schema and will give us flexibility in editing tag names/URLs in the future.

Thanks for all the comments, Job and Alex!
A few responses inline to Alex:

I think Job is right, artist death year can just be an UNSIGNED SMALLINT|NULL with null meaning "unknown".

Yep, done.

For artworks, completed year can be unknown, circa, or an integer. Storing it all as a string might not be sufficient, because we want the option to later implement a sort by completed year, or filter by completed year, etc. So we need to think of a different schema for completed year - maybe CompletedYear - UNSIGNED SMALLINT|NULL and CompletedYearIsKnown - BOOL DEFAULT TRUE? Then, if CompletedYearIsKnown == true, CompletedYear is the actual year. If CompletedYearIsKnown == false, an integer value for CompletedYear is interpreted as "circa that year", and a null value is interpreted as "unknown". Thoughts?

I went with a new field called CompletedYearIsCirca, as you had in your followup suggestion. Seems fine unless we want to support artwork like this:
https://standardebooks.org/ebooks/h-g-wells/the-war-of-the-worlds/text/colophon
which has "a painting completed in the 17th century."

Artworks.UrlName in the DB should not include the artist name, because if we change the artist name then we have to update all of the artworks in the DB at the same time. Instead, Artworks.UrlName should be just the artwork name. Then, when we want to get the complete object URL in PHP, we use the getter Artwork::GetUrl() which constructs it by getting the Artwork::Artist. To see this in action see PollVote.php:22, which fires when we do for example print($pollVote->Url). This method makes heavy use of the PropertiesBase syntactic sugar.

Got it, thanks for the PollVote.php:22 example. I haven't got to this step yet, but when it's time to implement this URL:

GET <root>/artworks/<artist-slug>/<artwork-slug> -- view a specific artwork entry

We'll have to store an Artist.UrlName too, which we don't have yet. And then implement something like:
public static function Get(?string $artistUrlName, ?string $artworkUrlName): Artwork{}

ProperitesBase allows you to access a class's property within the class itself without using a leading _. See for example NewsletterSubscription.php:23. The benefit of doing it this way is that the getter is called instead, which may prefill a property; and the code looks more consistent because we never end up referencing private/protected properties.

Got it, thanks. I removed the superfluous underscores. There is one that I left in Artwork.Create() because I didn't want the getter to trigger a database lookup.

I would suggest not using a big constructor for these objects. In my experience it's clearer to read when we simply create a blank object and assign properties individually, especially since we'll be using HttpInput to get request data.

Sure, done.

I've given both of you write access to the repo so you should be able to merge PRs as necessary. I don't really have a vision for how this should be managed; you both can push as you see fit, or ask for review or feedback before you do so. Up to you guys.

Thanks for that.
@jobcurtis, here's what I propose for managing this branch while we are just starting out:

We ask each other for a review and wait for an "LGTM" before merging
You can merge typos or other trivial fixes without review

If this slows us down too much, we can change.

Sounds good!

Yeah I think that sounds reasonable. This PR looks good to me.


Try SWIG for generating API wrapper

http://www.swig.org/
Could allow us to automatically generate Python and Lua bindings

Here's another option: https://github.com/google/clif

I would be a little worried because this goes from C++ to python. This might not be good if we want to interface with Lua too.
The ideal thing would be to write a single C header file (coreir.h), and then automatically generate the Lua and Python bindings.

Should consider the experience report from the Halide devs found at https://github.com/halide/Halide/tree/master/python_bindings (excerpted below).
Why did we move from SWIG to Boost.Python ?
Problems with (old) SWIG bindings:

P1) SWIG cannot parse C++15, and it will always lag
P2) Python code is not compiled/tested together with C++ codebase
P3) Albeit SWIG is ment to provide "automagic" conversion, current code base has explicit code for every class (and class member) of interest
P4) Old swig bindings __init__.py file has a lot of "python magic" to get things running, code is spread around multiple pieces (py_util.cpp, cHalide.i, and __init__.py)
P5) Old swig python bindings did not work anymore (swig issues, compilation issues)

The boost python approach helps because:

a) P1 is solved out of the box, since no C++ parsing is involved
b) P2 is mitigated since python bindings are also in C++. Any miss-match with generate a compilation error.
c) P3, P4 and P5 are expected to be handled by having less spaghetti and aiming for tighter integration with rest of code-base (point b)

This is all complaints about C++ code. It would be useful to figure out if these problems also exist for C code


FINCN-164: Dockerize fims web app with adjustments to make it work with docker-compose

Description
Built on https://github.com/apache/fineract-cn-fims-web-app/pull/18
and replaced localhost with service names so it would work with other services in docker-compose scripts. I tested and added to docker-compose scripts here:
https://github.com/apache/fineract-cn-docker-compose/pull/2
(currently it is from my own Docker Hub repo as the official repo has not been created yet)

Create a different nginx file in the script folder which contains the the docker containers as hosts.
Something like docker.nginx.conf, then on this line: https://github.com/apache/fineract-cn-fims-web-app/pull/20/commits/b097ba1c34237e31f71d73c30b2492d151b67c73#diff-3254677a7917c6c01f55212f86c57fbfR21
copy that docker specific nginx conf into the nginx container.
Not everyone will host fims in a docker container..Some will use a good old fashion host so I prefer you keep that default localhost example.
Why did you not merge #18 before working on this?

Just merged #18

I don't have merge rights on any apache/fineract-cn-* repo.

Pull and fix this PR wrt to the feedback above..if its Ok with you.

Why dont you have permission?
See here: https://cwiki.apache.org/confluence/display/FINERACT/Working+with+gitbox+to+contribute+to+Apache+Fineract+CN
do you have permission to read.write Fineract 1.x repo?

yeah. I had impression that nginx is only used for docker so yes, I need to fix this.

Thanks for the instructions, I wasn't aware of this. I thought there is some level #2 of commiters who have right to accept pull requests :-)

I now pushed the changes you suggested @awasum .
I set up everything here: https://cwiki.apache.org/confluence/display/FINERACT/Working+with+gitbox+to+contribute+to+Apache+Fineract+CN but I still don't see any merge button. I don't think I have write rights to Fineract 1.x repo.

I can now merge pull requests, so that one is now solved. I will merge this PR in 24h if anyone doesn't object.

Go ahead.


tensorize's limitation with a computation containing tvm_if_then_else

This is to document what is, I believe, a limitation of current tensorize implementation. In short, when you have a computation that contains conditional statements (such as tvm_if_then_else), (depending on the conditions) tensorize won't be able to pattern match the computation and it gives an error. Here is a test case (simplified from a more useful and complicated code), and what I think is the reason behind this limitation:
import tvm
dtype = "float32"

def intrinsic():
    x = tvm.placeholder((5, 5), dtype, name='x')
    y = tvm.compute((9, 25),
        lambda i,j: tvm.select(
                    tvm.all(j+i >= 1, j+i < 6,
                            j+2*i >= 1, j+2*i < 6),
                    x[j+i - 1, j+2*i - 1],
                    tvm.const(0, dtype)))

    def ifunc(ins, outs):
        xx, = ins
        zz = outs[0]
        return tvm.call_packed("intrinsic", xx, zz)

    with tvm.build_config(offset_factor=2):
        return tvm.decl_tensor_intrin(y.op, ifunc)

A = tvm.placeholder((5, 5), dtype, name='A')
B = tvm.compute((9, 25),
    lambda i,j: tvm.select(
                tvm.all(j+i >= 1, j+i < 6,
                        j+2*i >= 1, j+2*i < 6),
                A[j+i-1, j+2*i-1],
                tvm.const(0, dtype)))

s = tvm.create_schedule(B.op)
x,y = B.op.axis
bt = intrinsic()
s[B].tensorize(x, bt)
s = s.normalize()
print(tvm.lower(s, [A, B], simple_mode=True))

And the error is
tvm._ffi.base.TVMError: [11:33:54] src/op/tensorize.cc:318: Check failed: Equal(lhs, rhs) Failed to match the compute with TensorIntrin tensor_intrin's declaration
provided= select((((((1 - i) <= j) && (j < (6 - i))) && ((1 - (i*2)) <= j)) && (j < (6 - (i*2)))), x((i + j),       ((i*2) + j)), 0.000000f),
intrin=   select((((((1 - i) <= j) && (j < (6 - i))) && ((1 - (i*2)) <= j)) && (j < (6 - (i*2)))), x(((i + j) - 1), (((i*2) + j) - 1)), 0.000000f)

Note how the indices of x in provided and intrin are off by just 1.
In tensorize, TVM needs to calculate the part (domain) of A used by B. In reality, because of the conditions given in tvm.all, the domain of A used by B is [0,4], [0,4] along its first and second dimensions, respectively. However, currently TVM doesn't (and I think can't) take those conditions into consideration. Therefore, it thinks the domain of A is [-1,31], [-1,39], and therefore, the rest of the computations will go wrong, including matching an intrinsic with an algorithm. That means that tensorize won't work correctly in the presence of if_then_else statements. The 1 offsets mentioned above are coming from the lower bound of the domain calculated for A, that is, -1 on both dimensions.

For padded copy pattern, there is a copy  intrinsic pass to over come this limitation

These are the cases where a different kind of pattern detector can benefit from. Having conditions in the domain is hard because it is hard to define exactly what is the domain of consideration. Most of such cases are padding operation in convolution.
This is temporary resolved by a specialized template detector for detecting padded copy pattern, which can be found in pass inject_copy_intrin.cc


Add POT generation in CLI with --generate-pot <path> option

The PR add a CLI option --generate-pot <path> to generate project-defined POT files. This feature is very useful on CI procedures where you want to check if the templates are up to date, and deploying POT files to translating services automatically.

This implements https://github.com/godotengine/godot-proposals/discussions/6567


Which tools wants to stay up to date with the spec release?

In the release process it states:

Notify maintainers of the following repositories that the first feature is merged and that release will be produced and therefore they need to start preparing for it:

JavaScript Converter
Playground
React component
Markdown template

Should tool owners pledge to want to update their tools for spec releases i.e. should be pinged during the release process? Not sure if we should formalize this or should it just happen naturally? 🤔
I would love to add Modelina to that end.
@magicmatatjahu I guess the studio needs to replace the playground as well?
Potentially also generator, and I would add ts-nats-template and dotnet-nats-template if it does.
Personally, I would love to have tooling better integrated into the release process in some way or another. Not sure if adding the tools to this list is "enough" 🤔 What do you think?

@magicmatatjahu I guess the studio needs to replace the playground as well?

Yep, in the next release it will be replaced by Studio.

Potentially also generator, and I would add ts-nats-template and dotnet-nats-template if it does.

Of course no one is forbidding you to update your templates. I think we chose these projects because they have the biggest impact on the whole current asyncapi tooling ecosystem (we can remove markdown template but I remember about updating). I would just add generator as you mentioned and maybe glee as well.

I think it would be cool to ping anyone that is interested, even folks outside AsyncAPI org. We could have some mailing list or something, where release coordinator would drop a message. Something like this?

Could be as simple as that yes 🤔

Of course no one is blocking you to update your templates. I think we chose these projects because they have the biggest impact on the whole current asyncapi tooling ecosystem (we can remove markdown template but I remember about updating). I would just add generator as you mentioned and maybe glee as well.

Of course, but if you don't follow the development each day, it might be hard to get notified about when you can start preparing your tools.

yeah, I definitely get your point and totally agree. Of course, we can tell people to subscribe to releases in spec using GitHub features, but this would not be enough and is already too late for some maintainers.
I don't know if there is a better solution than a generic mailing list that anyone can subscribe to 🤔

One of the problems that I also see in updating tools is the situation that occurred in the previous release. On the same day as the tools were updated we also merged changes in spec/json-schemas/parser on the release branch - this caused situations when e.g. people needed to know about the changes but did not have a "pre-release", which could be tested in tools. We needed some kind of freeze period in which we have the spec/json-schemas/parser merged (of course on the pre-release branch) and people can use them in the tools, e.g. 1-2 weeks. We are waiting for the tools update and then we do a full spec and tools release. What do you think?

yeah, very valid point really, and super related to this issue. What is the point of sending a memo if we added new release candidate a day before the release. Tbh I'm not sure 2weeks is enough....
but on the other hand, you know RC is technically not needed to test out things, with node you can use specific commit revision...I know it is not ideal, but yeah 🤔

Tbh I'm not sure 2weeks is enough....

For minor changes maybe it will be enough, but for major I agree, we need at least 1-2 months

but on the other hand, you know RC is technically not needed to test out things, with node you can use specific commit revision...I know it is not ideal, but yeah 🤔

Yeah, it can be workaround but for freeze period I mean that we don't add new things to the spec, so people have guarantees that last RC is final RC and we only wait for tools :)

@jonaslagoni Here we go https://github.com/asyncapi/spec/issues/667 😄

What if we tagged all asyncapi/tsc_members once a release is steady, i.e. almost ready to merge as in this issue?


Fixed typo

Learn Build status updates of commit 4752e4f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

powerapps-docs/developer/data-platform/sample-global-discovery-service-csharp.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit c7855c4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

powerapps-docs/developer/data-platform/sample-global-discovery-service-csharp.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@Techek
Thanks for fixing this!


Cannot drag explorer back into its view container

Testing #174718

open search viewlet
drag explorer (activity icon) into search pane
all explorer views are now in the search pane
🐛 it is not possible to drag the file/folder view back into the explorer

https://user-images.githubusercontent.com/1794099/220330321-39d2b745-f3be-459a-a404-eb87111d3712.mp4

verified since the empty explorer is gone


Example for schema bootstraping Clickhouse cluster were added in docs

@solyard according to https://github.com/Altinity/clickhouse-operator/blob/master/CONTRIBUTING.md#how-to-make-pr
could you change target branch to 0.15.0 ?

@solyard according to https://github.com/Altinity/clickhouse-operator/blob/master/CONTRIBUTING.md#how-to-make-pr
could you change target branch to 0.15.0 ?

Done


Removed AnyVals from the generated visualization

Small PR to remove AnyVals from the generated dot graph (cf all the "ExecutorName" nodes appearing in tinbox).
Review @jcranky

Codecov Report

Merging #103 into master will increase coverage by 0.32%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #103      +/-   ##
==========================================
+ Coverage   88.72%   89.05%   +0.32%
==========================================
  Files          12       12
  Lines         133      137       +4
  Branches        1        5       +4
==========================================
+ Hits          118      122       +4
  Misses         15       15

Impacted Files
Coverage Δ

...e/src/main/scala/org/zalando/grafter/Queries.scala
85.71% <100%> (+3.36%)
: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 a816842...b39fdbd. Read the comment docs.

Codecov Report

Merging #103 into master will increase coverage by 0.32%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #103      +/-   ##
==========================================
+ Coverage   88.72%   89.05%   +0.32%
==========================================
  Files          12       12
  Lines         133      137       +4
  Branches        1        5       +4
==========================================
+ Hits          118      122       +4
  Misses         15       15

Impacted Files
Coverage Δ

...e/src/main/scala/org/zalando/grafter/Queries.scala
85.71% <100%> (+3.36%)
: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 a816842...b39fdbd. Read the comment docs.

:+1:

👍


Get progress while downloading image using BinaryHttpResponseHandler.

Thanks for such a wonderful library. Just wanted to know is there a way to get the progress or byte size downloaded while downloading big size images/files.
Awaiting response.
Regards,

@yassirh
Just to note: The definition changed to
@Override
public void onProgress(long bytesWritten, long totalSize)


Add echoCTF.RED

Added echoCTF.RED on wargames and on self-hosted CTFs

Thanks. This has landed into master.


feat: adds ForEnumerate component

#2695
Implement the functionality described in https://github.com/leptos-rs/leptos/issues/2043 issue.
Please feel free to rename the component name.

This looks awesome! Great approach to the implementation. I don't have any comments. Thank you very much.


Promotion service

To keep a nice and clean microservice architecture, we need an additional (Spring) web service that handles all promotion related data.
This means that it stores records for all existing promotions and provides an endpoint for providers to add new ones to the system.
Each promotion needs to be identified by a promotion ID that is passed to the runDeduct algorithm in deduct.DeductService and can be used to resolve the promotion that the user that caused the execution of runDeduct wants to take part in.
This resolution is required to let deduct.DeductService know which reward item to add to the user's basket or (in versions beyond Feb22) which other action to perform (e.g.. 30% off on the basket, ...).

Since the promotion service exists by now, we need to integrate the logic for communicating with basket/promotion logic into the the deduct service to achieve the above behaviour.


exported son file not working with Xcode project

Hi 👋,
I have a problem after exporting form after effect with bodymovin that it is not working with my project.
but when I try the demo son file it is working fine.
any suggestions
Thanks in advance

Hi, can you share a link where I can see what is going on?

Hi Hernan,
Actually I just tried to export simple shape with json and it worked fine
but when I try to do this with with large compose with couple images "png" it seems not responding in Xcode .
what could be the issue, Thanks in advance

hi, you should share it directly with the lottie team. They'll have a better understanding of what is going on.
https://github.com/airbnb/lottie-ios

Thanks a lot for your fast respond


Major performance regression in Node.js 14

Here's a bit of history for you,
In 2016 I reported a performance issue with node::MakeCallback. I posted scientific measurements supporting my claim. Node.js people said that they knew things much better than I do and that there are no performance issues with node::MakeCallback.
Then of course they did find, and eventually fix this bug I reported, but by that time I had been permanently banned. So my first encounter with these Node.js people ended with me being permanently banned.
Now in 2020, I'm still banned, and they even ban my secondary account (@alexhultman-2fa), so I cannot contact them to submit bugs.
The issue here is that node::MakeCallback is the single most critical gateway for any native code (addon, or Node.js itself). It's the only Node.js function that is obligatory and has to be used. Everything else can be done with vanilla, native V8 calls.
As of Node.js 14, the difference between calling from native land to Node.js using node::MakeCallback and the vanilla V8 counterpart Local<Function>:Call is 28%. Prior to Node.js 14 (13, 12, 11, 10) this overhead used to be about 5% (after they fixed my initial bug report).
Now, recently I have measured a major drop introduced in Node.js 14 and forwards, and I've even reported a suspected commit that happened just in time for 14, and that majorly refactors the node::MakeCallback related code.
This issue report I did with my secondary account, but they quickly hid the report/question and banned that account as well.

So, because I know what I'm talking about when it comes to overhead of node::MakeCallback (it has been a nail in my eye for 5 years now), I need someone to report this issue to the Node.js people and drive the issue. I cannot do it, because I'm banned and they do not want my input.
Scientific facts
Just like always, I deal with science in everything I do. I do not make claims that have no scientific backing.
In Node.js 13, 12, 11, and 10 - we can benchmark a simple hello world program that is entirely bottlenecked by nothing other than node::MakeCallback. We know this because running the same program with EXPERIMENTAL_FASTCALL, which does nothing but swap node::MakeCallback with the vanilla V8 Local<Function>::Call counterpart, presents increasingly deviating results:
The results from Node.js 10, 11, 12, 13 with node::MakeCallback are roughly:
Running 10s test @ http://localhost:9001
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    81.12us   27.14us 425.00us   83.48%
    Req/Sec    61.50k     8.71k   83.21k    69.80%
  1235471 requests in 10.10s, 80.12MB read
Requests/sec: 122330.17
Transfer/sec:      7.93MB

And if we enable EXPERIMENTAL_FASTCALL (as described above) we see the following:
Running 10s test @ http://localhost:9001
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    77.06us   26.27us   1.40ms   85.54%
    Req/Sec    64.80k     7.25k   76.53k    62.38%
  1302500 requests in 10.10s, 84.47MB read
Requests/sec: 128960.00
Transfer/sec:      8.36MB

Which is not a big difference; node::MakeCallback had quite okay peformance prior to Node.js 14, only a minor 5% difference.
While with Node.js 14 they are:
Running 10s test @ http://localhost:9001
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   102.41us   32.61us 471.00us   86.56%
    Req/Sec    48.84k     5.70k   61.53k    69.31%
  981155 requests in 10.10s, 63.63MB read
Requests/sec:  97149.85
Transfer/sec:      6.30MB

Some 21% lower.
Enabling EXPERIMENTAL_FASTCALL for Node.js 14 (swapping the node::MakeCallback with vanilla V8 function calls as detailed above), we get the following:
Running 10s test @ http://localhost:9001
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    78.75us   24.94us 424.00us   85.03%
    Req/Sec    63.16k     7.83k   82.84k    61.39%
  1269292 requests in 10.10s, 82.31MB read
Requests/sec: 125678.17
Transfer/sec:      8.15MB

Which is roughly on par with what we had with Node.js 13, 12, 11, 10.
The conclusion is, by changing NOTHING AT ALL, except for swapping node::MakeCallback to vanilla V8 counterparts, we see a small increase in Node.js 10, 11, 12, 13 of 5%-10%.
With Node.js 14, the difference between the two are 28% - we now only see 97k req/sec vs the 122k we saw in prior Node.js versions.
This is a major performance regression, and we have clinically tested NOTHING BUT node::MakeCallback - that's the only single variable here, and results show great deviation -> leading to a conclusion recent code changes in Node.js regarding node::MakeCallback has resulted in major performance regressions.
I would like to see this fixed upstream at Node.js repos, but like explained I do not have the ability to instigate a conversation with these people.

I did some bisecting and found this kind of drop between v12.16.3 and v12.17.0 as well as between v13.8.0 and v13.9.0.
I also compiled an erly v14.0.0-pre version and it did not have the drop.
Doing a git diff between those tags brings up all kinds of changes to the callback mess.
The thing is, I did not know they backported these changes to old versions - this issue is not about v14 in particular, but it affects the entire Node.js lineup, that still get backported changes.
So the same drop in perf. you can see in later versions of v12, v13 and v14.
This makes it a lot more complicated to say when and where this change was made, and looking at the diff, it's clear that they change a lot of stuff in every single release. Even internal stuff that shouldn't need any changes at all, they edit that and make significant changes.
Therefore, it makes no sense for me to bother with this. I have no say in Node.js, they don't want me there, and if I would try and point fingers at what changes are stupid and what are not - they would kick me out in 2 seconds anyways because it doesn't fit their agenda.
Alright, that makes it simple. I have no say here, and I cannot fix what I don't control.

It really is a shame they take in people, that do a bunch of internal refactoring to fundamental things - with motivation that it "fixes" stuff and makes the code "better". They really should just stop, never touch anything internal, leave it be.
They really do believe that they are making the code better, and every single release it drops a few percentages here, a few there, and when you settle for mediocre, constantly lowering your standards slightly with every point release, you get worse and worse every day.
We used to be three digits, now we're two digits. And they talk about writing http-parsers in assembly... they are out of their mind. If you cannot even nail a function call, it won't matter the slightest. They're overfocusing on benchmarking C and assembly code and entirely give no fucks for the JavaScript code. Makes a lot of sense to micro-optimize handwritten assembly for a parser that can do 5 million req/sec, when you cannot even deliver 50k function calls a second.
Now we all have to swallow this drop across all versions of Node.js because there is no way you can refuse an update since there are so many security flaws in every release. And they make significant changes to fundamental internal stuff all the time.
It's staggering how much you can over-complicate a function call, while still believe that you make things better. It's micro optimization of things that don't matter, for the cost of things that actually do bottleneck the overall data flow.
Alright, I better stop before I pop an artery.

I’ll report it

I hope they can take this negative input without interpreting it as personal abuse for the sake of being evil. It's technical and scientific, nothing else.

We used to be three digits, now we're two digits

I ran helloworld benchmarks on one of these google compute C2 series "compute optimized" with 4 vCpu Ubuntu 20.04 Node v14.5.0 uWebSockets.js v18.3.0 which is what I use in production and get consistent 147k Req/Sec
./wrk -t2 -c10 -d10s http://<IP_ADDRESS>:3000
when you throw in some compute per request, I used a JWT cookie decode because all my requests have at least a JWT decode it brings it down to 28k Req/Sec
./wrk -t2 -c10 -d10s -s s.lua http://<IP_ADDRESS>:3000
using straight Node 14 (no uWS) gives 27k for helloworld and 17k for token decode
I tried switching to Node v12.18.2 got about the same results for all tests, possibly a bit faster but hard to say

@hst-m That's OT and irrelevant to this issue.


When the same song plays twice the 2nd play doesn't work.

Queue a song twice, once the song finishes the static embed is visible with the "Play Button" overlayed but nothing actually playing.

This should be invalid now, because you cannot add a duplicate song to the queue. However, just in case, I have made each play of a song unique, with a uuid, so there should be no more true duplicates in the logic.


Videos uploaded via tdlib are not streamable

The same video when uploaded via official telegram client, is streamable.
But when uploaded via tdlib, it's not streamable, it has to be completely downloaded before the user can start watching it.

What did you pass in inputMessageVideo.supports_streaming?

What did you pass in inputMessageVideo.supports_streaming?

Thank you for the info. I think that's what I'm missing.


:book: Fix command Usage

This changes the cmd Usage text to accurately represents the
supported syntax:
Usage:
./scorecard (--repo=<repo> | --local=<folder> | --{npm,pypi,rubygems}=<package_name> ) [--checks=check1,...]
[--show-details] [flags]
...
--repo string        repository to check (valid inputs: "owner/repo", "github.com/owner/repo", "https://github.com/owner/repo")
...
Signed-off-by: Arnaud J Le Hors<EMAIL_ADDRESS>What kind of change does this PR introduce?
Improvement

[x ] PR title follows the guidelines defined in our pull request documentation

What is the current behavior?
What is the new behavior (if this is a feature change)?**

[ ] Tests for the changes have been added (for bug fixes/features)

NA
Which issue(s) this PR fixes
NONE
Special notes for your reviewer
I'm not sure whether to categorize this change as a "Documentation" change given that it is in the code, or a "Bug Fix" given that it is merely changing the Usage text of the command... :-)
Does this PR introduce a user-facing change?
For user-facing changes, please add a concise, human-readable release note to
the release-note
Yes, command Usage is more accurate and makes it easier for user to understand what is supported.
Improved command Usage

Nice update, @lehors! Left a small nit (open to bikeshed on the exact text).

@justaugustus I made the change you requested.

Same comment as for PR#1813: I realize this isn't the most exciting PR maintainers might dream of but I would advise them to be a bit more diligent in merging PRs from the community. It is not a very pleasant experience to have to keep rebasing your PRs because it is being left unattended by the maintainers. @justaugustus could you please help?
Thanks.


⚠ Bofrost.lu has degraded performance

In dc5d6ea, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1198 ms

Resolved: Bofrost.lu performance has improved in e20d4c7 after 26 minutes.


Roadmap: OTAR015 - Integrate Cancer Dependency Map as Evidence

@MichaelaEBI commented on Wed Jul 04 2018
The Cancer Dependency Project Paper has been submitted and after the meeting on June 22nd, 2018, Francesco made the manuscript and data available to us so that we can start defining how the data will fit into the Open Targets Platform.

[x] Read Cancer DepMap paper & become familiar with the data (#78)
[x] Define inclusion (#276)
[x] Scoring of the data.
[x] Specify backend and frontend implementation details.
[x] Implement temporary solution to provide users with link to Project Score website (#464)
[x] Implement in data_pipeline.
[x] Implement data table on evidence page within the Pathways and systems biology tab (#466)

Closing epic as complete post 19.04 release.


Cloud Bigtable should have a gRPC channel pool

To avoid hitting single-channel limits, the client should leverage a channel pool.

Is this something gRPC should implement? Seems like it might be something that could benefit all the APIs (not just Bigtable)

It is indeed beneficial to all APIs. Cloud Bigtable contributed the Go implementation to a common location: https://github.com/google/google-api-go-client/blob/master/internal/pool.go. Perhaps something similar would work here.

I think I can look into this issue.

+1. This is something that would definitely be beneficial for cloud spanner as well. Though for cloud spanner its slightly more complex since we want to control which channel out of the pool is used for a specific request.

@vkedia Interesting, looks like the client-side load balancing technique wouldn't work here. Are you doing this in other languages for cloud spanner?

@garye We do it in Java and Go. Essentially to interact with cloud spanner, one needs to create a Session. All other requests take in a session id. You get better performance if all requests with the same session id use the same channel (which is the channel that was used to send the initial session creation request). They way we do it is we pick a random channel while creating a session and then we maintain a map of session id to the channel that was used. Then for any request containing that session id we pick the channel from this Map.

@lukesneeringer I believe this would be better implemented in GAPIC / gax / gRPC that would be opt-outable for cases like Spanner or when the API requires a more manual approach to channel-related perf. What do you think?

This issue was moved to https://github.com/googleapis/gax-nodejs/issues/163.


Add Padding options

Add options for col-*-n classes

no-padding
left-padding
right-paddin

So we can set no padding when its needed

@fleeco i am not sure what you mean. Can you please explain about old style


Use a width heuristic for struct lits

I know arguing over default settings is the pinnacle of bikeshedding, but isn't a 12 character limit on the low side?
I feel like literals like Seeking::Issue { todo_idx: 0, fixme_idx: 0 } and certainly Foo { a: 1, b: f(2), ..g(3) } should be formatted on a single line. Maybe 20 is a more forgiving limit?
Anyway, I'll leave this to your judgement.
r+

Yeah, it's an interesting call. I started with 50 like functions, then went down to something like 20 and then went lower. I also thought about how many fields I want to see - and I decided with a medium sized field name and a non-trivial expression, any more than one field on a line is too much. And looking at reformatting rustc crates this seems to hold up - it is common to see two field structs on multiple lines.
I actually think one-line structs are almost always too hard to read. Of your two examples, I'd like the first one on two lines and the second on one line, but I don't think that can be done in the current scheme.
One thing I was thinking of was that we could exclude the initialiser from the count, I'll see if that is easy.
(btw, the limit does not include spacing or punctuation between fields, so it is not quite as struct as it seems).

not quite as struct

:100:

lol, it's early!

Haha I thought it was a pun ;-)

Hmm, so excluding the initialiser would be a pain, so lets not do that.


"no such table" error

Hi,
when doing some heavy stress-testing of our application which imports go-sqlite3, during one failure case I saw:
error: no such table: containers
This was in the middle of a run, sandwiched between many successful queries and actions on the containers table.
This was on a brand new built vm, using go-sqlite commit b4142c444a8941d0d92b0b7103a24df9cd815e42.
Do you have any particular suggestions for figuring out what may have gone wrong?
Thanks!

Because connection doesn't have exclusion.
https://github.com/mattn/go-sqlite3/blob/master/sqlite3_test.go#L772

dup #216

Hi, sorry, either I'm misunderstanding or I wasn't clear in the description.  This is about our own testcase of an application built on go-sqlite3, not the go-sqlite3 testcaess.  In our application testcase, the db is opened with the _txlock=exclusive option.  It mostly runs correctly, but with a very massive concurrent testcase I got this case where my db query claimed that a table didn't exist.

@hallyn Have you found the root cause of this issue? I'm facing a pretty similar error; the table should have been create, with lots of queries been executed successfully, but later an error was thrown claiming no such table.

@Higan Do you have an example of your code that is having a problem? Are you using an actual database file, or an in-memory database? Are you using any temporary tables?

I'm having a simliar issue, although my use case may be different. I am new to Gorm and ORMs in general, please be gentle with me.
I have:
func getFollowingPosts(db *gorm.DB, following []int, moral int, itemsPerPage int, offset int) PaginatedDropSearchResult {
    var drops []Droplet
    filteredDB := db.Where("user_id in (?)", following)
    if moral != 0 {
        filteredDB = filteredDB.Where("moral = ?", moral)
    }

    var totalRows int64
    filteredDB.Count(&totalRows)
    filteredDB.Limit(itemsPerPage).Offset(offset).Find(&drops)

    return PaginatedDropSearchResult{Drops: drops, NextOffset: offset + itemsPerPage, TotalResults: totalRows, ItemsPerPage: itemsPerPage}
}

everything EXCEPT the count works. The count fails with no such table:  and no further info.
I am using on disk sqlite3, although I'm not sure whether the returned db object is holding the query in memory.

@Higan @relud
if you open in :memory: , must be ":memory:?cache=shared"

Maybe this would help someone
I had the same issue with 'no such table' and found an exact explanation:
If sql.Rows is not closed before next query then driver returns no such table on next query. Issue exists only for in-memory storage, same test for file backed db runs fine.
https://github.com/mattn/go-sqlite3/issues/511#issuecomment-396290916
After that, I found the part of code where I had forgoggen to do rows.Close(), fixed that and now it works with no issues.

@Higan Do you have an example of your code that is having a problem? Are you using an actual database file, or an in-memory database? Are you using any temporary tables?

setup: Ubuntu 20.04.1 LTS
go: go1.15 linux/amd64
sqlite3: SQLite version 3.31.1 2020-01-27 19:55:54
database:
CRATE TABLE data (
uid INTEGER PRIMARY KEY
);
package main

import (
	"database/sql"
	"fmt"
	_ "github.com/mattn/go-sqlite3"
)

func main() {
	database := "./foo.db"

	db, err := sql.Open("sqlite3", database)
	if err != nil {
		fmt.Println(nil)
		return
	}
	defer db.Close()

	_, err = db.Exec("SELECT * FROM data;")
	if err != nil {
		fmt.Println(err)
		return
	}
}

stdout: no such table: data

@mattn
How can I solve the following problem?
no such table: users

@mrbardia72 Please open a new issue, with sufficient detail to diagnose your error.

@mattn add table users, try this
db.CreateTable(&User{}).AutoMigrate(&Users{})


Backup wallet without Google Drive

Is there a way to backup/import breeze wallet without relying on Google Drive? Maybe using a developer command?

Why would you need to rely on Google Drive?
Have you been contacted by a possible scammer?
A Breeze wallet can be restored using your 12 words and passphrase. That's all.

No scammers.
I get this notice in the top right of the app informing me to backup my wallet. However, I don't have Google so this "Backup Now" button doesn't do anything. Can I reveal my seed phrase some other way?

 Can you post a screenshot? Make sure you don't reveal any private info.

I mistook this for github.com/breez/breezmobile


Profile linking with Twitter not working

🐞 Problem

Link with twitter feature leads to error

🎯 Goal

Users should be able to sync their 24pullrequests account with twitter to ensure faster logins or tweets
💡 Possible solutions

Twitter API should be gotten and consumed into the app.
If it already exists, bug should be fixed.
📋  Steps to solve the problem

Comment below about what you've started working on.
Add, commit, push your changes
Submit a pull request and add this in comments - Addresses #<put issue number here>
Ask for a review in comments section of pull request
Celebrate your contribution to this project 🎉

@BolajiAyodeji thanks for reporting, I've updated the twitter oauth callback url to point to the https url and it appears to be working again now, can you give it a try?

Just tested!
It worked.

Thanks for fixing @andrew


Update distribution PRNGs

This PR

Updates several distribution PRNGs
Updates is-primitive to support Symbols
Updates a few is-* utilities
Updates chi2gof

Current coverage is 87.4617% (diff: 99.7685%)

Merging #8 into develop will increase coverage by 0.0546%

@@            develop         #8   diff @@
==========================================
  Files          2007       2035    +28
  Lines         27309      27444   +135
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          23870      24003   +133
- Misses         3439       3441     +2
  Partials          0          0

Diff Coverage
File Path

••••••••   87%
new<EMAIL_ADDRESS>

•••••••••  97%
...dlib/math/generics/statistics/chi2gof/lib/chi2gof.js

•••••••••• 100%
<EMAIL_ADDRESS>

•••••••••• 100%
<EMAIL_ADDRESS>

•••••••••• 100%
new<EMAIL_ADDRESS>

•••••••••• 100%
...tdlib/math/base/random/hypergeometric/lib/factory.js

•••••••••• 100%
new ...lib/math/base/random/exponential/lib/_exponential.js

•••••••••• 100%
...tdlib/math/base/random/minstd-shuffle/lib/factory.js

•••••••••• 100%
<EMAIL_ADDRESS>

•••••••••• 100%
<EMAIL_ADDRESS>

Review all 93 files changed

Powered by Codecov. Last update c58323f...f4e07de

Looks good, merging the pull request now.


[Suggestion] Structure/biome locator

Hi,
I enjoy your mod a lot - I can finally get seeds of my favourite servers in like 10 minutes. Thank you so much for your effort put into this project.
I have 1 suggestion though - structure locator. Currently, the structures are located only if the chunk is loaded/if player is near it. My suggestion is that structures could always be located once the seed was found (even at far distances in unloaded chunks, like +1000 blocks). This would make my life when locating a specific structure easier. Maybe the mod could even show the name of the structure and draw a line (tracer) to them. You could adjust settings in a GUI (for example, toggle tracers, input seed if you already know it to locate structures), or at least by commands, such as /seed structurefinder setseed <seed> and it starts locating structures automatically, or adjust the search radius by /seed structurefinder radius <radius in blocks/chunks>. Along with that there could also be a biome locator etc, etc...
Online websites such as this one (https://www.chunkbase.com/apps/) already offer a way to locate structures & biomes, so it shouldn't be a problem to implement this feature in your mod, in my opinion.
Thank you,
- CW

Online websites such as this one (https://www.chunkbase.com/apps/) already offer a way to locate structures & biomes, so it shouldn't be a problem to implement this feature in your mod, in my opinion.

Feel free to make a pull request, then. This is hardly a trivial addition, and would probably be better suited for an entirely different mod. The goal of this mod isn't to locate structures, but to crack the seed. There are other tools for that.

Understood, but thank you anyways!


Add Stati

Stati is an extensible PHP static site generator that can work with existing Jekyll sites.

@jfoucher Do you have any examples of this working somewhere?

Hi @bdougie
Yes, I currently generate https://jfoucher.com with it.
The build command is stati generate or stati serve to serve the generated site locally.
The docs are here : https://stati.jfoucher.com

Brilliant! thanks for the quick response.

You're welcome, thanks for the merge.


:reg: display register type for :reg command

This has been wished for in  vim/vim#4546
Register type can be one of linewise, charwise or blockwise. So when
outputting the register contents, also indicate in the first column the
type of the register using 'l' for linewise, 'v' for charwise and 'b'
for blockwise.
To be consistent with getregtype(), it might have been better to use
v, V and ^V as indicators for the type, however I personally find
those types rather hard to distinguish in the console output, so I took
the liberty to use letters that are more easily distinguishable.
the test test_register.vim has been adjusted  and the documentation
amended.

Thanks.  But a mix of "v" with "l" and "b" is strange.  Let's make it "c" for characterwise.

sure. You need to update the test then. That's a bit tedious so.


WARN: Cannot write TLS response body

Hello,
I'm getting this on custom phishlet :
WARN: Cannot write TLS response body from mitm'd client: write tcp ...:443->...:26609: i/o timeout
Any ideas what i'm missing?
Thank you in advance

You did something wrong with creating your phishlet. It is as much as I can say based on what you wrote.

Thank you for the fast replay. I have my custom phishlet already working. I'm able to see the landing page , to write the login details and successfully forwarded to the account with the details i typed. The issue I have is that i don't get any visitor or communication with the console.


CPDNPQ-1188 Create a task to update status fields in the NPQ

Context
Ticket: https://dfedigital.atlassian.net/browse/CPDNPQ-1188
ECF counterpart
PR: https://github.com/DFE-Digital/early-careers-framework/pull/3561
Changes proposed in this pull request

have a rake job created which will periodically update the status field (lead_rovider_approval_status and participant declaration outcomes) in NPQ app and sync with any updates made in the ECF app.

There's one potential issue with scalability here. If we enable cron on our docker, all the deployed instances will run cron in the background causing multiple execution of the same job. Also, running things in the background is a bit against of cloud architecture. In ideal world, we should have a single dedicated container responsible for running cron - this would also resolve issues with invisible cron logs.

Approved. It would be worth it to verify manually few days after deployment, if the applications are properly being updated.


VM stacktrace is not accurate

I was puzzled by this stack trace:
Thread 0 main thread_CastError: Null check operator used on a null value
at ElementImpl.session(element.dart:2911)
at EditDomainHandler._getAvailableRefactoringsImpl(edit_domain.dart:850)

There is no any ElementImpl.session on the line 850.

But there is one in ConvertMethodToGetterRefactoringImpl:
/// [ConvertMethodToGetterRefactoring] implementation.
class ConvertMethodToGetterRefactoringImpl extends RefactoringImpl
    implements ConvertMethodToGetterRefactoring {
  final SearchEngine searchEngine;
  final AnalysisSessionHelper sessionHelper;
  final ExecutableElement element;

  SourceChange change;

  ConvertMethodToGetterRefactoringImpl(this.searchEngine, this.element)
      : sessionHelper = AnalysisSessionHelper(element.session);

which is invoked by a factory constructor, invoked on the line 850.

/// [Refactoring] to convert normal [MethodDeclaration]s into getters.
abstract class ConvertMethodToGetterRefactoring implements Refactoring {
  /// Returns a new [ConvertMethodToGetterRefactoring] instance for converting
  /// [element] and all the corresponding hierarchy elements.
  factory ConvertMethodToGetterRefactoring(SearchEngine searchEngine,
      AnalysisSession session, ExecutableElement element) {
    return ConvertMethodToGetterRefactoringImpl(searchEngine, element);
  }
}

//cc @crelier


Multiple auto_registration paths

I faced this problem when tried to use rom-rails inside Rails engine. It occurred that relations, mappers and commands are not being autoloader from engine to the main app. Here I suggest adding this functionality.

@solnic , @cflipse , could you guys take a look at this? I mean if this functionality is generally needed. Because I need it in my project and maybe someone will need it in future. Hope for response 😄

@vbyno I don't maintain rom-rails anymore but this change seems reasonable :) so 👍 @cflipse ?

Looks fair; I'll merge.
Probably won't release for a few days as I've got a couple other updates I need to wrestle with


Scope Refactoring - Pt. 1

This is the first in a small series of PRs to refactor the internal scopes object and streamline our code.
This PR specifically changes a few things around where functions are being called from and their visibility. This may affect things in telemetry, but that will be changing in the short-term future as well.

I think you'll need to update the tsconfig to include es2015.set for compat for IE11.

agressively unit test!

Closing this, as changes will be made in the auth code library instead.


Cache results from Swiftype to avoid re-searching related content on every page load

Description
Swiftype's API comes at a cost. We have a limit to the number of searches we can do via Swiftype before we are charged for more usage. To try and keep cost down and avoid unnecessary search requests, we need to implement some kind of caching mechanism for the results so that visiting guide pages incur as least cost as possible.
TODO:
We need to define how we want to cache the results. We can use something like the browser's local storage, or something like service workers to cache network requests on a per-user basis. Another alternative would be to fetch the results during the build and add the results to the GraphQL schema, which means we only incur cost when the site builds.

Closing this ticket as this is better captured in #582 and #589


Change to new domain

Details
Describe the solution you'd like:
Swap my main domain to my super secret ultra safe new domain

Long lived issue, going to close this and revisit in the future


Store cart ID in cookies

Hey @lordofthecactus! Let me know what you think of this approach.
WHY are these changes introduced?
When switching from Shopify's Online Store to Hydrogen, existing customer carts are lost unless the merchant updates their liquid theme to use the Storefront API.
Soon, liquid/Storefront API carts will be interoperable - carts created on a traditional liquid storefront can be managed via the Storefront API and vice versa.
This change leverages the new functionality and shows an example of how to switch between Online Store/Hydrogen without losing carts.
WHAT is this pull request doing?
Updates the Demo Store template to use the same cart cookie set by the traditional Online Store channel.
HOW to test your changes?

Enable cart_repository_online_store_path on your test store.
Create a cart using the traditional Online Store and copy the cart ID from the cart cookie.
Running Demo Store locally, create the same cart cookie.
Switch between Hydrogen/Online Store and the cart should remain in sync.

Feel free to use my test store:
PUBLIC_STORE_DOMAIN="test-shop-987.myshopify.com"
PUBLIC_STOREFRONT_API_TOKEN="b5f455ac1cea1522791da1ad0e053559"

Post-merge steps
Will remove most of these docs: https://shopify.dev/docs/custom-storefronts/oxygen/migrate/share-carts
Checklist

[x] I've read the Contributing Guidelines
[x] I've considered possible cross-platform impacts (Mac, Linux, Windows)
[x] I've added a changeset if this PR contains user-facing or noteworthy changes
[ ] I've added tests to cover my changes
[x] I've added or updated the documentation

@scottdixon I'm also wondering if we should update to add some text here https://shopify.dev/docs/custom-storefronts/hydrogen/cart/add#persist-and-return-the-cart about this.
Maybe some sort of note, that if cart wants to be shared with online storefront, to setup a plan cookie, not within session

Thanks so much @lordofthecactus! I've updated changeset and added a note to the cart docs as part of this PR which will roll out once the feature is live. LMK if I've missed anything 🙏


[tests]Disable mlir tests on gfx94x

Also needs to disable the smoke xdlops tests: smoke_solver_ConvMlirIgemmXdlops

Also needs to disable the smoke xdlops tests: smoke_solver_ConvMlirIgemmXdlops

I'll take care about those.

@atamazov Do you have other questions or suggestions? If not, could you please approve the PR?

@yiqian1

@atamazov Do you have other questions or suggestions? If not, could you please approve the PR?

No, I do not have necessary privileges.
@junliume @JehandadKhan Can you please help?

@junliume @JehandadKhan Please help me to merge this PR. Thanks.


Rendering PDF which include PNG with transparent background (SVG renderer)

First off all, Great job on the SVG renderer. Can't wait to use it in production. We are testing the PDF's in our system and in the latest version most PDF are rendered correctly as SVG. There are a couple of bugs that I want to address and post as issues here.
Attach (recommended) or Link to PDF file here:
I attached the svg as txt because of the github upload restrictions.
[page.txt] (https://github.com/mozilla/pdf.js/files/4481179/page.txt)
[ton_page8.pdf] (https://github.com/mozilla/pdf.js/files/4481193/ton_page8.pdf)
Configuration:

Web browser and its version: Latest Chrome (80.0.3987.149)
PDF.js version: pdfjs-dist (2.4.456)

Steps to reproduce the problem:
Use the PDF above in the SVG renderer and you will see that the top image are being rendered with a black background. In the original it has transparent background.

Can't wait to use it in production.

That's probably not likely to happen any time soon (or even at all), considering that the SVG back-end is inherently slower (given the huge amount of DOM elements it creates) and also that it requires more memory than the default canvas back-end; please note https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#backends

Yes, for now the SVG back-end is an experimental alternative, but not ready for production use yet. Nevertheless, thank you for reporting issues since it will help to improve it!

Same problem here, images with transparent background are displayed with a black background.
Is there a solution planned for that?

I'm also looking for a solution for this

saya juga mencari solusi bagaimana baiknya


[Elasticsearch] ES reporter unit tests

Worth waiting on https://github.com/alhardy/AppMetrics/issues/105 before picking this up.

Moved here


It not showing prev and next buttons

Helo , do I have to set something to show next and prev buttons ?
It is not showing , thanks

The next and previous buttons are an "addon" you need to import it and use it in the template, the next and prev buttons are called the "Navigation Addon".
https://baianat.github.io/hooper/getting-started.html#addons
https://baianat.github.io/hooper/examples.html#navigation-component


chore(ci): do not use npm ci

npm ci rimrafs node_modules then installs everything in package-lock.json.  However, it is highly likely that the result of running npm install in a development environment will result in a very different tree, which updates package-lock.json.  If one of the dependencies installed ships a poorly-built shrinkwrap file, the updated package-lock.json will contain potentially incompatible software from the shrinkwrap. This will be manifested upon the next npm ci because it strictly installs what's in package-lock.json.
TL;DR: npm ci is fast, but using it exclusively in CI can be dangerous.

This may or may not be a bug in npm, but the better solution is for projects to not use shrinkwrap files.

This is surprising to me. I was more leaning towards using npm ci exclusively and only running install when adding new dependencies or manually updating some.

@legobeat https://github.com/DavidAnson/markdownlint-cli2/issues/198
...but I'll close this, given @naugtur's comment.  Things can get very ugly if a package starts shipping a shrinkwrap file and a dev doesn't notice; but I agree it's likely a rare occurrence.  Socket will catch this sort of thing, but only if you click thru to the details about the package change.


data-table documentation has two heading with the same wording, leading to erroneous a tag

Change Type
Correction
Proposed Changes
Hi Huntabyte, maintainers,
So, I was taking a lesson while following the steps of the guide on how to implement a data table and I came across this minor issue.
On the data-table documentation page data-table.md there is two times the same heading ### Update columns definition.
Which generate the following url fragment #update-columns-definition when the user click on the said header in the content table. But because it is twice on the page, the navigator will go the first heading (which is not the correct if you clicked on the second one...)

Here is my poor attempt to make a small GIF of the issue, you can see me navigating with the content table, and we can see that when I click on the heading Update columns definition I got to the wrong one, and that both of them are highlighted.

I'm not against doing the PR myself, but I'm not too sure how to reword this. And I guess telling me into what to reword this, as well as reviewing the PR will be as long as doing the changes yourself... Just let me know!

While we could simply rename this and it would resolve the issue, maybe we need to look into how the TOC handles duplicate names.

Awesome!


Better chunk and/or memory awareness when rolling dims

🚀 Feature
@AbigailMcGovern and I have run into the issue that we have bigger-than-RAM 3D+t data chunked into timepoints. During manual annotation we want to roll the dims to be able to look at XZ or YZ planes, but the UI does not allow one to ignore t when rolling.
This is more general, e.g. 3D data where individual planes are usable but the full dataset is larger than RAM.
There's a few, not-mutually exclusive routes that napari could take here:

understand chunks and chunked loading, and prevent views (rolling or 2D/3D) that would result in larger-than-RAM loads.
allow users to define axes that shouldn't be rolled
have a "rolling" widget where one can drag and drop axes to reorder them
something else?

Agreed the situation here should be improved! This is something that if we improved https://github.com/napari/napari/issues/906#issuecomment-774749188 could be done with more awareness over axis labels too.


fixes missing lumi in acdc wf

fixes #8220

@amaltaro, Alan please review.

Hi Alan, since you don't trust this patch. :smile:
Here is the test code, (you can run with this with current code and with patch).
https://github.com/ticoann/WmAgentScripts/blob/wmstat_temp_test/test/ACDCTest.py
One thing I am not completely sure is how to handle events (first, last events) also location.
I think location should be combined unless acdc contains all the locations for that file. Not sure about first, last events.

fixed by #8285


Need to update README.md

This screenshot comes from README.md (top-level directory).
To try the sample, we need to build typescript in samples before
$ npm run start

Let's make the watching program.

How about including "npm run build-samples" in "npm(yarn) install"?

@KaYaF Can we close now?

@emadurandal No.
https://github.com/actnwit/RhodoniteTS/tree/doc/how-to-try-samples
I think it's a better to change the README to look like the latest commit on this branch. What do you think?

Thank you for the PR!


Some Cantrips have Level -1

When called by http GET, 5 cantrips have the "Level" value set to -1. Specifically:
Druidcraft
Fire Bolt
Poison Spray
Spare the Dying
Vicious Mockery

I believe this should be fixed now.

Thanks.
On Thu, Jan 2, 2020 at 1:58 AM Chris Ward<EMAIL_ADDRESS>wrote:

Closed #14 https://github.com/bagelbits/5e-srd-api/issues/14.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bagelbits/5e-srd-api/issues/14?email_source=notifications&email_token=AASNKTPT3QKXNYOQYKQLQOTQ3WGDFA5CNFSM4HI3NSMKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOVXPKIII#event-2917049377,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASNKTJKJKBXQFTS7X7D7FDQ3WGDFANCNFSM4HI3NSMA
.

--
Rex Baumeister
Computer Science
Michigan Tech


Claim added as an array in the JWT token when the claim value is with a comma at the end - "claimValue,"

Describe the issue:
Claim added as an array in the JWT token when the claim value is with a comma at the end - "claimValue,"
How to reproduce:

Create a user and add a claim value with a comma at the end directly from the database. (It is not possible to add a claim value with a comma at the end through the UI, the claim would be added with the comma at the end removed).
Or add it from the /services/RemoteUserStoreManagerService, setUserClaimValues operation.
Create an OAuth service provider and add the claim as a requested claim.
Login to the service provider and get check the ID token.
The claim value would be included in the ID token as an array eg -

   "Organization": [
      "claimValue"
   ],

Expected behavior:
Claims having value with just the comma at the end should not be treated as multi-valued. This is already been done in the claim addition flow from the UI and the SCIM2 APIs, however, if someone has directly changed the claim value from the database layer or through the SOAP APIs.
In the SAML flow, this works as expected because the claim value, after being split from the multi-attribute separator(default comma) is trimmed and length is checked before adding to the assertion[1], however, in the OIDC flow it is considered as an array[2].
[1]https://github.com/wso2-extensions/identity-inbound-auth-saml/blob/master/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/builders/assertion/DefaultSAMLAssertionBuilder.java#L358
[2]https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/master/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/openidconnect/DefaultOIDCClaimsCallbackHandler.java#L706
Environment information :

Product Version: [IS 5.10.0, 5.11.0]

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Autocomplete Replaces Wrong Text (at.Js / Froala integration)

I have attached a video of the demo site which shows the issue. The autocomplete replaces both the text I am trying to autocomplete, AND the line above it. I only want the autocomplete to replace the current line.
bug_wrong_text_replaced.zip

Hi did you find a solution to tis ?


Add a remove all perms command please

Hello, I hate doing it manually.

just open default.ini and remove all of the perms

ok thanks

I am too dumb too find the default.ini

nvm


Adding wilmslowhigh.txt

Wilmslow High School
Further education computer science - http://www.wilmslowhigh.com/sixth-form/sixth-form-curriculum/computing/

@NitroblastDigi  Pull request merged. Please notice that free educational license for JetBrains tools is for high and higher schools students, i.e. those who are over 13 of age. Thank you!


Some break lines and indentation in the examples of section <IP_ADDRESS> would greatly improve readability

Agreed that these are not ideal @jmaferreira . I've had a quick look at a (very) simple formatting algorithm that I think improves things but wrapping on attributes some and splitting schemaLocation across lines at space breaks. Again I'll get you eyes at a corrected PDF before 15/10/21


[Kafka Sink] Clean function name

@Kokan Is that better? :)
Close #1928

This change is

Hello,
Yes. It is good enough not to have the comment before the function :-)
Thank you. I really appreciate it.

Done :D

/lgtm

merging as per sink maintainer.


Lazily evaluate Message Properties

Motivations:
In order to run the filter we are building a HashMap with all the custom properties and the system properties of the Message.
In benchmarks we saw that now most of the load is due to the allocations and the CPU work that is done to build such HashMap (and also to convert Netty ByteBufs to Strings).
Modifications:

try to lazing compute a value for Properties only when required (and cache the result)
add tests

I am running some profiling on a real Pulsar cluster on GKE. I will commit this patch as soon as I see visible improvements.

With this patch we are no more spending time in building hashmaps or decoding ByteBufs to Strings.
Unfortunately we are paying a full metadata (only keys) scan in order to look for the "JMSExpiration" property and this is not avoidable (and also the header is not present if you are not using that feature, so the scan always scans the whole list)


Support ImageStream in Deployment

Description
DeploymentConfig is not recommended by Openshift/Red Hat. It is meant to be used only in certain situations.
DeploymentConfig might also be deprecated at some point.
Proposal
Add support for using ImageStreams in Deployments:
https://developers.redhat.com/blog/2019/09/20/using-red-hat-openshift-image-streams-with-kubernetes-deployments/
Just need to add some annotations.
This also allows BuildConfig to work with Deployment.

If there is customer requirements for this feature, we can consider it. For now, it can be achieved using customizations.


Enhancement: Generate OpenAPI schema always in the same order

Summary
Update: Turned out the seed is already static, but that elements might be generated in random order. Let's fix that.

The generate_examples is nice but the examples are re-generated for each application execution.
This makes it impossible to store the generated schema in git, for change tracking, as there will be always a diff.
Example generation utilizes polyfactory and Faker, which both allow setting the seed, I assume. Tried googling it up, tried something like Faker.seed(123) but no luck.
This should be made tuneable, and maybe default to a fixed seed, too.
Related:

The order of components.schemas entries seems to also change over executions. Could this also retain the ordering?

Basic Example
See https://github.com/litestar-org/litestar/issues/3058 for example.
Drawbacks and Impact
No response
Unresolved questions
No response

[!NOTE]
While we are open for sponsoring on GitHub Sponsors and
OpenCollective, we also utilize Polar.sh to engage in pledge-based sponsorship.
Check out all issues funded or available for funding on our Polar.sh dashboard

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified
This, along with engagement in the community, helps us know which features are a priority to our users.

@guacs

@guacs Were you planning to work on this?
I started wondering how the order of the elements could be random as since Python 3.7+ dicts retain insertion order and generating the schema should be deterministic?
But yeah, it does seem to generate some elements (in my long spec) in a bit different order each time.

I'm not sure whether this is what this issue is about, since it seems to be related to deterministic ordering, but it might be related, so I'll avoid opening a new one.
From a DX perspective I personally find very helpful to have ordered routes in the Controller, that follow a certain logic:

Progressive nesting (GET / comes before GET /:id and before GET /:id/nested)
Logical actions ordering (GET, POST, GET id, PATCH id, DELETE id)

Example:
class MyController(Controller):
    tags = ["..."]
    path = "/"
    dependencies = {...}

    @routes.get()
    async def get_many(self):
        ...

    @routes.post()
    async def create(self, data: ...):
        ...

    @routes.get("/{resource_id:uuid}")
    async def get(self, resource_id: UUID):
        ...

    @routes.patch("/{resource_id:uuid}")
    async def update(self, resource_id: UUID):
        ...

    @routes.delete("/{resource_id:uuid}")
    async def delete(self, resource_id: UUID):
        ...

    @routes.get("/{resource_id:uuid}/nested")
    async def get_nested(self, resource_id: UUID):
        ...

Currently the ordering of the route definition at the Controller is not respected by the docs, so I end up having a Swagger that looks like this:
- GET /:id/nested/:nest_id/another
- POST /:id/nested
- GET /
- DELETE /:id
- POST /

Which I personally find very confusing since:
(1) It doesn't seem to follow a pre-defined logic (couldn't find any pattern for that when looking at the docs)
(2) It doesn't respect the logic that was defined on the controller
Not sure what might be causing it, I think this is generated on _openapi/schema_generation/schema.py:SchemaCreator maybe? Will be happy to help with some guidance, since it seems this has been refactored not long ago here: https://github.com/litestar-org/litestar/pull/2805.

@ccrvlh I'd say that's a different feature to this one so it'd be great if you could create an issue for that. I think it does follow a certain order which is GET, PUT, POST, DELETE etc. (I'm guessing the same order as seen here). However, this considers /:id/nested to have no relation to /:id or any of the other routes. The logic of this starts here.
The difficulty here is that by the time the route reaches to OpenAPI logic, we don't know whether this was defined as part of a controller or not. So, if that order is to be maintained then we'd need to figure out a way to tell let the OpenAPIPlugin figure out the order the paths should be in. This would have to be done at the time we parse the Controller to create the individual route handlers. Even then a single path would consist of all the GET, PUT, POST etc. in that path but it should be possible to define that they should come in the following order from your example: /, /:resource_id, /:resource_id/nested.

@guacs thank you, opening a new issue here

@tuukkamustonen I'm not able to reproduce the issue actually. I tried with the following and the schema generated is always the same:
from __future__ import annotations

from dataclasses import dataclass

from rich import print

from litestar import get, post
from litestar.openapi.config import OpenAPIConfig
from litestar.testing import create_test_client

@dataclass
class Foo:
    foo: int

@dataclass
class Bar:
    bar: str

@get("/foo")
async def get_foo() -> Foo:
    return Foo(9)

@post("/foo")
async def post_foo(foo: Foo) -> None:
    ...

@get("/bar")
async def get_bar() -> Bar:
    return Bar("bar")

with create_test_client([get_foo, get_bar, post_foo], openapi_config=OpenAPIConfig("foo", "voo", True)) as client:
    resp = client.get("/schema/openapi.json")

    print(resp.json())

@guacs Thanks for looking into it. Maybe it's something more exotic, or maybe I'm just wrong. I'll investigate and ping back (a bit later).

Okay, I'm able to reproduce it in a really weird setup.
The random ordering occurs in components section of OpenAPI spec. Elements elsewhere (e.g. paths) seem to remain in same order.
It's related to use of Controllers, where the order of HTTP methods gets randomized by a use of set() in https://github.com/litestar-org/litestar/blob/main/litestar/utils/sequence.py#L22
Sets are not ordered, so that unique should return the handlers in whatever order, which leads to model registration in whatever order.
To reproduce, I had to separate the handlers into a separate file.
# handlers.py
from dataclasses import dataclass

from litestar import get, post, Controller
from pydantic import BaseModel

@dataclass
class Payload:
    foo: int

@dataclass
class Response(BaseModel):
    bar: str

class FooController(Controller):
    @post()
    async def post(self, data: Payload) -> Response: ...

    @get()
    async def get(self) -> Response: ...

# app.py
import json

from litestar import Litestar

from handlers import FooController

app = Litestar(route_handlers=[FooController])

print(json.dumps(app.openapi_schema.to_schema()["components"], indent=4))

(If I dump it all into a single file, the issue will not reproduce.)
When I run that once, the first time, it outputs the schema components in Response, Payload order. Run it again, and the order is reverses. Run it again, and the order remains same as second time.
If you flush the .pyc cache (in __pycache__) and re-run it, the order is Response, Payload again. And then following invocations, with the cache have it reversed again.
I don't understand how exactly that bytecode caching impacts this, but it does, at least on my computer 🤯 Maybe the .pyc file is ordered somehow, and re-loading it up from there somehow leads to the set() always giving same ordering in this case. As only when running without cache the order is reversed. I don't know.
In any case, I believe that set messes it up. And there are other sets around, which might have an impact, too.
Does that sound plausible?

@tuukkamustonen thanks! I was able to reproduce it and I believe you're correct in that the use of unique is what's causing the difference in the order of the components and that this only happens when you use a Controller with multiple HTTP methods.
The use of unique to find the unique HTTP handlers results in route.route_handlers possibly having a different order of handlers each time which results in a different insertion order to route.route_handler_map. For creating the paths portion of the OpenaAPI schema, we iterate over the route_handler_map which in turn causes a difference in the order of insertion of the generated schema into the SchemaRegistry.
I was thinking that we force the schemas to be generated in alphabetical order so that we should be able to get the same OpenAPI schema every time regardless of the order the paths (and their individual HTTP methods) are processed. WDYT?

The OpenAPI JSON spec is supposed for machines and not humans, so whatever order is fine as long as it's consistent 🤔
Alphabetical ordering would make sense, as it would keep the spec unchanged when you refactor and move controllers/handlers around... on the other hand, if you refactor by renaming models in-place instead, then the spec would change 😄
I guess I would just go with what is simplest and fastest, though I don't see exact issues with alphabetical ordering, either 🤷🏻♂

on the other hand, if you instead refactor by renaming models in-place, then the spec would change

This would happen regardless no? Since the names of the schemas are created based on the name of the model.

True, the order of the entries wouldn't change... but their names would (still less than the diff generated by changing the order).

@guacs I see your PR is merged, shall we close this issue?

Closed in #3172


41 pending comments

Add navigation for pending comments to write view per mocks. Totally unstyled! It looks like this:

Would love feedback and help with styling from @xtine and @jehlers!

Seems like a step in the right direction. Two not-terribly-important thoughts:

the term table-of-contents threw me for a bit; that has a pretty specific meaning elsewhere in the app
this is a lot of JS code (comment-toc-view.js) to do something my naive brain thinks is relatively simple. Is there a way to pare this down or re-use existing functions?

@jmcarp This is a great start. Only style thoughts at this point would be this:

Move list of added comments to the right sidebar
"Edit" should be a blue or standard color link
"Clear" should probably be red

@cmc333333: I'm thinking about moving comment storage to a model and associated collection, which should cut down the views in general. Meanwhile, does anything particular jump as at you as duplicative or boilerplate-y?

We spoke a bit about this out of band, but documenting here for transparency:
I think the biggest issue is around parseComments, which seems like a utility more than something specific to this listing. I'm betting that'd be resolved by your model/collection suggestion.
I also wondered if Backbone has less boilerplate-y support for templates in its views, but that doesn't appear to be the case.
I got nothin :)

Made some changes:

Re-positioned comment index
Moved comment-related views to more sensible places
Renamed to CommentIndexView

@xtine: could you take a look at the js changes?

If I click "View the Proposal" button on a comment write page that already has a comment, it goes to a blank screen.
Should adding a new comment populate the right sidebar? I have to refresh to see any new comments that were added
Clearing a comment also should remove the item on the right sidebar

Also wondering if CommentListView would be a better name since it's a listing of user comments. Not sure if index would clash with anything else named so far.

👍


Fetch the HSTS preload list regularly

As discussed in https://github.com/sonarwhal/sonar/pull/370#discussion_r128285950, a cron job or npm package is needed to keep the HSTS preload list updatet to date in the strict-transport-security rule.
The list could be found here: https://cs.chromium.org/chromium/src/net/http/transport_security_state_static.json

My thinking is: If there isn't yet a npm package, we should create a new repository, have an automated setup that fetches the list, and if something changed, releases a new version and publishes it on npm. That way we (and others) can consume it more easily.

This may not be needed, see: https://github.com/sonarwhal/sonar/pull/370#issuecomment-317063570.


[sozo] Library call to read the value of a system

Is your feature request related to a problem? Please describe.
This is similar to #852 however this can be implemented in the current build without any core changes
Often you want to know a computed value in your world, and this can be achieved by using a Library call on the world.
The requested feature is to extend sozo to make this possible.
Describe the solution you'd like
It should have a syntax something like:
sozo view <system>
Which would return the value of the system.
It has been implemented in the JS package here:
https://github.com/dojoengine/dojo/blob/main/packages/core/src/provider/RPCProvider.ts#L146

thinking of this - it might make sense to not do this in sozo and push to use Starkli


Protein inference - Protein FDR/PEP calculation

Dear developers,
I have been happy with the rescoring results from Prosit, starting from a MaxQuant msms.txt file. I get > 2K target hits at the PSM level after rescoring.
I was wondering about what would you recommend for protein inference or protein FDR calculation, starting from the identified features after re-scoring.
Right now I am just using unique peptides to get the identified proteins but I would like to be able to assign an FDR value at the protein level.
Many thanks in advance.
Miguel

Hi Miguel,
@MatthewThe is currently working on implementing protein inference. I'm not sure how far along this is maybe he can give you some help on this.
Best,
Ludwig

Hello Ludwig,
Many thanks for your comment. I have indeed exchanged some ideas with Matthew and managed to find a solution which I will post here if anyone else faces the same issue. The workflow is summarized in the flowchart below.
I made MQ generate the mzTab output which contains the complete mapping between peptide sequences and the proteins that they belong to (including the REV__ proteins generated by MQ). I modified the .tab file from Prosit to include both protein IDs and peptide sequences. Then I used an R script to correct the ScanNr annotation in the .tab file. I modified a fasta file, so the protein header would match the protein ID now found in the .tab file. Eliminated all features related to contaminants from the .tab file. And ran percolator using the modified fasta and the prosit-generated-modified .tab file.
Example command:
percolator data.tab -f data.fasta -P "REV__" -l prosit_target_proteins.tsv -L prosit_decoy_proteins.tsv

The decoy and target protein tsv files were generated nicely using this approach.

Best wishes,
Miguel


Roll Function for Triton

While srush has a creative way to do a roll function in Triton, I also thought I would open up an issue to see if this could potentially get implemented in the back end.
The idea would be to mimic the roll function in pytorch, i.e. something like the following:
Original tensor:
state=tensor([[0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.]])

Command:
state = torch.roll(state, -1, dims=-1)

New Tensor:
state=tensor([[0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.],
        [0., 1., 2., 3., 4., 5., 6., 7.]])

This is a pretty important operation from RNN's and Mamba architectures for the backward pass. Looking at srush's implementation, he just loads the data shifted from HBM, however, this is slower than just shifting the data stored in local memory. https://srush.github.io/annotated-mamba/hard.html
Idk how hard this would be to implement in the backend, and I don't know that much about the Triton backend, but I would be willing to take a swing at it, if it wasn't too bad.

I think the big thing needed is shuffle operations from llvm, I need to look more into tritonlib to see if the backend already exists.

I assume a roll or shuffle kind of operation is necessary for implementing a backward pass like this:
https://arxiv.org/pdf/2406.15643v1