Add some perf events/data for tiered compilation (PerfView)

Depends on https://github.com/dotnet/coreclr/pull/24607
Added tiering events and updated existing events from the above PR
Added switch -ShowOptimizationTiers. When enabled:

Stack frames include the optimization tier and it's possible to see stacks separately for each tier of a method
The JITStats page shows the optimization tier in the JIT events table
Optimization tiers include ReadyToRun so that it's possible to see time spent in R2R pregenerated code

Fixes https://github.com/dotnet/coreclr/issues/23222

Test runs tier 0 and tier 1 versions of a method that continuously increments a static variable:
    private static void Main()
    {
        Thread t;
        ThreadStart runForever = () => Run(true);

        // Run tier 0 version of Run() continuously
        t = new Thread(runForever);
        t.IsBackground = true;
        t.Start();
        s_runStarted.WaitOne();

        // Tier-up Run()
        Run(false);
        Thread.Sleep(500);
        for (int i = 1; i < 100; ++i)
            Run(false);
        Thread.Sleep(500);

        // Run tier 1 version of Run() continuously
        t = new Thread(runForever);
        t.IsBackground = true;
        t.Start();
        s_runStarted.WaitOne();
        Thread.Sleep(500);

        // Should have reached steady state perf by now
        Thread.Sleep(2000);
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    private static void Run(bool forever)
    {
        s_runStarted.Set();
        do
        {
            ++s_value;
        } while (forever);
    }

    private static int s_value;
    private static AutoResetEvent s_runStarted = new AutoResetEvent(false);

New events:

Settings: Flags - Event is sent only when tiered compilation is enabled. Flags indicate whether some suboptions of tiering are enabled.
Resume: NewMethodCount - Number of methods called for the first time while tiering was paused
BackgroundJitStart/BackgroundJitStop: PendingMethodCount - Number of methods currently scheduled for background JIT
BackgroundJitStop: JittedMethodCount - Number of methods jitted in the background since the previous BackgroundJitStart event on the same thread

Event Name                                                            Time MSec  Rest
Microsoft-Windows-DotNETRuntime/TieredCompilation/Settings              737.137  ThreadID="10,736" ... Flags="QuickJit, QuickJitForLoops"
Microsoft-Windows-DotNETRuntime/TieredCompilation/Pause                 796.593  ThreadID="10,736" ...
Microsoft-Windows-DotNETRuntime/TieredCompilation/Resume              1,007.163  ThreadID="13,984" ... NewMethodCount="122"
Microsoft-Windows-DotNETRuntime/TieredCompilation/BackgroundJitStart  1,319.822  ThreadID="13,984" ... PendingMethodCount="7"
Microsoft-Windows-DotNETRuntime/TieredCompilation/BackgroundJitStop   1,322.385  ThreadID="13,984" ... PendingMethodCount="0" JittedMethodCount="7"
Microsoft-Windows-DotNETRuntime/TieredCompilation/Pause               4,322.383  ThreadID="14,016" ...

Existing method JIT events were updated to include the optimization tier. With app not R2R'ed:
Event Name                                          Time MSec  Rest
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose    813.692  ... ThreadID="10,736" ... MethodSize="527" ... MethodNamespace="Test" MethodName="Main" MethodSignature="void  ()" ClrInstanceID="5" ReJITID="0" OptimizationTier="QuickJitted"
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose    813.764  ... ThreadID="10,736" ... MethodSize="70" ... MethodNamespace="Test+<>c" MethodName=".cctor" MethodSignature="void  ()" ClrInstanceID="5" ReJITID="0" OptimizationTier="QuickJitted"
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose    813.846  ... ThreadID="10,736" ... MethodSize="30" ... MethodNamespace="Test+<>c" MethodName=".ctor" MethodSignature="instance void  ()" ClrInstanceID="5" ReJITID="0" OptimizationTier="QuickJitted"
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose    814.477  ... ThreadID="10,736" ... MethodSize="72" ... MethodNamespace="Test" MethodName=".cctor" MethodSignature="void  ()" ClrInstanceID="5" ReJITID="0" OptimizationTier="QuickJitted"
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose    814.561  ... ThreadID="15,180" ... MethodSize="31" ... MethodNamespace="Test+<>c" MethodName="<Main>b__0_0" MethodSignature="instance void  ()" ClrInstanceID="5" ReJITID="0" OptimizationTier="QuickJitted"
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose    814.691  ... ThreadID="15,180" ... MethodSize="115" ... MethodNamespace="Test" MethodName="Run" MethodSignature="void  (bool)" ClrInstanceID="5" ReJITID="0" OptimizationTier="QuickJitted"
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose  1,320.075  ... ThreadID="13,984" ... MethodSize="47" ... MethodNamespace="Test" MethodName="Run" MethodSignature="void  (bool)" ClrInstanceID="5" ReJITID="1" OptimizationTier="Optimized"

With app R2R'ed:
Event Name                                          Time MSec  Rest
Microsoft-Windows-DotNETRuntime/Method/LoadVerbose  1,176.261  ... ThreadID="9,124" ... MethodSize="47" ... MethodNamespace="Test" MethodName="Run" MethodSignature="void  (bool)" ClrInstanceID="5" ReJITID="1" OptimizationTier="Optimized"

With the new -ShowOptimizationTiers switch to PerfView, stacks frames include the optimization tier and time spent at each optimization tier of a method can be seen. With app not R2R'ed:
Name                                                                                Exc %    Exc
 system.private.corelib![ReadyToRun]System.Threading.ThreadHelper.ThreadStart_Context(System.Object)    0.0      0
+ test![QuickJitted]Test+<>c.<Main>b__0_0()                                                             0.0      0
 + test![QuickJitted]Test.Run(bool)                                                                    15.0    915
 |+ coreclr!JIT_GetSharedNonGCStaticBase_SingleAppDomain                                               42.2  2,576
 + test![Optimized]Test.Run(bool)                                                                      40.9  2,494

With app R2R'ed:
Name                                                                                Exc %    Exc
 system.private.corelib![ReadyToRun]System.Threading.ThreadHelper.ThreadStart_Context(System.Object)    0.0      0
+ test![ReadyToRun]Test+<>c.<Main>b__0_0()                                                              0.0      0
 + test![ReadyToRun]Test.Run(Boolean)                                                                  57.3  3,512
 + test.il![Optimized]Test.Run(bool)                                                                   40.8  2,497

Methods can be grouped by optimization tier with the pattern "*![{%}]->[$1]" to see how much time is spent overall at each optimization tier. With app not R2R'ed:
Name           Exc %    Exc
[Optimized]     40.9  2,494
[QuickJitted]   15.0    915
[ReadyToRun]     0.0      0

With app R2R'ed:
Name           Exc %    Exc
[ReadyToRun]    57.3  3,512
[Optimized]     40.8  2,497
[QuickJitted]    0.0      0

With the new switch, the JITStats page also shows the optimization tier. Some methods with app not R2R'ed:

Start MSec
JitTime MSec
ThreadID
IL Size
Native Size
OptimizationTier
MethodName
Trigger

812.746
0.946
10736
156
527
QuickJitted
Test.Main()
FG

813.713
0.052
10736
11
70
QuickJitted
Test+<>c..cctor()
FG

813.781
0.065
10736
7
30
QuickJitted
Test+<>c..ctor()
FG

814.408
0.068
10736
12
72
QuickJitted
Test..cctor()
FG

814.502
0.059
15180
7
31
QuickJitted
Test+<>c.b__0_0()
FG

814.578
0.113
15180
27
115
QuickJitted
Test.Run(bool)
FG

1319.849
0.226
13984
27
47
Optimized
Test.Run(bool)
TC

Codecov Report

Merging #939 into master will increase coverage by 0.02%.
The diff coverage is 26.36%.

@@            Coverage Diff             @@
##           master     #939      +/-   ##
==========================================
+ Coverage    17.8%   17.82%   +0.02%
==========================================
  Files         230      230
  Lines      139889   140339     +450
  Branches    12406    12444      +38
==========================================
+ Hits        24903    25013     +110
- Misses     114035   114367     +332
- Partials      951      959       +8

Flag
Coverage Δ

#2017
17.82% <26.36%> (+0.02%)
:arrow_up:

#Debug
17.82% <26.36%> (+0.02%)
:arrow_up:

#Release
?

Impacted Files
Coverage Δ

src/TraceEvent/TraceEventStacks.cs
0% <0%> (ø)
:arrow_up:

src/PerfView/JitStats.cs
0% <0%> (ø)
:arrow_up:

src/PerfView/HeapView/Toolbox.cs
0% <0%> (ø)
:arrow_up:

src/TraceEvent/Computers/TraceManagedProcess.cs
0% <0%> (ø)
:arrow_up:

src/PerfView/PerfViewData.cs
3.83% <0%> (-0.01%)
:arrow_down:

src/PerfView/CommandProcessor.cs
0.17% <0%> (-0.01%)
:arrow_down:

src/PerfView/CommandLineArgs.cs
3.57% <0%> (-0.02%)
:arrow_down:

src/TraceEvent/Ctf/CtfTraceEventSource.cs
0% <0%> (ø)
:arrow_up:

src/PerfView/UserCommands.cs
0% <0%> (ø)
:arrow_up:

src/TraceEvent/Parsers/ClrTraceEventParser.cs
46.42% <33.33%> (-0.65%)
:arrow_down:

... and 1 more

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 afe8da8...6094d12. Read the comment docs.

It might be better to have a checkbox in the stack view. Otherwise multiple options like these would create a large matrix of views for different combinations of options. I'll look into what it would take to add a check box for the option.

We're already there somewhat right now - we do have a good number of views.  However, they only show up when you add the data so it tends not to hurt too much.
I would prefer not to add a checkbox to the stack viewer UI.  This is not something that folks are used to seeing and the stack viewer is used pretty much everywhere.
Also, this is likely to be difficult because stacks are computed and interned before the view comes up.  So this would mean that you'd have to change the order of operations in a pretty meaningful way.

So far it looks like adding a checkbox would be fairly straightforward, though it needs a bit more investigation. I don't want to duplicate each of the many stack views just to modify how it displays managed frames. It's understandable that there are several stack views currently, as they are pre-filtered to show certain types of data for some types of investigations. The option being added is not really a new view but rather would apply to most of those existing stack views, with a change to how managed stacks are displayed. I think something like a check box or an option in a menu of a stack view window would be more appropriate, and it would combine well with a command-line argument that would affect the option's default value for new stack windows.
In any case in the interest of prioritization I'll leave it as is for now and it can be refined later.

Stepping back a bit, let me briefly explain the design behind the set of views that we have today.  PerfView has a set of views ranging from general purpose views like the CPU stacks view all the way down to very specific views like CCW Ref Count stacks.  The design is that views that are more general purpose live on the main menu within PerfView whereas more specific views live in the Advanced or other view drop downs.  We do this to make sure that folks are presented with the most generic views first to try and solve their problem, and then they go and search out other views depending on the issues that they find in the more generic views.  When I think about tiering, I'd like to believe that the number of folks using these views is going to be relatively small - mostly internal people who are looking specifically at tiered compilation or codegen behavior.  As such, these views would fall into the "more specific" category and I'd like them to live in the Advanced drop down.  Having a checkbox means that users are presented with more options in the generic views such as CPU stacks, and I don't want folks to have to learn about more features unless/until they need to.
Do you believe that a significant segment of the population using PerfView is going to need to annotate their stacks with tiering information to make forward progress on performance investigations?

The design and layout as you described makes sense to me, but as I described above it's not a new view that is being added, instead it's modifying how existing views would display data. Take a look at the ShowUnknownAddresses option, which I followed for the new switch that was added. It works on every stack view because the intention is to change an general option that applies to all stack views, not to add a new version of each stack view. For the reasons I mentioned above, I don't think replicating the stack views would fit well into the current design.
I think the new switch would be enabled mainly for perf investigations, so it is disabled by default.

@brianrob do you have any other feedback? From our discussions on your suggestion I don't think we have reached consensus. I believe those things can be refined later, I'd like to unblock this PR from that aspect of discussion.
Let me know if anyone has any other feedback. If there's no further feedback I'll go ahead and merge this tomorrow.

Looks like I don't have merge permissions anyway. I'll just open another PR on top of this.

@brianrob, not having this change committed is starting to quickly become problematic. Considering that time spent on your suggestion is perhaps not more important than having a solution to the problem, is there any possibility that you could convince yourself that this PR could be merged as-is, even if it were in temporary fashion? If you or others have the cycles to implement your suggestion then I would certainly not oppose, but I feel that this needs to have some traction soon and I feel your reasons for blocking this PR are inadequate.

Perhaps a convincing factor could be that often no single person would know best. While I appreciate our difference in opinion, there are more dire needs than either of our opinions. As far as time/budget is concerned in making the changes you requested, that's not a simple matter in my case and perhaps not in your case either, so the appreciation of that reality perhaps would enable you to yield results to customers in this matter.

cc @sergiy-k

There appear to be many ways of creating stack sources and opening stack views. Just a couple of examples:

Diffing two profiles through a menu option
Opening a stack source from a filtered portion from the GC heap analyzer

There are also many varieties of stack views that would be useful for different types of investigations.
With the many ways of stack sources being used, I would still like to have a global option that always separates stack frames by code version / optimization tier. I don't think this would not be useful, perf by code version is a more accurate representation of where time is going, merging frames of different code versions may be ok for the most part so it may make sense to do that by default to reduce confusion.
If it would be useful to add a few stack views somewhere under Advanced (I'm thinking under Advanced / Optimization tiers / ...), then I think that would be doable, but under my proposal that would be in addition to the global config such that those stack views would be available by default without having to use the global config.
Thoughts?

@kouvel, thanks for bring this PR back to the forefront.  I like your latest proposal to leave the switch in and also have some views under Advanced.  I think my biggest thing is that I want it to be clear that the data is present (or not) in a given trace without having to re-launch PerfView with the switch.  At the same time, there definitely could be value in having this information available for more views than I currently see value for.
If you can add a view for CPU time with optimization tiers under advanced, I think that would most definitely be sufficient to move this PR along.  Also, there is a test failure on this PR.  It is probably that an event was modified and so it doesn't match the previous version of the event.  You probably just need to update the baseline for that test file.  If you run the test locally, you'll see how the baseline files get created and you can diff them and copy the new file over the existing baseline if the change is intentional.
How does that sound?

Sounds good to me, thanks @brianrob. I'll fix the test issue as well, haven't verified the tests after rebasing.

Great.  Thanks @kouvel.

As discussed above, when CPU stacks and optimization tiers are available, added a CPU stacks view to the advanced group when -ShowOptimizationTiers is not enabled. Folded https://github.com/microsoft/perfview/pull/947 into this PR. @brianrob can you take a look?


Add a storage driver for Baidu bos cloud storage

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "master" git@github.com:guoyao/distribution.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

@guoyao thank you for your patience during the review process. We are trying to assign an owner to help own the review process. For storage drivers we also ask the original contributor to commit to maintaining the driver or help recommend someone that will be able to maintain to. Maintaining includes looking into bugs found by other users with the driver as well as help in reviewing further changes to the driver. You will not be required to follow the issue tracker closely as we will ping you when a relevant issue or pull request is open that we want your assistance with.
To get started, do you might breaking apart the original commit into 2 commits, one with has the vendoring change and another for non-vendor changes.

Hi, @dmcgowan, I have broken apart the original commit into 2 commits, and I promise I will take on the task of maintaining the driver.

Hi, @dmcgowan, did you find an owner to help own the review process?

@guoyao how much does the API differ from the S3 API? I see parts of it are copied out from the S3 driver.

@dmcgowan
Baidu BOS is a cloud storage similar to AWS S3 and Aliyun OSS, so the BOS API is similar to S3, but there are still some differences, e.g. authentication details, available regions, host for bucket to access, etc.
And currently, I provide the Baidu BOS GO API in https://github.com/guoyao/baidubce-sdk-go

@dmcgowan any questions ?
Thanks!

@dmcgowan
Hope to hear from you!
Thanks!

@dmcgowan any questions ?
Thanks!

@guoyao sorry to keep you waiting. Right now we would like to avoid accepting another S3 clone driver. Trying to decide on other possible solutions to get this supported. Our resistance is related to fixes in the s3 sdk requiring duplication of fixes in each of the cloned drivers. Ideally these drivers could be supported either outside of this repository or using a base s3 driver which could share the same implementation.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "master" git@github.com:guoyao/distribution.git somewhere
$ cd somewhere
$ git rebase -i HEAD~3
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

@guoyao does Baidu bos now work out of the box the AWS SDK?

Hi, we won't be adding any new storage drivers to registry at this point, so I'm closing this PR.
Feel free to reopen if you disagree.


When to release training code？

+1，I want to know

There are some IP issues currently. When it is solved, we will release.

There are some IP issues currently. When it is solved, we will release.

Waiting for the training code


Handle weights properly

Weights are not handled properly in memory mode:

Need to differentiate Archive/other modes
In memory mps are not existent , need to look into lp structure

Moved to internal ticketing system https://gopro-tickets.rte-france.com/browse/ANT-2196


[IRGen] Disable simple single payload enum in layout strings

rdar://119792426
There are a few issues with wrong assumptions around extra inhabitants that cause tags to not be identified properly in some cases. Until a proper fix is identified, we emit tag functions instead.

@swift-ci smoke test

@swift-ci smoke test linux

@swift-ci smoke test

@swift-ci smoke test


Using single-spa-layout to position main content.

This is the first use of single-spa-layout in a "real" app. The idea is that instead of requiring every app to position itself below the navbar, we can have a "main content" div defined by single-spa-layout that is pre-positioned.

Oh I just read the docs. Would it be possibel to setup a 404 route in this example as well? I think that would be great to have.

Ah yes I'll add a 404 route - good idea.

Updated with 404 route


feat: bump versions

Codecov Report

Merging #8 (e3dba83) into main (c6214f9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #8   +/-   ##
=======================================
  Coverage   98.46%   98.46%
=======================================
  Files           4        4
  Lines         130      130
  Branches       28       28
=======================================
  Hits          128      128
  Misses          2        2

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 c6214f9...e3dba83. Read the comment docs.


Several Advancements

Partial implementation of #428 (to the point where it allows us to go further), stubbed #416 and the newly reachable syscalls.
I also added a table of sysctls for a better overview and easier searching in the future.
UPDATE: also added a near-complete implementation of syscall 649

By the way, I think we could really use a get_module_by_id function on RuntimeLinker (instead of doing self.list.read().iter().find(|m| m.id() == handle) 4 times), but I'm afraid it requires lifetime generics which make my brain hurt.

I tend to agree, you can never be sure what's caused by what thing. I should have made this a draft, probably.

@ultimaweapon Also, what do I have to do to make this PR mergeable?

Better to keep only codes that have fully implementation. For partial implementation it should have a full implementation at least one branch and put todo macro on the other branches.

@ultimaweapon How will we implement /dev/console and stdout btw? Will we combine them into one stream?

My idea is we will combine them to stderr and add another tab on the GUI to show this.

What about when running just the kernel?

Same because right now the kernel print all its log to stdout. I'm keeping stderr specific for this.

I got too excited and put way to much in this PR once again.

The funny thing is, by implementing the devices and write instead of returning letting them fail, we actually hit a wall much earlier :(.

I got too excited and put way to much in this PR once again.

Yeah you put too much things in a single PR. Better to close this and split it into multiple PR will be better.


Creating a lightweight package easily importable from NiPreps

e.g., MRIQC and fMRIPrep.

Okay, with some pre-releases already on pypi, I think we can call this done.


Sponsored issue: Incremental UUID

I would like to request the addition of a feature that allows for the generation of incremental IDs using the UUID library. Currently, the project supports UUID generation, but it doesn't provide an option for generating sequential or incremental IDs.
This feature would be particularly useful in scenarios where it's necessary to have both the uniqueness of UUIDs and the sequential ordering of IDs, such as in database records.
Priority Support

@anushka7310 is using  Mintycode to fund this issue.
If you would like to accept  bounty for solving this issue join Mintycode.
Thank you in advance for helping.

What you're describing is the new UUID v7 format.   See https://github.com/uuidjs/uuid/pull/681
Please be aware that to the extent you need IDs with characteristics that fall outside of RFC4122, you'll need to look elsewhere for a solution.  This project deals only with RFC4122 UUIDs.


Update ca2233-operations-should-not-overflow_2.cs

Used nameof to avoid hard-coding the name of the parameter responsible for the ArgumentOutOfRangeException.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/code-quality/codesnippet/CSharp/ca2233-operations-should-not-overflow_2.cs
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


fix: release info did not respect the context path

Which problem does the PR fix?

closes #1789
What's in this PR?

This PR adds the zeebe gateway context path to the release-info that is injected to the console pod as config.
Checklist
Please make sure to follow our Contributing Guide.

Before opening the PR:

[x] In the repo's root dir, run make go.update-golden-only.
[x] There is no other open pull request for the same update/change.
[x] Tests for charts are added (if needed).
[x] In-repo documentation are updated (if needed).

After opening the PR:

[x] Did you sign our CLA (Contributor License Agreement)? It will show once you open the PR.
[x] Did all checks/tests pass in the PR?

Based on your patch, I'm assuming you deployed with a contextPath on zeebe, went to Console SM, and saw red underneath the zeebe gateway resource. I'm going to try reproducing this scenario now.

I observed the problem, and that the fix  does cause the problem to go away


Copilot name not displayed properly if user don't have chat history

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.64-4
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @twisterdotcom
Slack conversation (hyperlinked to channel name): ts_external_expensify_bugs
Action Performed:

User A and User B have an existing chat
User A adds User C as a copilot. (User C has not interacted with User B)
User C copilots into User A's account and sends a message to User B

Expected Result:
Main name for the message is from User C and message as on behalf of user A
Actual Result:
Main name for the message is from User A on behalf of User A
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub
Issue OwnerCurrent Issue Owner: @dangrous

This is on prod so we should be good here - can we test again? Thanks!


Fixes editing link title was removing the link from the text.

Fixes #6344

Description

Checklist

[ ] ~I have made corresponding changes to the documentation.~
[ ] ~I have updated the types definition of modified exports.~
[x] I have verified the functionality in some of the neeto web-apps.
[x] I have added the necessary label (patch/minor/major - If package publish
is required).

Reviewers

@AbhayVAshokan  _a please review.


feat: lifi swapper [WIP]

Description
This branch contains work-in-progress for lifi swapper integration
Notice

[x] Have you followed the guidelines in our Contributing guide?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[x] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

Testing

Engineering

Operations

Screenshots (if applicable)

I'll be applying feedback from downstream PR here later
https://github.com/woodenfurniture/web/pull/2


Popover - tests fix and refactor

In order to add events on popover I did a refactor and fixed the pending tests.

:+1:


Unit tests for validation on !isCreate

Follow-up from #404.
On a non-creating PUT, we don't currently test that:

we don't care about the contents of WorkerProfiles or Version (as long as they don't change).
we do care about the contents of every other field.

i.e. the if isCreates added in #404 don't have test coverage, and I think they should.

I think there is a wider issue with tests for validator. We do have some tests for cases mentioned above in TestOpenShiftClusterStaticValidateDelta, but It seems like all other tests only test create path.
We should be able to improve it by adding runTests(t, tests, true) along runTests(t, tests, false) into most of the tests. Some tests will require additional create and update -specific test cases.


Mobile dumb proofs DESKTOP-1171

This mostly takes advantage of the desktop proofs code, and simply modifies it to be mobile appropriate. Shared code is extracted and placed in user-proofs.shared.js. Some cleanup was done around the mobile tracker and user-bio so that this component could be tested. The cleanup is minimal and expected to be changed by proper implementations of those components.
An attempt was made at shimming padding on Text elements so that it worked on Android as well as iOS, but this resulted in unideal looking visual output because there are other inconsistencies in how view sizes/margins are calculated. This was reverted, and a wrapper was manually created around the Text view instead. This wrapper has special values applied for iOS vs. Android because of discrepancies that arose.
External linking should work. Because the links are based on the Android intent system (and the iOS equivalent) the URLs sometimes have to be modified to contain protocols if they are not otherwise present so that the OS knows to use a browser to view them.
Example valid proofs on both mobile OSs:
iOS:

Android:

Example meta tags on Android (looks the same on iOS)

Example you track them on Android (looks the same on iOS)

@keybase/react-hackers

:mag_right: The commits f8bd1e628d2c...810258550247 introduced some visual changes:

Changed: Tracker-Changed_Broken_proofs_user_you_dont_follow (before) (after)

Changed: Tracker-Changed_Broken_proofs (before) (after)

Changed: Devices_List-Devices (before) (after)

:mag_right: The commits a6bd5d62e55b...e57605f58bb8 introduced some visual changes:

Changed: Tracker-Changed_Broken_proofs_user_you_dont_follow (before) (after)

Changed: Tracker-Changed_Broken_proofs (before) (after)

👍

:mag_right: The commits 545595487b2d...9a33b32608e5 introduced some visual changes:

Changed: Tracker-Changed_Broken_proofs_user_you_dont_follow (before) (after)

Changed: Tracker-Changed_Broken_proofs (before) (after)


Different scores when using same strings with fuzz.WRatio() and process.cdist

Here is what I am trying to do:
from rapidfuzz import fuzz, process

fuzz.WRatio("an ecs service for", "chagan-service-2")

> 64.70588235294117

process.cdist(queries=["an ecs service for"], choices=["chagan-service-2"], score_cutoff=50, scorer=fuzz.WRatio)

> array([[52.941177]], dtype=float32)

Why do I get different scores?
@Tenzer @mgorny @Phxntxm @glynn-zenefits @henryiii

And what about this @maxbachmann
fuzz.ratio("an ecs service for", "chagan-service-2")

52.94.....

process.extract(query="an ecs service for", choices=["chagan-service-2"], score_cutoff=30, scorer=fuzz.ratio)

64.705....

This is the same issue in reverse. fuzz.ratio does not preprocess strings by default, but process.extract does:
>>> fuzz.ratio("an ecs service for", "chagan-service-2", processor=utils.default_process)
64.70588235294117

and
>>> process.extract(query="an ecs service for", choices=["chagan-service-2"], score_cutoff=30, scorer=fuzz.ratio, processor=None)
[('chagan-service-2', 52.94117647058824, 0)]


Enable OpenJDK vector tests for all 128 bits species.

In https://github.com/adoptium/aqa-tests/commit/a3afee639b2cbc0a3617b473260ecec10bff7723 we enabled Float128VectorTests and Byte64VectorTests on all platform to be ran as part of OpenJDK acceptance tests for OpenJ9. We would like to expand the scope and include more species to be testes.
Opening up this issue to enable the rest of the 128 bits species.

[ ] Double128VectorTests
[ ] Int128VectorTests
[ ] Short128VectorTests
[ ] Byte128VectorTests
[ ] Long128VectorTests

FYI @llxia  @gita-omr

@momanmalik could you work on this issue when you have time? Thanks
Steps:

duplicate https://github.com/adoptium/aqa-tests/blob/6b25d60a097cfc30d467cdfec9d2ac61dca861d8/openjdk/playlist.xml#L1866-L1893
replace Float128VectorTests with Double128VectorTests and update the testCaseName
test in Grinder (keep track of the test execution time)
repeat for the rest tests
create PR when you are ready


Fix many issues

Fix https://github.com/Noahkiq/gamebot/issues/7 and https://github.com/Noahkiq/gamebot/issues/14
Also restrict the range of co-ordinates for the ttt grid to stop users entering in a number such a 50 on a 3x3 board.
Update to Discord.NET version 1.0.0-rc
Requires .NET framework version > 4.6 (I used 4.6.2). I have not yet tested using mono (because I don't have it) and thus if you're going to pull this, it might be worth putting it in a new branch.
I also apologize for the fact that it's all one large commit. It was many (separated by . in the commit message), but because I download ZIPed instead of forking, I had to fork it and then merge changes manually. Trust me, I tried to get my commits to come across as more than one, but I couldn't work out how.

For installation using mono:
First make sure that bot-token.txt is copied across.
cd into the root dir.
Run nuget restore . to download all of the packages.
Run xbuild to build.
Then cd into ./gamebot/bin/Debug and run the executable.

well we use monodevelop to compile it

Okay I can confirm that it works with the latest version of mono.

Can't successfully run/compile using the current hosting solution. (Mono 4.4.2, Ubuntu 17.04)
Details: Doesn't compile correctly with Mono 4.4.2's xbuild, even after doing a nuget restore .

Issue 2: When using a build successfully compiled by @Technochips using Mono 5.0.0, bot immediately crashed due to a missing winhttp.dll
Issue 3: @Technochips could not successfully run the bot using Mono 5.0.0 (latest mono). He got this when trying to run the bot:
Discord.Net.HttpException: The server responded with error 400: BadRequest
This is not much of a surprise as Discord.Net is known to not behave kindly with newer versions of mono.

Hmm. I'll have a look into it. I installed mono a few hours ago so it's definatly at the latest version for me.

at the same time, we are on linux, and that might be no good

Nahh. I'm fairly sure the point of mono is that it works on both. Are you using a user or bot account to run it on? If you're using a user account, check the email for that account as 400 is the error thrown for "new device".

well geez, that's a lot of commits
might going to review it tomorrow, soon™

Reportedly works on .NET core which doesn't support host OS yet (Ubuntu 17.04) - will properly test/merge when support eventually:tm: comes

Dotnet Core for Ubuntu doesn't contain the required files to run net46 applications, which is what this application is based off of. Therefore, these changes can't currently be used in the current hosting environment.
 Don't worry.

:D I won't. Don't worry.


Web page / direct URL does not render cards and prompts

🚨 The issue tracker is not for implementation questions 🚨

When I run my bot in the bot emulator or the test web chat in the Azure portal, the initial card, information, and prompts come up. However, when I run either through the direct URL or from a web app I've published, the first screen is just a "Type your message" prompt and the user has to type something to get the opening card and prompts to display. What am I missing? I've looked all over to try and find some command or parameter that tells the  bot to go and show the opening dialog, but I can't find anything.

@v-kydela Could you take a look?

@bdlawrence13 - We have a sample that shows how to provide a welcome message in Web Chat: https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/04.api/a.welcome-event
Does this resolve your issue?

Not really. I’m pretty new to these. I’m using a sample bot - #13 – Core bot. And sorry, but this phrase in #4:
On your bot, you will need to add a filter to post the welcome message when webchat/join activities are detected.
Mock Bot welcome message:
if (context.activity.name === 'webchat/join') {
await context.sendActivity(
Got \webchat/join` event, your language is `${(context.activity.value || {}).language}``
);
}
I don’t have a clue as to where this would be added or how it fits in/replaces the already existing welcome screen.
That sample is built on using a set of cards that should display immediately, but only do if called through Bot Emulator or Test Web Chat.
<EMAIL_ADDRESS>Brian Lawrence | DWC Solution Architect
3M Health Care, Medical Solutions Division
12930 W. Interstate 10 | San Antonio, TX 78249 | US
Mobile: +1<PHONE_NUMBER>
brian.lawrence<EMAIL_ADDRESS>|  3M.com/KCIhttps://acelity.us.newsweaver.com/11irq2v8ry/3M.com/KCI
[https://acelity.us.newsweaver.com/files/201/1002105/1021125/194399/bf8606e37335fb7b9da414ea/twitter.png]https://twitter.com/3MHealthCare?s=20[https://acelity.us.newsweaver.com/files/201/1002105/1021125/194399/15d04ac8206324fcb3bed0bb/linkedin.png]https://www.linkedin.com/showcase/3m-health-care/[https://acelity.us.newsweaver.com/files/201/1002105/1021125/194399/891aaa286cf0c877892e6a7b/facebook.png]https://www.facebook.com/3MHealthCare/[https://acelity.us.newsweaver.com/files/201/1002105/1021125/194399/bea95cc9003cf45459e8d4bd/instagram.png]https://www.instagram.com/3m/[https://acelity.us.newsweaver.com/files/201/1002105/1021125/194399/6cf95d4e47c26d18bcb799a8/youtube.png]https://www.youtube.com/user/3MSkinWound[https://acelity.us.newsweaver.com/files/201/1002105/1021125/194399/b38a3e1c0bde6d1c3cdd4182/3m logo small.png]https://acelity.us.newsweaver.com/11irq2v8ry/hzyuvsnxidg?a=6&p=1635141&t=705607
From: Kyle Delaney<EMAIL_ADDRESS>Sent: Wednesday, May 13, 2020 11:59 AM
To: microsoft/BotFramework-WebChat<EMAIL_ADDRESS>Cc: Lawrence, Brian<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/BotFramework-WebChat] Web page / direct URL does not render cards and prompts (#3153)
CAUTION EXTERNAL EMAIL
@bdlawrence13https://github.com/bdlawrence13 - We have a sample that shows how to provide a welcome message in Web Chat: https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/04.api/a.welcome-event
Does this resolve your issue?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/BotFramework-WebChat/issues/3153#issuecomment-628182984, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKUUTHH3ZZZEIAN5ZHOBXC3RRLUXBANCNFSM4M6IZHYQ.
Use caution when opening attachments or clicking on links from unknown senders
Acelity and its subsidiaries, including KCI, are now part of 3M. Learn more at www.3M.com/KCI

CONFIDENTIALITY NOTICE: This transmission (including any accompanying attachments)
is confidential, is intended only for the individual or entity named above, and is likely to
contain privileged, proprietary and confidential information that is exempt from disclosure
requests under applicable law. If you are not the intended recipient, you are hereby notified
that any disclosure, copying, distribution, use of or reliance upon any of the information
contained in this transmission is strictly prohibited. Any inadvertent or unauthorized disclosure
shall not compromise or waive the confidentiality of this transmission or any applicable
attorney-client privilege.
If you have received this transmission in error, please forward this message immediately to
<EMAIL_ADDRESS>

Hi @bdlawrence13
I want to clear up some possible confusion. While the Web Chat sample I linked to you is sample 4a, you need to understand that the Web Chat samples are totally separate from the Bot Builder samples and use a different numbering system. The Core Bot sample is Bot Builder sample 13 and not Web Chat sample 13, and the welcome event sample is Web Chat sample 4a and not Bot Builder sample 4a. It's important to understand that the Web Chat samples show you what you need to do while coding your Web Chat client, and that's a separate thing from coding your bot.
To address the issue of where to put the bot code, you can see the Core Bot code that handles a conversation update by sending a welcome message here: https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/javascript_nodejs/13.core-bot/bots/dialogAndWelcomeBot.js
You want to handles a webchat/join event instead of a conversation update. So instead of onMembersAdded you can use onEvent or onTurn and put the code from the Web Chat sample in there.
Because the Bot Builder SDK comes in multiple programming languages, the Bot Builder SDK samples come in multiple programming languages. I linked to the JavaScript Core Bot sample but I don't know if you're coding your bot in JavaScript. If you would like to help us help you then it would be a good idea to always post links to the things you're talking about. If you had linked to the Core Bot sample you're using then we'd know what language you're writing your bot in.
If you would like to gain a better understanding of how to build a bot, please feel free to review the documentation: https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-basics
(It would be appreciated if you could reply on GitHub instead of email so that your comments will be Markdown-enabled)

Got things to work. Thank you for taking the time to point me to the information needed.

I'm glad to hear it. Closing now.


React Native - Bug when select network.

Describe the bug
When I first logged into the MetaMask wallet - version 7.19.1 on 10th April 2024, using , I encountered an issue. After a successful connection, when I attempted to select and change the network, it would open the MetaMask app. Occasionally, it would display a modal to connect with the network, but other times it would not. I need to select by myself to connect network.
SDK Version (if relevant)

Client: React-Native
Version 0.73.6

To Reproduce
Steps to reproduce the behavior:

Click on W3Button
Select Metamask wallet
Connect to Metamask account.
Click on W3Button again
Click on Button to select network
Select another network
Waiting to show modal to accept network
If modal doesn't show need to select password by yourself
Comeback to App
Click on outside of bottom sheet.
Click on W3Button
Click on Button to select network.
Select the network you just selected again
Sometimes it will show {"context": "client"} Request expired. Please try again. Or {"context": "client"} {"code": -32602,"message":"May not specify default MetaMask chain."}

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Video
https://github.com/WalletConnect/walletconnect-monorepo/assets/127393321/72f0c1b8-3433-4274-83cd-a3fe57360160
Repository
https://github.com/tomheo11233aA/Web3SampleApp.git

Hey @tomheo11233aA 👋 Thanks for reporting.
This is a known issue from Metamask, they'll release a new version soon that aims to fix it. Let's wait until then to see if they solved it.
If this is blocking you, i recommend using another wallet in the meantime

@tomheo11233aA any new?

Closing for now. Reach again if the issue appears again


LF Script providing function to doing the post processing

The function allows specifying input and output directories.

Thanks a lot Thomas, from the sample output files, this seems to work great for a specific IU/scenario combination, but I'm having trouble getting it to work on the actual LF output. Also it's single threaded so it takes a very long time for thousands of results.

Here's some test data that I can reproduce the problem with, taken directly from the actual LF result data set.

Inputs, in a directory hierarchy exactly like the result data:
https://storage.googleapis.com/ntd-disease-simulator-data/endgame-exports/20240905/lf-post-processing-5-samples-AGO.tbz

Outputs, as generated by the script:
https://storage.googleapis.com/ntd-disease-simulator-data/endgame-exports/20240905/lf-post-processing-output-5-samples-AGO.tbz

The intermediate and aggregate post-processing output files are all empty apart from column headers and some basic info.
Any ideas on what's happening here would be great, I suspect it's perhaps because the LF data files are a slightly different format from the Oncho ones?

As it's single-threaded and we've got 10248 of those to churn through, it takes a veeeerry long time to work through them, and doesn't take any advantage of extra cores.
(The reason we don't "feel" this length-of-time pain when we already do this same post-processing in Oncho is that it's happening as an automatic post-process step during the runs, so (a) it's happening ~128 at a time, and (b) the time is absorbed into the overall oncho-IU/scenario-combo time that's already veeery long.)
So ... I wonder if it'll be possible to split into 2 scripts? The first one would take 2 arguments, 1 path to 1 CSV file and 1 output directory, and write out the post_processed file there, and then the second would do the aggregation of the post_processed files. That way we'd get 2 benefits - firstly we could use it as an integrated per-IU post-processing step as part of future runs, and secondly I can do the intermediate step on the existing data 128 times faster than now, and then we can always do the aggregation as a single step, like in Oncho. (We know from Oncho that the latter step is fast, even single-threaded.)
(As a sort-of-side-note, though: for SCH/STH and Trachoma, which do multi-processing, we'd want this also to use multiple cores in Python, as due to the multi-core nature of those models, the runners run them on IUs sequentially, so a single-threaded post-processing step would mean 127 cores sitting idle while waiting for 1 to finish its post-processing work - probably not a lot of time individually but it adds up a lot over large runs. I guess that means 2 separate versions, ugh.)

Anyway - sorry this hasn't worked immediately, thanks!

Sorry I should have been clearer - the file that worked for me (of the two you originally sent) was the one that started ntdmc rather than ihme - do you have that one to hand?
What I've understood from point 2 is - two function calls:

Given input directory, aggregate stochastical runs for single IU into standardised format (this function could be run in parallel, or itself could run in parallel with a param for number of jobs, whichever is easier for you)
Given a input directory (that should be the output directory of step 1) produce the three aggregate files (probably this has to be singled threaded but I will check if any obviously paralleisable bit).

@igorclark I've pushed  WIP parallel solution, not fully tested (but seems to work), though I had to comment out the progress bar for now. By default it uses all but one processor.

Ah wrong files! OK great, I'll try those later today, thanks a lot. And will also try out parallelising the split function. Thanks Thomas 👍

@igorclark Just a thought - this script is almost entirely bottlenecked on file IO - I wonder if parallelsing is actually just going to make it slower? Given that the right spreadsheets are much smaller (kb rather than mb) it probably won't make much difference.

Hiya, I tried the latest version using only the ntdmc files but got the following error:
Post-processing Scenarios: 0it [00:00, ?it/s]
Processing files: 0it [00:00, ?it/s]
Traceback (most recent call last):
  File "/home/igor/endgame-postprocessing/endgame_postprocessing/model_wrappers/lf/testRun.py", line 147, in <module>
    run_postprocessing_pipeline(input_dir="/home/igor/lf-20240830/Outputs/202408a/lf-ntdmc-csv-sample", output_dir=output_dir, num_jobs=2)
  File "/home/igor/endgame-postprocessing/endgame_postprocessing/model_wrappers/lf/testRun.py", line 140, in run_postprocessing_pipeline
    generate_aggregates_for_all_ius(output_iu_dir, output_aggregate_dir)
  File "/home/igor/endgame-postprocessing/endgame_postprocessing/model_wrappers/lf/testRun.py", line 86, in generate_aggregates_for_all_ius
    aggregated_df = iu_lvl_aggregate(combined_ius)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/endgame_postprocessing/post_processing/aggregation.py", line 81, in iu_lvl_aggregate
    aggregated_data.loc[:, columns_to_replace_with_nan] = aggregated_data.loc[
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexing.py", line 1184, in __getitem__
    return self._getitem_tuple(key)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexing.py", line 1377, in _getitem_tuple
    return self._getitem_tuple_same_dim(tup)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexing.py", line 1020, in _getitem_tuple_same_dim
    retval = getattr(retval, self.name)._getitem_axis(key, axis=i)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexing.py", line 1420, in _getitem_axis
    return self._getitem_iterable(key, axis=axis)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexing.py", line 1360, in _getitem_iterable
    keyarr, indexer = self._get_listlike_indexer(key, axis)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexing.py", line 1558, in _get_listlike_indexer
    keyarr, indexer = ax._get_indexer_strict(key, axis_name)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 6200, in _get_indexer_strict
    self._raise_if_missing(keyarr, indexer, axis_name)
  File "/home/igor/.local/share/virtualenvs/endgame-postprocessing-JYDhfSX5/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 6249, in _raise_if_missing
    raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: "None of [Index(['mean'], dtype='object')] are in the [columns]"

Here's a zip of the first 20 ntdmc files in the result list that I'm using, in case I'm still doing something wrong or looking at the wrong thing!
Cheers

The above error was caused (I believe) by pointing at the wrong directory, so I have done a bit of work on making the error much clearer. It will now produce the following:
/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/post_processing/file_util.py:63: UserWarning: 7 unexpected subdirectories in IU directory lf-ntdmc-csv-sample/lf-ntdmc-csv-sample/lf-ntdmc-csv/lf/scenario_0/SSD, contents will be ignored
  warnings.warn(
/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/post_processing/file_util.py:68: UserWarning: No IU data files found for IU lf-ntdmc-csv-sample/lf-ntdmc-csv-sample/lf-ntdmc-csv/lf/scenario_0/SSD
  warnings.warn(f"No IU data files found for IU {path}")
/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/post_processing/file_util.py:63: UserWarning: 13 unexpected subdirectories in IU directory lf-ntdmc-csv-sample/lf-ntdmc-csv-sample/lf-ntdmc-csv/lf/scenario_0/GNQ, contents will be ignored
  warnings.warn(
/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/post_processing/file_util.py:83: UserWarning: Unexpected file foo.txt in IUs directory lf-ntdmc-csv-sample/lf-ntdmc-csv-sample/lf-ntdmc-csv/lf/scenario_0/GNQ, expecting .csv only
  warnings.warn(
Traceback (most recent call last):
  File "/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/model_wrappers/lf/testRun.py", line 152, in <module>
    run_postprocessing_pipeline(
  File "/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/model_wrappers/lf/testRun.py", line 143, in run_postprocessing_pipeline
    run_aggregate_runs_for_each_iu(input_dir, output_iu_dir, num_jobs=num_jobs)
  File "/home/thomas/dev/endgame-postprocessing/endgame_postprocessing/model_wrappers/lf/testRun.py", line 48, in run_aggregate_runs_for_each_iu
    raise Exception(
Exception: No data for IUs found - see above warnings and check input directory

It is still a bit tricky to parse but hopefully is enough for now. But feedback welcome, @igorclark in particular, would the above have been enough do you think? Or would your eyes have glazed over?!

Ha, yeah I think that's fine, the last exception is the key one and the message is clear, nice one!

Fixed coverage by adding a snapshot test (I think we should have one of these for each model - @adiramani if you could have a look at adding one for oncho?).
Won't pull out the parallel stuff, can leave for a follow up PR if it makes sense, but should do some quick profiling to see if it is even any faster, as I suspect not.


cleanup(rules): initial tagging of sandbox or incubating rules round5

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area rules

/area registry

/area build

/area documentation

What this PR does / why we need it:
Initially tag remaining rules either w/ sandbox or incubating maturity. First pass, will be re-balanced and corrected as needed after each rule has been tagged alongside general improvements to rules conditions, descriptions or output fields consistency changes that will follow.
@LucaGuerra
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incertum
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [incertum]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 1e4f713e068258ad9950919931ea80e33887c634

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: incertum, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [incertum,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


feat: add opentelemetry 1.0.0beta7 release

update opentelemetry with release 1.0.0beta7

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


Requests are not async actually

I noticed that requests are not sent asynchronously no matter I call methods like \Microsoft\Kiota\Http\GuzzleRequestAdapter::sendPrimitiveAsync()
It ends up with calling the sync Guzzle send() method:
\GuzzleHttp\Client::send()
Example of the code:
<?php

require 'vendor/autoload.php';

use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
use Microsoft\Graph\GraphServiceClient;

// skip auth

$graphServiceClient = new GraphServiceClient($tokenRequestContext);
$files = [
    'XXX' => 'XXX.jpg', // IDs are changed
    'YYY' => 'YYY.jpg',
    'ZZZ' => 'ZZZ.jpg',
];

foreach ($files as $fileId => $fileName) {
    print("Downloading file $fileName\n");
    $promise = $graphServiceClient->drives()
        ->byDriveId('AAAAAAAAAA')->items()
        ->byDriveItemId($fileId)->content()->get()->then(
        function($fileContent) use ($fileName) {
            print("File $fileName downloaded successfully\n");
            file_put_contents($fileName, $fileContent);
        }
    );
}

Every file download is running synchronously, but I expect it running in parallel.
Thanks.

Thanks for catching this @sevka. Will look into it asap.


Feature suggestion: Compile-time reflection of string literal unions and enums

say we have
type Fish = "one" | "two" | "red" | "blue";

or
enum Fish
{
   one,
   two,
   red,
   blue
}

It would be useful to have a way to refer to the possible values at runtime:
something like __valuesof(Fish) would transpile to
["one" , "two" , "red", "blue"] in both cases.
Also consider __enummap(Fish) that would transpile to
{
	"one":1,
	"two":2,
	"red":3,
	"blue":4
}

or explicit enum values if specified. This would allow C#'s Enum.Parse functionality

The issue of type serialization/"reflection" has been discussed multiple times (https://github.com/Microsoft/TypeScript/issues/2902, https://github.com/Microsoft/TypeScript/issues/2577, https://github.com/Microsoft/TypeScript/issues/3060). we already have https://github.com/Microsoft/TypeScript/issues/3628 to track this discussion; so i suggest moving this proposal to that issue.


fd to /dev/gdrdrv should not be sharable with other processes

Since struct file in gdrdrv keeps the internal data for the process that opened the file, being able to share the fd can lead to undesired behaviors. Create a unit test to make sure that fd is not sharable:

via fork
via dup
via unix socket

Merged the PR.
Closing this issue.


Few changes

Changed gitignore to ignore Rider/Idea files
Variables are now using convention.
Fixed namespace
Translated text to English
Removed dead code
Upgraded version to 1.1.0

Thanks for your fixes, people that doesn't speak spanish will help you.


Problem with account update, with no update

Hello,
when I connect to kresus, an update of my bank account is done (LCL account)
<IP_ADDRESS> - GET /banks HTTP/1.1 200 5870 - 236 ms
<IP_ADDRESS> - GET /categories HTTP/1.1 200 2 - 157 ms
<IP_ADDRESS> - GET /banks?withAccountOnly=true HTTP/1.1 200 69 - 229 ms
<IP_ADDRESS> - GET /banks/getAccounts/ef60d9f670c6c0d57ba2999a4e004cc5 HTTP/1.1 200 246 - 231 ms
<IP_ADDRESS> - GET /accounts/getOperations/ef60d9f670c6c0d57ba2999a4e010176 HTTP/1.1 200 18668 - 209 ms
<IP_ADDRESS> - GET /accounts/getOperations/ef60d9f670c6c0d57ba2999a4e010176 HTTP/1.1 304 - - 214 ms
In this situation, the account does not need any update (HTTP 304 returned).
But if I click on the "synchronize now" button, I get a popup with :
xhr error: error
Internal Server Error
And here is the log :
Weboob is not available -- null
<IP_ADDRESS> - GET /accounts/retrieveOperations/ef60d9f670c6c0d57ba2999a4e010176 HTTP/1.1 500 90 - 133 ms
It looks like weboob is not release propperly when 304 answer is sent.

Hi! I'm planning to release a new version of kresus which should hopefully solve this issue. When it's out, you'll get a notification for updating kresus, and hopefully we should have more debugging tool. Hopefully, this could be an issue I've solved when importing weboob into kresus...

OK. I'll come back with comments after the update

Hey, can you try with the updated version, please?

I tried to update this morning, and the update didn't go well. I'll try to post logs tonight, but I cannot promise I'll have time. If I remember well, dowloading weboob each time is to long

Hi ZeHiro, could you try updating Kresus and trying again, please?

OK. I just restarted ;y cozy, so weboob is still resinstalling. And on the PI2, it takes its time. I update the ticket asap.

fixed. can be closed

Cool, thank you!


skaffold: 1.9.1 -> 1.10.1

There's a bug in 1.9.1 where skaffold debug adds a spurious args: "" to the deployment manifest. It was fixed in 1.10. Supersedes #87826 (can someone please tell me what to do to get these merged?).

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

[x] NixOS
[ ] macOS
[x] 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
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 89291 1

1 package built:
- skaffold


Can't pickle local object 'BezierSampler.get_bezier_coefficient..'

In the windows10, I meet the following problem.
D:\Users\409\Anaconda3\envs\pad\python.exe F:/PycharmProjects/pytorch-auto-drive-master/main_landet.py
D:\Users\409\Anaconda3\envs\pad\lib\site-packages\torch\package_directory_reader.py:17: UserWarning: Failed to initialize NumPy: No module named 'numpy.core._multiarray_umath' (Triggered internally at  ..\torch\csrc\utils\tensor_numpy.cpp:68.)
_dtype_to_storage = {data_type(0).dtype: data_type for data_type in _storages}
F:\PycharmProjects\pytorch-auto-drive-master\utils\models\lane_detection\laneatt.py:22: UserWarning: Can't complie line nms op for LaneATT. Set verbose=True for load in /utils/csrc/apis.py L9 for details.
Loaded torchvision ImageNet pre-trained weights V1.
Not using distributed mode
cuda
Traceback (most recent call last):
File "F:/PycharmProjects/pytorch-auto-drive-master/main_landet.py", line 65, in
runner.run()
File "F:\PycharmProjects\pytorch-auto-drive-master\utils\runners\lane_det_trainer.py", line 35, in run
for i, data in enumerate(self.dataloader, 0):
File "D:\Users\409\Anaconda3\envs\pad\lib\site-packages\torch\utils\data\dataloader.py", line 359, in iter
return self._get_iterator()
File "D:\Users\409\Anaconda3\envs\pad\lib\site-packages\torch\utils\data\dataloader.py", line 305, in _get_iterator
return _MultiProcessingDataLoaderIter(self)
File "D:\Users\409\Anaconda3\envs\pad\lib\site-packages\torch\utils\data\dataloader.py", line 918, in init
w.start()
File "D:\Users\409\Anaconda3\envs\pad\lib\multiprocessing\process.py", line 105, in start
self._popen = self._Popen(self)
File "D:\Users\409\Anaconda3\envs\pad\lib\multiprocessing\context.py", line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "D:\Users\409\Anaconda3\envs\pad\lib\multiprocessing\context.py", line 322, in _Popen
return Popen(process_obj)
File "D:\Users\409\Anaconda3\envs\pad\lib\multiprocessing\popen_spawn_win32.py", line 65, in init
reduction.dump(process_obj, to_child)
File "D:\Users\409\Anaconda3\envs\pad\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'BezierSampler.get_bezier_coefficient..'

@Zhuanglong2 Hi! Did you launch a training? can you provide the config file for your model, and some info about your local machine? e.g., CPU, GPU, memory

Also, I think your error message includes something about a numpy error? It could be related.

@Zhuanglong2你好！你开始培训了吗？你能提供你的模型的配置文件，以及关于你本地机器的一些信息吗？例如，CPU、GPU、内存

Thank you for your responce. I have addressed this problem by setting"numer works = 0".

When i run "lane_video.py", i meet this problem"RuntimeError: input must be contiguous". Then, I debug this code, and i find the problem appears in "flipped = self.proj2_conv(flipped, feature)". This is DCN_V2_Ref.

When i run "lane_video.py", i meet this problem"RuntimeError: input must be contiguous". Then, I debug this code, and i find the problem appears in "flipped = self.proj2_conv(flipped, feature)". This is DCN_V2_Ref.

Could you provide the exact command so I can try reproduce this?
Usually this kind of problems can be solved by adding .contiguous() in proper places.

Thank you. I just run "lane_video.py" by following the"VISUALIZATION.md", and meet this problem. W[hen i DEBUG, i find that the code stops in "modulated_deform_conv.py".In this part, I find it have not class "apply".

@Zhuanglong2 Could you try changing this line:
https://github.com/voldemortX/pytorch-auto-drive/blob/2b0d5ec5f7536c9d2d2b6d8498718a8fca2ab276/utils/datasets/video.py#L28
to:
        images = images[..., [2, 1, 0]].permute(0, 3, 1, 2).contiguous() / 255.0  # BHWC-rgb uint8 -> BCHW-rgb float

@Zhuanglong2 Could you try changing this line:
https://github.com/voldemortX/pytorch-auto-drive/blob/2b0d5ec5f7536c9d2d2b6d8498718a8fca2ab276/utils/datasets/video.py#L28
to:
        images = images[..., [2, 1, 0]].permute(0, 3, 1, 2).contiguous() / 255.0  # BHWC-rgb uint8 -> BCHW-rgb float

In my machine, without this change I can see a harmless warning for mixed memory format. However, with or without this change the code can still run properly.

Tank you very much! I have addressed this problem. In fact, my coding environment is windows 10, so i meet some problems. But my friend using Ubuntu has not problems.  Your open-source framework works great! Moreover, I have watched your video of this paper, and i am shocked that you are only graduate student! In the future, we will continue lane detection task following your footsteps. In the last, Happy Mid-Autumn Festival!

Thanks for your interest in our work! Happy Mid-Autumn Festival!

This issue seems to be addressed. I'll close it for now. Feel free to continue commenting for reopen/open a new one.


RN-0.73 change Android configs for RN 0.73 compatibility

🔹 JIRA Ticket(s) if any

External PR

✏ Description
React Native 0.73 will depend on Android Gradle Plugin (AGP) 8.x. This will require all the libraries to specify a namespace in their build.gradle file.
Details
I'd like to share some of the upcoming changes that will happen in 0.73, which is still a bit far, but we'd rather start earlier rather than later.
React Native 0.73 will depend on Android Gradle Plugin (AGP) 8.x, which brings a lot of improvements for Android apps but also a series of notable changes.
Most importantly:
App/Library Developers will now have to install and use Java 17
Library Developers will have to specify a namespace in their build.gradle file.
Specifically, the last change is a breaking change and will make libraries that are not specifying a namespace incompatible with React Native 0.73 (your project won't build).
Support for namespace was added in AGP 7.3.x, which ships with React Native 0.71. Libraries that published a new version with a namespace declared for 0.71 or 0.72 don't need further update. So we invite library authors to do those changes as soon as possible so by the time 0.73 is out, most of the apps are adapted.
What you need to change
Library authors will have to update their android/build.gradle file as follows:
android {
+   namespace = "com.iterable.reactnative"
    ...
}

and remove the package definition from their AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.iterable.reactnative">
+          >
...
</manifest>

Further reading
Official Google documentation on namespaces is here.

I added back the namespace to AndroidManifest to keep previous RN compatible
https://github.com/react-native-community/discussions-and-proposals/issues/671#issuecomment-1597386954


./bin/docker-dev-shell error: "ERROR: '~ondrej' user or team does not exist."

Is there an existing issue for this?

[X] I have searched the existing issues

Package ecosystem
MacOS/Docker
Package manager version
No response
Language version
No response
Manifest location and content before the Dependabot update
No response
dependabot.yml content
No response
Updated dependency
No response
What you expected to see, versus what you actually saw
./bin/docker-dev-shell runs without errors.
Native package manager behavior
No response
Images of the diff or a link to the PR, issue, or logs
No response
Smallest manifest that reproduces the issue
No response

I'm trying to dry-run dependabot locally on my MacOS to debug why it's no longer detecting dependencies for my python package. Readme says to run bin/docker-dev-shell before running the dry-run script, but that one fails on docker image build:
 => ERROR [10/40] RUN add-apt-repository ppa:ondrej/php   && apt-get update   && apt-get install -y --no-ins  25.1s
------
 > [10/40] RUN add-apt-repository ppa:ondrej/php   && apt-get update   && apt-get install -y --no-install-recommends     php7.4     php7.4-apcu     php7.4-bcmath     php7.4-cli     php7.4-common     php7.4-curl     php7.4-gd     php7.4-geoip     php7.4-gettext     php7.4-gmp     php7.4-imagick     php7.4-imap     php7.4-intl     php7.4-json     php7.4-ldap     php7.4-mbstring     php7.4-memcached     php7.4-mongodb     php7.4-mysql     php7.4-redis     php7.4-soap     php7.4-sqlite3     php7.4-tidy     php7.4-xml     php7.4-zip     php7.4-zmq     php7.4-mcrypt   && rm -rf /var/lib/apt/lists/*:
#14 25.01 Cannot add PPA: 'ppa:~ondrej/ubuntu/php'.
#14 25.01 ERROR: '~ondrej' user or team does not exist.
------
executor failed running [/bin/bash -o pipefail -c add-apt-repository ppa:ondrej/php   && apt-get update   && apt-get install -y --no-install-recommends     php7.4     php7.4-apcu     php7.4-bcmath     php7.4-cli     php7.4-common     php7.4-curl     php7.4-gd     php7.4-geoip     php7.4-gettext     php7.4-gmp     php7.4-imagick     php7.4-imap     php7.4-intl     php7.4-json     php7.4-ldap     php7.4-mbstring     php7.4-memcached     php7.4-mongodb     php7.4-mysql     php7.4-redis     php7.4-soap     php7.4-sqlite3     php7.4-tidy     php7.4-xml     php7.4-zip     php7.4-zmq     php7.4-mcrypt   && rm -rf /var/lib/apt/lists/*]: exit code: 1

@rafalp Are you still hitting this? What shell are you running this under?
The ondrej is coming from the ppa name that we use to install php... very weird that the ~ is creeping in... I cannot repro this at all, I'm using zsh myself and everything working fine.

I haven't tried. I wanted to run Dependabot locally to debug why it claims that my Python library has no dependencies and I've worked around this issue by removing PHP dependency from Docker image altogether.

Here it's suggested that this is a server side issue: https://askubuntu.com/questions/1112174/why-cannot-use-ppaondrej.
We may consider installing php different if this is not very reliable. It seems the same version we're installing from the PPA is already available by default? https://packages.ubuntu.com/focal/php7.4

I'm going to close as unable to repro, but if someone starts hitting this again please comment and we can re-open.
We're also in the middle of bumping PHP versions, so not sure we should switch to Ubuntu default PHP version right now.

I actually hit this again very recently 😬
I did try this diff
diff --git a/Dockerfile b/Dockerfile
index 19811c503..7cd3b374b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -158,8 +158,7 @@ RUN [ "$TARGETARCH" != "amd64" ] \

 # Install PHP and Composer
 ENV COMPOSER_ALLOW_SUPERUSER=1
-RUN add-apt-repository ppa:ondrej/php \
-  && apt-get update \
+RUN apt-get update \
   && apt-get install -y --no-install-recommends \
     php7.4 \
     php7.4-apcu \
@@ -187,7 +186,6 @@ RUN add-apt-repository ppa:ondrej/php \
     php7.4-xml \
     php7.4-zip \
     php7.4-zmq \
-    php7.4-mcrypt \
   && rm -rf /var/lib/apt/lists/*

 RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer1 --version=1.10.26

And it worked flawlessly, but it would require rolling back https://github.com/dependabot/dependabot-core/pull/4170. We never knew why it was added so I guess it wouldn't be a big deal, but I only run into this once, so no big deal either if we do nothing about this.


Issues with 8 node cluster

I am getting this error if monitor_names has more than 4 servers.
evel=error msg="problem read OpenSession response. Status code: 500 Internal Server Error" func="main.(*perfClient).processRequest()" file="performance_client.go:55" operation="[OpenSession]" session=
time="2022-06-20 03:13:10.835" level=error msg="session request fail witk message response status is 500 Internal Server Error" func="main.(*perfMonService).OpenSession()" file="perfMonService.go:41" monitorNames="

Hi @pokornyIt thank you for your reply, I did see that in the logs but the strange thing is if I split my cluster nodes into 3 separate exporters I am able to connect to all my nodes successfully.

Hello @roybalrm, I made a new version of this tool after a long time. This new version solves your problem with a number of servers. The root problem was in the request rate limit.


Data augmentation

Hi, I just had 2 very quick questions on data augmentation. As I have data that does not have default orientation, I wanted to implement both horizontal and vertical random flips in the data augmentation pipeline, and just wanted to check if the best way to do this was to add both these lines in the train_pipeline:
dict(type='RandomFlip', flip_ratio=0.5, direction='horizontal'),
dict(type='RandomFlip', flip_ratio=0.5, direction='vertical'),

Also, just wanted to ask, when implementing random cropping, whether it is standard practice to perform cropping first followed by resizing. Thanks!

Q1: It will result in unexpected behavior if you use two consecutive RandomFlip. We will fix it soon.
Q2: No standard practice for that, and you may decide to perform which one first.

@xvjiarui Many thanks for looking into this!
So if I set flip_ratio=0.75, direction=['horizontal',  'vertical',  'diagonal'], does this mean it will be horizontally flipped with probability 0.25, vertically with probability 0.25 and horizontally & vertically with probability 0.25?

@sehyungp92
Yes!


Testing Setup (WIP)

Todo:

Finish writing tests for all the components and containers.
Set up testing for redux

Hey @zacck thanks for your suggestion I am definitely going to look into this, new to testing react components more accustomed to very simple unit testing with tape.

hey @cybot1711 if I am not mistaken babel-preset-env wont include any stage-x plugins such as syntax-dynamic-import and transform-class-properties which is what stage-2 includes plus stage-3 which includes things like transform-object-rest-spread all of which is being utilized by this boilerplate.
So then we would have to manually include all these various stage-2 and stage-3 plugins which to me defeats the purpose in a sense? I don't know how do you feel about this @rocbear?
However I think its safe to remove the es2015 preset in favor of babel-preset-env which i have now opened a PR for #18, thanks for the suggestion @cybot1711.

Changes Unknown when pulling f511e297f9697e37136349e6fd849d4c6eef368f on feature/testing into ** on dev**.

Changes Unknown when pulling 72eeb12ee46a886c192740517e6c9c680e394017 on feature/testing into ** on dev**.

Changes Unknown when pulling 5ca58719f649bf75bd43ac62df83825b6e4cd55a on feature/testing into ** on dev**.

Changes Unknown when pulling 254649ab27ee4f94fef2e9a1782034a6734bc462 on feature/testing into ** on dev**.

Changes Unknown when pulling 4e2e22aac5cb53c826524c3af0f5c19bde28393b on feature/testing into ** on dev**.

Changes Unknown when pulling d228cbcc5ba85f7a2f00cc57e3e3986a33a57778 on feature/testing into ** on dev**.


inconsistent behavior around two-way binding and expressions

I'm using a function expression to get the value for a input field in a form based on some dynamic state like so:
value = {{ getTranslation('name', currentLocale) }}
which looks into something like:
    "en-GB": "some localised value",
    "en-US": "some other value"
}```

I knew two-way binding wouldn't work in this case so I'm using my own on-change/on-input event pair to update the state.
However, I was expecting to see a single warning about expressions not working with two-way binding but instead get a completely different hard error, every time the you input data into the form.

```Computed properties without setters are read-only. (This may change in a future version of Ractive!)```

I messed around in fiddle and it seems if I use that expression directly on a input element I get what I expect but my input is actually inside a component.
See my fiddle:
http://jsfiddle.net/a7uafx0a/

Case 2 is more similar to my real setup while case 1 is a example of the warning I expected to see.

Why does ractive think the second case is a computed property?

I tried setting twoway=false and that would work but the problem is I can't seem to set twoway dynamically in any way. I've tried various expression forms and it only works if i hardcore true or false. I use this component in lots of places very usefully and sometimes it has a very straightforward value which can be bound and in some cases it isn't and I instead pass a 'onChange' callback to the component so I can deal with the sync manually.

If I could do this

```twoway="{{onChange? false : true}}"```

on the underlying input element inside the component I would be happy but... this doesn't work for me.

I could live with passing twoway=false on the components in this use case that doesn't seem to work either.

Thoughts?

So your main issue is trying to two-way derrived data. Instead of using a data function to get the translation, I suggest you do computed properties with an explicit getter and setter. That way, you get a chance to transform the data to display as well as setting it back.
<input type="text" value="{{translatedText}}" />
<script>
component.exports = {
  computed: {
    translatedText: {
      get: function(){ return /* original -> translation */ },
      set: function(text) { this.set(/* translation -> original */); }
    }
  }
}
</script>

Computed properties without setters are read-only. (This may change in a future version of Ractive!)

This happens when you use a computed property that doesn't provide a setter function on a two-way element (like inputs). By default, if you don't provide an explicit setter, all computed properties are getters (read-only).
Now the problem of this error message is it doesn't tell you which input element used the computed property or where that computed property resides. Yes, this can happen when you bind a read-only computed property of an ancestor component to a descendant component's input element.
Long story short: You might want to check the data source if it's a computed property from an ancestor and if it has a setter.

My issue was really just confusion over why the 2 cases in the flddle produced different errors. A one time warning when ractive obviously couldn't twoway bind an expression and a spammy error. I didn't want ractive to attempt to two-way bind... computed properties with setters don't work for my case but I have another working solution. (apologies, the fiddle was over simplified to show the errors but in fact I need a parameter for my 'getter' so... it's just a normal function expression and I use a callback function on-change to respond to state change)
In any case I figured out how to control the twoway attr dynamically by setting it conditionally in my components onconfig method so the errors are silenced and everything works peacefully. Still not sure why the second case fails so differently, obviously something to do with using a component vs having the expression directly on an input so I thought it seemed confusing is all.

Since this is really old, and you can now change the twoway directive on the fly, I'm going to close this.


Start Page slow with large actions table

Description
I am using Gitea v1.21.3, and my actions table is about 4.5G. I have 87 repos and belong to several orgs with additional repos.
When logging in the initial query to populate the start page takes 45 seconds to run. After adding two indexes the run time is down to 6.5 seconds... still a long time, but better.
New Indexes:

user table created index on:

id
visibility
keep_activity_private
type

team_user table created index on:

uid

Screenshots

Gitea Version
1.21.3
Can you reproduce the bug on the Gitea demo site?
No
Operating System
Windows 10
Browser Version
Firefix 121.0

Thanks for this report. Which DB are you using? And, just because I'm curious, how many rows are in the actions table, what timespan do they cover, and is the significant number of rows in the actions table primarily due to mirrors updating or some other reason?

Maybe duplicated #28155 and resolved by #28546

@techknowlogick We are using MariaDB 11.1, there currently 6,140,941 records in the table. Records range from Sept 30 2019 to today. It looks like the majority of the operations are op_type = 5, which looks to me to be commits.

Since #28546 merged, I think this can be closed. Please feel free to reopen it if there is further information.


[query] Which is better to use...?

Seeing change_order.py, I realized that you used @contextmanager functions to use with statement. You didn't use them in other scripts. I would like to know why you used it. Is it better? Does it close automatically the reference or something like that?
Another question: can I ask this queries here? 😁

@MarioMey I've used context managers a lot in Scripted-text. Yes, yes as soon as its leaves closure.
You might also want to use ExitStack since it can select context mangers based on condition. It also reduces nesting level e.g consider this code:
def sanic_effect(self):
    "really fast speed text scrolling(filter)"
    # add filter scroll to source if not present,
    self.update_text(self._scripted_text)
    with source_ar(self.source_name) as source, filter_ar(
        source, "py_scroll"
    ) as scroll:
        if scroll is None:
            with data_ar() as settings:
                obs.obs_data_set_int(settings, "speed_x", 5000)
                with p_source_ar("scroll_filter", "py_scroll", settings) as _source:
                    obs.obs_source_filter_add(source, _source)

        with data_ar(scroll) as filter_settings:
            obs.obs_data_set_int(filter_settings, "speed_x", 5000)
            obs.obs_source_update(scroll, filter_settings)
            if self.duration // self.refresh_rate <= 3:
                obs.obs_source_filter_remove(source, scroll)
                self.duration = 0

Using ExitStack unreleased version
def sanic_effect(self):
    "really fast speed text scrolling(filter)"
    # add filter scroll to source if not present,
    self.update_text(self._scripted_text)
    with ExitStack() as stack:
        source = stack.enter_context(source_ar(self.source_name))
        scroll = stack.enter_context(filter_ar(source, "py_scroll"))
        if scroll is None:
            settings = stack.enter_context(data_ar())
            obs.obs_data_set_int(settings, "speed_x", 5000)
            _source = stack.enter_context(
                p_source_ar("scroll_filter", "py_scroll", settings)
            )
            obs.obs_source_filter_add(source, _source)
        filter_settings = stack.enter_context(data_ar(scroll))
        obs.obs_data_set_int(filter_settings, "speed_x", 5000)
        obs.obs_source_update(scroll, filter_settings)
        if self.duration // self.refresh_rate <= 3:
            obs.obs_source_filter_remove(source, scroll)
            self.duration = 0

Sure, I think we can try using Discussions

@MarioMey I've used context managers a lot in Scripted-text. Yes, yes as soon as its leaves closure.
You might also want to use ExitStack since it can select context mangers based on condition. It also reduces nesting level e.g consider this code:
def sanic_effect(self):
    "really fast speed text scrolling(filter)"
    # add filter scroll to source if not present,
    self.update_text(self._scripted_text)
    with source_ar(self.source_name) as source, filter_ar(
        source, "py_scroll"
    ) as scroll:
        if scroll is None:
            with data_ar() as settings:
                obs.obs_data_set_int(settings, "speed_x", 5000)
                with p_source_ar("scroll_filter", "py_scroll", settings) as _source:
                    obs.obs_source_filter_add(source, _source)

        with data_ar(scroll) as filter_settings:
            obs.obs_data_set_int(filter_settings, "speed_x", 5000)
            obs.obs_source_update(scroll, filter_settings)
            if self.duration // self.refresh_rate <= 3:
                obs.obs_source_filter_remove(source, scroll)
                self.duration = 0

Using ExitStack unreleased version
def sanic_effect(self):
    "really fast speed text scrolling(filter)"
    # add filter scroll to source if not present,
    self.update_text(self._scripted_text)
    with ExitStack() as stack:
        source = stack.enter_context(source_ar(self.source_name))
        scroll = stack.enter_context(filter_ar(source, "py_scroll"))
        if scroll is None:
            settings = stack.enter_context(data_ar())
            obs.obs_data_set_int(settings, "speed_x", 5000)
            _source = stack.enter_context(
                p_source_ar("scroll_filter", "py_scroll", settings)
            )
            obs.obs_source_filter_add(source, _source)
        filter_settings = stack.enter_context(data_ar(scroll))
        obs.obs_data_set_int(filter_settings, "speed_x", 5000)
        obs.obs_source_update(scroll, filter_settings)
        if self.duration // self.refresh_rate <= 3:
            obs.obs_source_filter_remove(source, scroll)
            self.duration = 0

Sure, I think we can try using Discussions


WIP: Better dune support

This adds better support for dune, see #344.
Current caveats:

This blocks when dune needs to compile dependencies. Potentially we could make calling start non-blocking?
If you create a new unsaved buffer with dependencies from your current project, you will have to save first before starting Coqtail, as otherwise it won't find the dependencies. (this is something which works when using _CoqProject, I think, but isn't a very common occurrence)
This should have better error reporting. E.g. report that this is a dune project, but dune does not know how to build the file, etc.

For making CoqStart non-blocking, I don't really have any idea how to implement that, but it would be pretty nice to have (or even just emit a message that dependencies are being compiled).
Alternatively, we could also pass --no-build to dune, which skips building the dependencies. That would mirror the current behavior for _CoqProject.
Maybe there should also be a configuration option to enable/disable calling dune at all?

Thanks, this looks like a great start.

This blocks when dune needs to compile dependencies.

I can look into making CoqStart non-blocking. I don't remember right now if there's a technical reason I haven't done this or if there just hasn't been a need for it so far. I think in either case it would make sense to also have an option to enable/disable automatically building dependencies.

Maybe there should also be a configuration option to enable/disable calling dune at all?

I agree. I was thinking something like g:coqtail_use_dune that can be 1 (enable), 0 (disable), or 'auto' (enable if the current or any parent directories have a dune-project file).
If you have the time and interest to continue working on this, feel free, but if not I could take it from here. Just let me know what parts, if any, you want to work on so we don't get in each other's way.

Thanks! What you write makes sense.
The remaining tasks all seem to require more advanced vim knowledge than I have, and I'll probably not have too much time in the next two weeks to play with that. So if you're happy to look into that, please feel free to take it from here! Of course, otherwise I'll also be happy to work on that once I get more time.

I've got some time to work on this now. I think I'll look into adding the config options you suggested.

I added two configuration flags:

g:coqtail_build_system, which can be dune, coqproject, prefer-coqproject, or prefer-dune. I added details on their behavior to the documentation. (The default is prefer-dune, which matches with the previous behavior of this MR.)
g:coqtail_dune_compile_deps, which determines whether dune compiles the dependencies before or not.

I also tried to make CoqStart asynchronous. I'm not sure if the way I did it is the best way, so feedback is appreciated.

I fixed an issue where stopping Coq (e.g. when dune or coqtop failed to start up correctly) would deadlock vim, due to a reentrancy issue with the channel implementation (?) when invoking CoqStop from the CoqStart callback.
Now CoqStop is also asynchronous.
Another issue I discovered, which I haven't fixed yet, is that commands (like CoqGoToLine) which trigger CoqStart when Coqtail hasn't been started yet, now override the shown error message in case CoqStart failed, as they don't wait for CoqStart to succeed before being sent to the python server.

if s:running() || coqtail#start() | cmd | endif

it could look something like
if s:running() | cmd | else | coqtail#start(string(cmd)) | endif

And then cmd gets passed to coqtail#after_startCB to be executed on success.

Thanks for reviewing! Sounds good, I'll make the change

I made the change you suggested, and this seems to work now.
One slightly annoying thing is that it only shows the last line of the error message in the error prompt and you have to do :messages to see the full error message. I don't know how to change that behavior.
Another issue that was introduced by making CoqStop asynchronous is that doing :q while Coqtail is running stops Coqtail, but does not actually quite the buffer. Probably some of the sequencing with disabling the autocmds in CoqStop is wrong, but I can't really figure it out. Maybe you could take a look at this @whonore?

Is there anything I can do to make this easier to review (e.g. provide an example dune setup for an example project with instructions how to set it up, provide more documentation, etc.)?

Sorry for the delayed response. I’ve been on vacation, but I’m back now and I’ll try to get to this by this weekend at the latest. Thanks for your patience.
I have some sample projects I can test with, but if you have any test cases or workflows that might help check subtle corner cases, that would be appreciated.

Sorry for the delayed response. I’ve been on vacation, but I’m back now and I’ll try to get to this by this weekend at the latest. Thanks for your patience.

Thanks! No worries, hope you had a good vacation.

I have some sample projects I can test with, but if you have any test cases or workflows that might help check subtle corner cases, that would be appreciated.

I mostly tested this on some projects I'm working on, for instance RefinedC.
On these projects, this has worked well the past two months.
I encountered some corner cases recently which we should probably fix:

if switching the buffer while the asynchronous start is going on, as the callback is executed in the context of the wrong buffer
if calling CoqStop while CoqStart is running and dune is compiling dependencies, the dune process won't be properly stopped and keeps running until it succeeds. Probably we should kill it when receiving a stop signal
if calling CoqToLine while Coq hasn't started yet, coqtail#toline will be called after the start has happened, and so the current line will be evaluated at that time and not at the time when CoqToLine was called. Probably we should evaluate this earlier in that case.

I'm not sure how to properly fix the first point. Maybe the functions we call in the After_startCB should receive the buffer to execute in as an argument, and then use getbufvar to get the variables in the right scope? Or is there a more elegant way?

if switching the buffer while the asynchronous start is going on, things go wrong, as the after_startCB callback is executed in the context of the wrong buffer

I hacked around this by temporarily switching the buffer in the start callback, which seems to work fine for now: https://github.com/whonore/Coqtail/pull/347/files#diff-12174b01a001d27521768009705e83d295825ed51961111f5edb2f82662a8e3fR457

if calling CoqStop while CoqStart is running and dune is compiling dependencies, the dune process won't be properly stopped and keeps running until it succeeds. Probably we should kill it when receiving a stop signal

As a first step, I adapted the "interrupt" signal to also terminate the dune process, if it is currently running.
Then, maybe we should just send an "interrupt" to the Python server first when stopping? (or maybe only when Coqtop is has not started already, to not change the existing behaviour?)

Thanks for the review and the comment!

. I'm inclined to leave this for now and fix it only if it actually turns out to be an issue for people.

Okay, sounds good.

Additionally, Coqtop.stop should probably kill the dune process if self.dune is not None.

I think with the current implementation, the python Coqtop.stop will never be called while dune is running, as the handling of calls in the Python server is synchronous and running dune makes Coqtop.start block. Currently, Coqtop.start will only return once dune has terminated. Hence the suggestion to go via interrupt, which seems to be the only way in the python server to interrupt the current call.
I'll try the implementation that does an interrupt first and report back on whether there are any issues with that.

Yes, looks great! Everything still works for me. Thanks!


Changes on discord's domain

Hi !
I'm trying to create a link and actually the discord changed the domain on hook urls, now they are using "discordapp.com".
On the site, when i put this new link, returns to me a error "Please use a Discord webhook URL!".
By the way, thank you so much for this project, so far i have only been able to send alerts to my discord thanks to you!

Hey! discordapp.com is the old URL scheme - you should be using discord.com now instead. You should be able to just change the root domain to the new style, the rest of the URL will be the same!
For more information, you can see @colinloretz's message here in the Discord Developers server

Web accessible link: https://github.com/discord/discord-api-docs/discussions/6490 (thanks Colin!)


Fix modifier keys

Fixes #66
The reason why modifier keys don't work is their state is reset in clear_input_state() called on Event::NewEvents every tick.
This PR removes the lines that reset the states.

This looks great at first glance! I'll merge locally and give it a test - thank you!


Failed to find library "liblept1760.so" for platform x64

for production i got this error messages :  Failed to find library "liblept1760.so" for platform x64. but i'm pretty sure located all binary file x64folder and x86folder, the environtment production is linux centos 7
but the funny thing is, if i run in windows server its look fine , help me please

Can't really provide much assistance with Linux, do a search of the issues
as others had to go through some loops to get it working properly. From
memory it was due to some hidden dependencies.
On Fri, 3 Jul 2020, 17:09 tossasyahlevi01<EMAIL_ADDRESS>wrote:

for production i got this error messages : Failed to find library
"liblept1760.so" for platform x64. but i'm pretty sure located all binary
file x64folder and x86folder, the environtment production is linux centos 7
but the funny thing is, if i run in windows server its look fine , help me
please
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/charlesw/tesseract/issues/520, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB7HSCK5TSOXSOKCI2UKPDRZV72VANCNFSM4OPRLBAA
.


Feature/initial commit

Jira Link:
https://ichiro-its.atlassian.net/browse/PI-191
Description
Make Ninshiki in cpp version. For now the detection method just Yolo
Type of Change

[ ] Bugfix
[ ] Enhancement
[x] New feature
[ ] Breaking change (fix or feature that would cause the existing functionality to not work as expected)

How Has This Been Tested?

[ ] New unit tests added.
[x] Manual tested.

Checklist:

[x] Using Branch Name Convention

feature/JIRA-ID-SHORT-DESCRIPTION if has a JIRA ticket
enhancement/SHORT-DESCRIPTION if has/has no JIRA ticket and contain enhancement
hotfix/SHORT-DESCRIPTION if the change doesn't need to be tested (urgent)

[x] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have made the documentation for the corresponding changes.

some variables are not in snake_case, please change them


[Bug]: autoscroller is too wide

What happened?
Expected:

Actual:

Steps to reproduce the problem

enable general.autoScroll
middle click (on a scrollable page)
observe the wide autoscroller

Additional info
Firefox version: 119.0
Operating system: Arch Linux (x86-64)
Workaround
I couldn't figure out what rule affects autoscroller like that, but in the meantime I'm using this to restore the width:
.autoscroller {
  min-width: 0 !important;
}

Added fix, reinstall archive please.

I use a git clone of the repo with a custom patchset, but thanks nonetheless. Maybe it would be appropriate to have multiple branches for backporting fixes to older versions of Firefox (or maybe just branches for the current and next versions)?

Я использую git-клон репозитория с собственным набором патчей, но, тем не менее, спасибо.

I'll think about it, because there are quite serious changes in version 120, and it make a sense to separate in another branch


Bump FAB to 1.9.4

Important bug/security fixes detailed here:
https://github.com/dpgaspar/Flask-AppBuilder/blob/master/docs/versions.rst

Coverage remained the same at 69.39% when pulling 187dfb9625c66b79dda84139a0945b30b1aae56e on mistercrunch:fab_194 into 46d60880ebb0c717e16cd81aef7a9ad15a6d966c on apache:master.

Coverage remained the same at 69.39% when pulling 187dfb9625c66b79dda84139a0945b30b1aae56e on mistercrunch:fab_194 into 46d60880ebb0c717e16cd81aef7a9ad15a6d966c on apache:master.

Coverage remained the same at 69.39% when pulling 187dfb9625c66b79dda84139a0945b30b1aae56e on mistercrunch:fab_194 into 46d60880ebb0c717e16cd81aef7a9ad15a6d966c on apache:master.