Visual Studio becomes slower over time with F# solutions

This was reported somewhere within other issues, but I am reporting it here since it seems to continue to happen and because I am curious whether other people have similar experiences.
Repro steps

Applies to significantly large solutions (say: > ~100k LOC)
Use Visual Studio the normal way. Search for something through the whole solution, note the time this takes for any typical short string.

Another way:

Keep VS 2017 open overnight or for multiple nights
Continue working in the same solution, same VS instance
After a while, it becomes so slow that even typing starts to drag (I type faster than it is echoed on screen).
This problem exacerbates over time. That is, at first it takes days before this happens, yesterday I noticed that I needed to restart VS after each two or three hours of work. Today it is fast again and stays fast, which was only after I updated VS.

Another way:

Monitor the time it takes to do a full, clean build of the solution from within VS.
After some days, weeks, this time increases (in my case: from 45 sec today, to 3 min or more yesterday, before I updated, which becomes unbearably slow)

(I don't think the compiler itself becomes slower, but the interaction with VS seems to slow the compiler as well)
Expected behavior
On a fresh install or after a new update of Visual Studio, searching succeeds in X seconds. Expected after several days, weeks that it is still X seconds, but but it becomes X+Y seconds where Y appears to increase.
Concretely, today I installed VS 15.6.6, and searching throughout my solution succeeds in under 1 second. So fast that I doubted the search results were correct.
Yesterday, before the update, search took ~5 - 10s seconds. Same words, same Find Options.
Actual behavior
Visual Studio starts to drag after a while.
Known workarounds
Reinstall, it will be fast again, at least for a few days.
Related information
Applies to VS 2017 versions, not seen as such in VS 2015.
I can see the CPU taking up a lot of time and it appears as if single threads are spinning (that is, CPU is only 5% for devenv.exe, but with 24 processors, that is equal to at least two threads being very busy, which apparently aren't written multi-threaded.
I am curious if this happens only to my specific instance or project. I just recently learned that some match-expressions can get unwieldy (take up GBs of memory by the compiler) and I have several large match-expressions to which this may apply (I will go over them, to see if this helps). Perhaps there are other challenges in F# compiling that are 2n complex.
However, I would assume that if that is at the root of this, it would mean that it should be slow always, and not just after time. It is very well possible that this slowing down is caused by something outside of the realm of F# (i.e., if the JIT temp dirs grow, or the sympols dirs), but I am unsure where to even begin looking.

@abelbraaksma Which exact version of VS are you working with please?

Which exact version of VS are you working with please? I see you mention 15.6.6?

Dragging was noticeable before I updated to 15.6.2 and disappeared after updating to 15.6.4. After a while (several days) it came back, and yesterday I updated from 15.6.4 > 15.6.6 and this morning I was happy since everything was fast again.
This cycle, that it is (much) faster just after updating was noticeable before, but I didn't make the link with the updates.

What is the memory usage of devenv.exe at the points where you start to notice the drag?

Typically around 1.2GB, while dragging often around 2GB or higher. Presently, it does not drag, and has Peak at 1.9GB, steady around 0.95GB.

Do you have in-memory cross project references enabled?

Limited to 3. Earlier, @cartermp made some suggestions to use these settings on code fixes:

What are your other options settings under Text Editor -> F#

The relevant bits, I think, are:

Is your solution using any specific type provider?

No type providers at any level in the solution.
Since it has happened to this particular solution for a long time (always to become speedy after an update, where I usually thought they improved performance, only to found out that after a while it was gone), I recently read, and commented, on this: #4691. I do have several "big" match-cases. I also have quite a few statically resolvable member constraints, some cross-project. As I understand, these may run into exponential performance or memory usage if they suffer from similar problems as the resolution of generic types in C#.
But most of these suggest that it would be slow always, and not over time. Hence I was wondering whether I should look into the temp bits that are shattered throughout my system over time?

@abelbraaksma re this:

Limited to 3. Earlier, @cartermp made some suggestions to use these settings on code fixes:

I believe I suggested turning all of the code fixes off and in-memory cross-project references off as well.
That said, if you're using 15.7 Preview 3 then you can probably keep the code fixes settings at their defaults (simplify name off, the rest on) because perf work for unused opens is implemented and they now run in priority order.

@cartermp, I'm on Preview 2 (main instance on 15.6.6). It may prove helpful to update the Preview, considering the shared code base, I'll try that and will update this issue if the problem persists.
Since both you and @dsyme use VS with F# and large solutions, assuming sometimes for hours on end, I wonder whether you ever encountered this behavior? Unless of course you are continuously updating (since you are developing the compiler itself), which seems to eradicate the issue for at least some time.

But when I type anything, I see devenv.exe going to 12% (that is the equivalent of 100% on 3 processors). Maybe I should do some profiling on the typing specifically.

That would be great

Since both you and @dsyme use VS with F# and large solutions, assuming sometimes for hours on end, I wonder whether you ever encountered this behavior? Unless of course you are continuously updating (since you are developing the compiler itself), which seems to eradicate the issue for at least some time.

I've only noticed it because of
(a) high memory usage (when VS becomes unusable)
(b) code fixes causing drag

Ok, it continues to pester me and it makes it rather hard to work on my projects. Sometimes typing becomes so slow as 1-2 seconds per keystroke and type-info tooltips have delays of over a minute, making it hard to get the much sought-after type information of function calls.
So, today I attached a profiler (it's ANTS 9.5). There are two important moments in the trace. Up until about 2:30, typing and info-tips were quite OK. Then the delay kicked in, which was roughly the last minute of the profiling session.
What I can see is very deeply nested recursive calls in an async area. They don't seem to be tail-recursive, which may make their asyncronicity dubious. In processor time I can see 108%, while with 24 processor cores over two processors that should ideally be closer 2400% when true async kicks in (I know not all can be async, but this part seems to be written with that in mind and it appears to block itself).
I'm not familiar enough with this part of the code, and it is very well possible that I draw the wrong conclusions, but this call-chart seems less-than optimal as it currently stands.
In the profiling session, the timings used sampling, so they're  bit rough. I don't know if it is really useful, if I can do something more useful to help further get to the bottom of this, let me know.
Here's a screenshot of a 10-second part:

Hmm, is there a way I can share the profiling session? 4 minutes of profiling lead to a 61MB zipfile. Here's a smaller portion as XML file, maybe it helps a bit already.
performance during typing_xml.zip

@abelbraaksma Have you had a chance to work in this part of your codebase with VS 2017 preview 5? We've observed a significantly better experience with the Visual F# codebase with this release, largely because a significant amount of memory is now being stored in virtual memory.
Based on what you're saying here (and I've seen similar traces; it's very difficult to see causal information), memory usage reaches a point where VS enters a "loop of doom" and then there is recourse other than to restart VS.
As for the profiling session, we can do that over email just so that no sensitive information is made public. phcart/dsyme/wismith at microsoft dot com

Have you had a chance to work in this part of your codebase with VS 2017 preview 5?

@cartermp, let me check, not sure what version I'm on right now (considering how often updates are coming).
Yes, "loop of doom" sounds about right. My problem is, however, that it happens a little bit too often. And on the same project, I can't remember I had it this severe in the 2015 times, so I know it can be done ;).

Oh, I'm on preview 3. I assume you mean 15.7.0 Preview 5, to be more precise. I'll download/install that now, see if it makes a difference on this project.

The next time you're in this state, can you please start a second instance of VS and use Help -> Send Feedback -> Report a problem, and switch from "Screenshot" to "Record", which will record a profile with ETW event tracing of CPU time, context switches, allocations, etc for us to look at.  Once you've done that, if you can link the Developer Community item, we can go find it and look at the recorded trace.

@Pilchie, I didn't know I could capture ETW so easily. I wanted to know how to do that for a while now, esp. for performance related issues. Thanks!
Since this happens usually multiple times a day, often within half an hour of working with a large solution, it shouldn't be too hard (though after restart, re-install it speeds up for a few days, no idea why, and then it slows down again).

@abelbraaksma Hopefully the trace will tell us!

@Pilchie, I made a first recording in this corresponding issue: https://developercommunity.visualstudio.com/content/problem/245320/coloring-typing-tooltips-and-intellisense-slow-in.html.
The relevant part is in the beginning where I try typing NodaTime. and wait for the dropdown to appear with its members, it takes 5-10 seconds, also after multiple times doing the same. It is significantly faster than it was prior to upgrading (@cartermp, it looks indeed like there've been good improvements in the newest release). I will make a new recording when the issue with coloring and 9really slow) typing speed comes back.

I took a quick look at this trace.  It appears that the UI thread (11432) isn't doing anything, but it's waiting for thread 13536, which is the F# reactor thread, which is doing plenty, but stacks are hard to read to figure out what's actually taking the time.
One thing that is pretty obvious is that the amount of garbage is a problem, we spend more than 10% of the CPU time of that thread in the GC - here are the GCStats.    Do you know what's going on there?

@Pilchie, thanks very much for taking the time to look into this, as it's becoming a real problem for the daily usage of VS + F#. I've created a new recording, which has a more significant delay in it which may help pinpoint the relevant issue easier (if anything is easy when it comes to performance of complex systems).
The relevant part is between 2:10 and 2:45, it took roughly 30 seconds before the tooltip came back after a copy/paste action (though it is not always a copy/paste action that triggers it, just typing a single letter can have the same effect).
Note that it effect all editing experiences: type-info tooltips, quick-info tooltips, dropdown lists, info-tips in dropdown lists (often empty, which is the result of another issue that has been addressed recently by @dsyme, I believe) and auto-completion (ctrl-space sometimes seems to do nothing, but then if you continue typing elsewhere, your previous ctrl-space gets completed like half a minute later). F12 and go-to definition are also affected, as are error squigglies (they remain very long, and sometimes stall forever, until a restart).
The new recording is here: https://developercommunity.visualstudio.com/content/problem/245786/slow-f-editing-experience-up-to-a-minute-until-typ.html.

Right now it's generate lot's of garbage but not yet know how / why / where it generated. Could you create an ETW capture (you can try to filter if it becomes too big) and feed it to a perfview stack / allocation flamegraph?  These tools should allow viewing the current stack that's leads to gcallocationtick* ETW events:
https://docs.microsoft.com/en-us/dotnet/framework/performance/garbage-collection-etw-events#gcallocationtick_v2_event
https://github.com/Microsoft/perfview/pull/440
https://github.com/Microsoft/perfview/pull/502
You can also use these tools to create to investigate ETW events or even create flamegraphs:
https://github.com/goldshtn/LiveStacks
https://github.com/goldshtn/etrace
On Linux, using CoreCLR it also possible to capture allocation stacks, by hooking into the PAL EventXplatEnabledGCAllocationTick* symbols:
http://blogs.microsoft.co.il/sasha/2018/02/06/getting-stacks-for-lttng-events-with-net-core-on-linux/
Would it be possible to create a standalone "benchmark" application to this usecase? Later this could be used for F# QA.

@abelbraaksma One thing that was enabled in VS2017 that might be a factor here is live cross-project IntelliSense.  In VS 2015, if you made a change in D in your example, you would have to build before you could see that change in A. In VS2017, we made it so that the IDE works "live" by processing the source of those other projects, but that has caused performance problems for some customer solution configurations.
You might try reverting to the old behavior by unchecking the option at Tools->Options->Text Editor->F#->Performance:

@Pilchie, yes, I'm aware of that setting and I have it on 3 (it was in an earlier comment, but it starts becoming a long thread, so here's a copy of my current settings):

Whenever I set it back to 200 it quickly freezes completely, so there's definitely an influence there. I will try to work a while with the cross-project references off, but iirc, this removes quite a bit of useful features.

If Project A depends on B depends on C depends on D,
<snip />
if I edit in a big file in project A, but remains reasonably fast when I edit in any file in D.

Let me correct myself here: it becomes slow when I edit a file that is referenced most often, i.e. a common functions library that every other project in your solution references (i.e., D in this example). It is fast when a file belongs to a project that is itself not referenced (i.e., the main program, or lead dll).

In VS2017, we made it so that the IDE works "live" by processing the source of those other projects, but that has caused performance problems for some customer solution configurations.

@Pilchie: is there a direct relation between compile performance and editor behavior, or is it more complex than that? The solution takes anywhere from 30s to 2 min to build (on one system), depending on whether or not everything is out of date.
If that's exactly what the in-memory process is doing, than a single change will typically trigger at least 30s of background compilation. And the current implementation of this feature erases any knowledge that it already knew, which means for a tooltip to show up again, you need to wait until this process finishes (and there's no way to see its status, I think).
Which may lead to a way to improve the user experience without having to solve all performance problems: cache the current state until the internal in-memory compiler has finished and only switch when all processes are done. That way, typing the dot to see dropdown list and the tooltips and everything would come from the previously compiled set, until the new compiled set is ready.
I'm not sure how the internals work, but this all sounds like we could really use some kind of incremental compiler, that "sees" that you are only adding one function and only compiles that function. Or that 'sees" that a signature hasn't changed, so that it does not need to recompile anything (because internals are irrelevant for the tooltips and dropdowns).
One other thing that would already help quite a bit is: find and compile only on significant changes. That is, changes in whitespace, in comments, in resource files, in removing unused variables or usings, etc (I'm sure this list can be expanded). At the moment, just hitting the spacebar on a white line will trigger recompilation.

@abelbraaksma This:

Let me correct myself here: it becomes slow when I edit a file that is referenced most often, i.e. a common functions library that every other project in your solution references (i.e., D in this example). It is fast when a file belongs to a project that is itself not referenced (i.e., the main program, or lead dll).

Is definitely the in-memory cross-project references toggle. What this will do is return VS2017 to a VS2015 (and earlier) -like experience where cross-project features do not work and you need to rebuild a project to see changes in dependent projects. However, this will significantly reduce memory consumption and likely make your experience far more tolerable when working mostly within a single project.
The real solution to this is, bluntly, some hard-ass design and engineering work that must be done in the F# language service.

Thanks, that makes sense. An alternative approach would be to put some often-referenced projects into a local github repo, and reference the dlls instead of using project references. But I've been on that path and it wasn't a very happy experience.

some hard-ass design and engineering work that must be done in the F# language service.

That sounds like an enormous undertaking, so you are generally saying that current design or architecture of the language service internals needs some serious revamping? Patchwork won't cut it?

It's not necessarily an enormous undertaking, it's just going to be difficult and will require a proper design that takes F# semantics into account. I don't think patchwork can cut it here.
That said, there are numerous opportunities in performance that are essentially:
profile -> see hotspot -> fix hotspot -> repeat
We've been doing this recently and will continue to do so for a while.

@cartermp: I'm already very glad that you take this report so seriously and are trying to pin it down somehow. Performance improvements in complex systems (or any system for that matter) are often pretty tough to do and cost a lot of time. I can totally sympathize with this being addressed after the current pending and planned improvements are addressed.
That said, we should probably be very careful with any additions to the compiler service in terms of features that may (significantly) add to the processor's or memory workload, to prevent the issue from becoming too difficult to tackle.

I just encountered an exception in the newest VS RTM, which may or may not be related so I am linking it here. #5033.
Also, the most recent version seems to have made things worse, not better. Possibly as a result of performance issues, I find that:

error squigglies hang again (even after rebuild), as do the red markers in the side bar
error messages are not reported in the error message window (but are in the output window after rebuild, so "0 errors" after build does not mean build was successful, double check is important)
Coloring often hangs, or is just painstakingly slow
After each typed letter, waiting for any other member of a (DU) type to show its signature can take about 30 seconds on average, often longer (it is must faster in small files only containing modules, this is particularly painful in a file of 4000+ lines that cannot easily be split)
and now the exceptions (as in #5033)

However, if you've adjusted your settings as specified earlier in this issue

Yes, these settings are still the same.

Perhaps we can spend some time looking at your codebase (under contractual NDA) directly?

@cartermp, Yes, that is certainly possible and in fact be very welcome. How would we go about doing just that? Though the DU itself isn't large (50 cases in total, nesting 5 deep max), they are bound with "and" and they have some important inlining (I've toned that down quite a bit, but not sure if SRTP could be the main cause of this)
Another thing that just comes to mind: I add a module-init after compilation (to fix some issues with assembly loading). This is a custom compile step with Fody and IL weaving, so I wouldn't think it is run during on-the-fly compiling while editing. But if it is, then that can certainly delay things. I will try for a while with that switched off.

Did you manage to install a recent perfview tool and did you loaded your recorded ETW there?

@zpodlovics, no, I have only made a recording using the build-in tools of Visual Studio.

@abelbraaksma Any success with PerfView? I just checked the latest windows version from here (https://github.com/Microsoft/perfview/releases/tag/P2.0.15), there is a new FlameGraph tab available.

@zpodlovics, I should definitely give that a try soon, as this is getting worse and worse it seems (but feeling and fact may not be the same).
@cartermp, I just recorded the "typing experience", which feels like WP51 on an 8088 machine. I know it doesn't help resolving this issue, but it may give an idea of how it impacts every moment of working with VS + F# (in same project, in C#, this problem doesn't exist). This is smooth typing, I mean, I type that text fluently in about 1-2 seconds, and the keyboard buffer catches up in fits and starts. This is just a comment of one line, imagine typing multiple lines ;).

@abelbraaksma what VS version are you using? Is it a .NET SDK or legacy style project?
Also, I notice this behavior as well over super long period of times (over a day?) in FSharp.Compiler.Private, but it doesn't continuously happen.
Also, whenever you type something, F# will try to do a full type check on the file you are currently in, even if its a comment. But, we fixed a bug where every time you typed something in a .NET sdk style, it would invalidate the whole project!

Is it a .NET SDK or legacy style project?

@TIHan, I never fully grasp what "legacy" means, to me that sounds like pre-.NET or something, but I assume it's .NET Framework 4? This is a project started years ago in F# 2.x, later 3.x, the for VS2015 updated to 4.0 and more recently to 4.1. The editing-slowness started at some point with VS2017, though I can't recall what change triggered it.

I noticed this behavior over super long period of times (over a day?) in FSharp.Compiler.Private, but it doesn't continuously happen.

It is not uncommon for me to keep my system running overnight and things remain open. But it also happens just after working a couple of minutes, though it depends a lot on what I am doing.

Also, whenever you type something, F# will try to do a full type check on the file you are currently in, even if its a comment.

This explains a lot! Some files are large and contain quite a bit of SRTP and/or and-chains of types. But I assume that if I invalidate file X that uses statically resolved types from file Y and Z, that it needs to reload all that as well.
The file in the example was itself not big, just around 1000 lines I think. But I wonder whether, if you invalidate file A that any file that depends on it for its inferred types, will also be invalidated? Because that may not be the whole project, but if one file has many dependencies down the line, it can wreak havoc on performance.

@abelbraaksma Based on this, and other information you've given, my educated guess is that the code in this file (and others) is pounding the compiler into submission. Heavy use of SRTP would make me think as much.
Other documents won't be invalidated, but it could also be likely that things are recomputed unnecessarily if the typechecking requires lots of information from other places (and with in-memory cross-project references turned on, from other projects as well). This is a general problem that has always existed in the tools, and only a heuristic to try and recompute only what is necessary can be done.
That said, typing into a comment shouldn't invalidate the document at all. That definitely seems like a bug.

@abelbraaksma Thank-you for both reports on the developer community, they were extremely helpful and I've identified some of the problems:
The first trace had two instances of VS that I looked at, and the second had one. All three showed signs of high GC usage in all three generations. The slowness over time can be mostly explained by what we call "Large Object" allocations; objects that have a size over 85k. These get put into a special heap and only collected when absolutely needed. When memory usage is low, we don't spend anytime collecting them  - however, as this heap grows over time, we need to pay down our taxes, and collect them during a "Gen2" collection. This can take a long time, and leads to visible delays if there's a large amount of data. On top of this, in some of the traces, both Gen0 and Gen1 were also taking up a significant amount of time putting pressure in all three generations.
Based on the traces, I've identified the following issues exist for your solution, one of which was already a duplicate:
https://github.com/Microsoft/visualfsharp/issues/5922
https://github.com/Microsoft/visualfsharp/issues/5933
https://github.com/Microsoft/visualfsharp/issues/5938
https://github.com/Microsoft/visualfsharp/issues/5935
https://github.com/Microsoft/visualfsharp/issues/5936
https://github.com/Microsoft/visualfsharp/issues/5937
I'm not that familiar with the F# code base so I'm unsure if these paths that I filed are expected to be hit this many times, or if this might be an indication that we're reparsing the world over and over again. I'll leave that for the F# folks to figure that.
If possible can you record a trace of your modification to the comment and file a new bug? As short as possible would be great.

Thanks a lot @davkean for this analysis and the great explanation.

For reference I am including here links to the two traces that I reported at developercommunity:

https://developercommunity.visualstudio.com/content/problem/379653/vs-slow-typing-and-hang-1.html
https://developercommunity.visualstudio.com/content/problem/379694/another-repro-trace-for-github-bug-4718.html

@blumu Yep and thanks for the those too, they resulted in:
https://github.com/Microsoft/visualfsharp/issues/5922.
https://github.com/Microsoft/visualfsharp/issues/5929
https://github.com/Microsoft/visualfsharp/issues/5930
https://github.com/Microsoft/visualfsharp/issues/5931

For those that want an overview on Large Object Heap (LOH) and its impact on the above, see https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/large-object-heap. It's a great read.

From reading about LOH, there is a very important point to make here.
LOH objects do get collected during Gen2, however compaction does not happen on the LOH. What this means is that the LOH can get fragmented. If LOH is heaviliy fragmented, any new allocations on LOH will have to happen at the end of the heap causing the LOH to expand, thus consuming more memory.
Based on this, while we have allocations to LOH, it would be good to get evidence of how bad the fragmentation is. I'm going to guess it's not good since we love to allocate on the LOH.

First off thanks @davkean for all your assistance with the profiling, massive help!
Is this being considered parent issue of all the child issues @davkean has referenced?
I can start looking into these issues, looking for ways to improve memory usage, improve caching, and if possible, improve algo (most of the algo logic is ok, they just use wasteful patterns).
So I am not duplicating any work already in progress, and provided you want the help, please let me know what is being worked on, and what you feel is best for me to focus on to start with?

This is a parent issue for some of the issues, but not all of them. Some are from a trace coming from a Microsoft product.
Please do feel free to look into things 🙂

@cartermp, thanks for this. I've been following the discussions, reports and fixes closely and it appears that a lot of progress is being made here :1st_place_medal: :100: . These days I'm a bit pressed for time, but I'll certainly try them out.
Btw, I don't notice much, if any, performance gains in the more recent VS 2017 versions (just yesterday, waiting for type inference and coloring took again about 1-2 min), is it possible that all these performance improvements are only submitted to the VS 2019 branches and releases? Or maybe I should try VS 2017 previews again?

This is all in VS 2019. VS 2017 is now locked down for LTS, so any new work has to happen for VS 2019.


New chip variants have been added to the stm32g0 PAC

https://github.com/stm32-rs/stm32-rs/pull/514 added the 50, 51, 61, B0, B1 and C1 variants.
These are now available in stm32g0 0.14.0
Could we have these added? Should I try to do so?

Any movement on this at all? It's been quite a few years, and G0B1 still hasn't been added. From what I can see, the hangup might be in the two DMAs for this chip and others like it (G0C1 I think also).

All the interesting things are happening in https://embassy.dev/. Take a look at https://github.com/embassy-rs/embassy/tree/main/embassy-stm32/src.
G0C1 family is supported by embassy: https://docs.embassy.dev/embassy-stm32/git/stm32g0c1cc/index.html.


Add IT framework and smoke test for user service

Builds an enhanced Fedora docker image containing user service, as well
as running the index and indexer for searches/lookups.
Contains a smoke test for verifying that the user service is deployed, and runs

lol, will fix the date.  Updating the formatting was accidental.  As long as it doesn't cause unnecessary conflicts on your end, feel free to merge this in.  I'm looking at your PR now..


https support

Do you have any plans to add https support for the HEC events?

SSL is now configured by default but there is a catch. The local CA store needs to contain whatever CA is used to create the certificate attached to the HEC port. I'm not versed enough in Java to configure it to ignore the store and that could be a potential improvement soon.


Pi Hole dashboard not working

Hi,
the following graphs in the Pi Hole dashboard are not working:

Status
DNS Queries
Number Of Blocked Queries
Blocked %age
Domains on Blocklist
Cached DNS Queries
Realtime Queries
Realtime Replies

The other ones  are working.

This is expected if the monitoring program cannot connect to the pihole-FTL.db.

Okay, how can I troubleshoot this?

Try running the program without the -d. That will give you all the output of the program. There will be an error with sql_influx.

Hi,
I nailed it down to
telegraf      | 2020-08-02T18:32:50Z E! [inputs.http] Error in plugin: [url=http://pi.hole/admin/api.php]: Get "http://pi.hole/admin/api.php": dial tcp: lookup pi.hole on <IP_ADDRESS>:53: no such host
I'm not sure where the IP <IP_ADDRESS> comes from. But the url is reachable in my network, here is the feedback:
{
"domains_being_blocked": 85314,
"dns_queries_today": 28375,
"ads_blocked_today": 1076,
"ads_percentage_today": 3.79207,
"unique_domains": 1435,
"queries_forwarded": 9526,
"queries_cached": 17773,
"clients_ever_seen": 14,
"unique_clients": 14,
"dns_queries_all_types": 28375,
"reply_NODATA": 0,
"reply_NXDOMAIN": 8,
"reply_CNAME": 38,
"reply_IP": 25,
"privacy_level": 0,
"status": "enabled",
"gravity_last_updated": {
"file_exists": true,
"absolute":<PHONE_NUMBER>,
"relative": {
"days": 0,
"hours": 15,
"minutes": 18
}
}
}

I changed the environment variable to my IP address and it works.
That's fine for me.
    environment:
      - PIHOLE_API_URL=http://10.0.1.xx/admin/api.php


fix ModuleNotFoundError

fix the ModuleNotFoundError: No module named 'yolox.layers.fast_cocoeval' when the cmd is "python -m yolox.tools.eval -n  yolox-nano -c yolox_nano.pth -b 4 --conf 0.001 "

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


Extract Loading and Score plot

How can loadings and scores be extracted after performing fit using fit!(pls_machine, rows = train)?

@lalvim Should probably answer this. But, more generally, if you are seeking access to learned parameters in an MLJ machine, use fitted_params(mach), if it is some other byproduct of training, use report(mach). Have you tried these?

Perfect, this is what I needed.


Hand off Tokio bookkeeping tasks before starting a new IPA query

This is an attempt to mitigate #1120 by hinting Tokio executor that query task maybe blocking the worker thread for longer than expected and it should hand off everything from that worker thread.
My local tests show that it does mitigate it and query_status requests arrive regularly and responded on time. It is a draft because a want to (finally) create an executor module and hide this complexity there. Before I can do that, I want to make sure this approach is reasonable to others
I also want to try to write a unit test. Not sure if I will be successful, but potentially I can create a runtime with two threads, block one and create a task that sleeps for some time and then awakes and signals back that it is not blocked. with IO driver it may be hard, but using time driver can be possible

Draft run for 50M records (was timing out before): https://draft-mpc.vercel.app/query/view/paved-stork-5287

it does not hang anymore, fails because of #1100

I decided not to create an executor module for now - block_in_place is a specialized API and maybe we use some other runtime sooner than we run into another issue. If block_in_place needs to be used somewhere else, then a new module will be justified


chore(ssa refactor): add range constraints for array param elements

Description

Problem*

Resolves #1456
Summary*

This PR sets out to add range constraints for each array element that appears in the parameters to main
Example
fn main(xs : [u8; 2]) -> pub u8 {
    xs[1]
}

compiles to
current witness index : 3
public parameters indices : []
return value indices : [2]
BLACKBOX::RANGE [(_1, num_bits: 8)] [ ]
BLACKBOX::RANGE [(_2, num_bits: 8)] [ ]

Documentation

[ ] This PR requires documentation updates when merged.

[ ] I will submit a noir-lang/docs PR.

[ ] I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

[ ] I have tested the changes locally.
[ ] I have formatted the changes with Prettier and/or cargo fmt on default settings.

I've opened up an issue so that we come back to this #1469


default evaluate_image.py gives wrong reasults

After downloading the code, and running evaluate_image.py on elephant.jpg (everything default, without changing a single line of code or the image) i get:
Loaded Model Weights!
Class is: sandbar, sand bar
Certainty is: 0.00110015
The same (sandbar) appears for different elephant images I have found.
The ordering is TF, the backend is TF as well.

@Huxwell
I am assuming you are using Keras 2? If so please use the keras-2 branch that was recently pushed as the weight file format changed between Keras 1 and 2 so it would classify incorrectly if you were using the wrong version.
Also remove the inception-v4 weight files from ~/.keras/models/ before running evaluate_image.py again to ensure the correct weights for your version are downloaded.


Receipt from Stripe and Hands Up ticket buyer email

The Stripe receipt has the right amount paid, because it includes ticket fee.
Hands Up's email to ticket buyers only includes the price, without feee, I think this needs to be the same as Stripe version. Trouble is the fee will vary depending on which card they use. So maybe we remove the "total amount charged" in the Ticket buyer email and just have ticket price and tickets purchased. Unless you can think a way around the fee issue?

I don't think you should send a receipt from stripe. How come they're sending.
I'm amazed the fee I is being added on top of the original amount. Pretty sure this is illegal and will pass people off a lot. Let's change it.


Replace Foundation with Bootstrap

So I think the bulk of the transfer from Foundation to Bootstrap is done. I'm having trouble with the columns on some pages. Instead of being side-by-side, they are stacking (even though they have room to be side-by-side)

Figured out the columns issue and then worked more on the bootstrap transition and sprucing stuff up. The sequence builder is pretty screwy looking right now - a lot of the block's styles got messed up with the transition. I'll fix that tomorrow.

@roryaronson Is this ready to merge?

@roryaronson Im going to just merge this as-is to avoid having our branches drift too far from eachother. I will fix any merge conflicts on my end.


feat(solid): impl components

:tada: This PR is included in version 0.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


This PR fixes Link for SMP project

in the documentation.
This PR fixes #2253
Signed-off-by: Jay Batra<EMAIL_ADDRESS>Description
This PR fixes #
Notes for Reviewers
Signed commits

[ ] Yes, I signed my commits.

@leecalcote  and @abhishekkumkar  Please take a look. This fixes the issue #2253.

@leecalcote  and @abhishekkumkar  Please take a look. This fixes the issue #2253.

Thanks @leecalcote I am aspiring to work as a part of community bridge program. Please let me know what can I take next?

Thanks @leecalcote I am aspiring to work as a part of community bridge program. Please let me know what can I take next?


CASSANDRA-18212: Reduce memory allocations of calls to ByteBufer.duplicate() made in org.apache.cassandra.transport.CBUtil#writeValue

Used HeapByteBuffers and ThreadLocal to allocate a ByteBuffer for every thread.

Reduced 20% memory allocation when doing mostly memory based queries
Reduced 4% memory allocation when doing disk-based queries

patch by Natnael Adere; reviewed by <Reviewers> for CASSANDRA-#####

The Cassandra Jira

Committed with https://github.com/apache/cassandra/commit/35f8da66f9b05d18b4177f8d2e1b86c772ad2221


feat: let the user decide if they want planning to fail if no services are detected

Signed-off-by: Harikrishnan Balagopal<EMAIL_ADDRESS>

just for reference


Large timestamps (9999-12-31) not read correctly

Environment
Delta-rs version: 0.5.6
Binding: Python (deltalake 0.5.6)
Environment:

Cloud provider: Azure
OS: Ubuntu 20.04
Other: Python 3.9 (poetry venv)

Bug
What happened:
The following code fails when trying to read a delta table that has TIMESTAMP column with 9999-12-31 00:00:00 values instead of nulls:
    delta_table = DeltaTable(path.to_delta_rs_path(), version=version)

    if batch_size:
        batches: Iterator[RecordBatch] = delta_table.to_pyarrow_dataset().to_batches(filter=row_filter, columns=columns, batch_size=batch_size)

        return map(lambda batch: batch.to_pandas(), batches)

    pyarrow_table: Table = delta_table.to_pyarrow_dataset().to_table(filter=row_filter, columns=columns)

    result = pyarrow_table.to_pandas()

Trace:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mnt/c/users/gzu/source/repos/github/proteus/proteus/storage/delta_lake/_functions.py", line 83, in load
    pyarrow_table: Table = delta_table.to_pyarrow_dataset().to_table(
  File "pyarrow/_dataset.pyx", line 323, in pyarrow._dataset.Dataset.to_table
  File "pyarrow/_dataset.pyx", line 2311, in pyarrow._dataset.Scanner.to_table
  File "pyarrow/error.pxi", line 143, in pyarrow.lib.pyarrow_internal_check_status
  File "pyarrow/error.pxi", line 99, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Casting from timestamp[ns] to timestamp[us] would lose data: -4852202631933722624

If columns doesn't contain a column that has 9999-12-31 00:00:00 timestamp values, everything works fine.
What you expected to happen: result contains pandas DataFrame and doesn't throw.
How to reproduce it:
Create a delta table with a timestamp column that contains 9999-12-31 00:00:00 values (from Spark, so it is stored as INT96).
More details:
I was able to fix this issue by changing to_pyarrow_dataset method:
def _to_pyarrow_dataset(
        table: RawDeltaTable,
        schema: pyarrow.Schema,
        partitions: Optional[List[Tuple[str, str, Any]]] = None,
        filesystem: Optional[Union[str, pa_fs.FileSystem]] = None,
) -> pyarrow.dataset.Dataset:
    """
    Build a PyArrow Dataset using data from the DeltaTable.

    :param partitions: A list of partition filters, see help(DeltaTable.files_by_partitions) for filter syntax
    :param filesystem: A concrete implementation of the Pyarrow FileSystem or a fsspec-compatible interface. If None, the first file path will be used to determine the right FileSystem
    :return: the PyArrow dataset in PyArrow
    """
    if not filesystem:
        filesystem = pa_fs.PyFileSystem(
            DeltaStorageHandler(table.table_uri())
        )

    format = ParquetFileFormat(read_options=ParquetReadOptions(coerce_int96_timestamp_unit='ms'))

    fragments = [
        format.make_fragment(
            file,
            filesystem=filesystem,
            partition_expression=part_expression,
        )
        for file, part_expression in table.dataset_partitions(partitions)
    ]

    return FileSystemDataset(fragments, schema, format, filesystem)

Specifically, doing format = ParquetFileFormat(read_options=ParquetReadOptions(coerce_int96_timestamp_unit='ms')) instead of source code having format = ParquetFileFormat()
Then the pyarrow conversion will go through, but pandas conversion will fail. It is fixed via pyarrow_table.to_pandas(timestamp_as_object=True) instead of pyarrow_table.to_pandas()
TLDR
Parquet read options are not exposed in public API. Would be nice to have them there, so issues like these can be resolved automatically :)

Thanks for the report! I think we want to be compatible with Spark by default, so hard-coding ParquetReadOptions(coerce_int96_timestamp_unit='ms')) seems appropriate to me.
But I also agree we should allow passing through format and writer kwargs as well. For writer args, there are options controlling sizes of row groups and files that users might want to tune.
Feel free to submit a PR for this if you want, or else I will look at fixing this soon.

I think it is enough just to expose parquet read/write options - it would be nice to be able to control row group size when writing as you mentioned. I'll try to find some time and send a proposal PR this weekend.

@wjones127 please take a look at this draft. If/when the exposed options are agreed, I'll add unit tests for the corner case mentioned in this issue, as well as 0001-01-01 date


[fix][broker] type cast on exceptions in exceptionally can lead to lost calls

From: https://github.com/apache/pulsar/pull/23102#issuecomment-2262852009
Motivation
Typecast on exceptions failed in future.exceptionally will cause lost calls, and not having any log.
Modifications
Ensure that all conversions of ManagedLedgerException are preceded by checks.
Verifying this change

All unit tests passed, not have any behavior change.

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

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

Project coverage is 73.44%. Comparing base (bbc6224) to head (f08e843).
Report is 487 commits behind head on master.

Files
Patch %
Lines

...che/bookkeeper/mledger/impl/ManagedLedgerImpl.java
50.00%
2 Missing :warning:

.../apache/pulsar/compaction/CompactedTopicUtils.java
0.00%
1 Missing :warning:

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #23117      +/-   ##
============================================
- Coverage     73.57%   73.44%   -0.13%
- Complexity    32624    33222     +598
============================================
  Files          1877     1919      +42
  Lines        139502   144103    +4601
  Branches      15299    15744     +445
============================================
+ Hits         102638   105836    +3198
- Misses        28908    30149    +1241
- Partials       7956     8118     +162

Flag
Coverage Δ

inttests
27.50% <18.18%> (+2.91%)
:arrow_up:

systests
24.71% <0.00%> (+0.39%)
:arrow_up:

unittests
72.52% <72.72%> (-0.33%)
:arrow_down:

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

Files
Coverage Δ

...kkeeper/mledger/impl/ManagedLedgerFactoryImpl.java
82.75% <100.00%> (+1.36%)
:arrow_up:

...sar/broker/service/persistent/PersistentTopic.java
79.47% <100.00%> (+1.01%)
:arrow_up:

.../apache/pulsar/compaction/CompactedTopicUtils.java
79.54% <0.00%> (+5.07%)
:arrow_up:

...che/bookkeeper/mledger/impl/ManagedLedgerImpl.java
81.65% <50.00%> (+0.99%)
:arrow_up:

... and 514 files with indirect coverage changes


build(package-lock.json): fix for npm pkg ip vulnerable to SSRF

:tada: This PR is included in version 4.0.19 :tada:
The release is available on:

v4.0.19
GitHub release

Your semantic-release bot :package::rocket:


Download magicleap signing certificate

Magic Leap apps need to be signed, fortunately we have a dummy signing key.

This change is

@bors-servo r+

:pushpin: Commit 5b0a0ad has been approved by jdm

:hourglass: Testing commit 5b0a0adaeff5f89de2eaebacdbe24e8d1fe79cb4 with merge 2da70a94d5b11e06e83279e2aad4891aaa71197f...

Yaml files are dictionaries, you can't have repeated keys, d'oh!
[CRITICAL] Rendering SLS 'base:servo-build-dependencies.mac-magicleap' failed: while constructing a mapping
  in "<unicode string>", line 20, column 3:
      cmd.run:
      ^
found conflicting ID 'cmd.run'
  in "<unicode string>", line 31, column 3:
      cmd.run:
      ^
local:
    - Rendering SLS 'base:servo-build-dependencies.mac-magicleap' failed: while constructing a mapping
        in "<unicode string>", line 20, column 3:
            cmd.run:
            ^
      found conflicting ID 'cmd.run'
        in "<unicode string>", line 31, column 3:
            cmd.run:
            ^
The command ".travis/dispatch.sh" exited with 1.

:pushpin: Commit 5e64ca3 has been approved by jdm

@bors-servo r=jdm

:hourglass: Testing commit 5e64ca3f603a734247b33597046cfc80022d36d4 with merge 3e12b5cbd4d2d2aa1a8c7fbb27a74dcbf3707b38...

:sunny: Test successful - status-travis
Approved by: jdm
Pushing 3e12b5cbd4d2d2aa1a8c7fbb27a74dcbf3707b38 to master...


Device Request - [Tuya Zigbee Door/Window Sensor - AliExpress] - [_TZ3000_n2egfsli] / [SNZB-04]

Device Information
Device Name: 'Door Sensor'
Device Model: _TZ3000_n2egfsli / SNZB-04
Device Description: Tuya ZigBee 3.0 Door Sensor
Link to device image: https://nl.aliexpress.com/item/1005007384428100.html?spm=a2g0o.productlist.main.1.1f568c3fKTcJXD&algo_pvid=7ab00a15-5272-44ed-9f15-f14043ee7a23&algo_exp_id=7ab00a15-5272-44ed-9f15-f14043ee7a23-0&pdp_npi=4%40dis!EUR!10.68!5.39!!!80.60!40.64!%40211b80d117292393287587740eaf73!12000040522651613!sea!NL!703758525!X&curPageLogUid=xK8Gl0sQeU7j&utparam-url=scene%3Asearch|query_from%3A
Device Interview
"ids": {
"modelId": "SNZB-04",
"manufacturerName": "_TZ3000_n2egfsli"
},
"endpoints": {
"ieeeAddress": "a4:c1:38:e5:16:cc:d3:60",
"networkAddress": 18309,
"modelId": "SNZB-04",
"manufacturerName": "_TZ3000_n2egfsli",
"endpointDescriptors": [
{
"status": "SUCCESS",
"nwkAddrOfInterest": 18309,
"_reserved": 20,
"endpointId": 1,
"applicationProfileId": 260,
"applicationDeviceId": 1026,
"applicationDeviceVersion": 0,
"_reserved1": 0,
"inputClusters": [
0,
3,
1,
1280,
32
],
"outputClusters": [
25
]
}
],
"deviceType": "enddevice",
"receiveWhenIdle": false,
"swBuildId": "0122052017",
"capabilities": {
"alternatePANCoordinator": false,
"deviceType": false,
"powerSourceMains": false,
"receiveWhenIdle": false,
"security": false,
"allocateAddress": true
},
"pollControl": {
"checkInInterval": 14400,
"longPollInterval": 14400,
"shortPollInterval": 1,
"checkInIntervalMin": 0,
"longPollIntervalMin": 0,
"shortPollWritten": true,
"longPollWritten": true
},
"extendedEndpointDescriptors": {
"1": {
"clusters": {
"basic": {
"attributes": [
{
"acl": [
"readable"
],
"id": 0,
"name": "zclVersion"
},
{
"acl": [
"readable"
],
"id": 1,
"name": "appVersion"
},
{
"acl": [
"readable"
],
"id": 2,
"name": "stackVersion"
},
{
"acl": [
"readable"
],
"id": 3,
"name": "hwVersion"
},
{
"acl": [
"readable"
],
"id": 4,
"name": "manufacturerName"
},
{
"acl": [
"readable"
],
"id": 5,
"name": "modelId"
},
{
"acl": [
"readable"
],
"id": 7,
"name": "powerSource"
},
{
"acl": [
"readable",
"writable"
],
"id": 18,
"name": "deviceEnabled"
},
{
"acl": [
"readable"
],
"id": 16384,
"name": "swBuildId"
},
{
"acl": [
"readable"
],
"id": 65533,
"name": "clusterRevision"
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"identify": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"name": "identifyTime",
"value": 0
},
{
"acl": [
"readable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"powerConfiguration": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 32,
"name": "batteryVoltage",
"value": 30,
"reportingConfiguration": {
"direction": "reported",
"attributeDataType": 32,
"minInterval": 0,
"maxInterval": 3600,
"minChange": 3,
"status": "SUCCESS"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 33,
"name": "batteryPercentageRemaining",
"value": 200,
"reportingConfiguration": {
"direction": "reported",
"attributeDataType": 32,
"minInterval": 0,
"maxInterval": 3600,
"minChange": 6,
"status": "SUCCESS"
}
},
{
"acl": [
"readable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1
}
]
},
"iasZone": {
"commandsReceived": "UNSUP_GENERAL_COMMAND"
},
"pollControl": {
"attributes": [
{
"acl": [
"readable",
"writable"
],
"id": 0,
"name": "checkInInterval",
"value": 14400
},
{
"acl": [
"readable"
],
"id": 1,
"name": "longPollInterval",
"value": 14400
},
{
"acl": [
"readable"
],
"id": 2,
"name": "shortPollInterval",
"value": 1
},
{
"acl": [
"readable",
"writable"
],
"id": 3,
"name": "fastPollTimeout",
"value": 40
},
{
"acl": [
"readable"
],
"id": 4,
"name": "checkInIntervalMin",
"value": 0
},
{
"acl": [
"readable"
],
"id": 5,
"name": "longPollIntervalMin",
"value": 0
},
{
"acl": [
"readable"
],
"id": 6,
"name": "fastPollTimeoutMax",
"value": 0
},
{
"acl": [
"readable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1
}
],
"commandsGenerated": "UNSUP_GENERAL_COMMAND",
"commandsReceived": "UNSUP_GENERAL_COMMAND"
}
},
"bindings": {
"ota": {}
}
}
}
}
Additional Comments:
https://nl.aliexpress.com/item/1005007384428100.html?spm=a2g0o.productlist.main.1.1f568c3fKTcJXD&algo_pvid=7ab00a15-5272-44ed-9f15-f14043ee7a23&algo_exp_id=7ab00a15-5272-44ed-9f15-f14043ee7a23-0&pdp_npi=4%40dis!EUR!10.68!5.39!!!80.60!40.64!%40211b80d117292393287587740eaf73!12000040522651613!sea!NL!703758525!X&curPageLogUid=xK8Gl0sQeU7j&utparam-url=scene%3Asearch|query_from%3A

Hi @OMGatito, interesting find.. it's using Sonoff modelId and Tuya manufacturerName... well well.. added to next update.

Thanks Johan!I will let you know if it doesn’t work. Thanks again.Enviado do meu iPhoneNo dia 23/10/2024, às 22:15, Johan Bendz @.***> escreveu:
Hi @OMGatito, interesting find.. it's using Sonoff modelId and Tuya manufacturerName... well well.. added to next update.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Hi Johan,
Unfortunately, it still doesn't work. It's recognized as an unknown device.

doesn't work here either


How to assign SignHere Tabs in Bulk Send Envelope

I have set up every other thing for bulk send and it's working pretty nicely. Following is the placeholder snippet which is being replaced by the original recipients in the bulk list:
        signer = Signer(name='Multi Bulk Recipient::signer'<EMAIL_ADDRESS>                        role_name='signer', note='', routing_order='1', status='created', delivery_method='email',
                        recipient_id='13', recipient_type='signer')
        sign_here = SignHere(anchor_string='**Employee Signature**', anchor_units='pixels',
                             anchor_y_offset='10', anchor_x_offset='20')
        signer.tabs = Tabs(sign_here_tabs=[sign_here])

       envelope_api.create_recipient(ACCOUNT_ID, envelope_id, recipients=Recipients(signers=[signer]))

But it is not creating the SignHere tab in the document. This same code was working in case of single envelope but that's not the case here. Can anyone help?

Hi @maaqib121 ,
Were you able to resolve this issue, here is a link to some documentation as to how to attach tabs
https://developers.docusign.com/docs/esign-rest-api/esign101/concepts/tabs/
Let me know if this helped.
Thanks,
Harsha

I already followed it and it worked nicely in case of single envelope, but in case of bulk send, it doesn't work.


Add Stop instruction

Adds an instruction to signal that program execution has terminated, which causes the CPU program counter to halt
Trace row counts are extended to the next power of two.

Merging for now. If desirable, in the future we could have the serial CPU execute until the cycle count reaches a power of two, instead of resizing during trace generation.


fix: broken urls in synced tasks

Fixes #51
Checklist

[x] Assign labels to PR
[x] Request PR update using @CodiumAI-Agent /describe
[x] Request PR review using @CodiumAI-Agent /review (and if required update with @CodiumAI-Agent /review -i)

@CodiumAI-Agent /describe

@CodiumAI-Agent /review

PR Analysis

🎯 Main theme: Fixing broken URLs in synced tasks
📝 PR summary: This PR addresses issue #51, where URLs in synced tasks were broken. A new function safe_get has been introduced to safely retrieve nested attributes from an object. This function is then used to retrieve the URL of a task. Tests for the new function have also been added.
📌 Type of PR: Bug fix
🧪 Relevant tests added: Yes
🔒 Security concerns: No security concerns found

PR Feedback

💡 General suggestions: The PR is well-structured and the changes are clear. The addition of the safe_get function is a good approach to handle the retrieval of nested attributes in a safe manner. The tests added for the new function are comprehensive and cover different scenarios. Good job!

 🤖 Code feedback:

relevant file: ado_asana_sync/sync/sync.py
suggestion: The safe_get function is a good utility function that can be used in multiple places. Consider moving it to a utility module to improve modularity and reusability. [medium]
relevant line: def safe_get(obj, *attrs_keys):

relevant file: ado_asana_sync/sync/sync.py
suggestion: The safe_get function currently handles both dictionary and object types. It would be more readable and maintainable to split this into two separate functions, one for handling dictionaries and another for handling objects. [medium]
relevant line: def safe_get(obj, *attrs_keys):

How to use

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review [-i]: Request a review of your Pull Request. For an incremental review, which only considers changes since the last review, include the '-i' option.
/describe: Modify the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest improvements to the code in the PR. Extended mode employs several calls, and provides a more thorough feedback.
/ask <QUESTION>: Pose a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.

To edit any configuration parameter from configuration.toml, add --config_path=new_value
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, use the /config command.

@CodiumAI-Agent /improve

How to use PR-Agent

Tag me in a comment '@CodiumAI-Agent' and add one of the following commands:
/review [-i]: Request a review of your Pull Request. For an incremental review, which only considers changes since the last review, include the '-i' option.
/describe: Modify the PR title and description based on the contents of the PR.
/improve [--extended]: Suggest improvements to the code in the PR. Extended mode employs several calls, and provides a more thorough feedback.
/ask <QUESTION>: Pose a question about the PR.
/update_changelog: Update the changelog based on the PR's contents.

To edit any configuration parameter from configuration.toml, add --config_path=new_value
For example: /review --pr_reviewer.extra_instructions="focus on the file: ..."
To list the possible configuration parameters, use the /config command.


No modle named distro

I am building carla in Ubuntu 20.04
I have trouble make PythonAPI because The Problem said that there are no module named distro
But I have already installed distro for python

Is there any solution I can use?

carla is located at
"/home/user/Carla/carla/PythonAPI/carla/setup.py"
and distro is located at
"usr/lib/python3/dist-packages"
is it location issue?


fix(angular2): blacklist two more declare'd vars from angular2

I know, Phabricator.
I'm burning down a big list of hacks I had to add for angular2 to run, and would rather not take a detour into php-cli right now.

merged as 9ec7ac8


Problem with "Reconfigure VM" through Workloads (in VmOrTemplate controller)

Hello
I configured ManageIQ such way, that usial user haven't access to Vm-Infra, only to Workloads through Service.
And I found this issue:
1)Login as usial user, I choose Service -> Workloads -> Vm -> Reconfigure this VM, i see:

I want to notice, that in this case VmOrTemplate controller is used. But if I after this press on button "Services" and then again press on button "Reconfigure" all is ok.

2)Login as Super Administrator, I choose Service -> Workloads -> Vm -> Reconfigure this VM, all is ok:

In this case VmInfra controller is used.
Attached logs.
rec_log.txt
Thanks.
P.S. Adding link of post request in config/routes.rb (when press on button "Reconfigure this VM") doesn't help

@h-kataria please look into this, not sure if the methods need to be in vm_common or it's a different issue.  Thx, Dan

@miq-bot assign @lgalis

@miq-bot rm_label stale


gb vendor doesn't escape dashes on repo names

$ gb vendor fetch github.com/coreos/go-etcd
Cloning into '/var/folders/zh/h978h6z94h34q5qwx8td5lsh0000gp/T/gb-vendor-370110034'...
Username for 'https://github.com': pires
Password for<EMAIL_ADDRESS>remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/coreos/go/'
FATAL command "fetch" failed: exit status 128
FATAL command "vendor" failed: exit status 1

Also, why the need for authentication when dealing with public repositories?

gb decoded the URLs wrong, see the third last line, when a repo doesn't exploit GitHub pretends like it is password protected.

On 26 May 2015, at 22:12, Paulo Pires<EMAIL_ADDRESS>wrote:
$ gb vendor fetch github.com/coreos/go-etcd
Cloning into '/var/folders/zh/h978h6z94h34q5qwx8td5lsh0000gp/T/gb-vendor-370110034'...
Username for 'https://github.com': pires
Password for<EMAIL_ADDRESS>remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/coreos/go/'
FATAL command "fetch" failed: exit status 128
FATAL command "vendor" failed: exit status 1
Also, why the need for authentication when dealing with public repositories?
—
Reply to this email directly or view it on GitHub.

@davecheney makes sense. Thank you for clarifying that.

Should be fixed now.
On Tue, May 26, 2015 at 10:29 PM, Paulo Pires<EMAIL_ADDRESS>wrote:

@davecheney https://github.com/davecheney makes sense. Thank you for
clarifying that.
—
Reply to this email directly or view it on GitHub
https://github.com/constabulary/gb/issues/138#issuecomment-105509007.

Awesome, thank you!


Dependency issues for Jekyll on Windows

After installing Jekyll for Windows (https://jekyllrb.com/docs/installation/windows/) and running the commands from the root README (npm install and bundle exec jekyll serve --livereload), the current site's configuration produces this error:
https://stackoverflow.com/questions/30682575/unable-to-load-the-eventmachine-c-extension-to-use-the-pure-ruby-reactor
This was the solution that worked for my computer (Windows 10): https://stackoverflow.com/a/65547010
To fix it, I modified the Gemfile and added this line to the end:
gem 'eventmachine', '1.2.7', git: 'https://github.com/eventmachine/eventmachine.git', tag: 'v1.2.7'
I am not sure what the proper long-term solution would be here.

Adding 'eventmachine' did not impact installation on Mac and did not impact our CI-CD build pipeline to deploy Github Pages; closing the issue as the corresponding PR is merged.


feat: Include formula for saucectl

Description
Introduces the saucectl formula to the Homebrew repository.
Related Tickets & Documents
If you know you know 👀

Moving saucectl functionality into the pizza-cli


WebApp - Support NFTs on Asset Hub

Describe the bug

[x] Don't show NFT on Asset Hub
[x]  Can't send NFT

Version test : https://010ccd3a.subwallet-webapp.pages.dev/

[ ] Re-check :

Don't show NFT on Asset Hub

Can't send NFT


Fix headers

A couple of places where headers should have been included.
I found these while updating my simplemakev4 branch to build tesseract with make.
protos.cpp needs intproto.h for MAX_NUM_PROTOS.
commontraining.h needs to always use baseapi.h, as otherwise most training binaries won't build, and it doesn't rely on the HAVE_CONFIG_H it's ifdef-ed around.

thank. Welcome back. Can you have a look at PR #310?


Add ADC support on STM32C0-series

I’ve tested this using samples/drivers/adc and verified the voltage reading on the arduino header pin A0-A2.
However, running the API tests under tests/drivers/adc was not possible because of flash overflow.

Also update the  boards/arm/nucleo_c031c6/doc/index.rst
Else LGTM

Thanks! Fixed now.


Add extended access.log

Add extended log format access.log.
I will also provide a PR for the Core Rule Set docker container.
There, the timeout variables will be filled.

You are not using the latest version of the format. But otherwise, this looks good. Thank you for the links. :)

Where do I find the latest format?
:)

In the link you posted. :)
https://www.netnea.com/cms/apache-tutorial-5_extending-access-log/ - Step 4.

 Thanks.

This works fine, generally if we are shifting to a format where we include files from this repo, we just need to make sure to cleanup the dockerhub repo.


Check frequency is not working as expected

Hi,
I setup a check to run every 5 minutes but this is what is happening:

Sometimes the check is performed every 7 minutes, sometimes every 6 or twice the same minute (at 11:17pm).
Am I the only one experiencing this behavior? Could it be related with some misconfiguration of Cabot?

No, you are not the only one with such issue: https://github.com/arachnys/cabot/issues/368

Off the top of my head, could it be general load and Celery cannot keep up with too many tasks ?

Yeah, that might be the reason. That's why the workaround with taking last execution time into account with next check is enough for me.

I don't think the issue is related with the application load, I can reproduce the same issue having just one check in my Cabot instance.

I think I figured this out, it's because we have multiple celery beat services instead of just one. Making a PR now

Fix for this should be merged. Let me know if you still have issues
(see the docs for updating to the latest version)

@frankh are you sure? I think it's not working because you guys are adding a random amount of time between each check... https://github.com/arachnys/cabot/blob/master/cabot/cabotapp/tasks.py#L45

@yuribit that would explain checks being +/- 1 minute off, not several minutes off (e.g. the 2 checks firing in the same minute)
I think point of that delay is to prevent very spiky cpu loads, although i'm not sure how effective it is


__syncwarp(mask) question

What is the HIP version of __syncwarp(mask) ?

__device__
loc_ht& ht_get_atomic(loc_ht* thread_ht, cstr_type kmer_key, uint32_t max_size){
    unsigned hash_val = MurmurHashAligned2(kmer_key, max_size);
    unsigned orig_hash = hash_val;

    while(true){
        int prev = atomicCAS(&thread_ht[hash_val].key.length, EMPTY, kmer_key.length);
        int mask = __match_any_sync(__activemask(), (unsigned long long)&thread_ht[hash_val]); // all the threads in the warp which have same address

        if(prev == EMPTY){
            thread_ht[hash_val].key.start_ptr = kmer_key.start_ptr;
            thread_ht[hash_val].val = {.hi_q_exts = {0}, .low_q_exts = {0}, .ext = 0, .count = 0};
        }
        __syncwarp(mask);
        if(prev != EMPTY && thread_ht[hash_val].key == kmer_key){
            //printf("key found, returning\n");// keep this for debugging
            return thread_ht[hash_val];
        }else if (prev == EMPTY){
            return thread_ht[hash_val];
        }
        hash_val = (hash_val +1 ) %max_size;//hash_val = (hash_val + 1) & (HT_SIZE -1);
        if(hash_val == orig_hash){ // loop till you reach the same starting positions and then return error
            printf("*****end reached, hashtable full*****\n"); // for debugging
            printf("*****end reached, hashtable full*****\n");
            printf("*****end reached, hashtable full*****\n");
        }
    }
}

@jinz2014 the cuda docs say about syncwarp:
Each calling thread must have its own bit set in the mask and all non-exited threads named in mask must execute a corresponding __syncwarp() with the same mask, or the result is undefined.
I don't think that is guaranteed in the ht_get_atomic function pasted above so this code seems to be relying on undefined behavior.

The original CUDA program is https://github.com/leannmlindsey/gpu_local_ht

Hi @jinz2014. Internal ticket has been created to assist with your question. Thanks!

Hi @jinz2014,
__syncwarp() is one CUDA function that HIP doesn't provide a direct equivalent for. You have a couple of options:

A threadfence_block() which incurs a performance hit (As a memory fence for all threads in the block)
A syncthreads() which is more expensive than (1), as it implements a barrier and memory fence https://rocm.docs.amd.com/projects/HIP/en/latest/reference/cpp_language_extensions.html#memory-fence-instructions
Cooperative groups, which will not be viable as a drop in replacement but require some additional rewriting (though, is most similar, semantics-wise ) https://github.com/ROCm/HIP/issues/2798 / https://rocm.docs.amd.com/projects/HIP/en/latest/reference/cpp_language_extensions.html#synchronization-functions


OrderSummary (React) breaks when updating to v9 of cc

I'm currently updating the Gen1 order form package.json to have newer versions of different modules.
https://github.ibm.com/Bluemix/Gen1.VSI
The problem I'm seeing could potentially even be outside of carbon-components. It is possible I need to clear some cache, or possible that when I updated webpack it is missing something.
We've been using     "carbon-components": "8.16.8",     "carbon-components-react": "5.31.0",
I get the screenshot down below when I update to:     "carbon-addons-cloud": "^2.0.1",     "carbon-addons-cloud-react": "^1.1.4",     "carbon-components": "^9.0.2",     "carbon-components-react": "^6.4.2",
Original:

After updating to v9 in package.json:

When I bump carbon-components v9 back to the v8 version, everything is good again. I am a little unsure of how carbon-components-react is resolving dependencies when it requires a peer dependency of v9 for carbon-components, but I have specified v8.

With v9 installed it shows our app as using it:
<EMAIL_ADDRESS>C:\Users\IBM_ADMIN\git\Gen1.VSI
`--<EMAIL_ADDRESS>
With v8 installed it doesn't show up:
<EMAIL_ADDRESS>C:\Users\IBM_ADMIN\git\Gen1.VSI
`-- (empty)

Hi @cknabe thank you for reporting! I tried to upgrade the dev env of carbon-addons-cloud-react to V9 of carbon-components and the corresponding carbon-components-react version, but couldn’t reproduce the problem. The dev env of carbon-addons-cloud-vanilla has been upgraded to V9 of carbon-components already, but couldn’t reproduce the problem there, either. Could you try re-creating the problem in CodePen or CodeSandbox? Thanks!

Closing due to inactivity, but feel free to reopen if you feel this is still an issue

This can be closed with 'non-issue'
Sorry, I apologize for missing the original reply. I bit the bullet though and completely upgraded our app to carbon-components v9.
In the process I discovered a lot of css overrides that were previously written to hack some of the carbon components stuff into place. I can't remember the specifics, but this OrderSummary issue was due to a difference in flex.
Thank you for trying @asudoh


Parse short names for cards in the form of "X the Y", where X is the short name

We agreed to consider valid only the comma separated short names


chore(main): release 1.1.0

:robot: I have created a release beep boop
1.1.0 (2022-09-19)
Features

add convert function (1b5ab2f)
add GetBetweenDates function in time package (a3b559d)
add http package (4f53fb2)
add math operations (5911df9)
add release automatic (2df6f72)
add set operations (bb4a680)
add some time and safego feature (6d9f424)
add system package (7f351cc)
complete safego (6c7c753)
get time year_month between start and end (efa50c9)
permutation support concurrency (384be5a)
新增Redis包 (e0664d2)

Bug Fixes

fix test bug (46704da)

Docs

make doc better (4aeb6d6)
make doc better (dfac2b8)
make doc better (3a8362c)
make doc better (0ddbbeb)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/WGrape/golib/releases/tag/v1.1.0 :sunflower:


Add Python 3 compatibility

I have made small changes for ensuring that your code works for Python 2.7 and 3. The input for get/set expect string types in both versions.

Hi there,
Thank you for the pull request!
Can you please also add a Python 3 entry to the .travis.yml file so tests on travis will also cover Python 3?
Thanks!

Sorry. I thought I already had. Now, it is changed. I have substituted the previous commit.

Thanks!


Tabs style is broken in documentation

Tabs style is broken in some part of the documentation.
Browsers:
All
Steps:

Go to https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/badge/
Look at tab style of the "Code Preview"

instead of

Page list with this issue:

https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/badge
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/breadcrumbs
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/chip
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/collections
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/footer
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/navbar
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/pagination
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/progress
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/dialogs
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/dropdown
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/modals
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/input
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/select
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/file
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/range
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/datepicker
https://aurelia-ui-toolkits.github.io/demo-materialize/#/samples/autocomplete

Thanks for pointing that out. It seems to happen in a <compose> context but I'm not sure. I couldn't resolve this so far.

Interesting observation:
When using the same with a card in a card, it's not broken at all..

Seems to be fixed with Materialize`s new tabs implementation.


[No QA][TS migration] Migrate 'GitUtilsTest.js' test and 'GitUtils.js' .github file to TypeScript

Details

Migration of GItUtils and GitUtilsTest to TS
Replacing all require and module.exports usage in tests directory with es6 import and export

Fixed Issues

$ https://github.com/Expensify/App/issues/25375
$ https://github.com/Expensify/App/issues/25273
PROPOSAL:
Tests

[x] Verify that no errors appear in the JS console
Check if running tests in GitUtilsTest.ts pass all tests
Check also other tests since lot of tests are affected by this PR (changing way of export/import)

Offline tests

QA Steps

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

PR Author Checklist

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

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

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

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

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Validate Github Actions is failing @filip-solecki

@hannojg this PR affects lot of e2e tests - please have a look!

Thanks for tagging me!
Question: Why does this have so many files in the e2e test suite changed if its goal is only to update GitUtils and GitUtilesTest? 😄

Is your PR based on another branch that already included these refactoring of the e2e test suite?

Partially mentioned in description.
Changes in those two files just started the chain of changes with module.exports and require import/export methods.
So we decided to change them all in one PR and replace with es6 import/export what also helps with TS (eg. require does not now type of imported package or sth)

Understood. Changes LGTM, but let me test first if the e2e test suite still works, hold on

@hannojg changed as requested

Reviewer Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

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

🚀 Deployed to staging by https://github.com/flodnv in version: 1.4.43-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.4.43-20 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Person testing of feature 'report creating'

[x] install new QGIS version supported by CanFlood (3.22.8)
[ ] manually install new CanFlood dev version (need to create a zip of CanFlood folder. build dialog should read '1.2.0')
[ ] Review and edit the new toolset documentation (5.3.4 Report Automator)
[ ] Complete, review, and edit tutorial 2a (section 6.2)

Note I've created a new branch for this work.
Check the boxes here and create a pull request once this is finished.

Thanks for the review @blairscriven. As a result of your comments, I've made some fixes:

fixed a bug that was preventing the curves from plotting
uploaded a pdf  showing the report results from tutorial 2a
added some additional checks on the map generator (to make sure the selected layer is not empty)
expanded the documentation for tutorial 2a report generator
activated an RTD build for this branch
fixed some tests

If you could re-run your review on these revisions that would be most helpful.
Notes:

if you're unable to use git, github should allow you to upload file revisions manually
be sure to create a new zip/install to get the latest changes

On Thu, Aug 4, 2022 at 9:02 PM Blair Scriven<EMAIL_ADDRESS>wrote:
Hey Seth,
I have finished doing my review of the PDF Reporter (and Tutorial 2a). I have made changes to a couple of figures and added a few sentences to the rst files (for example, I changed the Report Automator to be section 5.3.5 since  the Benefit-Cost Analysis is already section 5.3.4). The major only issue I found with the PDF Reporter is that there was no summary map or plot of vulnerability functions generated in my report.
I cannot create a pull request right now; there is the ‘Failed to execute installGlobalLFSFilter’ error with GitHub Desktop right now. From what I can tell from Google, it is a whitelisting issue which requires help from IBI IT. In the meantime, I can send you the .rst and .jpeg files I modified and created to add to the feature report git branch, if you would like that.
Blair Scriven

Hey so I tested the recent fixes and I am getting python errors that I was not getting yesterday. It occurs when I press the 'Create Report' button on the Report tab and stops the processing at the "loaded 'r_ttl' w/ (7, 4)" step.
Python Errors:
…\canflood\results\dialog.py", line 861, in run_reporterwrkr.add_map(vlay=geo_vlay)
…\canflood\results\reporter.py", line 308, in add_map assert isinstance(vlay, QgsVectorLayer)
My QGIS info:
QGIS version - 3.22.8-Białowieża
Qt version - 5.15.3
Python version - 3.9.5
GDAL/OGR version - 3.5.0
PROJ version - 9.0.1
Pandas version - 1.1.3
Openpyxl version - 3.0.7
Scipy version - 1.6.2
xlrd version - 1.2.0
xlsxwriter version - 3.0.1
matplotlib version - 3.5.1

@cefect , I think you were right about the finv vectorlayer not being selected in the Join Geo combo-box. I made sure the right file was added and this time it worked - the summary map and the plot of vulnerability functions were generated in my report! Compared to the PDF report you uploaded, mine was completely similar.
So, I believe my test of the PDF reporter has been successful!


Make VMNet optional

requires https://github.com/code-ready/machine/pull/43
Disable root permission check if VMNet is not used.
Disable IP polling.

Rebased with type added in machine (https://github.com/code-ready/machine/pull/43)

Release is done, merging it.


definition file for "do" operator doesn't match the do(null, fn)

RxJS version:
5.5.6
Code to reproduce:
    new Observable((observer) => {
      observer.next("Yeah !");
      observer.error("error !");
    }).do(null, err => {
      console.log('oops!!!!');
    }).subscribe(something => console.log(something));

Expected behavior:
Able to use the do(null, fn);
Actual behavior:
I can't compile my application.
I have to use a dummy function to make it work.
    new Observable((observer) => {
      observer.next("Yeah !");
      observer.error("error !");
    }).do(() => {}, err => {
      console.log('oops!!!!');
    }).subscribe(something => console.log(something));

Additional information:
RxJS 4 had the doOnError, but RxJS 5 merged that operator with the normal " do", with passing a « null » value has the first arguments, but it doesn't works.

I'm unable to reproduce your error in JavaScript: http://jsbin.com/kewohibice/edit?js,console
I suspect the issue you're hitting is in TypeScript, in that case you can pass undefined and you'll be fine.
Better
I highly suggest you use:  do({ error(err) { console.log('oops' } }) which is more readable and explicit.

The problem is indeed with Typescript.

Because in the do.d.ts

So we cannot use null neither undefined.
It would be needed to have something like:

It's not so much a problem with TypeScript, as it's a problem with the type definitions. The same happens with tap.
This is a minor annoyance that I've come across, too. And I've got around it using !, like this:
tap(undefined!, undefined!, () => console.log("complete")

null! would also work.
Basically, a signature like this:
export function tap<T>(
  next?: (x: T) => void,
  error?: (e: any) => void,
  complete?: () => void
): MonoTypeOperatorFunction<T>;

says that next is optional, but if an argument is passed, it must be (x: T) => void. So if passing undefined is acceptable usage, the signature should be:
export function tap<T>(
  next?: ((x: T) => void) | undefined,
  error?: ((e: any) => void) | undefined,
  complete?: (() => void) | undefined
): MonoTypeOperatorFunction<T>;

And if null is also acceptable, it should be in the union, too.

next?: ((x: T) => void) | undefined
undefined is not needed here, because it's implicit by the use of « ? » (next? vs next)

I didn't thought about using the non-null assertion operator.

@Davilink Yeah. You are right. However, I'm now at a complete loss when it comes to explaining why passing an undefined was effecting TypeScript errors for me only a few weeks ago. Neither the typings for do nor tap have changed in months. I guess something was fixed in TypeScript 2.8.
Anyway, after reading Ben's comment, using a partial observer looks like a better way to go.


NullPointerException

Hi,
I encounter the following error while generating mappers:
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.NullPointerException
	at fr.xebia.extras.selma.codegen.CustomMapperWrapper.collectCustomMethods(CustomMapperWrapper.java:200)
	at fr.xebia.extras.selma.codegen.CustomMapperWrapper.collectCustomMappers(CustomMapperWrapper.java:173)
	at fr.xebia.extras.selma.codegen.CustomMapperWrapper.<init>(CustomMapperWrapper.java:64)
	at fr.xebia.extras.selma.codegen.MapperWrapper.<init>(MapperWrapper.java:93)
	at fr.xebia.extras.selma.codegen.MapperClassGenerator.<init>(MapperClassGenerator.java:60)
	at fr.xebia.extras.selma.codegen.MapperProcessor.generateMappingClassses(MapperProcessor.java:89)
	at fr.xebia.extras.selma.codegen.MapperProcessor.process(MapperProcessor.java:74)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
	at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
	at com.sun.tools.javac.main.Main.compile(Main.java:523)

It happens in v0.13 and v0.14-SNAPSHOT (last master).
Trying to debug it I can see that this line:
final TypeElement element = context.elements.getTypeElement(customMapper.replace(".class", ""));

located in the private void collectCustomMappers() method is null.
I really don't know what to do to solve my problem, please help !
Thank you

Hi could you tell me more like what is the value of the customMapper local variable when you get a null element ?
Also can you provide a sample code to reproduce the error ?
Elements.getTypeElement does not find the targeted class for some reason is it existing in the classpath at build time, is it in a separate jar ?
As you can see I just need more to fix this issue.

The local variable customMapper contains com.company.move.customeraccount.mapper.classification.CustomerClassificationNaturalPersonListMapper.class
The class is in the classpath since it is contained in the same project.
I'm trying to extract you some code to reproduce it.
Thank you!

https://github.com/denouche/selma-bug
I cleaned the code to let the minimum source code.
But I let the hierarchy of the code, in case the problem come from this.
You just need to run mvn clean compile to see this:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building test 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ test ---
[INFO] Deleting /home/denouche/workspace/selma-bug/target
[INFO] Deleting /home/denouche/workspace/selma-bug/src/main/generated-sources (includes = [], excludes = [])
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ test ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/denouche/workspace/selma-bug/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 11 source files to /home/denouche/workspace/selma-bug/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.429 s
[INFO] Finished at: 2016-01-15T10:41:42+01:00
[INFO] Final Memory: 16M/212M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project test: Fatal error compiling: java.lang.NullPointerException -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Do not hesitate if you need more informations.
Thank you

Ok it sounds like a jdk bug so, what is your jdk release and could you test it with a newer one ?

$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
I will test with a new one.
Thanks

same problem with OpenJDK 1.7.0_79.
I will try with latest 1.8

Same problem with Oracle 1.8.0_65 version ...

I simplified the code on branch simplified
https://github.com/denouche/selma-bug/tree/simplified
The bug still occurs.
Thank you in advance for your help.

I've got it :)
Making a pull request

https://github.com/xebia-france/selma/pull/71

Thanks a lot for the work and for using Selma.
I'll add an integration test for this bug